Building software applications that handle millions of concurrent users is hard. Designing such applications need both technical skill and some creative product design. In this blog, I review Tirumala Tirupathi Devasthanam's (TTD) online booking system for the devotees. I explain the challenges behind such system and try suggest a better way to design a booking system that needs to serve millions of users.
read moreOther articles
Start by writing messy code
The conventional wisdom in software engineering advocates for breaking down code into loosely coupled functions, classes, and modules, among other things. Numerous books and blog posts discuss various approaches that help us achieve the best possible design for our code.
Sometimes, we may get lucky and find a design pattern …
read moreHow I developed a maintainer mindset?
Lurking on the internet forums related to software engineering, you will often find people asking questions like:
- Is getting accepting a support role bad for your career?
- How do I get out of a support job?
- Is technical support experience valuable?
I found myself asking these same questions some years …
read moreDeploying software is like opening a bakery 🧁
What the hell is a deployment? That's what my wife asked me when she came across this word on her beginner's IT course.
I was honestly stumped.
Sofware development is full of jargon. As I have spent years working in this field I have developed a habit of collecting the …
read moreUsing an ORM over writing raw SQL queries ...
I hear strong opinions among developers for both ways of working with relational database.
Common reasons in favour of raw SQL:
-
We can optimise queries for performance. ORMs can be limited in ways they can be customised, and writing raw SQL allows more control over the craft.
-
We have less …
-
🌟 How can a backend developer contribute to a seamless user experience? 🌟
As a backend developer, it's easy to get lost behind multiple layers of the modern tech stack and focus solely on reading and writing data through the plumbing of software systems. However, it's important to recognize the impact we can have in contributing positively to the user experience. Our goal …
read more🔄 Tradeoff between Normalisation and Denormalisation when Scaling Your API 📈🔁
There's something I have managed to crystallise for myself. As a Backend Engineer, I deal with designing relational database models often. Modelling the database is a crucial step in getting the API right in any modern application.
There is a delicate trade-off between normalisation and denormalisation while modelling a relational …
read more5 Simple Recursion Programs in Python.
Here are 5 simple Python recursive functions that will get you started with the practicing recursion.
These are exercise problems taken from the book - Data Structures and Algorithms in Python Michael H. Goldwasser, Michael T. Goodrich, and Roberto Tamassia
Write a short recursive Python function that finds the minimum and …
read moreLearn By Building A Data Pipeline – Part 0
I just wanted to build something where I will be forced to explore and learn new things. I didn’t really know where to start so I started going back to one thing I have always thought had the potential to build interesting things. Reddit’s PRAW library, which is …
read more"Managing Python Dependencies Robustly."
I wanted to write a blog post about something I learned this week. We use a standard set of open source packages in our projects. Almost all of them are pretty stable and cause no problems, but on some rare occasions, rarer than in the case of code I write …
read more"Richard Hamming, You and Your Research"
This is one of those things when I first saw, I asked myself why couldn't I have watched this earlier. I really can't tell if it would have made any difference had I watched this lecture 10 years ago, but I cannot stop myself from wondering about it.
Richard Hamming …
read more"Observations on API Design."
There are a lot of resources regarding designing good APIs. I personally found the talk from Joshua Bloch to be highly informative. I can also add Martin Fowler's articles and talks, along the with highly recommended book "Design Patterns" by Erich Gamma et al., as good sources to refer when …
read more"Learning to work on existing codebases."
Working with legacy code is probably the most common part of a developer’s job in the software industry. Unless you’re only going to work in super early phase startups or constantly get assigned to greenfield projects, you will encounter legacy code. There are many articles written on the …
read more"Mistakes and Learnings."
It’s been over a year since I have started working at my current company. There have been lots of ups and downs. I know that’s a cliched thing to say, but it’s true. In this post, I have decided to really introspect over some of the mistakes …
read more"At the outset.."
Like many, I too have been contemplating to start blogging. And here I am, after many false starts, finally starting to put words onto the internet.
My intentions here are very simple. I just want to log my learnings and observations, as I begin to transition from being a novice …
read more