SKIP TO CONTENT

I ship backend systems and stay on call for what happens next.

Eighteen months at DigiMantra Labs. Three systems still running, and one duplicate-payment incident I can walk you through.

ROLE
Backend & cloud engineer
RUNTIME
Node · PostgresAWS
REGION
Mohali, IndiaUTC+5:30 · ap-south-1
STATUS
Open to rolesconfirmed 02 Aug 2026
LEAD TIME
30 daysnegotiable
01 / 09 · IDENTITYA system you haven't watched fail is a system you don't know yet.
02 / 09

WHAT I'VE OWNED

Four systems, what I was responsible for on each, and what changed in production because of it.

  1. R-01

    ROLE
    Backend owner
    STATE
    Production
    TYPE
    Multi-tenant SaaS

    Multi-tenant SaaS backend

    Owned the backend across authentication, tenant isolation, payments and deployment. Responsible for what the system did in production, not only for what it did in review.

    Reliable systems are designed around failure before failure occurs.

    • Tenant data isolated at the query boundary.
    • One deployment path for every environment.
    • Support escalations traced to a request id.
  2. R-02

    ROLE
    Infrastructure owner
    STATE
    Production
    SYSTEM
    Serverless · AWS

    Serverless service infrastructure

    Owned the Lambda-based runtime, its deployment pipeline and its operational behaviour — cold paths, retries, timeouts, and what the on-call engineer sees at 3am.

    Infrastructure is a product decision that happens to be written in configuration.

    • Deploys stopped requiring a person who knew the history.
    • Failures degrade a single route rather than the service.
  3. R-03

    ROLE
    Backend owner
    STATE
    Production
    TYPE
    Payments · webhooks

    Payment processing and webhooks

    Owned the payment integration end to end, including the duplicate-charge incident it produced and the idempotency model that closed it. Accountable for correctness under retry, not only under test.

    A payment system is judged by what it does the second time it receives the same event.

    • Repeated webhook delivery no longer changes account state.
    • Failed payment events replayable without manual repair.
  4. R-04

    ROLE
    Backend owner
    STATE
    Production
    TYPE
    Workflow automation

    AI workflow automation

    Owned the backend for automated workflows built on model output, including the parts that decide what happens when the model is wrong. Responsible for the boundary between a probabilistic step and a system of record.

    The engineering work in an AI feature is almost entirely in the failure path.

    • Model output validated before it reaches persistent state.
    • Manual review path preserved for low-confidence results.
03 / 09

ENGINEERING DECISIONS

