Envor

From 04/2024 to 07/2026

Role: Senior Full Stack Developer

Telecom bills on CDRs, the record of every call. Millions a day, each one needing to be ingested, stripped of duplicates, enriched, rated and charged. Undercharge and the company loses money; overcharge and a customer is billed for something they did not use. Both ends hurt.

I built the microservices for that pipeline in Go, with heavy parallelism and the guards a distributed pipeline demands: circuit breakers so a failure does not take down what sits behind it, rate limiting so a third-party integration does not drown, and Prometheus metrics so a fault surfaced before a customer called about it. The path runs through S3, SQS, Kafka, Redis, MongoDB and MySQL.

On the application back end, NestJS organised by domain, with fine-grained RBAC, BullMQ queues and distributed audit trails. The rating, financial wallet, invoice generation and metrics APIs came out of that.

On the front, Next.js with the App Router, TypeScript, Tailwind, Redux Toolkit and RTK Query, building the B2B screens where the operation actually lives: customers, companies, contracts, CDRs, invoices, audit trails and tariff groups. I used the BFF pattern and internal proxies so the interface talked to one layer built for it, instead of knowing half a dozen services.

Orchestration in Docker, Docker Swarm and Kubernetes, with observability through Grafana, Prometheus and Loki. In billing, a system nobody can see inside is a system nobody trusts.