Responsibilities
- Design and implement the Windows client app (UI + audio pipeline + networking).
- Implement efficient binary streaming with System.Net.WebSockets and System.IO.Pipelines.
- Integrate with our server endpoints (session init, voice catalog, health); handle TLS, auth headers (API-Key/JWT).
- Device management: enumerate/select WASAPI capture & render devices; detect exclusive/shared mode capability.
- Audio UX: input/output gain, optional noise gate, basic high-pass; guard against underruns/overflows.
- Packaging: produce an installer; configure auto-start/minimize-to-tray; persist settings securely (DPAPI).
- Diagnostics: structured logs, simple latency/jitter telemetry, crash-safe operation.
- Collaborate on message contracts with the backend; document the app for hand-off.
Must-have skills
- C# / .NET 6+ (ideally .NET 8) and WPF with MVVM.
- NAudio and WASAPI (capture & render), real-time audio buffering.
- WebSockets (binary streaming) and back-pressure/jitter handling.
- Windows audio device enumeration, exclusive/shared mode, sample-rate handling.
- Packaging & deployment: MSIX or Inno/NSIS, app settings, code signing basics.
- Practical async/await, cancellation, and error handling patterns.
- Comfortable reading API specs and integrating with TLS-protected endpoints.
Nice to have
- System.IO.Pipelines experience for high-throughput streaming.
- Basic DSP: gain, AGC, high-pass, crossfade smoothing.
- Experience routing audio to virtual devices (VB-Audio Cable, BlackHole).
- Familiarity with Vicidial/WebRTC audio paths (not mandatory—virtual-mic routing is primary).
- Logging/metrics: Serilog, EventSource, basic Prometheus exporters.
- Auto-update frameworks (Squirrel.Windows / NetSparkle).
Tooling you’ll use
Job Type: Full-time
Pay: Rs50,000.00 - Rs150,000.00 per month
Work Location: In person