Period 2020 – 2021
Location Israel

At Balink, a provider of high-scale business management software, I focused on modernizing the technology stack and introducing real-time communication features.

The Challenge: Aging Framework, Growing Demands

The core CRM platform was built on the full .NET Framework—a technology approaching end-of-life with limited cloud compatibility. Meanwhile, enterprise clients needed new features faster than the legacy architecture could support. Adding complexity, the system also relied on Java-based backend services that couldn’t simply be abandoned.

Framework Modernization (.NET)

I played a key role in migrating the core CRM platform from the legacy .NET Framework to modern .NET Core. This was not just a syntax update; it required rewriting dependency injection logic, updating middleware pipelines, and ensuring backward compatibility for existing enterprise clients. The migration took approximately one year to complete while maintaining production stability. Simultaneously, I maintained legacy Java backend systems, ensuring stability during the transition period.

Real-Time Communications (WebRTC)

The business identified a gap: users within the CRM needed to communicate in real-time without leaving the application. After evaluating third-party solutions, the decision was made to build in-house for better cost efficiency and integration control.

I architected and built a new communication module from scratch using WebRTC. The technical challenges included:

  • Signaling Server: Built the WebSocket-based signaling infrastructure for peer connection negotiation
  • STUN/TURN Implementation: Developed custom STUN/TURN server-side logic from scratch without third-party dependencies, enabling reliable NAT traversal across corporate firewalls
  • Zero External Dependencies: The entire real-time communication stack was built in-house, giving full control over the architecture

This allowed users within the CRM to initiate high-quality voice and video calls directly from the browser without plugins. To ensure seamless integration with the existing UI, I developed a library of TypeScript-based Web Components wrapped in React, enabling the real-time features to be dropped into various parts of the application with minimal friction.

Discuss Experience