Being a good co-worker is your job now

In the final part of this series on the world of work, we’ll talk about how not to suck at meetings.

Summary of reading: October - December 2023

"Nomadland: Surviving America in the Twenty-First Century" by Jessica Bruder - describes the lives of the modern van-dwellers, mostly of older adults that travel around the country between seasonal jobs and live in their RVs or cars. Interesting book that tells a good...

SQL as API in Go

So your API needs to allow queries that are too complicated for plain CRUD APIs but not complicated enough to justify using GraphQL? Consider accepting a subset of SQL where clauses, with the necessary security checks implemented in Go.

Announcing GoReleaser v1.23 — the last of 2023

The yearly Christmas edition, and the last release of 2023. This release contains mostly small improvements and bug fixes. Highlights nix: validate license to prevent generating invalid derivations nix: make sure zip is included if one of the archives is a zip file winget: supp...

Reminiscing CGI scripts

I’ve always had a thing for old-school web tech. By the time I joined the digital fray, CGI scripts were pretty much relics, but the term kept popping up in tech forums and discussions like ghosts from the past. So, I got curious, started reading about them, and wanted to s...

Reminiscing CGI scripts

I’ve always had a thing for old-school web tech. By the time I joined the digital fray, CGI scripts were pretty much relics, but the term kept popping up in tech forums and discussions like ghosts from the past. So, I got curious, started reading about them, and wanted to s...

Using Gemini models from Go

Google has recently made their newest family of multimodal LLMs available via an API with a generous free tier. Google also released SDKs in several popular programming languages, including Go. This post is a quick overview of how to get started with the Go SDK to ask the model q...

Quick tip: Implementing an in-memory cache in Go

In almost all web applications that I build, I end up needing to persist some data – either for a short period of time (such as caching the result of an expensive database query), or for the lifetime of the running application until it is restarted. When your application...

Alternate Futures for “Web Components”

It seems like Web Components are always just on the cusp of finally catching on. They’re like the year of Linux on the desktop for frontend nerds. I keep reading the latest articles about Web Components as they bubble up on my social media feeds, just hoping that there is somet...

In Go, constant variables are not used for optimization