Karol

Broda

building things that actually work. systems programmer who values simplicity over complexity.

about karol broda

hi, i'm karol broda, a developer from poland currently living near munich. i build tools that solve real problems without unnecessary complexity. from low-level systems in C to web applications with React, i focus on what actually works.

i specialize in systems programming and network tunneling solutions. i believe in creating software that developers actually want to use.

my philosophy: start simple, stay simple. boring technology that works beats the shiny new framework. if it takes more than 5 minutes to explain, it's probably too complex.

when i'm not coding, i'm probably reading about why someone rewrote their entire stack in rust, or actually touching grass (revolutionary concept, i know).

selected works

snitch

read more

a prettier way to inspect network connections. a real-time terminal ui for monitoring tcp and udp connections, listening ports, and the processes behind them.

GoTUINetworking
snitch go
│ sort: port
PROCESS PORT PROTO STATE LOCAL
w watch K kill s sort / search q quit

funnel

read more

a blazingly fast network tunneling solution and proxy written in Go. funnel is the perfect alternative to ngrok for exposing localhost to the internet. ideal for webhook testing, API development, remote debugging, and sharing local development environments. supports secure tunneling, custom domains, and provides a simple tunneling solution without unnecessary complexity.

GoNetworkingWebSockets
funnelzsh
$ funnel http 3000
starting tunnel...
✓ tunnel ready
locallocalhost:3000publicnvy2vd3ptl.funnel.karolbroda.com
GET/api/users20012ms
POST/webhook2008ms

systems programming

read more

a collection of low-level projects in C: database with B+ trees and ACID transactions, privacy-preserving network protocol, DNS server, HTTP server, fuzzy matching with BK-trees, and custom data structures. built to understand how things actually work.

CSystemsNetworking
btree.cc
/* b+ tree - O(log n) */
int insert(BTree *t,
u64 key, void *val) {
Node *leaf = find_leaf(t, key);
if (leaf->len == MAX)
split_node(t, leaf);
return leaf_write(leaf, key, val);
}

pith

a computation kernel for builds, packages, environments, and systems. one typed, incremental graph connects pure computation with capability-controlled effects, content-addressed storage, and reuse across processes. a working prototype written in Rust.

RustLanguagesIncremental Computation
pith.pipi
module example/hello 0.1.0
inputs {
greeting = path "modules/greeting",
}
import greeting
entry hello : Text =
ask Text (Message("hello"))

fuga

the shell between the tiles. a Rust host for Wayland bars and panels defined in Slint, compiled at launch. module globals bring clocks, workspaces, and windows into the shell, with Hyprland IPC supplying compositor data.

RustSlintWayland
shell.slintslint
export component Bar
inherits Window {
Text {
text: Clock.hhmm;
}
}

doba

a type-safe schema registry for data that needs more than one shape. define schemas, connect them with typed migrations, and let doba find the path between them. works with Standard Schema validators including Zod, Valibot, and ArkType.

TypeScriptStandard SchemaType Safety
schemas.tsts
const result =
await users.transform(
user,
'database',
'frontend',
);
// validated frontend shape
result.value.id // "user-123"

let's build something

working on something interesting? want to collaborate on tools that actually solve problems? or just want to chat about why we keep rewriting everything? reach out.

get in touch