May 5, 2023

You can't use the right tool for the job

Use the right tool for the job That is a quote I’ve heard all too many times during my career. In fact, I’ve been a strong proponent of it for a long time and with caveats, I still am. But, as with all things, it ignores the nuance of the world we find ourselves in. At some point the term “sociotechnical systems” entered my orbit, I think from Charity Majors of Honeycomb. Read more

April 23, 2023

Earning the right

As technologists, we’re often captivated by the technical details of software. It’s not long before we want to understand database internals, the intricacies of our operating system or the best paradigms for writing software. We’re arbitrarily motivated to do deep dives into areas that are filled with high degrees of complexity or to spend hours figuring out how to optimise the performance of some software. We’re invested in the technology itself; it is the end, not a means to it. Read more

January 9, 2022

2021: A retrospective

2021 has simultaneously been the longest and shortest year ever. For the most part it felt lacklustre but looking back there were great wins and lessons learned. Wins I gave my first ever tech talk! It was at the Rust London meetup on error handling in Rust It gave me the confidence to do more talks. I ended up doing 6 this year 🚀 As a result of giving talks, I’ve met a bunch of people in the Rust community. Read more

August 26, 2021

Expectations of senior+ engineers from a not so senior engineer

Senior(+) engineer. One of the most coveted titles in our field. There are endless articles on the expectations of these engineers. Naturally, these are written by other senior+ engineers. On realising this, I had a thought What would the expectations of a senior+ engineer look like from a non-senior+ engineer? Fitting the bill of that description, I decided, I should write about it! Turns out, they’re not so different from what is already in the public domain. Read more

April 26, 2021

Summary: Raft Consensus Algorithm

This a summary of the Raft consensus algorithm paper. It is currently incomplete as I’ve only written up on the sections I felt I needed to implement a bare bones version. I will add the additional sections as I need them for my implementation. 🌱 Raft is a consensus algorithm for managing a replicated log The primary objective for the algorithm designers was understandability. This was the basis for all design decisions. Read more

March 28, 2021

Ergonomic error handling with Rust

Prior to learning Rust, I never knew error handling was actually a big deal. It never struck me that there are alternative ways to handling errors, that error messages should be as informative as possible, or even that you should take time to write robust error handling logic in your code. It’s obvious in retrospect, but in Python-land, there isn’t as big a chorus on error handling. Rust’s story is still developing and as a result there are conversations about every aspect of the language. Read more

December 31, 2020

Lessons from freshman year

One year into my tech journey as a full-time software engineer - what an amazing ride! I have grown much more than I expected and taken away way too many lessons from the year. I often wonder if it ever slows down but my feeling is that it never does. Given it’s the end of the year, it’s a good time to write about my experience. This is a long post. Read more

October 14, 2020

Data replication in distributed systems

I’ve been reading the book Designing Data-Intensive Applications by Martin Kleppmann. Chapter 5 of the book takes a deep dive into the world of data replication in distributed systems. I have always carried the assumption that data replication is non-trivial but reading the chapter opened my eyes to its true complexity. This post is a summary of the chapter - it can be considered a set of notes. Let’s do this 🚀 Read more

September 14, 2020

Grokking gRPC

If you are similar to me, you’ve heard about gRPC countless times but have little idea of what it actually is, what its use cases are and why everyone keeps speaking about it. Initially, I thought it must be another buzzword being thrown around. Fortunately, I was wrong 😆. I’ve spent a couple of days reading and learning more about it. This blog post is a summary of all I’ve learned. Read more

June 21, 2020

Concepts I learned from diving into Clojure

This year, one of my goals was to learn a functional programming language. I carried this over from last year because who actually achieves their goals, right? To be fair, I did make an attempt - I began learning Haskell. Let’s just say, I’ll try again one day! Around April this year, on recommendation from one of my mentors, I decided to look into Clojure. It turned out to be a great suggestion and I’ve been enjoying hacking away in Clojure ever since! Read more

Powered by Hugo & Kiss.