Backend Engineering
Building APIs and backend applications with a focus on clean design, data handling and maintainable code. I enjoy understanding what happens inside a request, from the application layer down to the database.
BACKEND ENGINEERING·DISTRIBUTED SYSTEMS
I'm a software engineer who enjoys solving problems and understanding how things work behind the scenes. I mainly work on backend systems, building microservices and distributed applications, with a focus on event-driven architecture, reliability and scalability. Java and Spring Boot are my primary tools, and I also work with Node.js, Kafka and AWS. I enjoy taking on complex engineering challenges, exploring different approaches and turning ideas into solutions that make a real difference.
A LITTLE ABOUT ME
HOW I APPROACH ENGINEERING
Look beyond the immediate requirement before choosing a solution.
Consider how components interact, scale and affect one another.
Prefer clear decisions and maintainable solutions over unnecessary complexity.
I'm a software engineer who enjoys understanding how things work beneath the surface.
My work revolves around backend engineering, application architecture and distributed systems. I enjoy exploring the decisions that make software reliable, maintainable and capable of handling real-world complexity.
I believe good engineering is not just about choosing the right technology. It's about understanding the problem, questioning assumptions, considering trade-offs and keeping things simple wherever possible.
Outside of building software, I enjoy exploring new ideas, learning continuously and finding interesting perspectives beyond technology.
"Understand the problem deeply. Design thoughtfully. Build things that last."
WHAT I WORK ON
The areas I work in, the problems I enjoy solving and the concepts I'm always curious to explore.
Building APIs and backend applications with a focus on clean design, data handling and maintainable code. I enjoy understanding what happens inside a request, from the application layer down to the database.
Exploring how services communicate, process events and handle failures. I'm particularly interested in messaging, concurrency, data consistency and the challenges that appear when systems work together.
Working with the infrastructure behind applications, from deployment and containerisation to scaling and observability. I like understanding how software behaves beyond the local development environment.
MY ENGINEERING TOOLKIT
From application architecture to production observability, these are the technologies and engineering practices I work with.
APPLICATION LAYER
Building APIs and backend services with an emphasis on clean architecture, maintainability and reliable service communication.
COMMUNICATION LAYER
Designing asynchronous workflows and event-driven architectures, with a focus on concurrency, messaging, data consistency and failure handling.
INFRASTRUCTURE & OPERATIONS
Deploying and operating applications in cloud environments, with monitoring, logging and distributed tracing to understand production behaviour.
DATA & INTERFACES
Working across different data models and building application interfaces that connect with backend services.
BEYOND THE CORE STACK
SELECTED WORK
A few things I've built and explored. Each project is an opportunity to work through a problem and learn something along the way.
EVENT-DRIVEN ARCHITECTURE
An AWS-based event-driven data pipeline built with Java and Spring Boot. It ingests events through SQS, stores raw data in S3, transforms JSON into analytics-ready Parquet files using Lambda, and makes the processed data available for querying through Athena.
CLOUD & STORAGE
A hybrid cloud storage platform built with Spring Boot and AWS S3, supporting both API-managed and direct client-to-S3 file transfers. Implements IAM role-based authentication, private bucket access, presigned URLs, and a separation of control and data planes to support secure and scalable file operations.
More projects and experiments will be added here.
Explore all repositoriesWRITING & IDEAS
I write about concepts I explore while building software. Sometimes that means understanding how something works internally; other times, it's about the decisions behind designing a system.
These are a few ideas I've explored, broken down and shared along the way.
A look at the problems Kafka was designed to solve, and how brokers, partitions and consumer groups fit together to make event streaming work.
Read on MediumBefore looking at Spring abstractions, let's understand what happens at the database level when transactions begin, commit and roll back.
Read on MediumBreaking down a familiar real-world system into objects, responsibilities and states, while exploring the design choices and trade-offs along the way.
Read on MediumUnderstanding the event loop, asynchronous execution and runtime internals that allow Node.js to handle concurrent operations.
Read on MediumGET IN TOUCH
Have an interesting engineering problem, an idea to exchange, or simply want to talk about technology? I'd be happy to hear from you.
Let's talk