Four decisions taken in production systems, with the alternatives that were real at the time and the costs that came with the choice.

  1. D-01

    DOMAIN
    Compute
    STATE
    In production
    REVISITED
    Twice

    Chose serverless compute over long-running services.

    CONTEXT

    Needed capacity and deploys that nobody had to operate. Traffic was bursty and impossible to forecast, and the engineer who owned deployment also owned the product work.

    WHY THIS CHOICE

    Deploys stop needing a release owner, failures stay inside one route instead of taking a host with them, and capacity stops being a decision anyone revisits weekly.

    OPTIONS CONSIDERED
    • Managed functions

      SELECTED

      No hosts to patch, per-route isolation, cost follows traffic.

    • Container service

      NOT CHOSEN

      Better local parity, but someone has to own scaling policy and base images.

    • Long-running VMs

      NOT CHOSEN

      Full control, and a patching schedule the team could not staff.

    TRADE-OFFS ACCEPTED

    Accepted cold starts on rarely-hit routes, runtime coupling to one provider, worse local reproduction, and a separate home for long-running jobs.

    REFLECTION

    Engineering is usually the process of choosing which problems deserve to exist.

  2. D-02

    DOMAIN
    Payments
    STATE
    In production
    REVISITED
    After an incident

    Put idempotency at the webhook boundary, not in business logic.

    CONTEXT

    Needed correctness under repeated delivery. Duplicates are normal traffic rather than an error, and we learned that from a duplicate charge in production, not from the documentation.

    WHY THIS CHOICE

    Retries arrive at the boundary, so that is where correctness under retry belongs. One choke point can be audited; correctness spread across every handler cannot, and it decays the moment someone adds a handler.

    OPTIONS CONSIDERED
    • Event ledger at the edge

      SELECTED

      Every event id recorded once, before any handler runs. Replay becomes safe by construction.

    • Guards inside each handler

      NOT CHOSEN

      Cheaper to write, and correctness then depends on every future author remembering.

    TRADE-OFFS ACCEPTED

    Accepted one extra write on the hot path, a ledger that grows until someone owns its expiry policy, and a boundary that is now first to fail under load.

    REFLECTION

    A system that cannot be safely retried is not finished, it is only untested.

  3. D-03

    DOMAIN
    Identity
    STATE
    In production
    REVISITED
    Once

    Chose email-link sign-in over passwords.

    CONTEXT

    Needed sign-in without owning stored credentials. Business users sign in occasionally, across tenants, often on shared machines, and a password flow means owning storage, rotation, reset and lockout.

    WHY THIS CHOICE

    A credential that is never stored cannot leak, and the remaining risk moves to email delivery — measurable, owned, and failing visibly rather than silently.

    OPTIONS CONSIDERED
    • Managed email link

      SELECTED

      No stored credential, no reset flow, session policy in one place.

    • Password + reset

      NOT CHOSEN

      Familiar to every user, and the largest surface area of the three.

    • Enterprise SSO only

      NOT CHOSEN

      Right answer eventually; most tenants had nothing to federate with yet.

    TRADE-OFFS ACCEPTED

    Accepted sign-in latency that depends on someone else's mail queue, shared inboxes that complicate attribution, an expiry window that has to be tuned against real behaviour, and a separate route in for automated tests.

    REFLECTION

    The cheapest secret to protect is the one you decided not to store.

  4. D-04

    DOMAIN
    Automation
    STATE
    In production
    REVISITED
    Continuously

    Kept a human review path rather than fully automating writes.

    CONTEXT

    Needed automation that could be wrong safely. Model output was being written into a system of record, and the wrong parts were wrong with complete confidence — the failure mode that does not announce itself.

    WHY THIS CHOICE

    A confidence gate bounds the blast radius and makes mistakes visible instead of quiet. The review queue is also the measurement that says when automation can safely widen.

    OPTIONS CONSIDERED
    • Confidence gate + queue

      SELECTED

      Automatic where it is reliable, reviewed where it is not, measured everywhere.

    • Fully automatic writes

      NOT CHOSEN

      Simplest system, and errors reach the record silently.

    • Review everything

      NOT CHOSEN

      Safest, and it removes the reason the feature exists.

    TRADE-OFFS ACCEPTED

    Accepted two code paths to keep correct, a queue that becomes a backlog the moment nobody owns it, and a threshold that is never finally right.

    REFLECTION

    Automation earns trust in proportion to how visible its mistakes are.

04 / 09

ENGINEERING CASE STUDIES

Three systems that run in production, documented as the problems they exist to solve.

  1. CS-01

    SEE ALSO

    See ownership record 1, decisions 1 and 2.

    WALKTHROUGHScene 05

    Multi-tenant commerce backend

    Needed one codebase to serve tenants who must never see each other's data, and one deployment path that a single engineer can operate safely. Each tenant arrived with its own pricing rules, its own onboarding and its own idea of what an order is.

    ROLE
    Backend owner
    STATE
    Production
    SYSTEM
    Serverless
    DOMAIN
    Commerce
    TEAM
    3 engineers
    OUTCOME

    Tenant data is isolated at the query boundary rather than by convention. Onboarding a tenant is configuration, not a release. One deployment path covers every environment, and any request raised in support can be traced by id.

    WHAT BROKE

    Broke at the payment boundary. Duplicate webhook delivery charged an account twice before idempotency existed at the edge; the repair was a decision about where correctness lives, recorded as D-02, rather than a patch to a handler.

    Multi-tenancy is a data-access decision that everything else in the system inherits.

  2. CS-02

    SEE ALSO

    See ownership record 1 and decision 3.

    WALKTHROUGHNot continued

    Authentication and identity platform

    Needed sign-in that works for infrequent business users across several tenants, without the system storing a credential it could lose. Sessions also had to mean the same thing to a browser, a background job and a support engineer looking at a log.

    ROLE
    Backend owner
    STATE
    Production
    SYSTEM
    Managed identity
    DOMAIN
    Identity
    TEAM
    2 engineers
    OUTCOME

    No password is stored anywhere in the system, so there is no reset flow to secure and no credential to leak. Session rules live in one place, and a support engineer can answer whether a person is signed in from a single source.

    WHAT BROKE

    Broke at token expiry. Long-lived browser tabs held sessions that had quietly expired and failed on the next write instead of at the boundary; refresh moved to the edge and the failure became a redirect rather than an error.

    Identity is the one subsystem where a small convenience becomes everyone else's constraint.

  3. CS-03

    SEE ALSO

    See ownership record 4 and decision 4.

    WALKTHROUGHNot continued

    AI workflow automation service

    Needed a workflow that uses model output to do real work without letting a confident mistake reach a system of record. The work itself was repetitive enough to automate and consequential enough that being wrong quietly was unacceptable.

    ROLE
    Backend owner
    STATE
    Production
    SYSTEM
    Queue-driven
    DOMAIN
    Automation
    TEAM
    2 engineers
    OUTCOME

    Model output is validated before it reaches persistent state, and low-confidence results wait in a review queue instead of being written. The queue depth is the signal that says whether automation can widen or should narrow.

    WHAT BROKE

    Broke at the retry path. A failing downstream write put the same job back on the queue repeatedly and the review backlog absorbed the noise silently; the queue gained a visible depth metric and a dead-letter path.

    A queue with no one watching its depth is a place where failures go to be forgotten.

