Skip to case study

2026 - Aug 2026

Karbon: building document management APIs in .NET

Building admin and settings APIs for Karbon's Document Management System in a .NET microservices backend, alongside its Next.js implementation. A six-month engagement at Liquid Labs as a Senior Full Stack Engineer working in an Associate Technical Lead capacity.

C# · .NET · Microsoft SQL Server · Azure Cosmos DB · Redis · CQRS · RabbitMQ · REST APIs · Next.js · Ember

Problem

Karbon is a cloud platform for accounting firms to manage their clients and day-to-day work. My work focused on the Document Management System, with admin and settings APIs in the existing .NET backend and a new frontend as Karbon migrated from Ember to Next.js.

My role

I engineered the core DMS admin and settings REST APIs in C#/.NET. I also started the DMS implementation in Next.js and took responsibility for the team's work in the new frontend, building on the shared project another team had started.

Decision

I built the APIs within the existing .NET monorepo, which contained more than 11 microservices, each responsible for a module. I worked within the DMS microservice's existing implementation of Command Query Responsibility Segregation, or CQRS, which separated read and write operations. Services communicated through RabbitMQ and exposed REST APIs. The backend used Microsoft SQL Server, Azure Cosmos DB and Redis caching.

Result

I built the core DMS admin and settings APIs and led the module's Next.js implementation. I also introduced Knip to the shared Next.js project, and the wider Next.js team adopted it.

Further reading

The experience section covers my six-month engagement at Liquid Labs as a Senior Full Stack Engineer working in an Associate Technical Lead capacity on Karbon.