Skip to content

Ciprian Mandache

Mostly writing code that does stuff…

Menu
  • Coding
    • Golang
    • Python
    • PHP
    • Bash
    • MQL
  • AI
    • Assistants
    • Agents
    • Tooling
    • Opinion
  • Containers
  • Hardware
    • Embedded
    • Mobile
  • Radio
  • Trading
  • Art
    • Music
    • Painting
    • Poetry
  • Links

golang

go-asyncapi: load AsyncAPI 3 specs in Go
Golang

go-asyncapi: load AsyncAPI 3 specs in Go

go-asyncapi reads AsyncAPI 3 documents in Go and hands you servers, channels, operations and messages as plain structs, with every $ref on the way to them followed across files, every …

Why am I still hand-typing WebSocket structs from an AsyncAPI spec?
Golang

Why am I still hand-typing WebSocket structs from an AsyncAPI spec?

You shouldn’t be, because the AsyncAPI spec already says exactly what every message looks like and a machine can retype it better than you. I wrote gen-asyncapi so an AsyncAPI …

chatz: A Self-Hosted AI Chat Where the Assistant Draws the Fucking Dashboard
AI / Containers / Golang

chatz: A Self-Hosted AI Chat Where the Assistant Draws the Fucking Dashboard

Every self-hosted chat UI hands you the same thing: a wall of markdown. You ask the model for last quarter’s numbers, it writes you a table in monospace, and if …

pr0xteus: Disposable VPN Exits for Apps You Wouldn’t Trust With Your Password
Containers / Golang

pr0xteus: Disposable VPN Exits for Apps You Wouldn’t Trust With Your Password

You’ve got some app that needs to leave the building through a VPN. A scraper, a browser bot, some agent poking at sites that would rather it came from somewhere …

ctxscope: Stop Threading request_id Through Every Function Signature
Golang

ctxscope: Stop Threading request_id Through Every Function Signature

Here’s the code everybody writes. A request comes in, you generate an id, and something a few calls down needs to log it: func handleOrder(ctx context.Context, requestID string, o Order) …

slogging: Delete Twenty Lines of slog Boilerplate With One Blank Import
Golang

slogging: Delete Twenty Lines of slog Boilerplate With One Blank Import

Go 1.21 shipped log/slog and it’s good. What it doesn’t ship is any way to configure it, so every service starts with a version of this: var level slog.Level switch …

essessey: Stream a Turn Anywhere Without Rewriting It
AI Tooling / Golang

essessey: Stream a Turn Anywhere Without Rewriting It

The first version streamed over SSE. Then something needed the same turn over NATS, and I found out I’d built the framing into the wrong layer. event: / data: / …

elelem: Say It Out Loud, You’ll Get It
AI Tooling / Golang

elelem: Say It Out Loud, You’ll Get It

The moment that decides what kind of library you’re writing is the one where a human has to approve a tool call. Everything is lovely right up until then. The …

slog-configurator: Same Zero-Config Logging, Now on the Standard Library
Golang

slog-configurator: Same Zero-Config Logging, Now on the Standard Library

Update, August 2026: this package moved. slog-configurator is now github.com/psyb0t/slogging, where the configurator lives at slogconf/ alongside two handlers it always belonged next to: the searchable in-memory ring at handlers/logring/ …

proxq: Async HTTP for Backends That Won’t Stop Timing Out
Containers / Golang

proxq: Async HTTP for Backends That Won’t Stop Timing Out

Some HTTP requests take forever. LLM completions, image generation, video transcoding, big report builds, slow webhook processors: they all sit there chewing on something while your reverse proxy in front …

Posts navigation

Further back

Latest Music

devourer_of_time_and_space
a1800269911_16 (1)
space_rocker
the_funeral_march
HardAssFuX_cover-800×800
Music release cover
Music release cover
Music release cover
Music release cover
Notes