Welcome to my blog, where I share my thoughts on anything and everything that catches my interest. While I make a living as a software engineer, I’m aiming to diversify my writing beyond tech talk. Of course there will be a lot of tech stuff I will write about but since this is a blog about me learning expect a mishmash of topics as I explore wherever my curiosity leads me in the moment. Among my various interests are how businesses and startups operate and become successful. I also follow various sports, mainly Formula 1 and rugby but I do enjoy reading about many others and particularly the business of different sports. I have a huge interest in transit and urban planning, learning about the ways we can change the environment around us for the better to make our lives better. I read quite a lot so expect some random book and article reviews or thoughts thrown into the mix. I love the quote “consume breadth, create depth” so that is what this blog is about. It is my way of expanding my own knowledge and gaining a deeper understanding of the world.

13k ARR for Obsidian Sync

13k ARR from an app that implements syncing for Obsidian! This service allows users to swiftly capture ideas and notes on various platforms, including web, mobile, and browser extensions, with features to highlight text, share links, and paste images or files. It is built to seamlessly integrate with Obsidian MD software, employing a dedicated plugin for syncing and processing notes, thus enhancing the overall note-taking experience for users who require an efficient and organized system for managing their digital information....

May 2, 2024 · 2 min

Discovery of France (book)

I picked up this book and started to read it without really expecting myself to get far. I started it on a whim where it got recommended through some random blog post I came across that I cannot even remember now where that was. I downloaded the kindle preview and started the first chapter. Soon thereafter I found myself enjoying it enough that I just kept on going and kept reading....

May 1, 2024 · 11 min

How big things get done (book)

We take for a given that big projects will go over budget and over time. The core idea of this book is that does not need to be the case. The main reasons given for projects not going according to plan are: bad plans in the first place, making changes as they go along and bad estimations on how long the plans will take to implement. Most of these can be overcome by proper planning....

May 1, 2024 · 2 min

Snowball (book)

I read this ages ago as a teenager and I didn’t like it as much as other people seemed to. It just portrayed this ultra capitalist guy playing the game so much better than everyone else he amassed an insane amount of wealth. And all for what because I don’t know. I’m not against capitalism just I think maybe that wealth could be put to good use rather than just shares of Apple....

May 1, 2024 · 3 min

Green Transition Should Be Years Not Decades

Sounds a bit like an excuse making process to me but according to JP Morgan via the Financial Times today, the green transition away from fossil fuels to renewable energy is going to take decades or generations so we shouldn’t get our hopes up. They cite things like the way places like Scotland set ambitious goals to reduce emissions by 75% by 2030 but have already given up. So according to them we should just let the natural process take its place and not worry too much about this being done anytime soon....

April 19, 2024 · 2 min

Software Quality

This is some findings from some google research into quality of software. They developed a theory of software quality which involved four types of quality which influence each other. The first two, process and code, are what developers usually think first about software quality. They focus on the health of the codebase and the engineering systems around it. The second two, system and product, are higher level metrics focused in on by executives and product managers....

January 11, 2024 · 2 min

Go chi router jwtauth

I’ve been using the golang chi router in one of my projects recently and for the most part it’s been great. I’ve just a simple router with a few routes so I’ve not pushed it to any advanced use cases but it seems simple enough and extensible enough it should get a long way there. The latest project I’ve needed to do was add Authentication using JWT to two routes. This seemed simple and straightforward as they provide a default JWT middleware implementation called github....

January 11, 2024 · 2 min

Rotating JWK

JSON Web Keys are what is used to generate and verify JSON Web Tokens. Here I will explain how best to rotate JWKs. If you’re coming from zero like me and building something that uses JWT to verify a request is what it should be then the first thing you’ll do is use a JWK to verify a JWT. Using the github.com/lestrrat-go/jwx library in go it can be done like this:...

January 11, 2024 · 2 min

Exponential Backoff and Jitter

If retries aren’t randomly distributed over the retry window, a small perturbation (e.g., a network blip) can cause retry ripples to schedule at the same time, which can then amplify themselves Using exponential backoff is great because if you keep retrying over and over without limits you’re eventually going to break something. Exponential backoff increases this retry period exponentially until you eventually give up. Jitter takes this one step further by adding a random difference between the retries so that if all requests fail at once, they are not all retried together after a short blip....

January 5, 2024 · 1 min

PR Reviews

Characteristics of a good change Reviews: As a reviewer you should know it’s not going to be a perfect change so don’t focus on it being 100% perfect. This means avoid nitpicking as much as possible. Focus on moving faster and changing things continuously rather than getting it perfect straight away. Instead know the change is just one part of a process and continuously improving the codebase will bring it up to a better standard....

January 5, 2024 · 2 min