System Design Interview Preparation

What is a System Design Interview

Complete guide to understanding system design interviews, what interviewers expect, and how to prepare effectively for distributed systems and scalability questions.

October 16, 2022 · 6 min · 1156 words
A software engineer using practical prompting techniques with an AI assistant to improve code outcomes

Prompting Essentials for Software Engineers: 4 Practical Strategies for Better AI Output

In software engineering, your output - the code that you write, is only as good as what you have learned, experienced and understood from your conversations with the client, which is the input. This is true when working with Large Language Models (LLMs). If you use GenAI tools to complement your expertise in software engineering, then here are some strategies you can use to move beyond basic code generation and into collaborative development, or better pair programming with AI. ...

March 29, 2026 · 3 min · 611 words · Eakan Gopalakrishnan
Pragmatism is a wise quality to have

Lack of product thinking - A rant

Warning ...

April 1, 2024 · 3 min · 632 words · Eakan Gopalakrishnan
Quality Scrabble

Building software quality from Day 1 using Lean Quality Assurance

In my current role, I manage a very special team of quality engineers who are responsible for setting standards and best practices for quality assurance across the entire organisation and is also responsible for developing any necessary tooling or frameworks that might help product teams reduce toil. This is not a new problem and hence I was looking for inspiration and lessons to learn from other organisations who have embedded quality at the heart of their software development process. I came across this presentation by two Quality Specialists who also happen to be Atlassian partners. Please go ahead and watch it if you haven’t already. ...

January 30, 2022 · 6 min · 1237 words
Structured Design

Cohesion and Coupling - two important concepts to understand when building good software

When building applications, it is fundamental to think about design first. This process of designing first helps visualize some of the key areas that you are going to tackle. How are the different elements or components going to interact with one another? What are the various components going to be? What are the responsibilities of each of these components? Software Engineering is a pretty young field, compared to other engineering domains. And over the last 60 years or so, has made tremendous amount of progress. This has led to the rise of several different blueprints for solving common problems, often called design patterns or architectural patterns. These are great tools to use when developing your solution, provided you understand what they solve and when best to use them. ...

May 9, 2021 · 6 min · 1184 words
Invisible Lego

Software and invisibility

“The Invisible Man.” by Chaotic Good01 is licensed with CC BY-NC-SA 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/2.0/ Keeping people informed Early in my career, I thought writing software is all about the outcome. Delivering something that works. I thought it didn’t matter how it was done. At the end of the sprint if you didn’t have a deliverable, it was a problem. This was true in companies which adopt a waterfall model of development. ...

September 16, 2020 · 3 min · 568 words · Eakan Gopalakrishnan
A blueprint on a dark desk where a building sketch turns into connected software component boxes, with a pencil and ruler

Software design - Why?

The problem A lot of software engineers get into the industry and often end up starting to write code soon after they read the requirements’ specification. Sounds familiar? You might have done it too. Hard to admit? Can be. We are humans, after all. Jumping right into the coding process might be a great idea for a simple coding challenge, where the objective is to solve a problem in as little time as possible, with potentially very few lines of code. You just have that very specific goal. You don’t have worry about future enhancements for that solution, nor do you have to think about maintainability of that solution. Once solved, the code might have to run through a set of tests and pass the criteria of the question. Fantastic! And you might even get selected for the next round of interviews! Great! So why think about design when you start working on a real solution? ...

June 27, 2020 · 6 min · 1126 words · Eakan Gopalakrishnan
Glowing stacked code blocks beside a funnel turning a stream of data particles into a single neat result

Getting to know LINQ

LINQ stands for Language Integrated Query Language. It was a feature introduced along with Visual Studio 2008 that extends the querying capabilities of C# for any sort of data source. Generally LINQ is used to query data sources like SQL Server Databases and XML files. I use it to query databases. I’m not going to explain everything about LINQ here. I’m going to just talk about some very basic details. ...

July 27, 2014 · 3 min · 555 words
A craftsperson's workbench with neatly laid-out tools around an open clockwork mechanism being repaired

Refactoring - Code written by others

As you might have noticed from my recent posts, I’ve just recently jumped from one platform to another. And my current project is a bit of a legacy thing. A lot of people worked on it previously and those who did weren’t necessarily experts in the technology that they used when they initially developed it. They did a lot of hacky things, to get things going. But such hacks are good for getting a product moving, but not really good for maintaining them. And now that I’m having to implement changes to them, I realized how hard they have made this for me. ...

April 21, 2014 · 3 min · 472 words
A craftsperson's workbench with neatly laid-out tools around an open clockwork mechanism being repaired

Software Engineers should read this

I think as programmers you should read and understand this: http://martinfowler.com/ieeeSoftware/explicit.pdf From the expert in OOAD and related stuff - Martin Fowler.

October 14, 2013 · 1 min · 22 words