Software Developer (Frontend - Typescript)

Intermedia

Location
Portugal
Job Type
full-time
Salary
Unknown
Posted
September 18, 2025

Job Description

About Intermedia
Are you looking for a company where YOUR VOICE is heard? Where you can MAKE A DIFFERENCE? Do you THRIVE in a FAST-PACED work environment? Do you wake every morning EXCITED to work with GREAT PEOPLE and create SUCCESS TOGETHER? Then Intermedia is the place for you.

Intermedia has established itself as a leading provider of cloud communications and collaboration tech that allows companies to connect better. We have a strong track record of growth, profitability, and creating an environment where everyone matters. Everyone. While we are fast-paced and admittedly a bit intense, we promise that you won’t be bored. You will find Intermedia is a place where you can indulge your passion for creating and supporting great cloud-based communication technology. What’s more, we always look to promote from within and have many employees who have been with us 10, 15, and 20+ years!

About the Role:
As an experienced Typescript Developer your responsibility will be to work on Intermedia Unite - a unified communication and collaboration platform designed for businesses of all sizes. It allows users to make and receive calls, send instant messages, hold video conferences, and share files all from one easy-to-use application. It also integrates with popular business applications like Microsoft Outlook and Salesforce, making it a powerful tool. Unite Desktop is an Electron application, written in typescript. It consists of a multiple plugins - an isolated pieces of code communicating to each other by a well-defined APIs to allow different parts of functionality to be implemented separately.

What you will be doing:
  • Extend and support Contact Center, Chat and Calling functionality in application
  • Keep the architecture of application clean and support possibility of independent development of different parts.
  • Communication with product management team to provide them estimates on different approaches for feature
  • Working closely with QA during all stages of development process
  • Creating a plan for development and present it to the whole team
  • Regular code review
  • Cover you code with unit tests (Jest) and component tests (Cypress)
What you will bring to the role:
  • Bachelor’s Degree in Computer Science, or equivalent field
  • At least 4 years of experience in typescript software development
  • Electron
  • WebRTC
  • Angular.io
  • Experience with strongly-typed language
  • Understanding of SOLID and common design patterns
  • Logical thinking and architectural approach to design and problem solving
  • Self-motivated and detail-oriented
  • Good communication and teamwork skills
Diversity, Inclusion, and Equal Opportunity
We hire, promote, and compensate employees based on their ability to perform their job responsibilities, without regard to race, color, creed, religion, sex, gender, marital status, national origin, ancestry, age, citizenship, physical or mental disability, sexual orientation, or any other basis protected by applicable law (collectively referred to in our Code of Conduct as “Protected Classes”). We do not tolerate employment discrimination in the workplace, and we are committed to making reasonable accommodations for identified disabilities or other limitations as required by all applicable laws. We are an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.

Key Responsibilities

  • Extend and support Contact Center, Chat and Calling functionality in application
  • Keep the architecture of application clean and support possibility of independent development of different parts.
  • Communication with product management team to provide them estimates on different approaches for feature
  • Working closely with QA during all stages of development process
  • Creating a plan for development and present it to the whole team
  • Regular code review
  • Cover you code with unit tests (Jest) and component tests (Cypress)

Skills, Knowledge and Expertise

  • Bachelor’s Degree in Computer Science, or equivalent field
  • At least 4 years of experience in typescript software development
  • Electron
  • WebRTC
  • Angular.io
  • Experience with strongly-typed language
  • Understanding of SOLID and common design patterns
  • Logical thinking and architectural approach to design and problem solving
  • Self-motivated and detail-oriented
  • Good communication and teamwork skills

🎯 Who is this job for?

This position is ideal for a Senior Frontend Developer with 4+ years of experience in TypeScript, especially building applications using Electron, Angular.io, and WebRTC. Candidates should have a strong grasp of SOLID principles, design patterns, and writing unit/component tests (Jest, Cypress). Experience in architecting modular applications and working closely with cross-functional teams is essential.

πŸ’¬ Potential Interview Questions

  1. Explain Electron’s process model and where you’d place business logic.
    Keep privileged OS/Node logic in the main process; keep UI in renderer. Expose a minimal, type-safe API via a preload script with contextIsolation: true and communicate over IPC.

  2. How do you harden an Electron + Angular app against XSS/RCE?
    Disable nodeIntegration, enable sandbox and contextIsolation, use a strict CSP (no unsafe-inline), remove the remote module, and validate/serialize all IPC messages with strict TypeScript types (or zod).

  3. Walk through WebRTC call setup for a contact center feature.
    Use signaling to exchange SDP offers/answers and ICE candidates; gather via STUN and fall back to TURN for NAT traversal. Attach media tracks, handle device selection, and start stats monitoring once connected.

  4. SFU vs MCU vs P2P—what do you choose and why?
    Use an SFU for multiparty, low-latency video/audio—it scales bandwidth by forwarding selective streams without re-encoding. P2P fits 1:1; MCU is simplest for clients but costly due to server transcoding.

  5. How do you keep Angular chat/calling UIs fast under heavy updates?
    Use OnPush, async pipe, immutable updates, and trackBy; virtualize long lists (CDK Virtual Scroll) and throttle high-frequency streams with RxJS (auditTime, sampleTime).

  6. Design a plugin architecture inside an Electron app.
    Define versioned TypeScript interfaces for plugin contracts, load plugins lazily, and isolate them behind a message bus/IPC. Enforce capability checks and semantic versioning to keep independent deployability.

  7. How would you test WebRTC and IPC reliably (Jest + Cypress)?
    Mock signaling and use Chromium flags (--use-fake-device-for-media-stream, --use-fake-ui-for-media-stream) in Cypress; unit-test reducers/services with Jest and stub IPC via a typed adapter in preload.

  8. How do you handle media device changes and call recovery?
    Listen for devicechange, re-enumerate devices, and switch tracks with replaceTrack. On network loss, trigger ICE restart/renegotiation and backoff-retry signaling while preserving call state.

  9. What TypeScript techniques improve safety in a multi-plugin codebase?
    Enable strict/noUncheckedIndexedAccess, use discriminated unions for IPC/event payloads, and generics for request/response mapping. Parse untrusted inputs to unknown and validate before narrowing.

  10. How do you package and update an Electron app safely across OSes?
    Code-sign artifacts (Win/macOS), use differential updates with a notarized macOS build, and roll out via staged channels. Keep updates data-driven (manifest) and support safe rollback on health-check failures.

πŸ“‹ Job Summary

Intermedia is hiring a Frontend Software Developer in Portugal to build and extend features for Unite, their Electron-based unified communication platform. You'll work with TypeScript, Angular, WebRTC, and SOLID principles to enhance chat, calling, and contact center capabilities. This role offers a dynamic, team-oriented environment with a strong emphasis on clean architecture, testing (Jest/Cypress), and long-term product impact. Join a fast-growing company where your voice matters and your code drives real-world communication solutions.

Required Skills

TypeScript Angular

Related jobs

United States

Software Engineer (Frontend)

O’Reilly

Full-time
Buenos Aires, Argentina

Senior Front-End Engineer (React.js)

Darwoft

Full-time