Lately, I’ve been thinking a lot about what it actually means to write software in this new era. Not the tools themselves, we’re all already talking about those, but the habits and assumptions we keep carrying forward without questioning them.
I have been thinking of designing a new blog for myself. It’s one of those things that I used to like, that I have given up. I write a daily journal, but have stopped posting on the blog as often.
I build software, design teams, and spend a lot of time thinking about how people do their best work. Outside of that, I care deeply about language, poetry, sport, relationships, and the small rituals that make life feel intentional. This blog is a place to slow ideas down, and leave a trail I can return to later.
AI-human collaboration is at a critical juncture. As AI agents increasingly integrate into our digital workflows, I’ve been thinking about a fundamental challenge they face: the disconnect between how humans interact with software and how AI systems access it. Most application APIs are designed for data exchange, not for mimicking human interaction patterns. This gap is preventing AI from…
There are times when you read the documentation for the way something works, you understand the nitty gritties of it and want to then implement the functionality. However, when you get down to doing it, you find you have questions that don’t really answer your scenarios; you browse forums, boards and come out thinking maybe you don’t really understand. I found myself in a similar…
A few months back I was really intrigued by Flutter and started taking a keen interest in building a cross platform app in Dart on the Flutter framework. This led to a small repository to consider using Flutter as the common codebase for Web and Mobile if I were to build a product that needed to leverage this. Context For me the web has always been the strongest use case, owing to the products I…
I started deploying cloud functions in Golang when they were first released in beta last year. The Go runtime support for cloud functions currently supports Go version 1.11.6 and Go version 1.13.1 (Beta). This is the most stable it has been and in the last 6 months of running functions in production, I have faced a few ‘aha’ moments that I could have avoided if I had a guide like the…
Software development as an industry does not rely heavily on a graphical representation for finding out issues or patterns in a system. There have been myriad charting techniques tested to get an overview of the code base but none have stuck or have worked for systems of all sizes. The desire to visualise a code base becomes more apparent when you need to troubleshoot problems or see trends in…
🖖 This is yet another attempt by me to maintain a journal where I pen down my ramblings. I have in the past tried to discipline myself into writing regularly, but most of my attempts have ended in one lifeless heap of articles only found on the Wayback machine now. I currently serve as Director of Engineering at Grammarly, where I lead teams responsible for developing and maintaining client…