Skip to content
Mahesh Kadambala

About

I'm Mahesh Kadambala, a backend engineer who builds enterprise software — the kind with many tenants, strict isolation requirements, audit trails, and users whose whole workday runs through the system. My default question is not "what framework?" but "what breaks, and what does it cost when it does?"

The journey so far

I started in Java and Spring Boot on a multi-tenant SaaS platform for equipment lifecycle management, and got the education you only get from production: a search feature that collapsed at a million records, approval workflows that were different for every customer, events that went missing once a month. Solving those — a query DSL compiled to tenant-scoped Elasticsearch, a declarative workflow engine, the transactional outbox — turned into both my project portfolio and my writing.

Now I'm deliberately widening into full-stack work with React and TypeScript. Not because backend stopped being interesting, but because the systems I want to own end to end — where the API design, the data model, and the UI are one coherent argument — need an engineer who can hold the whole thing.

How I solve problems

Understand the business problem first; most "technical" problems are a requirements misunderstanding wearing a stack trace. Then find the invariant that must hold — no cross-tenant reads, no lost events, no unsafe queries — and make it structural. A rule enforced by architecture beats a rule enforced by review, which beats a rule enforced by memory.

I write down trade-offs at decision time. Every significant choice in my projects has an "alternatives considered" trail, because the second-most-expensive thing in software is re-litigating old decisions without context. The most expensive is being unable to change them.

Engineering philosophy

  • Boring is a feature.The most reliable component I've shipped is a while-loop that polls a table. Spend the complexity budget on invariants, not on infrastructure fashion.
  • Fail closed. When context is missing — tenant, auth, ordering — throw. A loud exception today beats a silent data leak next quarter.
  • Design the failure modes. The happy path is table stakes; systems are defined by what happens at the transaction boundary, the retry, the redelivery.
  • Code is communication.If the next engineer can't see why, I haven't finished. That belief is why I write publicly.

Learning mindset

I learn by building references: when I needed to understand the outbox pattern properly, I built a runnable one with a chaos script. I use AI agents heavily and deliberately — my take on doing that without losing engineering judgment is in this essay. Current focus: system design at larger scale, React server components, and the craft of specifying work precisely enough that both humans and agents build the right thing.

Experience

Backend Software Engineer

2023 — Present

Enterprise SaaS Startup · Remote

Core platform engineer on a multi-tenant equipment-lifecycle SaaS serving enterprise customers.

  • Designed tenant-aware REST APIs with schema-level isolation and request-scoped datasource routing.
  • Built an enterprise search engine — custom query DSL compiled to Elasticsearch — over millions of records.
  • Developed a configurable workflow engine driving per-tenant service and approval lifecycles.
  • Integrated Kafka with the transactional outbox pattern for reliable, decoupled event delivery.
  • Cut key query latencies ~60% through indexing, query tuning, and connection pooling.
  • Implemented JWT authentication with refresh rotation and role-based access control.

Skills

Languages

Java · TypeScript · SQL · Python

Backend

Spring Boot · Spring Security · Spring Data JPA · Hibernate · REST

Architecture

Microservices · Event-Driven · Multi-Tenancy · DDD · CQRS

Data

PostgreSQL · Redis · Elasticsearch · MySQL

Messaging

Apache Kafka · RabbitMQ · AWS SQS

Frontend

React · Next.js · TypeScript · Tailwind CSS

Cloud & DevOps

AWS · Docker · Kubernetes · GitHub Actions · Nginx

Testing

JUnit 5 · Mockito · Testcontainers

The fastest way to evaluate me is to read one case study and one article — they show the thinking, not just the outcomes.