05 / 09

ARCHITECTURE WALKTHROUGH

Seven boundaries down one spine — what each is responsible for, what crosses it, and where it fails in production.

CS-01

Multi-tenant commerce backend. One request path, seven boundaries, and the places it fails.

SUBJECT
CS-01
SHAPE
Serverless, event-driven
TENANCY
Shared runtime, isolated data
SCOPE
Boundaries only
  1. 01Client

    RESPONSIBILITY
    Holds a tenant-scoped session and nothing else. No pricing logic, no order state, no trust.
    IN
    user intent
    OUT
    signed request
    FAILURE MODE
    None documented — the client cannot break the system, only itself.
  2. 02Edge / API

    RESPONSIBILITY
    Terminates the request, attaches a request id that follows it everywhere, and rejects malformed input before it costs anything.
    IN
    signed request
    OUT
    routed invocation
    FAILURE MODE
    Cold start on rarely-hit routes; first request after idle pays the initialisation.
  3. 03Authentication

    RESPONSIBILITY
    Resolves a session to a principal and a tenant. The only component permitted to decide who the caller is.
    IN
    token
    OUT
    principal + tenant
    FAILURE MODE
    Silent expiry in a long-lived tab; failure surfaces at the next write unless refresh happens at the edge.
  4. 04Business logic

    RESPONSIBILITY
    Applies tenant configuration to a request. Holds no tenant identity of its own — it is handed one and refuses to run without it.
    IN
    principal + payload
    OUT
    domain command
    FAILURE MODE
    None documented. Its failures are the two boundaries either side of it.
  5. 05Persistence

    RESPONSIBILITY
    Enforces tenant isolation at the query boundary, so isolation is a property of this layer rather than a convention observed above it.
    IN
    domain command
    OUT
    committed state
    FAILURE MODE
    Contention under concurrent writes to one tenant — bounded, monitored, not yet a production incident.
  6. 06Background processing

    RESPONSIBILITY
    Absorbs provider events and long work. Records every event id once, before any handler runs, which is where idempotency lives.
    IN
    provider event
    OUT
    state change
    FAILURE MODE
    Repeated delivery of the same event — the failure that produced D-02 and the incident in CS-01.
  7. 07Observability

    RESPONSIBILITY
    Makes the request id the unit of investigation, so any support question resolves to a single trace rather than a search.
    IN
    every boundary
    OUT
    one trace per request
    FAILURE MODE
    Blind spot: work that starts on a queue without inheriting a request id.

Systems like this one are not built by an architecture. They are built by whoever is still holding the pager after the diagram is finished.

Failure points 3 · Decisions D-01 D-02 D-03

06 / 09

EXPERIENCE

