Open to inquiries Warsaw / Remote EN · PL

Long-lived JavaScript SaaS
that has to keep working
and keep evolving.

01 / SERVICES

Two things I do, with real history.

A / Maintenance

Long-term maintenance & reliability

Your Node or React SaaS was built in 2014. It still earns money. The original team has moved on. I keep it running, patch the security holes, ship new features, and slowly drag it toward something maintainable. Production AWS environments, the 3am bugs, releases that don't break the build. Most engagements: ongoing, 1–3 days a week.

Node.jsReactTypeScriptAWSElasticBeanstalk
B / Modernization

Frontend modernisation without the rewrite

I've migrated production frontends from Angular to React/TypeScript twice, on systems that couldn't go down — including a public-facing SaaS used by structural engineers worldwide. The trick is gradual: new features ship in React inside the old shell, route by route, component by component. No big-bang rewrites, no two-year transitions, no broken users. Most engagements start with an audit and turn into a 6–12 month gradual migration.

ReactTypeScriptAngular legacyWebpackMigration audits
02 / SELECTED WORK

Sixteen years, mostly quiet.

2008 — 2010
Co-maintainer
DataObjects / DataMapper (open source)
Co-responsible for the JRuby version of DataObjects — the database adapter library powering DataMapper. Pre-pull-request era — you needed commit access. Wrote and maintained JDBC adapters for H2 and others. M.Sc. thesis built around it.
GitHub →
2011
JRuby Developer
Edenspiekermann, Berlin
Fixed and finished a JRuby web project for a major German industrial brand. Came in to debug mailer issues blocking the release. Short engagement, sharp deadlines, shipped on time.
Ask →
2011 — 2012
Backend Developer
Hookie / Traxmeet, Helsinki & Amsterdam
Activity-tracking web app paired with a USB pedometer dongle. Users uploaded step data and joined group challenges (e.g. "walk from London to Glasgow as a team"). Rails on the server, custom hardware integration. The fun kind of full-stack.
Ask →
2012
Co-organiser
Eurucamp conference
Co-organised Europe's only Ruby conference held on a campsite. Programme committee, logistics, the website. Attended in 2011, helped run it in 2012.
GitHub →
2012 — Present
Senior consultant
Long-running engagement, structural BIM software vendor
Two production SaaS apps in the structural BIM ecosystem, used by structural engineers globally. A public-facing content sharing platform for 3D models, and an internal licensing & organisation management tool. Both started as my work or with my involvement from day one and are still running in production today. Through Siili Solutions (Helsinki). The model platform began as a Node prototype with MongoDB/GridFS, later moved onto third-party model storage. Both frontends migrated from Angular to React/TypeScript over the years, gradually. Day-to-day: feature work, AWS infrastructure (ElasticBeanstalk, WAF), security patches, releases, deployments through TeamCity.
Ask →
03 / ABOUT

Sixteen years writing software for money.

I started with Java in university, fell into Ruby in 2008, and got pulled into the open-source DataObjects project before pull requests existed — you had to be granted commit access. I wrote JDBC adapters for the JRuby version, finished my M.Sc. on the same project, and helped run Eurucamp in 2012.

Since then I've been the long-running engineer on a family of production SaaS apps in the structural BIM industry — first prototyping a public 3D-model sharing platform in Node with MongoDB/GridFS, later refactoring it off that onto third-party storage. Then building a licensing & organisation management tool from scratch. Both frontends migrated from Angular to React/TypeScript over the years, gradually, in production, without rewrites. None of these systems have been rewritten end-to-end. They've been kept alive and made better while the business kept billing customers.

I've worked remotely the whole time, mostly through Finnish prime contractors. I deployed with Capistrano before there was Heroku. Today I'm exploring how to retrofit AI features (Claude, OpenAI, agentic flows) into long-lived production systems — the part most teams will need next, and the part nobody has a clean playbook for yet.

Got a long-lived Node or
React SaaS that needs a steady hand?

Email me
Open to inquiries