I identify a pattern of manual labour, organise it into an underlying principle, and that principle becomes a tool — the domain changes, the principle doesn't (a Bulletin Board System (BBS) in 1992 and an agentic AI browser in 2026 are the same principle, 34 years apart). I don't work by job title; I'm an interpreter who feels what's missing in a system and builds the fix — which in product work makes me the person who closes the gap between what a product is meant to do and what it actually does, sitting between designer, developer, and AI rather than siloed off filing tickets. Concretely: automation and workflow engineering (AppleScript, Automator, Shortcuts, App Intents and JXA on macOS; the Paketti suite for Renoise, 1,500+ commits, 8,000+ shortcuts; CLI tooling that removes friction end to end); 25 years of software QA across web, mobile, VR, streaming and games; fluency with modern AI tooling (Claude Code, Cursor, Gemini, Codex); and three decades as the electronic musician Lackluster.
Fills, signs, and bakes a Finnish travel-expense claim (matkalasku) as a one-page PDF from the command line — no cloud, no account
|
A terminal UI that unifies "resume a past session" across Claude Code, GitHub Copilot CLI, and OpenAI Codex CLI — newest-first across all three providers, ⏎ to resume
|
Open-source research platform for Low Energy Nuclear Reactions
36 pull requests merged upstream. Frontend development, pull requests, code review, and contributor coordination. Landed features include the Russell Nine-Octave Periodic Table (historical panel + 3D view), the Segre (N–Z) nuclide chart, the Muller Resonance Explorer, and a force-directed reaction-network graph on the query pages.
Open-source electronic circuit simulator running in the browser (Paul Falstad)
45 pull requests merged upstream. Work spans the simulator's physics models (MOSFET, BJT, diode parasitics, saturable cores, lossy RLGC transmission lines, Jiles–Atherton hysteresis), measurement/display (oscilloscope trigger, peak-to-peak, RMS, FFT in dB, CSV export, logarithmic sliders), workflow (keyboard shortcuts, configurable gate delay and rise/fall, save/load tracking), and build plumbing (Gradle wrapper, GitHub Actions CI, macOS Electron menu fixes).
Open-source workflow suite for Renoise (cross-platform music production environment)
Lua-based. 8,000+ keyboard shortcuts, 150+ dialogs and tools, 19+ custom canvas user interfaces, 1,000+ MIDI mappings. Imports and exports dozens of audio formats. International user base in the tracker music community. Endorsed by Dr Chris Nash (Cambridge), Andy Lemon (London South Bank University), and Markku Reunanen (Aalto ARTS). Demonstrated at Synthcamp 2025 (Kemiö).
Open-source continuation of the work Apple's Product Manager of Automation Technologies role covered before its elimination in 2016
Automation-workflow engineering across AppleScript, Automator, Shortcuts, App Intents and JXA: 288 Automator workflows, 68 scripting dictionaries, 19 bulk exporters (Mail, Notes, iMessage, Voice Memos, Safari, Calendar, Reminders, Photos, Contacts, plist-probe across 1,934 plists), 65+ CLI tools, the AppleToolbox menu-bar app (Swift, no Homebrew), 588+ vocal shortcuts, and 38+ slash commands — 66 macOS apps probed across 13 layers.
Free and open-source software synthesiser
A 2019 contribution window. Manual software testing with attention to graphical and audio detail; bug reporting to the volunteer developers; built a builder so the synth could be built locally; preset hunting (finding existing presets to bring into the library); and converted the printed PDF manual to Markdown for community editing.
Open-source HTML5 tracker (browser-based)
Composed the original soundtrack for the demoscene production Zebrain (the world's first MATLAB demo) entirely in Soundbox; the production received Outstanding Technical Achievement at The Meteoriks 2019 (Germany). While composing, I fixed usability issues in Soundbox itself — making composition faster, smoother, and more user-friendly — alongside local-build and bug fixes. The piece and the tool were developed hand in hand: the music pushed the tool, the tool shaped the music.
Voice-cloning pipeline for Apple's former Product Manager of Automation Technologies (2002–2016)
Built from WWDC keynotes, MacVoices interviews, MTC talks, and the 2017 WWDC exit interview. Used for didactic explanations of Apple automation in Soghoian's cadence and operational doctrine ("automation should be democratised, not professionalised").
Sustained study of Apple's full automation surface — what shipped and what is left after the elimination of the Automation Product Manager role
Mapping which apps expose AppleScript / JXA scripting dictionaries (68 documented); which expose App Intents and Shortcuts actions; which support Services, Quick Actions, URL schemes, drag-and-drop, Open With; where the gaps are between modern Shortcuts and the older Automator / AppleScript stack; how CLI utilities (sips, mdfind, osascript, shortcuts, defaults, pmset, plutil) bridge the layers. Aim: keep the open, scriptable Mac alive as a viable creative and productivity platform.
One-on-one teaching and customer support of Apple software and hardware
Requirement assessment and advice. Installation and guidance based on the needs of the client. Migration from PC to Mac and from Android to iOS. Local and remote support. Ongoing relationships with non-technical users navigating Apple-first workflows.
Ray Browser was a Chromium-based browser with split-screen features, a Ray App Studio for creating apps, and a Ray Agent to talk with (an agentic wrapper) that accumulated a memory for your Ray Profile.
I spent the last six months heavily pivoting to research & development — studies on how the browser could be made to work with you, instead of being the age-old "browser that never changes." That kicked out a lot of prototypes and ideas, and I'm still on this road of thinking: how could automation and workflow really be used to bring automation to the rest of us?
I was also heavily involved in building a Discord bot and a Telegram bot for using the Ray App Studio — which was frankly amazing — and built a lot of internal tools along the way.
Across the role: manual and UX testing of the Chromium-based agentic AI browser (macOS and Windows); focus on usability, workflow optimisation, intuitive keyboard shortcuts, Picture-in-Picture, and agentic-browsing flows; experiments on embeddings, encodings, knowledge/hypergraphs for better recommendations; memory-system architecture for long-running sessions; evaluating pull requests, suggesting features, and working directly with developers and the product owner.
Third Softability assignment — a consultancy job via Softability. Client: Aiforia, an image-analysis platform for medical pathology research.
Manual QA testing of their family of products — Hub, Create, Reporting Plugin, Connector, Clinical — across multiple browsers. An extremely complex family of products, so I focused on finding usability issues and bugs, posing UX/UI questions to designers and product owners, and hunting typos.
Code-repository access for tracing bugs to their source lines; documenting workflows and environment details for future tester onboarding; assisting and advising new testers; archiving test images; clarifying test cases; triaging bug tickets; 1-on-1 with developers and designers on the complex platform internals. Regression and smoke testing of new versions, including macOS-emulated Windows environments for stand-alone Windows-only apps.
Ellie is a cloud-based data-modelling app (keywords: data vault, data warehouse, conceptual modeling). I provided manual, exploratory and regression testing for the web app running on Edge, Chrome, Firefox and Safari.
Worked remotely throughout.
I worked as a freelance manual + user-experience tester of two Unity-based games for Android and iOS — the first a card-collecting game, the second an idle miner.
Pixel-by-pixel attention to detail, reporting issues via GitHub, HackNPlan, Jira and Slack. Taking video, recording animated GIFs, posting steps to replicate, and testing to make sure fixes got in properly and didn't break something else. Minor copywriting to correct grammar issues. Analysis of FTUE videos from PlayTestCloud. UX improvement suggestions. Tutorial-flow issue reporting. Regression testing for new builds on TestFlight and direct sideloading.
HBO Max launched on 26 October 2021 in the Nordics, and I was part of a large team of in-country testers — the only Finn. So the testing of Finnish localization across a multitude of platforms fell on me. But that wasn't all: the whole app had to be tested on iPhones, iPads, Apple TV, Android tablets, Android mobile, Chromecast, NVidia Shield Pro, Samsung Smart TV and obviously Chrome, Firefox, Safari.
We went through the major Nordic launch, then various discount offerings, and the season premiere and finale of House of the Dragon.
In the meantime I reported hundreds upon hundreds of metadata content issues — duplicate subtitle tracks, duplicate audio tracks, missing localized episode/film synopses, and adult material available to children due to invalid ratings conversion across regions. I went through the localization codebases for the mobile, Smart TV and tvOS flavors, and called out usability & UX issues. And, as a hobby, I asked enough questions to learn to use the HBO API to fetch metadata content directly from the database and compare it against what the live product actually showed.
Highlight — an automated hardware & content-database testing workflow (built solely by Esa)
I built Android Debug Bridge (ADB)–based automation tools for cycling through the 18,000+ assets in the Nordics — driving the physical NVidia Shield Pro to change languages and settings, search for content, navigate the player via URLs, and take screenshots of the MLP settings, synopsis, etc. This was not "automation testing" (automated test scripts); it was an automated workflow exercising the content database at scale to discover bugs the human testers and their test suites were not capturing:
Bug reports went directly to the database-ingestion specialists and the macOS / Apple TV / iOS HBO Max developers, who acted on them — a fast, appreciated feedback loop. It was a role I genuinely thrived in.
> "Esa has proven to be a valuable member of the test team and consistently identified high priority issues that needed to be fixed. With his wealth of technical knowledge and true passion for the application he is testing, he has been a stalwart champion for ensuring the highest level of quality for HBO. I wholeheartedly recommend Esa as a high end addition to any test team." — Matt Don, Senior Staff QA, Warner Bros. Discovery
Loved it there and miss it a great deal. The in-country testing team was cut at the end of 2022 amid Warner Bros. Discovery cost-savings. 10/10 would work there again.
The Softability tenure ran ~2019 → February 2024 across three client assignments:
XReach
Manual & automated testing of Softability's flagship product XReach, a WebRTC-based remote-support platform for technical assistance tailored to the client's needs: a technician calls an expert on a mobile device; the expert assists via annotated images, chat, audio and video.
QA / manual edge-case testing and user support. During my time at Vizor / Pixelface I worked on:
I maintained contact with beta-testers and clients of Vizor 360, assisted in maintaining our GitHub repositories (ticket editing, clarification, chasing issues), and helped plan milestones and sprints while reporting new bugs found through manual testing.
I first became aware of Grand Cru when they launched Supernauts for iOS. I ended up sending a few minor audio-related bug reports, which they quickly identified and fixed. I later applied and was accepted into the closed beta circle running on TestFlight — which led to playing and reporting bugs on four different game projects they were developing at the time.
They eventually narrowed down to two titles, and I made several feature requests and frequently brought replicable issues and graphical glitches to their attention. I also got to attend a brainstorming session for one of the titles at the offices, which was thought-provoking.
I started a two-month internship at Grand Cru and quickly got my feet wet using both Flowdock and Trello to communicate with the development team. I was tasked with analyzing PlaytestCloud recordings from casual gamers, writing and maintaining the game FAQ, and correcting and making minor adjustments to the game dialogue and character descriptions. And, obviously, hunting for bugs in the user interface and identifying issues with user-flow progressions and logic.
Maintaining direct contact — face-to-face and via chat — with programmers led to extremely productive, intensely dynamic days full of bug fixes, regression testing, identifying new issues caused by the fixes, and getting new features added. I thoroughly enjoyed my time as a QA intern at Grand Cru.
Finnish localisation of an iOS app, 2016.
When the company reached out to me regarding a three-month internship at (then) Music City, I jumped at the chance. Upon entering the studio, it turned out they had been developing an Adobe Flash–based music-making/music-learning application for the browser. The years flew by as I was heavily involved in testing the app, delivering accurate replicable bug-reports to the developers and then doing further regression testing.
I'd get given recordings of twenty (or more!) different instruments per day, and I'd chop, process, edit and implement them into the product, then test them to make sure they all played correctly (and that the crossfade loops were pleasant-sounding). I'd also create imaginary instruments from scratch and add them into the studio, and deliver loops for the shop so people could hear-before-they-buy.
At first all the JSON & XML work required to get the sounds playing from the server was done manually, but then I tapped the main developer for a very fruitful collaboration to streamline the process with various scripts, file-naming conventions and so forth. When it came time to create a multi-channel effect system for the app, I assisted with brainstorming, development and bug-reporting for increased stability.
Eventually my job description also included acting as Scrum master for a multi-country team (holding Sprint Reviews and Sprint Planning with the Product Owner), maintaining a database of passwords and access keys to all the servers and applications, installing OS X & iOS devices for new employees, creating welcome-sheets (SVN/Skype/Mail), keeping JIRA / Confluence up-to-date server-side and front-end, and transferring all accounts from Nebula to Google Mail…
…and learning Pure Data from scratch in order to create a dynamic audio engine for the iOS game Melody Monsters, while running a three-man team of PD coders and collaborating with the in-house Unity 3D developers.
Upon returning from a half-year sabbatical in Canada, I was glad to be tapped for my first job as a Tester / QA by Riot Entertainment Ltd.
At the time the company produced SMS-based games, similar to rock-paper-scissors. You'd send "XMEN A" and that A would be your choice in the game of X-Men, and you'd get a response as to how you were doing. But sometimes you'd get "Service not available" — that's when I'd spring into action and restart the application. That was my job at first: I had about six handsets with SIM-cards from various mobile operators, playing the games and restarting them if they had crashed. For that I also carried a laptop with a cellular PCMCIA card, whipping it out anywhere from the metro to restaurants and cafés.
That wasn't enough. I was fairly fast at it, so I branched out to updating the Lord of the Rings Content Management System with additional content and grammar fixes. I was eventually connected to the actual SMS delivery system and monitored it directly, connecting to servers in London and Singapore and manually restarting the games.
Things came to a head when Riot-E were about to do something Nokia said was impossible — launch an SMS game via fifteen different mobile operators in different countries, during Christmas. I was roped in to sit at home and make sure they all worked. They did. Then I was put in charge of single-handedly monitoring through all of the Christmas holidays, New Year's Eve and the day afterwards.
I also built and maintained an Excel sheet of the SIM-cards, PIN/PUK codes of various European mobile operators, and documented the process of setting up and maintaining the autonomic monitoring system. Riot Entertainment ceased business in April 2002 and had to lay me off.
Heikki Lindgren + Esa Ruoho — collaborative composition and live performance
Long-form ambient and drone material. Releases including Skathi-Dusk. Cross-fertilisation between Heikki Lindgren's compositional approach and the Lackluster soundworld.
Demoscene Competition Placings, 1998 – 2001
Placings in demoscene intro, demo, and 4K-intro competitions at European demoparties — productions I composed the music for (as Lackluster, and earlier under other aliases). The Finnish demoscene was added to the national intangible cultural heritage list by the Finnish Heritage Agency (Museovirasto, 2020) — recognition granted to the demoscene as a cultural form.
| Year | Production | Event | Country | Placing |
|---|---|---|---|---|
| 2001 | "lackluster: 13/10/99" | Assembly | Finland | 4th |
| 2000 | "h3o breather" | Elevator | Finland | 6th |
| 2000 | "kosmos7" | Trax | Norway | 1st |
| 2000 | "07/10/99" | Trax | Norway | 1st |
| 2000 | "different engine" | Demobit | Czech Republic | 2nd |
| 2000 | "lost vegas" | Ambience | Netherlands | 3rd |
| 2000 | "pluxity" | Takeover | Netherlands | 1st |
| 2000 | "sequences" | Assembly | Finland | 3rd |
| 1999 | "catch22" | The Gathering | Norway | 4th |
| 1999 | "encode\\decode" | The Gathering | Norway | 5th |
| 1999 | "bring it back" | Arf | France | 1st |
| 1999 | "clinique" | Icing | Sweden | 2nd |
| 1999 | "dolph" | Remedy | Sweden | 2nd |
| 1999 | "singularity" | Fiasko | Czech Republic | 5th |
| 1999 | "hiatus" | LTP | France | 3rd |
| 1999 | "autoseks" | Distance | Norway | 2nd |
| 1998 | "minimal" | Demobit | Slovakia | 4th |
| 1998 | "sin(x)" | The Gathering | Norway | 3rd |
18 placings, 4 international 1st-place wins (Norway × 2, Netherlands, France).
Documentary Soundtracks
Instrumental electronic music — 456 published tracks across three decades
268 releases across 131 labels — Merck Records (USA), Kahvi Collective, Monotonik, Psychonavigation (Ireland), deFocus (UK), Project Mooncircle, n5MD, and many more — on vinyl, CD, and digital, plus self-publishing via Bandcamp, Apple Music, Spotify, and Tidal. Live performances, interviews, and radio appearances. Free-energy research is woven into release names, artwork, and timing (Repulsine EP, The Cold Trail EP, Lexicon of Goods — full proceeds to cold-fusion research).
Directed by Ruby Carat — French LENR researchers, nanopowder catalysts for clean energy. Watch
Directed by Nadia Zanellato and Gio'Gatto — Sophie Dickens's drawings, sculptures, and paintings. Watch
Directed by Ruby Carat — nano-gap and hydroton theory of Dr. Edmund Storms (retired, Los Alamos National Laboratory). Watch
Life-art and dance performance held four times. Improvised dance and soundtrack with crowd participants becoming reef inhabitants.
Interviews with LENR / CANR / Cold Fusion scientists conducted by Ruby Carat
Composed the theme. Edited spoken-word interviews. Produced commercial spots for new symposiums and meetings.
Other Commissioned Music
Opening-day improvised performance with sculptures and photographs by Mari Miyamoto
Directed by Ruby Carat — Navy LENR series, theories of Dr. Melvin Miles. Watch
Vietnam Bear Rescue Center, Animals Asia NGO — premiered at Cinemambiente Festival, Torino. Watch
Dance and Installation Performances
Improvised ambient soundtrack using scissors and other kitchen utensils
Performance Art Festival Sequences — Dutch–Icelandic collaboration, the way children see us at 2 years old
Modern-dance film with Wilma Mehtonen, Brabková, Lankinen, Rantanen — Köydet Irti! festival, Turku
Exclusive game by Zero41 Interactive for the Scitech Discovery Centre, Perth, Australia
Sound effects and short music loops for the introductory Shockwave animation
Modern dance for two with Wilma Mehtonen, Kerola, Keisanen. Shown at Dance Explosion Vol II (Turku), Fontys Dansfestival (Netherlands), Kajaani Choreography Contest
Podcasts and Webinars
| Year | Topic | Venue |
|---|---|---|
| 2025 | Paketti technical demonstration | Synthcamp, Kemiö |
| 2016 | Kuuluuko vapaa ja loppumaton energia lähitulevaisuuteemme? | Rajatiedon Keskus, Helsinki |
| 2006 | Obscure Vibrations in Electronic Music | University of Helsinki (Intelligent Dance Music study group) |
| 2001 | Netlabels & Tracker-based music composition | Ars Electronica, Austria |
| Domain | Detail |
|---|---|
| Testing | Exploratory, regression, smoke, localisation, UX/UI evaluation, cross-platform (iOS, Android, tvOS, Web, Smart Glasses, VR headsets) |
| AI tooling | Claude Code (excellent), Cursor (excellent), Gemini (excellent), Codex |
| Development | Lua, Bash, AppleScript, Automator, Swift (basics), Xcode (basics), Git/GitHub, CI/CD |
| Audio | Renoise (expert), Logic Pro X (expert), Ableton Live (expert), Pure Data, sound design, field recording |
| Apple platforms | macOS (expert), iOS (expert), Automator, AppleScript, Shortcuts, App Intents, plistlib, scripting dictionaries, vocal shortcuts |
| Other platforms | Android, Windows, ChromeOS, Linux (basics) |
| Project tools | JIRA, Trello, Confluence, Slack, GitHub Issues/PRs, Postman, Gherkin |
| Media | iMovie (expert), Final Cut Pro X, Keynote, Pages, Numbers, InDesign, Mailchimp |
| Languages | Finnish (native), English (fluent), Swedish (basics) |
| Date | Course | Provider |
|---|---|---|
| 10/2019 | Tutkivan testauksen työkurssi | Maaret Pyhäjärvi / ALMA |
| 10/2019 | Nopea Ohjelmistotestaus | Antti Niittyviita / Prove Expertise Oy |
| 09/2019 | Smart Testing Discovery | Saranen Consulting |
| 10/2016 | Google Analytics ja Adwords | Apple-käyttäjät Ry |
| 03/2014 | Pure Data / Raspberry Pi Audio Programming | CC4AV.info |
| 09/2011 | Taiteilijoiden Tukikone VII | Aalto PRO |
| 05/2008 | Viihdealan Avainhenkilöstön Koulutus (VIPA) | Omnia / BMMP Oy |
Dr Chris Nash — nash.audio (Cambridge PhD) "With his encyclopaedic knowledge of tracking as a craft, a keen eye (and ear) for detail, and a rigorous and methodical approach, Esa has a deep appreciation of the creative user experience — and the nature of digital virtuosity."
Andy Lemon, SFHEA — London South Bank University "Esa's work so far on Paketti is nothing short of incredible, with the tool now pushing the boundaries of what is possible in audio and music sequencing, live performance and experimentation. This work is riding at the cusp of the extreme cutting edge of audio experimentalist sound software."
Markku Reunanen, FT — Aalto ARTS / University of Turku "Juuri näitä kehityskulkuja, avoimuutta ja uudistumista, edustaa Esa Juhani Ruohon Paketti-hanke." (These very developments — openness, renewal — are what Esa Juhani Ruoho's Paketti project represents.)
Matt Don — Senior Staff QA, Warner Bros Discovery "Esa has proven to be a valuable member of the test team and consistently identified high priority issues. When we saw an issue raised by Esa we trusted it would be a clearly detailed report and a valid bug we needed to prioritize. I wholeheartedly recommend Esa as a high end addition to any test team."
Risto Holmström — Head of Design, Pixelface "Esa is the Swiss army knife of development. Remarkably diverse, knowledgeable and useful. His profound ability in QA is underpinned by a natural understanding of user experience, priority and development process. If you're looking to ship products that not only work but are also great, you need to have Esa on board."
Georgi Marinov — UI Lead, Pixelface "By the time automated testing needs to answer 'what to test,' Esa will have found nine out of every ten bugs in your product and would be working on documenting the rest."
Ben Furman — Designer of Kids'Skills, Helsinki Brief Therapy Institute "Esa is naturally talented in spotting mistakes and design flaws. Reading his comments is an aha-experience. Of course! Why didn't I think of that?"
Ruby Carat — Author, Filmmaker, Cold Fusion Now! "He created new sounds that followed the storyline and also provided space between scenes that let viewers think. I love the ambient electronic style he does so well and it was a great match to the heavy science content."
Toni Mustonen — Director of Music Development, SongHi Entertainment "Esa has a great ability to multitask and concentrate on different creative tasks at the same time. He is a very capable study, experimenting and performing new tasks at a mindblowingly rapid pace."
Russell Dewdney — Technology Director, Riot Entertainment Ltd "It became very evident that Esa was being under-utilized in this basic role and he very quickly became involved in several other projects. Esa is reliable and once given a task he will implement it quickly and efficiently."
Wilma Mehtonen — Dance Choreographer "He has shown great artistic talent by being able to compose music that supports the methods of both film and dance. Esa Ruoho performed his tasks in a highly professional and creative fashion."
Esa Ruoho worked in the role of Senior Quality Engineer in Softability Oy for the period of 2nd of December 2019 to 15th of January 2024.
During this time, he participated in customer projects in the role of Senior Quality Engineer.
His main responsibilities were:
- Test Management
- Test Design
- Test Implementation
- Test Automation
In his work Esa proved to be a hard-working person with excellent skills in quality assurance. He was able to handle his responsibilities always in a prompt and orderly manner. In addition to being a skilled professional, it was always a pleasure to work with Esa.
Esa has a relentless focus on SW quality. He worked successfully at our clients' manual testing assignments in an AI product scaleup company, big pay television network corporation and our own SaaS product for industrial video based remote support. Esa's drive for finding bugs as well as getting them fixed by developers is strong. He emphasizes clear, understandable and timely reporting of found issues, how to replicate them for testing purposes and the work done by developers to solve them. Good communication and patience is key to success here as well.