Three stages of production responsibility, newest first, and what became possible after each one.

  1. EX-03

    STAGE
    Current
    PERIOD
    2025 — now
    SYSTEMS
    Case studies 1 and 3.

    Backend and cloud owner, DigiMantra Labs

    ENGINEERING CONTEXT

    Multi-tenant products in production with real money moving through them, operated by a team small enough that every engineer is on the failure path.

    OWNERSHIP

    Trusted with the deployment path, the payment boundary and the on-call response for backend services. Architecture decisions were made here rather than received.

    GROWTH

    Became able to design for failure before it occurs rather than after, and to decline work whose operational cost was not yet understood.

    Responsibility grows fastest in teams too small to hide behind.

  2. EX-02

    STAGE
    Prior
    PERIOD
    2024 — 2025
    SYSTEMS
    Case study 2.

    Backend engineer, client platforms, DigiMantra Labs

    ENGINEERING CONTEXT

    Several client platforms with different constraints and no shared runtime, where the same problem kept arriving in three different shapes.

    OWNERSHIP

    Trusted with service-level work end to end, including the authentication boundary and the release that carried it.

    GROWTH

    Learned to tell a client's constraint from the system's, which is the distinction that makes a decision reusable on the next platform.

    Working across several products teaches faster than working deeply on one, and worse.

  3. EX-01

    STAGE
    Entry
    PERIOD
    2024
    SYSTEMS
    Supporting work

    Engineering intern, backend, DigiMantra Labs

    ENGINEERING CONTEXT

    Existing services with real users, where most work meant reading code someone else had already shipped and making a small change safely.

    OWNERSHIP

    Trusted with scoped changes behind review, and with the question of whether a change was safe to ship on a Friday.

    GROWTH

    Became able to read an unfamiliar system faster than rewriting it, which is the habit every later stage depended on.

    Most production code is read far more often than it is written.

07 / 09

ENGINEERING TOOLKIT

Eight groups of tools, organised by the production responsibility they carry rather than by category.

  1. TK-01

    Runtime

    Carries the request. Everything a caller waits for happens here.

    • Node.js
    • TypeScript
    • NestJS
    • Express

    One language across services, scripts and tooling, so context-switching costs nothing. Types exist for the boundaries where a tenant id must never be optional. NestJS where structure earns its overhead, Express where it does not — the choice is per service, not per résumé.

    IN PRODUCTION

    Cold-path startup cost is real, measurable, and accepted per D-01.

  2. TK-02

    Data

    Holds the truth, and holds tenants apart.

    • PostgreSQL
    • DynamoDB
    • MongoDB
    • Redis

    Relational where correctness and constraints are the point, key-value where the access pattern is known before the data exists, document storage where the shape is genuinely the client's rather than the system's, and cache only where a miss is harmless.

    IN PRODUCTION

    Tenant isolation is enforced at the query boundary, never by convention above it. Concurrent writes to one tenant are the remaining contention risk.

  3. TK-03

    Infrastructure

    Decides what runs, where, and who is woken when it does not.

    • AWS Lambda
    • API Gateway

    Two tools, chosen together so that no engineer owns a host. Failure is isolated to a route rather than taking a machine with it, and capacity stops being a weekly conversation.

    SEE ALSO

    D-01 for the decision and its cost; CS-01 boundaries 02 and 06 for where these sit in the request path.

  4. TK-04

    Delivery

    Gets a change into production without a person remembering how.

    • GitHub Actions
    • Docker

    One pipeline definition for every environment, so parity is a property of the system rather than of somebody's discipline. Containers are used where a runtime needs pinning, not as a deployment philosophy.

    IN PRODUCTION

    A deploy is a merge. Rollback is a redeploy of the previous version, because schema changes are kept out of releases.

  5. TK-05

    Identity

    Decides who the caller is, once, for everyone else.

    • AWS Cognito

    One managed component rather than a hand-built flow, because the system then stores no credential it could lose and the session rules live in one place. Email-link sign-in is a property of this choice, not an addition to it.

    IN PRODUCTION

    Sign-in latency now depends on mail delivery, and token refresh had to move to the edge after expiry surfaced at the write instead of the boundary.

  6. TK-06

    Payments

    Moves money, and stays correct when the same event arrives twice.

    • Stripe

    One provider, integrated end to end including the webhook boundary — which is the part that actually decides whether a payment system is correct. At-least-once delivery is treated as normal traffic rather than as an edge case.

    IN PRODUCTION

    Every event id is recorded once before any handler runs. The ledger grows and needs an expiry policy with an owner. See D-02.

  7. TK-07

    Automation and AI

    Does repetitive work, and fails visibly when it is wrong.

    • Mastra
    • LLM integration

    Grouped as automation rather than as "AI" because the engineering is in the workflow around the model, not in the model. Orchestration, validation before persistence, and a review path are the parts that make the output usable.

    IN PRODUCTION

    Two code paths to keep correct, and a confidence threshold that is never finally right. See D-04.

  8. TK-08

    Interface

    Renders what the backend decided.

    • React
    • Next.js

    Owned enough to build a working product end to end and to know what the frontend needs from an API before being asked. Not claimed as a speciality, and listed last for that reason.

    IN PRODUCTION

    Sufficient for internal tools and admin surfaces. A dedicated frontend engineer will do better work than this, and should.

