Skip to content

Ciprian Mandache

Mostly writing code that does stuff…

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

Coding

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 …

rankrat: Ram One Rat Up Every SEO Console Cockblocking Your Rankings
AI / Containers / Python

rankrat: Ram One Rat Up Every SEO Console Cockblocking Your Rankings

A page falls out of Google’s index. Now you get to find out why. Open Search Console to confirm it’s actually gone. GA4, to see if the traffic died or …

codexbox: Four Environment Variables and a mkdir Standing Between You and OpenAI’s CLI
AI Agents / Bash / Containers

codexbox: Four Environment Variables and a mkdir Standing Between You and OpenAI’s CLI

I already wrote the “why I ripped the plumbing out of my own repos and built a base image” rant in the aicodebox post, so I’m not doing it again …

flickies: A Video Toolbox That Happens to Do Lipsync
AI / Containers / Python

flickies: A Video Toolbox That Happens to Do Lipsync

I was neck-deep in an avatar pipeline and needed two unglamorous things at once: a lipsync pass, and a fistful of ffmpeg operations around it — trim the source, mux …

ibkr-httpapi: Six Asset Classes, No Windows VM, All Real Fucking Money
Containers / Python / Trading

ibkr-httpapi: Six Asset Classes, No Windows VM, All Real Fucking Money

I already burned a month of my life building mt5-httpapi — a full Windows VM booted under QEMU/KVM inside Docker, just so I could talk to a broker that only …

aicodebox: One Base Image, Any AI Coding Agent, Four Modes You Didn’t Have To Write
AI Agents / Containers / Python

aicodebox: One Base Image, Any AI Coding Agent, Four Modes You Didn’t Have To Write

I built claudebox because letting Claude Code run loose on my host was giving me chest pains. It worked. It grew an HTTP API, an OpenAI-compatible endpoint, an MCP server, …

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