Software, AI, consulting
Ordinary solutions to strange problems.
I write software for technical companies and R&D teams: C++ and CUDA when the code has to be fast, language-model pipelines when the input is a mess. The usual starting points: a tool nobody wants to maintain any more, a device that needs firmware, a process drowning in documents.
Tell me about the problem see work
Results from client work
- about 50×
- faster hardware reads from the warm cache in a fiber-network control panel
- 20 to 1
- twenty identical concurrent requests make exactly one SNMP query to the device
- since 2014
- one operations tool in production, rebuilt in 2026 on FastAPI and Vue 3
Clients
- RTK Nowy Sącz fiber-network control panel
- Ecumaster help-system translation
- Thessla Green air-handling firmware
- Orion Kolej internal tools
- Boulder Zone reception, gate, competitions and an interactive wall
- Mała Galeria IT, web and e-mail administration
- MOK network and website administration
- Browar Sądecki brewing process control, electronics and software
What I do
Custom software
I write programs in C++, CUDA, C#, Rust and Python, from a PIC24 that runs two air-handling units to a GPU reconstruction engine that I made more than twice as fast. For clients I have rebuilt a fiber-network control panel, written firmware for a climbing gym's gate and built a tool that translates a product's help system into several languages.
AI integration
I connect language models to the documents, databases and tools you already use, and I check their output the way I check any other program: with tests that fail loudly. Siedzieje is one of mine, a pipeline of agents that reads web pages, social media posts, posters and audio recordings and builds a calendar of local events. In 2026 I completed AI_Devs 4, a Polish course on building LLM applications, and wrote Dave, an agent that solved its tasks on its own.
Consulting
I sit down with your engineers to look at code that is slow or keeps breaking, and before anyone changes a line we measure where the time actually goes. I also teach: computer architecture and operating systems at a university, and in 2013 and 2014 three-day courses in Kraków on C++ concurrency and real-time Linux.
Problems I've solved
A control panel for a fiber network
- Problem
- An internet provider's operations tool ran on Python 2 and every query to the hardware blocked the server.
- What I did
- Rebuilt it on async FastAPI, Vue 3 and a cache in front of SNMP, with a versioned API.
- Result
- Warm reads about 50× faster; twenty identical concurrent requests make exactly one query to the device.
Translating a product's help system
- Problem
- Many small help items in several languages; earlier translations broke markup, numbers and identifiers without anyone noticing.
- What I did
- A command-line tool on OpenAI models with a glossary built from the client's own translations and checks that fail loudly.
- Result
- Every item is checked for markup, numbers and identifiers before delivery. Runs in Docker at the client.
Firmware for two industrial air-handling units
- Problem
- A manufacturer needed firmware for an air purifier and a humidifier: sensors, fans, alarms, a display and a Modbus RTU link to a larger system.
- What I did
- PIC24 firmware with PID control, a menu on a two-line display, alarms and Modbus RTU.
- Result
- Both units run on firmware written in 2018-2020.
Reception, gate and competitions for a climbing gym
- Problem
- A climbing gym needed reception software that runs locally, a gate that checks a card, and a way to run speed competitions.
- What I did
- Local reception software, an ESP32-P4 touch panel in Rust at the gate and a competition module with a browser judge console.
- Result
- RFID at the gate, a real-time desk panel and two speed lanes timed by one ESP32.
A climbing wall that plays games
- Problem
- A climbing wall that reacts to the climber, the successor of my 2016 installation Cinder Climb.
- What I did
- A camera, a pose-detection model and a projector; the games are written in Lua.
- Result
- The wall follows the climber's hands and feet frame by frame.
An interactive video installation for trade fairs
- Problem
- An advertising client needed an LED installation that reacts to the people walking around it.
- What I did
- Several cameras and a pose-detection model turn what people do into OSC events for Resolume.
- Result
- The visuals follow the people around the installation.
A programme guide for set-top boxes
- Problem
- A TV schedule sat in a database; the boxes needed DVB tables and multicast streams.
- What I did
- A Python service that turns the schedule from the database into DVB tables and streams them to the network.
- Result
- The boxes show the guide built from the database schedule.
How I work
Conversation
You describe the problem by email or on a call. I keep asking questions until we both know which result counts as finished.
Scope and quote
I write down the scope, the stages and a quote. Anything that isn't on that list stays outside the job until we agree to add it.
Work in stages
Every stage ends with working code and benchmarks taken before and after the change.
What happens next
You get a reply with questions or a first estimate. No forms and no booking links: one e-mail thread from the first question to the last invoice.
Write to me
Write a few lines about the problem and what you have already tried. I work from Poland (CET), remotely, with clients in Poland and abroad. If the button does not open your mail program, copy the address next to it.
Tell me about the problem form@klimek.link