HONEST LIMITS

One responsibility with no tool behind it, stated rather than hidden.

  • Observability

    WHAT IS TRUE: Platform-native logs and traces, keyed on one request id. No dedicated observability platform has been operated in production.

    WHAT THAT MEANS FOR A TEAM: Investigation works and dashboards do not exist. Adopting a platform would be new ground, and the request-id discipline is the part that makes it easy.

  • Orchestration

    WHAT IS TRUE: No Kubernetes in production. Serverless was chosen precisely so that no one had to run a cluster — D-01.

    WHAT THAT MEANS FOR A TEAM: Container orchestration is a gap, and a deliberate one. It would be learned rather than recalled.

  • Scale

    WHAT IS TRUE: These systems serve tenants, not millions of concurrent users. Nothing here was hardened against a traffic profile it never saw.

    WHAT THAT MEANS FOR A TEAM: The judgement is transferable; the specific tuning is not. Stated here so it is never inferred from the architecture.

A toolkit is a record of what has been maintained, which makes it the wrong place to look for what someone is curious about.

08 / 09

NOW EXPLORING

Six areas currently worth time, and the question each one is being read for.

  1. EXP-01

    FROM
    Originates from toolkit group 7 and decision 4.

    AI workflow orchestration

    Building small production experiments to understand where orchestration boundaries belong.

    REASON

    A model call is a step in a workflow, not a feature, and the interesting engineering is in what surrounds it — retries that do not duplicate work, state that survives a partial run, and a boundary a human can inspect. That is the same problem payments and background processing already posed, which is why it is worth the time rather than merely current.

    Where should orchestration stop and application code begin?

  2. EXP-02

    FROM
    Originates from a stated limit in the toolkit.

    Observability

    Reading how teams instrument systems they did not design; no platform operated in production yet.

    REASON

    Request-id tracing has answered every production question these systems have raised so far, which is precisely why the next class of question is unfamiliar — the ones asked about behaviour in aggregate rather than about one request. The gap named in the toolkit is the strongest argument for spending time here.

    How observable does a system need to be before it is trusted to run unattended?

  3. EXP-03

    FROM
    Originates from case study 1, boundary 5.

    Distributed data boundaries

    Working through consistency trade-offs on paper before they arrive in a system that needs them.

    REASON

    Tenant isolation inside one database is a solved problem in CS-01. Isolation across services that each own writes is not, and it is the next constraint any of these systems would meet if they grew — so it is better understood before that happens than during it.

    When is eventual consistency a design decision and when is it a deferred bug?

  4. EXP-04

    FROM
    Originates from ownership record 2 and toolkit group 4.

    Infrastructure as a contract

    Running one personal environment defined entirely in code, to find where the definition stops being readable.

    REASON

    One pipeline definition already gives environment parity, but a definition that nobody can read is a different kind of risk from a manual step. The interesting question is not how to automate more, it is how much of a system's shape should be legible from its configuration alone.

    How much of an architecture should be readable from its configuration?

  5. EXP-05

    FROM
    Originates from case study 1, boundary 2.

    Edge execution

    Moving small pieces of one side project to the edge to see what genuinely belongs there.

    REASON

    Authentication refresh already moved to the edge to fix a real failure, which raised a more general question about what else is cheap to do early and expensive to do late. Most of what is written about the edge is about latency; the part worth understanding is about responsibility.

    What work belongs at the edge for reasons other than latency?

  6. EXP-06

    FROM
    Originates from decisions 1 and 3.

    Cost of simplicity

    Revisiting two production decisions a year on, to see which simplifications aged well.

    REASON

    Every decision in Scene 03 chose the simpler operational shape, and simple choices are the ones most likely to be outgrown quietly rather than loudly. Reading them again with a year of production behind them is cheaper than learning the same thing from an incident.

    When does simplicity become technical debt?

09 / 09

CONVERSATION

The systems above are documented. The rest is a conversation.

STATUS
Open to backend roles
REGION
India · IST
REMOTE
Yes
NOTICE
30 days
HAPPY TO DISCUSS
  • Production systems
  • Backend architecture
  • Serverless platforms
  • Distributed data boundaries
  • Engineering decisions and their costs
  • Product engineering in small teams

The best engineering conversations usually begin with a production problem.

09 / 09 · CONVERSATIONSet in Instrument Sans & IBM Plex Mono · Theme: System