Hello World
Every blog starts with a post that’s really just a setup test disguised as content. This is that post.
Why now#
I spend a lot of time writing documentation, design docs, and internal notes at work. Most of it disappears into the void. A blog forces me to write for a broader audience and keeps a record of things I’ve figured out.
Mostly I’ll write about:
- Go — Anything cool I may learn and want to share, I have opinions
- Multi-agent systems — Building production LLM pipelines is messier than the demos suggest
- Backend architecture — Databases, APIs, the usual
- VST’s & Music Production - Any plugins, features or particuarly cool sounds Id like to share
- Whatever I’m currently debugging that might save someone else an afternoon
What this site is built on#
Hugo. Single binary, no node_modules, sub-second builds. It’s what you converge on when you want to actually maintain a blog long-term instead of maintaining your blog’s build toolchain.
# hugo.toml
baseURL = "https://lhorsl.dev/"
title = "lhorsl"
Syntax highlighting test#
Since I’ll be writing a lot of Go, let’s confirm Chroma is working:
package main
import (
"context"
"fmt"
"log/slog"
)
type Agent struct {
Name string
Model string
System string
}
// Executes the agent with the given user message.
func (a *Agent) Run(ctx context.Context, userMsg string) (string, error) {
slog.Info("running agent", "name", a.Name, "model", a.Model)
// TODO: All the magic here :)
return fmt.Sprintf("[%s]: response to %q", a.Name, userMsg), nil
}
func main() {
agent := &Agent{
Name: "wisdom-toad",
Model: "claude-opus-4-6",
System: "You are a concise philosophical toad. Wisdom seeps through your veins.",
}
resp, err := agent.Run(context.Background(), "What is the meaning of all this?")
if err != nil {
slog.Error("agent failed", "err", err)
return
}
fmt.Println(resp)
}
Looks good. More soon.