Using Cuelang With Go for LLM Data Extraction

I have been aware of Cuelang (CUE) pretty much since the early stages of its development. It always seemed to me the language had the potential to solve a lot of problems in the ocean of YAML which we found ourselves drowning in the Cloud Native ecosystem. CUE excels in validating data against strictly defined schemas and is equally capable of generating code for data models from them. These are wonderful features, though I hadn’t found the perfect application for them in any of the projects I had been working on. [Read More]
go  golang  llm  ai  cue  cuelang 

Go or Rust? Just Listen to the Bots

It all started as a joke. I was in a group chat with a few of my friends and we were talking about football (soccer for the American readers). I entered the chat during a mildly heated discussion about the manager of a team one of my friends supports. It was going on for a bit while with seemingly no end in sight when it occurred to me that I could just as well clone my friends’ voices and pit them against each other by backing them with LLMs, and I’d probably not see much difference in the conversation. [Read More]

Builders Are Happier But What Happens When AI Takes Over

I have been busy hacking since I got back from my long holidays. I didn’t miss computers while travelling around the world. Not for a second. When you hike up a volcano and engorge yourself in the beautiful views only this planet can reward you with it’s hard to think of computers let alone hacking. But now that I’m back and re-engaged my hacking mode I’ve gained a whole new appreciation for what the act of building software gives me. [Read More]

Rust tokio task cancellation patterns

Update: 19/04/2024: read at the end of the post for more info. I have been trying to pick up Rust again recently. It’s been a bit of a slow burn at the beginning but I think I’m finally starting to feel the compounding effects kicking in. Maybe it’s just my brain playing a trick on me, but I’m feeling at much more ease when writing Rust now than I was a few weeks back. [Read More]

Circular Buffer Performance Trick

Update 12/04/2024: Read at the end of the post for more info. I have been hacking on AI agents recently for both fun and profit as part of the work I’m doing for one of my clients. They’re mostly text-to-speech (TTS) agents leveraging LLMs for generating text which is then turned into voice by a trained TTS model. As you [probably] know, maintaining conversation with LLMs over a longer period of time requires maintaining the conversational context and sending it back to the LLM along with your follow-up prompts to prevent the LLMs from “hallucinating” from the get-go. [Read More]

A Small Tool for Exploring Text Embeddings

Last year I wrote about the superpowers text embeddings can give you and how I tried using them to compare the song lyrics of some music artists. Though the results failed to paint the picture I hoped for – this was due to the methodology, or rather lack thereof – it made me appreciate the importance of simple open source tools (OSS) in the currently booming AI/LLM space. To get to the point of displaying the embedding projections in the blog post I had to jump through some hoops and combine a lot of different Go modules before I could finally generate the nice interactive plots from the computed data. [Read More]

On The Importance of Getting The Foundations Right

Throughout my career, I’ve learnt, usually the hard way, the importance of getting the foundations of whatever I was working on right. Or at least as right as possible. I learnt how fundamental it is for setting your project — and by proxy, your team — up for success. I’d argue it’s one of the most important things you should pay attention to. Getting the basics right is notoriously hard due to the inevitability of changing requirements, external factors, etc. [Read More]

Fun With AI Embeddings in Go

Update 9th January, 2024: Changed the title to “Fun With AI Embeddings in Go” Before the end of last year, I visited San Francisco (SF) for a few weeks. It felt great meeting some old friends and ex-colleagues face-to-face after a long hiatus. There is something incredibly refreshing about being in the same room with the folks you’ve spent chatting to so much time over the past few years on Zoom or Slack. [Read More]
Go  go  embeddings  golang  Golang  ai 

Some [career] advice for engineers

This blog post is a collection of advice or rules I’ve learnt to live by as a software engineer. It’s an accumulation of experiences I’ve gained through working for software organizations of various sizes. Most of the advice in this post is aimed at software engineers, but some may be applicable to other roles and industries. Understand the problems you are solving This isn’t a revolutionary idea. But the very sad reality of life is that it still hasn’t been internalised by so many engineers and organisations that it’s worth reiterating. [Read More]

A Few Counterintuitive Ideas

UPDATE: 4th January, The way out of burnout The beginning of 2021 marked the point when some of us were bracing with hope for the year that lied ahead. The year that we hoped to be “better” than the one that we were leaving behind. Little did we know we should have braced for impact instead. For me personally, if 2020 was bad enough then 2021 wiped the last shreds of whatever mental resilience or energy I had left in me. [Read More]