Engineer by trade, product person by heart.
This page is intentionally detailed. It serves as the single source of truth about my professional background - feel free to use an AI agent to extract whatever you need from it.
I love understanding problems and building solutions. In this order.
I can walk you through a product from user pain points and how we address them, through the business case, UX decisions, frontend and backend architecture, infrastructure, all the way to choice of database. I'm not a domain expert in all of these - I rely on specialists when depth is needed - but I understand how decisions in one layer affect the others, and I can link those segments together efficiently.
My background has two sides that don't often sit in the same person. At tado°, I owned a critical part of a cloud IoT platform serving millions of connected devices - making architectural decisions about data pipelines, caching layers, and database scaling under real production pressure, with two years of on-call ownership. That's the rigour side. The other side: I've taken two products from rough idea through launch and monetisation, done my own user research, and owned the full stack end-to-end. At Wemolo I'm doing both at once - greenfield infrastructure, AI pipelines in production, and edge AI architecture - with a small team and high velocity. That's the profile I bring.
I question requirements and push to understand the "why" behind every decision - to make sure everyone involved shares the same understanding of the problem before jumping to solutions. I believe in having a name attached to every requirement, because accountability drives clarity. When building products, I lean towards underpromising and overdelivering, and I try to bring that mindset into conversations with marketing and sales colleagues too.
I look for solutions outside of software when they make more sense. At tado°, I pushed to replace legacy hardware by breaking down the upfront replacement cost into yearly man-hours saved - removing dead code paths, reducing support tickets, lowering mental overhead when reasoning about the product. It required a lot of convincing, but managed to push it through.
Strong opinions, loosely held. I'd rather start from a clear position than from vague consensus. I proactively share my viewpoints, tradeoffs and issues I see with decision makers - but I believe in "disagree and commit." If the team decides to go a different way, I trust their judgement and get behind it. I hate never-ending discussions.
Keep things as simple as possible, but not simpler. The majority of problems don't require solutions that scale to millions of users. Solve today's problems. Be aware of what might block you in 12 months if things scale as expected - plan ahead enough to not paint yourself into a corner, but don't build for problems you don't have yet. Know where you cut corners, but don't immediately fix those places either. Martin Fowler's thinking on evolutionary design resonates with me - let the architecture emerge from real needs, not from speculation about future ones. That said, when I have owned systems at scale, I've had to plan ahead deliberately - the key is knowing when to invest in structure and when to keep things simple.
The cost of experimentation recently dropped below the cost of discussion. For many use cases, it's now cheaper to create the next iteration of a product, run it with real users, and evaluate its usefulness than to spend hours in meetings debating and inferring from interviews what users might want. I bias towards shipping and iterating.
The cost of good documentation and tests dropped to below zero. Crafting clear docs and tests using agents takes a fraction of the time it used to. Agents feed on context and work best with guardrails and short feedback loops - which means caring about documentation and test coverage actually makes agents more productive. It's a virtuous cycle.
Innovation requires understanding real-world problems and knowing the capabilities of systems that can address them. Product engineers shine because they have this overlap. Understanding both the user's pain and the technical toolbox is where the best solutions come from.
Responsibility doesn't diffuse. When I use agentic workflows, it's still me who's responsible for my commits. If a commit crafted by Claude breaks production and causes financial losses, it's on me, not on Claude. No "it was the tool, not me" - my mistake, I own it.
Dan North's idea of building "software that fits in your head" captures something I care about deeply - if you can't reason about a system, you can't maintain it, and you definitely can't iterate on it fast.
I'm an individual contributor who leads through influence rather than authority. When mentoring, I give a lot of freedom while providing guidance when necessary and strong opinions to prevent derailing. A recent example: a colleague I mentored said they appreciated this style - the focus on measurable progress and delivering goals on time without micromanaging.
I care about talking to users directly. I've conducted dozens of customer interviews, including with frustrated users where the first job is to disarm the frustration and keep the meeting productive. I've gone out into the field to shadow professionals using our products in their daily work, then brought those observations back and turned them into product decisions. I try to close the feedback loop whenever possible.
I enjoy sharing what I learn. I've regularly presented to audiences of 50+ people at weekly product demos, led brown bag sessions on topics both technical and not, and hosted cross-team meetings where my job was to draw out the interesting bits by asking the right follow-up questions. The first minute on stage is always stressful, but once I'm in, I enjoy it.
I care about making other engineers more effective. At Wemolo, I rebuilt the CI pipeline to cut unnecessary complexity and advocated for other teams to adopt similar practices. I've co-written interview guides that are used across teams, and I conduct technical interviews focused on reasoning skills and real-world scenarios rather than trivia. I actively share what I learn about agentic workflows, prompt engineering, and AI tooling with colleagues - because one person being productive with agents is useful, but a whole team being productive with them is a multiplier.
I'm a terrible salesperson, unless I believe in the product. Then I try to bring that honesty into how we communicate about it - working with marketing and sales colleagues to keep our promises accurate and our messaging grounded.
I use AI heavily to augment my workflow, running significantly more experiments at much higher velocity than before.
At Wemolo, I introduced Claude into a production image analysis pipeline to detect anomalies. This required building a testbench to provide guardrails and tune a non-deterministic system to behave consistently enough for production use. The pipeline uses Ultralytics YOLO and Meta SAM for image pre-processing to provide guidance to the model, and I experimented with various approaches and models to get reliable results.
Earlier, at tado°, I built one of the first practical AI pipelines on my team: a script using Whisper for transcription and GPT for summarisation of customer interviews. This saved myself and colleagues significant time - tens of minutes per interview - back when these tools had just been released.
I don't have any advanced, published personal projects, but I frequently build small tools to help me in my personal life. A few recent examples:
MCP server for tado° - A conversational interface to your heating system. Provides tools to create features lacking from the official product, like scenes. Built mostly to explore what the MCP hype in early 2025 was about.
Classified ad manager - A small tool for managing bike parts listings across Kleinanzeigen and bike-specific platforms. Stores the state of active ads and refreshes them on demand to keep them high in search results.
"Should you get an AC?" - A tool that pulls historical tado° data about bedroom climate, compares indoor temperatures to outdoor readings (was there unused cooling potential in just opening windows?), and summarises how many nights were uncomfortably warm - to guide the purchasing decision.
Outside of work, I spend most of my time outdoors - mostly mountain biking on downhill and enduro trails, or just cycling and hiking. In early 2025 I took a sabbatical to travel and ride, including a month in British Columbia, the mountain biking mecca. Beyond that, I enjoy experiencing different cultures and cuisines and try to capture the diversity our world has to offer through photos.
When not travelling or riding bikes, I challenge myself in the gym with functional training and yoga.
I love working on my bikes and I take pleasure in understanding how things work - both in the physical and virtual world. Growing up, my father and I used to build and fly RC planes, back when that involved a lot of gluing and soldering. That curiosity stuck. I often reason about how things behave from first principles and encourage others to take this playful approach to understanding the world around them. It's both a fun learning experience outside of work and something that propagates into my professional life - it makes me naturally question whether the system I'm building isn't too complicated for what it's doing. I think that's the engineering mindset: build something that solves the problem in the most elegant way. Elegance takes time to emerge - initially, it's fine for it to be a functional blob.
On a more technical note, I follow AI advancements closely, particularly their real-world applications, to see how they can boost my skills and improve the products I contribute to. I follow Andrej Karpathy on X and try to stay exposed to both the AI enthusiasm and the critics. In software engineering more broadly, I'm influenced by the thinking of Dan North and Martin Fowler. I also follow developments in the energy transition - everything from EVs to changes in electricity grids and power sources.
Wemolo | Munich | Sep 2025 - Present
Working on a greenfield project: the next generation of parking lot monitoring devices with capabilities beyond license plate recognition. Think cameras with AI on the edge, feeding into more powerful vision-language models in the cloud - with the goal of converting advances in AI into tangible benefits for parking lot owners and managers.
Together with a small army of robots (mostly Claudes), I am responsible for infrastructure, CI/CD, backend, frontend, communication with IoT devices - and anything else required to solve user problems as fast as possible. Beyond my own project, I share what I learn about working with agents - from reading and experimentation - with other people and teams, helping them become more productive with these tools too.
Tech: React, Python, AWS Lambda, Terraform, Ultralytics YOLO, Meta SAM, Claude API
Feb 2025 - Aug 2025
Travelled, rode bikes, met great people.
tado° | Munich | Feb 2020 - Feb 2025
Created, from idea through launch to monetisation with hundreds of subscriptions, two innovative products in the home energy management space: tado Balance and Balance for Heat Pumps. The first product was built by a team of six in two months.
Directly responsible for all engineering aspects - backend and frontend - including choosing technologies, integrating the new product into the existing system landscape, and monetising with subscriptions.
Product & Engineering
Product Discovery & User Research
Cross-functional Work
Knowledge Sharing & Hiring
Tech: Angular 19 (declarative/reactive with signals), TypeScript, AWS API Gateway, Lambda, DynamoDB, SQS, SNS, SES, CloudFormation, CloudWatch, GitHub Actions
tado° | Munich | Aug 2018 - Feb 2020
Owned a critical part of a cloud-based IoT platform serving millions of connected devices - responsible for its reliability, scaling, and evolution from tens of thousands to millions of connections. This meant understanding the system deeply enough to make architectural decisions about data pipelines, caching layers, and database scaling under real production pressure.
Tech: Java, Kotlin, Groovy, Spring Boot, Redis, Amazon Kinesis, RDS, InfluxDB, Jenkins, Datadog
Zooplus AG | Munich | Aug 2016 - Jul 2018
Worked closely with domain experts from logistics and finance to develop solutions for optimising truck routes and streamlining accounting processes. Contributed to a new ledger project.
Tech: Java, Spring Boot, AWS (RDS, SQS, SNS, Kinesis), Terraform, Mesos, Grafana, Kibana
Luxoft (UBS) | Kraków, Poland | Aug 2015 - Jul 2016
Contributed to creating and improving a critical application ensuring regulatory compliance for UBS.
Tech: Java, Spring
Ericpol (Ericsson) | Kraków, Poland | Jul 2014 - Jul 2015
Contributed to building a highly available and dynamically scalable IAM solution for a network management system.
Tech: Java (Ericsson frameworks and internal tooling)
Tegeos | Kraków, Poland | Apr 2013 - Jun 2014
Created innovative and highly accurate measurement devices for materials science laboratories. The devices measured the Seebeck effect coefficient distribution across material samples, using image processing to assess sample uniformity and an automated test stand for physical property measurement. This doubled as my MSc thesis work - combining image processing with physical measurement automation.
Universidad Politécnica de Madrid | Madrid, Spain | Jul 2012 - Aug 2012
Implemented software tools for early diagnosis of pulmonary hypertension through 4D flow MRI analysis - detecting vortices in blood flow patterns to identify arterial hypertension.
Tridonic | Dornbirn, Austria | Aug 2011 - Sep 2011
Designed and implemented software for automated test stands used for QA of hardware components.
AGH University of Science and Technology, Kraków (Poland) | 2012 - 2014
Thesis completed in collaboration with Tegeos: image processing for detecting material sample uniformity (Seebeck effect coefficient distribution) and building an automated test stand for physical property measurement.
AGH University of Science and Technology, Kraków (Poland) | 2008 - 2013
Thesis on visualising protein folding.
Technische Universität Berlin, Berlin (Germany) | 2012 - 2013
Image processing, FPGAs, control systems.
Frontend: React, Angular 19 (signals, declarative/reactive), TypeScript
Backend: Python, TypeScript (Lambda), Java, Kotlin, Groovy, Spring Boot
AWS: Lambda, API Gateway, DynamoDB, SQS, SNS, SES, Kinesis, RDS, CloudFormation, CloudWatch
Infrastructure: Terraform, CloudFormation, GitHub Actions, Jenkins
Data stores: DynamoDB, Redis, RDS (MySQL), InfluxDB, Elasticsearch
AI/ML: Claude API, Ultralytics YOLO, Meta SAM, prompt engineering, production AI pipelines with guardrails and testbenches, agentic workflows
Monitoring: Datadog, CloudWatch
Other: Git, GitHub, CI/CD pipeline design