Designing A Key-Value Store

I’ve been asked once to design a key value store in an interview. It looks easy at first. Then it gets hard, fast.  What makes it interesting is how ambiguous it is. I started using it for interviewing staff+ level myself as well, because the ambiguity is really hard to get right. I like this question because you can approach […]

Promoting Learnings in Incidents

Incidents are used for the negative consequences of an action. The incident comes from an action that fails to result in the expected outcome. For instance, deploying a code to production to add a new feature to improve performance. It then takes down the whole service. This is an unexpected outcome. The incident learning is the part where we uncover […]

Code Author

Throughout the years I have worked on many software projects. In most of them, the code header included the authorʼs name. At first, it seemed natural to have the authorʼs name. In time I realized having a code author in the header is irrelevant, discouraging, and often negative. That realization changed how I think about authorship in teams. Practically speaking, […]

Risk Comes First

You probably saw many cliché stuff about risking everything. Not risking is the biggest risk and all. While there is a truth to that, risk needs to be an appetite. Remember what happened with the 2008 global financial crisis. Some took risks. Miscalculated. Misrepresented. Misaligned. So forth. Where did we end up? Entire markets froze. Liquidity vanished overnight. Companies collapsed […]

Leetcode Hard

Over the years, I’ve been on both sides of the interview table. To become better at conducting interviews and preparing for my own, I spent time solving and reviewing coding problems. I ended up solving a bunch of problems just for fun. I did some before AWS interview in 2013. After that, I completed a bunch of leetcode problems including […]