Overview
madewithlove is a software engineering and technology consulting company founded in 2008. The legal entity is madewithlove BV, registered in Leuven, with offices at Sluisstraat 79 in Leuven and Oktrooiplein 1 in Ghent. The company works for SaaS startups and scale-ups. Its services are software engineering (back-end, front-end, mobile and AI), CTO as a service, audits and technical due diligence, recruiting, CTO coaching and product management. The audit practice has run more than 190 SaaS audits since 2008; each audit takes 10 business days from the initial interview to the final report and is bought by investors de-risking an investment and by companies preparing a funding round, merger or acquisition. Named clients include Telenet, Teamleader, Cheqroom, Urbantz, Combell, Doccle, VDAB, KBC, Settlemint, CitizenLab, StoryChief, CrazyGames and Apideck. Andreas Creten is CEO and founding partner. He wrote The Economics of Software Engineering and hosts the podcast The SaaS Show. Tim Sterkens is COO and partner, Dimitri Roose is CTO in residence and partner, and Jonas Van Schoote is a CTO in residence.
Stated facts & numbers
- Founded: 2008
- Headquarters: Leuven (second office in Ghent)
- Legal entity: madewithlove BV, BE0898833969
- Employees: 10-49
- CEO: Andreas Creten (founding partner)
- Services: Software engineering, CTO as a service, technical audits and due diligence, recruiting, CTO coaching, product management
- Audits: 190+ SaaS audits since 2008
- Customers: Telenet, Teamleader, Cheqroom, Urbantz, Combell, Doccle, VDAB, KBC, Settlemint, CitizenLab, StoryChief, CrazyGames, Apideck
Org chart
In the news
- One button. Add to cart. Four pieces of work: a URL, a request serialiser, a response serialiser and a client function. All four have to stay in sync. Next.js server actions make that disappear, which is why a lot of developers assume they're a React feature. They aren't. Strip the compiler away and a server action is a name mapped to a function behind one endpoint. The client sends the name, the server looks it up, validates the input and runs it. HTML forms were posting back to a URL and re-rendering long before React existed.
- Andreas Creten started writing Bridging Code and Capital in October last year, and then the fastest-moving year our industry has had happened while it went through publishing. He wondered whether he should have stopped the print run. He went back through every formula instead. The examples might have aged a little bit, but the formulas have held: buy versus build is still buy versus build, and what you build still has to be maintained. The book is out now. It explains to non-technical people, in the language of money, why
- Our COO recently made the first pull request of his life. He moved a feature from one screen to another in the note taker we built in-house, his Claude ran the test suite while he worked, and Andreas Creten reviewed it before it shipped. More people who have never opened a code editor will do the same, in more companies. The reflex in many engineering teams is to stop it, and that reflex costs the business the very speed it is paying for. What makes it safe is the work engineers already know how to do: tests that run on
- One screen needs to feel like an app. A search that filters as you type, and a counter elsewhere on the page that keeps up. The usual options are both bad. Rewrite the front end in React and the back end becomes an API, and nothing ships for months. Bolt jQuery onto the template and that screen becomes the one nobody wants to touch. There's a third option, and Airbnb used it in 2016 on a Rails app too big to rewrite. A small sidecar process: give it a component name and props, get back HTML. It knows nothing about the database,
- An engineer found out he was being laid off from his broker. Not his manager. Not a founder. "You weren't supposed to know until the end of the month." His work moved to a junior with a proof-of-concept script. A colleague was asked to absorb years of context in one month, whilst covering back-end, ML and data engineering at once. They weren't replacing him. They were replacing the idea of him. Knowledge transfer assumes what someone knows lives in a doc or a repo. Most of it doesn't. It lives in the judgement calls, the trade-offs
- A 1980s NES football game has a bug. In a penalty shoot-out, press Down + A + B and the goalkeeper dives up instead of down. The cause is one of the oldest bugs in software: acting on stale information. The dive skips the step that records the player's direction, so the game falls back to up. Days of save states and memory edits got nowhere. Then the same prompt, the game file and a video of the bug went to Claude Code and Codex, in separate folders. 24 minutes later, both had found the same instruction. They fixed it differently.
- Alter a photo of a school bus in ways no human would notice. The image model now calls it a cheetah. With 99% certainty. The 99% is the problem, not the cheetah. Being wrong isn't the issue. Everything is wrong sometimes. What makes people usable is that we know roughly how wrong we might be. Something moves in the grass and you don't commit to "weasel". You hold a list: bird, hedgehog, weasel. Then the time of day and the season reshuffle it. Most AI was never trained to do that. Training rewarded the right label and never
- Bridging Code and Capital, the book by our CEO Andreas Creten, is out now with Lannoo Campus. It puts a price on the decisions engineering teams make every week. Engineers talk about velocity and technical debt, executives about burn rate and runway, and boards about capital efficiency. The book translates between the three, drawing on nearly two decades of fractional CTO work and the technical due diligence we do for investors. One worked example from it: a rewrite pitched at €200K that costs €6.73M over five years, once you count
Alumni 1 went on to found or lead
- PVincent BattagliaCTO in residence→Co-Founder & CEO at Rebel Food
Tim SterkensCOO
Something wrong or missing? Send an update. Fixed within 24 hours.