Arun Arivanandam — Full-stack engineer
I build the parts of the web that have to keep working when nobody is watching.
Seven years on the MERN stack, mostly on the unglamorous half: sync engines, background jobs, database migrations that run at 3am without waking anyone. I care about systems that fail quietly and recover on their own, and about frontends that stay usable on a bad connection.
- Now
- Senior engineer at Kettle & Co, building payments infrastructure
- Working in
- Node 22, React 19, MongoDB 8, TypeScript everywhere
- Based in
- Chennai, India — UTC+5:30, happy across timezones
- Open to
- Backend-leaning contract work, 10–20 hrs a week
Selected work
Four projects that show the range — two products I own end to end, two smaller tools.
-
Ledgerloop
Lead engineer
2024 — present
Ongoing focus
Double-entry bookkeeping API for small Indian businesses. Every write lands as an immutable journal entry, so balances are derived rather than stored and can be recomputed from scratch at any point in history.
- Handles roughly 40,000 journal entries a day across 1,200 books
- Nightly reconciliation went from 9 minutes to 40 seconds after reshaping the aggregation pipeline
- Zero balance-drift incidents since the ledger became append-only
- Node.js
- Express
- MongoDB
- Redis
- React
- TypeScript
-
Shelfsense
Founding engineer
2022 — 2024
Ongoing focus
Stock and expiry tracking for independent pharmacies. Counters in small-town India lose connectivity constantly, so the whole app is offline-first: writes queue locally and reconcile against the server when the link returns.
- Running in 63 stores; median session happens on a 2G connection
- Conflict resolution built on per-document vector clocks, not last-write-wins
- Cut expired-stock write-offs by about a third in the first year of use
- React
- IndexedDB
- Node.js
- MongoDB
- Workbox
-
Tanglefoot
Author and maintainer
2023 — present
A migration runner for MongoDB that treats rollbacks as a first-class case. Migrations are plain TypeScript files with up and down halves, run inside a transaction where the deployment supports one.
- About 4,000 downloads a week on npm
- Dry-run mode prints the exact write operations before anything touches the database
- TypeScript
- MongoDB
- Node.js
-
Quietheat
Weekend project
2025
A small service that watches a set of RSS feeds and emails a digest only when something genuinely changes, using text similarity to suppress the churn of reworded headlines.
- Filters out roughly 70% of items as near-duplicates of something already sent
- Runs on a single 256MB instance for about a dollar a month
- Node.js
- SQLite
- Astro
Experience
Seven years, three stops, one consistent interest in the layer under the interface.
-
Kettle & Co
2024 — present
Remote, Bengaluru
Senior full-stack engineer
- Own the ledger and settlement services: Node, Express, MongoDB, roughly 300 requests a second at peak.
- Replaced a polling worker with change streams and an idempotency layer, removing a class of duplicate-payout bugs.
- Mentor two junior engineers and run the weekly design review.
-
Hexbyte Labs
2021 — 2024
Chennai
Full-stack engineer
- Built the React front end and Node API for a logistics dashboard tracking 4,000 vehicles in near real time.
- Introduced TypeScript across four services and cut production type errors to near zero over two quarters.
- Took the deploy pipeline from a 25-minute manual release to a 6-minute automated one.
-
Independent
2019 — 2021
Chennai
Freelance web developer
- Shipped eleven client projects, mostly MERN applications for small teams and early-stage products.
- Learned the hard way that hosting, backups and handover documentation are part of the job.
Tools
Grouped by the problem they solve, because a flat list of logos tells you nothing.
Data
Schema design, aggregation pipelines, index tuning, change streams.
- MongoDB
- Mongoose
- Redis
- PostgreSQL
- BullMQ
Server
REST and event-driven services, plus the boring reliability work around them.
- Node.js
- Express
- Fastify
- TypeScript
- Zod
- Vitest
Client
Data-heavy interfaces that stay responsive when the network is not.
- React
- TanStack Query
- Astro
- Tailwind CSS
- Playwright
Delivery
Getting it shipped, watching it in production, fixing it before anyone files a ticket.
- Docker
- GitHub Actions
- Fly.io
- Grafana
- OpenTelemetry
Writing
Notes on the problems that cost me a weekend, written up so they cost you an afternoon.
-
13 min read
React State from first principles
Learn react useState hook from first principles. Use states with confidence.
-
4 min read
What MongoDB change streams actually cost you
Change streams removed a polling loop and a whole class of duplicate-payout bugs. They also introduced three failure modes I had not budgeted for.
-
3 min read
Stop putting business logic in Express middleware
Middleware that mutates the request object reads like dependency injection and behaves like a global variable. Here is the refactor that finally stuck.
Got something that needs to stay up?
Tell me what you are building and where it hurts. I read every message and reply within a couple of days, even when the answer is that I am not the right person for it.