Software Developer (Frontend - Typescript)
Intermedia
- Location
- Portugal
- Job Type
- full-time
- Salary
- Unknown
- Posted
- September 18, 2025
Job Description
- 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)
- 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
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
-
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 withcontextIsolation: true
and communicate over IPC. -
How do you harden an Electron + Angular app against XSS/RCE?
DisablenodeIntegration
, enablesandbox
andcontextIsolation
, use a strict CSP (nounsafe-inline
), remove theremote
module, and validate/serialize all IPC messages with strict TypeScript types (or zod). -
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. -
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. -
How do you keep Angular chat/calling UIs fast under heavy updates?
UseOnPush
,async
pipe, immutable updates, andtrackBy
; virtualize long lists (CDK Virtual Scroll) and throttle high-frequency streams with RxJS (auditTime
,sampleTime
). -
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. -
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. -
How do you handle media device changes and call recovery?
Listen fordevicechange
, re-enumerate devices, and switch tracks withreplaceTrack
. On network loss, trigger ICE restart/renegotiation and backoff-retry signaling while preserving call state. -
What TypeScript techniques improve safety in a multi-plugin codebase?
Enablestrict
/noUncheckedIndexedAccess
, use discriminated unions for IPC/event payloads, and generics for request/response mapping. Parse untrusted inputs tounknown
and validate before narrowing. -
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.