
Portfolio
Smaller apps live in the coding blog below.
Desktop: Industrial Measurement Solution + Realtime automation
Desktop: JPEG Autorotate photo rotating app
UX Design Concept: Learnable Regular Expressions
Online store redesign for enhancing discoverability
Mobile alarm clock sure to wake you up: EvilAlarm (Qt/QML)
Web UI redesign: Moodle Quiz UI Redesign
Mobile game: The Great Boogie Hunt
Web: Electronic Exam Solution (2006)
Desktop Diagram App: ReDash (Java)
UX blog
Why I do software or anything at all
In my work as designer and developer I keep coming back to this question: How…
The Why and the How: Usability testing
When creating a digital service, there is often a rush. Often we want user-friendly experiences…
Conceptual Modeling: A key to better communication while building complex systems
Understanding the core concepts and their interrelationships is the foundation of any software system. Misunderstandings…
The Risks of Modal User Interfaces: A Deep Dive
Real life example: “Sorry not sorry” I love how much power understanding the fundamentals of…
Product & framework thinkers: Case studies. And how about AI?
2023-06: Updated to include concrete examples and to discuss AI/Large Language Models (LLMs). Developers and…
Rethinking Usability Education: Bridging Theory and Practice
Introduction During my working life I’ve taught some trainings and lectures on UX and courses…
User Experience Design in Open Source: Inviting the Users
6 min read Listen (requires a Medium account) In any software project, we need to…
UX Design Concept: Learnable Regular Expressions
Read article now → Reach: 91K~1700 recommendations (Hacker News, Reddit, Twitter & Medium) Regular expressions…
Test driven development and usability testing
See also: Usability and being human blog Robert Martin spoke charismatically about test driven development…
UI Design: Balancing User Needs with Progressive Disclosure
The Problem As your platform matures, the number of features inevitably increases. While some users…
Coding & education blog
How to always get maximal debugging output for SQL queries in Qt
I tend to always forget how to use prepared statements, so I generated this little…
Thoughts on concurrency and ubicomp development
Not actually my devices, in case you were wondering It has…
Qt Widgets Password Dialog with Caps Lock Check
Checkout on GitHub This is a dialog. There’s really nothing very particular about it; just…
App: Merge Qt translation files
Checkout on GitHub Sometimes you can end up in a situation where you have multiple…
Adjust QTableView height according to contents
Sometimes we need to show all contents and get rid of…
Getting Twincat XAE to function on MacBook Pro
I finally got sick and tired of all my windows laptops breaking physically one way…
Web: sleepCal
A sleeping calendar for circadian rhythm disorder patients (G47.2). Built for a friend in 2012….
Advice for someone getting started with learning Qt
Spend as much effort as possible in learning to use Qt’s Model View Delegate functionality….
Connecting radio buttons to QSqlTableModel in Qt
You would guess this would be pretty trivial. Guess again. I was looking for a…
Future proofing learning in software development
Authors: Olli Savolainen and Daniel Schildt Olli: In my opinion, it is important in the…