All posts /

#software-engineering

48 posts

  1. 7 min read X

    Reading Petzold's CODE as a book club, one Saturday at a time

    Six months of Saturday sessions reading Petzold's CODE together, from flashlights and Morse code to operating systems. Over 120 started. 4 of us finished.

    #books#software-engineering#personal

  2. 1 min read LinkedIn

    Why "Product" is No Longer the Moat: The End of the Feature Factory!

    We are witnessing the most significant shift in the economics of software since the advent of cloud computing.

    #ai#software-engineering#startups

  3. 10 min read X

    From the audience to the stage: how a backend engineer learnt to give talks

    In 2019 I was in the audience at Bengaluru meetups. Since then I've given talks in Bengaluru, Delhi, Goa, Pilani and Chicago. Here's every one, in order.

    #career#software-engineering#personal

  4. 1 min read X

    #DistributedDilemmas: all 24 days in one place

    In February 2025 I posted one distributed systems dilemma a day on X. I made it to day 24. Here they all are, with the diagrams.

    #architecture#software-engineering

  5. 1 min read X

    Day 24 of #DistributedDilemmas: Distributed sessions are a persistent headache

    Distributed sessions are a persistent headache. Sticky sessions don't scale, but fully distributed sessions add complexity. Consider JWT or externalized…

    #architecture#software-engineering

  6. 1 min read X

    Day 23 of #DistributedDilemmas: Distributed caching layers often become consistency nightmares

    Distributed caching layers often become consistency nightmares. As cache invalidation schemes attempt to maintain coherence, real-world implementations…

    #architecture#software-engineering

  7. 1 min read X

    Day 22 of #DistributedDilemmas: Distributed background jobs need careful orchestration

    Distributed background jobs need careful orchestration. While stateless architectures simplify scaling, they risk duplicate processing like Slack alerts…

    #architecture#software-engineering

  8. 1 min read X

    Day 21 of #DistributedDilemmas: Event sourcing isn't a silver bullet for distribution

    Event sourcing isn't a silver bullet for distribution. Replay and snapshots become bottlenecks at scale. Design for efficient event storage and retrieval…

    #architecture#software-engineering

  9. 1 min read X

    Day 20 of #DistributedDilemmas: Distributed rate limiting is harder than it looks

    Distributed rate limiting is harder than it looks. Local rate limits don't prevent global abuse. Global protection requires coordination mechanisms like…

    #architecture#software-engineering

  10. 1 min read X

    Day 19 of #DistributedDilemmas: Database migrations in distributed systems require meticulous planning due to their inherent complexity

    Database migrations in distributed systems require meticulous planning due to their inherent complexity. Schema changes become distributed coordination…

    #architecture#software-engineering

  11. 1 min read X

    Day 18 of #DistributedDilemmas: Microservice authentication is a distributed minefield

    Microservice authentication is a distributed minefield. While JWTs excel at decentralized authentication, they introduce authorization complexity due to…

    #architecture#software-engineering

  12. 1 min read X

    Day 17 of #DistributedDilemmas: Distributed cron jobs are a coordination nightmare

    Distributed cron jobs are a coordination nightmare. Time drift and job duplication plague naive implementations. Consider distributed schedulers or…

    #architecture#software-engineering

  13. 1 min read X

    Day 16 of #DistributedDilemmas: Serverless doesn't mean worry-free

    Serverless doesn't mean worry-free. Cold starts and hidden state create new classes of distributed problems. While offering auto-scaling and cost…

    #architecture#software-engineering

  14. 1 min read X

    Day 15 of #DistributedDilemmas: Distributed logging creates more noise than signal

    Distributed logging creates more noise than signal. Modern distributed systems face two critical logging challenges: 1. Data overload from scattered logs…

    #architecture#software-engineering

  15. 1 min read X

    Day 14 of #DistributedDilemmas: Service discovery often becomes a SPOT (single point of failure)

    Service discovery often becomes a SPOT (single point of failure). Your registry being unavailable shouldn't prevent finding the registry. Design for…

    #architecture#software-engineering

  16. 1 min read X

    Day 13 of #DistributedDilemmas: Configuration sprawl is the silent killer of distributed systems

    Configuration sprawl is the silent killer of distributed systems. Environment variables become unmanageable at scale. Treat config as code, not as an…

    #architecture#software-engineering

  17. 1 min read X

    Day 12 of #DistributedDilemmas: API versioning perpetuates distributed mistakes

    API versioning perpetuates distributed mistakes. v2 endpoints often carry v1's technical debt. Evolve APIs additively to avoid version hell.

    #architecture#software-engineering

  18. 1 min read X

    Day 11 of #DistributedDilemmas: Queue-based architectures hide scaling issues

    Queue-based architectures hide scaling issues. Kafka topics with long retention become both a blessing and a curse. Backpressure beats unbounded queues!…

    #architecture#software-engineering

  19. 1 min read X

    Day 10 of #DistributedDilemmas: Observability becomes obscurity at scale

    Observability becomes obscurity at scale. More metrics often mean less visibility. Focus on the critical few signals that truly indicate system health!…

    #architecture#software-engineering

  20. 1 min read X

    Day 9 of #DistributedDilemmas: Distributed transactions are a myth at scale

    Distributed transactions are a myth at scale. Two-phase commit falls apart under network partitions. Design for compensation, not for distributed…

    #architecture#software-engineering

  21. 1 min read X

    Day 8 of #DistributedDilemmas: Eventual consistency is consistently misunderstood

    Eventual consistency is consistently misunderstood. CRDTs work better in whitepapers than in production. Real-world systems need a spectrum of consistency…

    #architecture#software-engineering

  22. 1 min read X

    Day 7 of #DistributedDilemmas: Network partitions heal dangerously

    Network partitions heal dangerously. Merging divergent states introduces subtle data corruption. CAP theorem isn't a choice, it's a law of nature in…

    #architecture#software-engineering

  23. 1 min read X

    Day 6 of #DistributedDilemmas: Leader election creates false security

    Leader election creates false security. Raft/Paxos implementations often have higher MTTR than the failures they aim to solve. Simplicity frequently beats…

    #architecture#software-engineering

  24. 1 min read X

    Day 5 of #DistributedDilemmas: Sharding decisions made today become tomorrow's scaling bottlenecks

    Sharding decisions made today become tomorrow's scaling bottlenecks. NoSQL's partitioning promises often cost more than vertical scaling. Distribution ≠…

    #architecture#software-engineering

  25. 1 min read X

    Day 4 of #DistributedDilemmas: Idempotency is a lie we tell ourselves

    Idempotency is a lie we tell ourselves. Nested partial failures expose retry logic flaws. True exactly-once delivery remains elusive in distributed…

    #architecture#software-engineering

  26. 1 min read X

    Day 3 of #DistributedDilemmas: Caching accelerates inconsistency

    Caching accelerates inconsistency. Cache invalidation storms often outweigh hit rates. The fastest cache is sometimes no cache at all. Exhibit A: DoorDash…

    #architecture#software-engineering

  27. 1 min read Medium

    🚀 Launching today: 28 Days of #DistributedDilemmas

    Follow me on Twitter/X this February for one battle-tested insight a day on the hidden complexities behind outages, tech debt and architectural nightmares.

    #architecture#software-engineering

  28. 1 min read X

    Day 2 of #DistributedDilemmas: Microservices don't eliminate complexity, they redistribute it

    Microservices don't eliminate complexity, they redistribute it. Your monolith's function calls become network calls. Pick which failures you want to debug…

    #architecture#software-engineering

  29. 1 min read X

    Day 1 of #DistributedDilemmas: Consistency guarantees become availability nightmares

    Consistency guarantees become availability nightmares. Every distributed lock is a future bottleneck. Systems that embrace controlled inconsistency often…

    #architecture#software-engineering

  30. 2 min read Medium

    🎄Solve Advent of Code 2024 With Me!

    Announcing a spoiler-free YouTube video series for Advent of Code 2024 that focuses on how to analyze and approach each puzzle, not just the answers.

    #advent-of-code#software-engineering

  31. 8 min read X

    Cell-based architecture, explained: the public version of my Innovation Day talk

    My Innovation Day deck was internal, so here's the public version: what a cell is, scaling up and across, blast radius, and what cells cost you.

    #architecture#software-engineering

  32. 2 min read X

    The engineering books I'd read first, and how I actually get through them

    A Blind post listed 9 books for a >600K/yr engineering job. I've read 8 of them. Here are the ones I'd read first, and the habits that get me through books.

    #books#software-engineering#career

  33. 11 min read X

    The Redis Paradox: my DelhiFOSS 2.0 talk at IIT Delhi, written up

    The written version of my DelhiFOSS 2.0 talk on Redis beyond caching: a short history of caches, live driver matching with GEO commands, and Pub/Sub.

    #architecture#software-engineering#python

  34. 6 min read Obsidian

    Speccing a Shopify app for a friend: Etsy-to-Shopify inventory sync

    A friend needed a Shopify app that keeps stock in sync with Etsy. Before any code, I wrote him a spec to hand to a developer: scope, diagrams and a 70-hour initial estimate.

    #software-engineering#architecture#startups

  35. 4 min read LinkedIn

    Our Journey with Multi-region Cloud Architecture and Data Residency

    How Atlassian built its multi-region cloud architecture for data residency, covering region creation, service hydration, tenant migration and self-serve moves.

    #architecture#software-engineering

  36. 9 min read LinkedIn

    Elevating Trust: Atlassian's Journey to HIPAA Eligibility Expansion!

    How Atlassian expanded HIPAA eligibility by replacing a manual BAA process with a self-serve flow and a new service integrating IronClad with Admin Hub.

    #security-privacy#software-engineering#architecture

  37. 3 min read LinkedIn

    🌶 Just writing code doesn't make you a good Software Engineer! 🌶

    Six habits beyond coding that turn a coder into a 10x product engineer, from focusing on the end-user and communicating well to documenting everything.

    #software-engineering#career

  38. 10 min read Obsidian

    Job hunt 4.0: five weeks of senior and staff interviews, and what I got wrong

    An offer pulled in the crypto winter, a warm-up in November 2021, about 40 companies in one Obsidian note, and my notes on every round I fumbled.

    #career#software-engineering#personal

  39. 9 min read Obsidian

    Two system design problems from my 2022 interviews, worked with real numbers

    A photo pipeline for a fleet of 360-degree camera cars and an A/B split-testing service: requirements, capacity math, data model and the parts I'd tighten.

    #architecture#software-engineering#career

  40. 16 min read Obsidian

    Interview prep, senior edition: a system design checklist, one backtracking template and what loops grade on

    My 2022 prep notes for senior and staff interviews: a system design checklist, one Python DFS for seven backtracking problems, rubrics and a STAR story bank.

    #career#software-engineering#architecture

  41. 13 min read BitSnapper

    Back from Dead | Troubleshoot slow page loads & 503 errors of WordPress blog

    How a slow, 503-throwing WordPress blog on GoDaddy shared hosting was traced to a bloated Jetpack postmeta table, and fixed by cleaning up the database.

    #software-engineering#internet#how-to

  42. 7 min read GitHub blog

    Post[0] = "why tech?"

    I always talk about how I am a huge nerd when it comes to tech. So, what better way to start my engineering blog than talking about "why tech?".

    #personal#career#software-engineering

  43. 4 min read X

    Face recognition on a Raspberry Pi 3 at Shuttl

    We built face-recognition boarding for Shuttl on a Raspberry Pi 3 with Python and OpenCV. Low FPS, a crunch and a TV demo.

    #software-engineering#gadgets#python

  44. 2 min read BitSnapper

    The best resource to prepare for a Software Engineering interview | Fresher Edition

    Discover the best resource to prepare for a Software Engineering interview and make sure that you clear it like a boss. Tried 'n' Tested.

    #career#software-engineering

  45. 4 min read BitSnapper

    Love Python? Take this challenge now!

    Do you think, code & live in Python? So, this is for you. Discover "The Python Challenge" and explore new horizons & possibilities with Python. Dive in!

    #python#software-engineering

  46. 3 min read BitSnapper

    Android 101 : Day 4 | Intent In Android

    Activities, Yay! Learn how to design a Multi-Activity App using the concepts of Intent In Android & build something great. Oh, and Source code is included!

    #android#how-to#software-engineering

  47. 2 min read BitSnapper

    Android 101 : Day 3 | Hybrid Approach

    In this post you'll learn, how to develop a Caller Application using Hybrid Approach and Intents in Android OS. Get your hands-on session now!

    #android#software-engineering#how-to

  48. 3 min read BitSnapper

    Android 101 : Day 1 | Building Your First App

    Learn how to start Building Your First App for Android smartphones by following this uber cool Android 101 guide. It's time to say - Hello, World!

    #android#software-engineering#how-to