Blog


The definition of vibe coding - A tribute to Todepond

If you're not following Lu Wilson, a.k.a Todepond, you really should!

They published a blog post titled Definition of "live coding" about a week ago. My initial reaction:

Chart of the quality of the definition of live coding over the past 10 years

Many things went wrong during …

Read more

Script for Checking TLS Certificate Expiry Dates

I have multiple projects on subdomains of leverstone.me. What's the expiration date of the TLS certificates on these subdomains? I have no idea 🤷

Wouldn't it be nice if there was a CLI tool that …

Read more

Custom shell aliases per project

I've been playing with aider recently. I's an "AI pair programming in your terminal". Think GitHub Copilot, Cursor, etc. but for the command line. This blog post is not about that. It's about making it …

Read more

Quoting Sam Altman

A few days ago Sam Altman shared an update about OpenAI's roadmap on twitter. Here's what I'm reading between the lines:

We hate the model picker as much as you do and want to return …

Read more

Quoting Chip Huyen

The best explanation I've seen for why AI is not going to replace software engineers:

I think it goes back to the question of what software engineering really is. An analogy might help explain this …

Read more

Performance Profiling in Python: Tools, Techniques, and an Unexpected Culprit

Recently, my team encountered a performance issue with our Python service that uses FastAPI, gunicorn, uvicorn, and the OpenAI API. The service works fine in development, but when we load-tested it in our staging environment …

Read more

Automating Groundedness Evaluation in RAG Applications

As a software engineer working on a Retrieval-Augmented Generation (RAG) application, one of my primary concerns is the accuracy and reliability of the answers it provides. A RAG application works by first searching for content …

Read more

GenAI App: To Stream or Not to Stream?

Generative AI applications, particularly those with LLM-powered chat interfaces like ChatGPT, stream responses. We type our query, and the answer gradually generates, word by word. This streaming approach has become so commonplace that it's almost …

Read more

Thoughts on Personalising Retrieval-Augmented Generation

I've been thinking about personalising Retrieval-Augmented Generation (RAG) lately. This is partly because my team is now building a chatbot that answers questions using a RAG setup. It's a continuation of my work with a …

Read more

Mentoring toolkit

I had the privilege of mentoring two junior software engineers over the past year. It was my first time doing something like this, so there was a lot to learn! To be honest, I don't …

Read more