I have been part of the Valmet IQ Machine Vision engineering team since 2010. Most of my work has been about keeping a long-lived, business-critical product healthy while the company, technology stack, and requirements around it changed.
I joined the team to take over UI development for a recently acquired software product. With a large part of the original team no longer involved, I focused on stabilizing and cleaning up the codebase, fixing issues, developing new features, and setting up CI/CD pipelines and development practices to make releases predictable and maintainable.
From 2018 onward, in order to simplify licensing, modernize the UI and address the increasingly strict security requirements, I proposed and led the transition from a legacy Java-based system to a modern web stack using React, OpenAPI, and .NET.
My responsibilities often reached beyond the UI: database design, query optimization, APIs, testing, documentation, and more.
I take into account real-world use by our customers as well as project engineers responsible for system installation and operation in industrial environments.
In addition to product development, I maintain the surrounding tooling and infrastructure: Jira and Bitbucket administration, Jenkins pipelines and modern build tools such as Bun and Vite.
I focus on steady, incremental improvements to the codebase and the surrounding development routines, from packaging and releases to team workflows, while keeping the stack up to date as it evolves.
Alongside my main responsibilities, I keep up with new technologies through personal projects, learning about Arduino, 3D modeling and printing, building and publishing Android apps with Flutter, building Next.js apps and deploying to Vercel.
Note: My involvement with the Valmet IQ Machine Vision project has been continuous since 2010. While my title and home base have changed, I have stayed hands-on with the project through its development.