Your desk, your atmosphere. Spotify has its own player controls.
No track selected
Sound is off. Always your choice.
SpotifyPetteri’s rotation
Loading Spotify…
Spotify stays in stereo in the room. For the 3D headphone effect, choose a local music file in Sound mixer. Spotify may offer previews depending on your session.
CVResume
PETTERI HELTTULA · PRODUCT DESIGN & AI DESIGN ENGINEERING
Resume
I turn messy product problems into clear, useful things that work.
Focus
Product design, UX, interaction design, AI design engineering, and validation.
This portfolio is the living version of my resume: open the projects to see the decisions behind the work.
MDHow I work.md
# HOW I WORK
Stay curious. Keep it useful.
I like testing new software, new ways of working, and different ways of looking at the same problem. Curiosity is useful when it changes what we notice, what we make, or how clearly we can explain a decision.
Start with the question
Design is not only about the interface. I am more interested in why people decide to do something, what makes them click one button instead of another, and what the surrounding system is asking them to understand.
Use the tool that fits
I am not attached to a particular stack or app just because that is how it has always been done. I also do not change tools just to look different. I keep what works, test what might work better, and let the problem set the direction.
Build a small team when it helps
I use agentic AI as part of the workflow, sometimes as a set of focused collaborators: a research agent, a builder agent, and a PM agent each handling a different kind of work. Not every project needs its own team. The point is to create useful momentum, not extra ceremony.
Keep a lab running
Lately I have been spending a lot of time with local LLMs and building a small AI tech lab on my machine. It is a place to test models, tools, and ideas close to the work instead of treating AI as a separate layer added at the end.
Stay close to the reason
I use Figma less and less, even though design is still a big part of what I care about. The UI itself has never been the whole point for me. I like tools that keep the reasoning close to the making, which is why I have been enjoying Paper Design and its simple Codex → Paper → Codex loop.
— Petteri
TXTNotes.txt
PLAIN TEXT · AUTOSAVED LOCALLY
Your notes stay in this browser on this device.
Chess
Lichess #pOTFc
Can you find checkmate?
Black to move. Find the one move that ends the game.
1693Lichess rating
Black to move. Find checkmate in one.
47... f5#The pawn check is protected by the rook, so the king has no legal escape.
Loading the workspace…
A mind between design & technology.
Petteri Helttula
a work in progress.
I combine psychology, design, code, and data to turn messy product problems into things that work.
Early interface direction: spatial context, sport filters, and route planning.
Current focus
The project is exploring how an isometric city view can help people understand sports venues in context instead of treating them as a flat list.
Work in progress · More to come
PRODUCT DESIGN · WORK IN PROGRESS
KorisIQ
Making Finnish basketball data easier to explore, understand and use, starting with the Women's Korisliiga.
Temporary visual direction for shot context, player ability, and historical performance.
Current focus
KorisIQ is still being shaped around the questions that matter during analysis: what happened, why it happened, and what to try next.
Work in progress · More to come
MINI PROJECT · WORK IN PROGRESS
Spire Coach Mod
A data-driven Slay the Spire coaching mod that turns gameplay mistakes into lessons without taking decisions away from the player.
An early visual placeholder for the coaching mod.
Work in progress · More to come
Case no. PH—001Main case / In development
Digital wellbeing · Product design · iOS first
Selected case 01
Brio
Interrupt the scroll. Move. Continue intentionally.
Question
How might doomscrolling be interrupted without treating social media as the enemy?
Evidence
Scrolling often continues without a conscious decision to keep going.
Finding
A short physical interruption can create a clearer moment for choosing what happens next.
Decision
After 20 minutes, introduce a brief movement break before the user chooses whether to continue.
Core product stack
React NativeProduction app
MediaPipePose tracking
SupabaseBackend & data
Somewhere between a profile sticker and a product system.
I discovered UX/UI design at 26. Looking back, the combination of designing and building had been important to me for a long time already.
Before UX had a name for me.
My first UX/UI experiments happened almost twenty years ago in Habbo, when I was shaping my public profile with stickers and trying to make a tiny page feel like mine.
This is not my old profile or character. It is an archival stand-in for the profiles that are no longer available.
Later I found the first places where I could create my own blog pages. I was about ten, so they mostly contained images and text, but the instinct was already there: choose what people see, arrange it, and make a small corner of the internet feel personal.
That thread eventually became a real design practice. I just did not have the vocabulary for it yet.
People have always been the interesting part.
I have been hooked on behavioral psychology since childhood, when Tim Roth's microexpression expert in Lie to Me got me asking why people do what they do. I bring that same curiosity into UX.
Accessibility is personal.
Being red-green colorblind means accessibility has always felt personal, not like a checklist. I care about interfaces that stay clear when real people, real contexts, and real constraints enter the room.
Analytical, rational, reflective — and a dreamer.
I tend to say what I think, make my perspective clear, and ask questions when the easy answer feels too convenient. I like being precise without closing the door on imagination.
I love learning something new.
New subjects, tools, places, and perspectives keep me moving. I like the feeling of not knowing enough yet, then slowly building a better mental model.
Outside the screen.
I enjoy being a spectator, especially when there is a basketball game to follow. I like live music, playing darts, looking at art, and getting pulled into a good true crime story.
There is always more to learn.
I like the feeling of not knowing enough yet. It keeps me open to new subjects, new places, and the next unexpected connection.
BasketballLive musicDartsArtTrue crimeLearning
Responsive web app · Junior football
Peluutin
Less stopwatch. More coaching.
A user-friendly web app for managing junior football: track substitutions, playing time, formations, goals, and match history, while creating and sharing clear training exercises.
The training planner supports both 2D and 3D views and reuses teams already created in Peluutin.01 / Starting point
A real sideline problem
The first users are my girlfriend and another junior football coach. During a match they need to manage substitutions, goals and playing time without letting the tool take attention away from the pitch.
The primary context is mobile use at the sideline, while team setup and reviewing saved information also need to work on a larger screen.
02 / Working core
Match-day control without a spreadsheet
Create teams, players and formations
Manage substitutions and positions
Track goals, scorers and individual minutes
Export saved playing time to Excel
Use light or dark mode for different contexts
03 / Next phase
From matches to training
The premium direction is a desktop and tablet exercise builder. Coaches can switch between 2D and 3D, place existing players on the pitch and describe movement through visual routes.
This part is intentionally shown as an active build. The next case iteration should document the interaction model, first coach feedback and what belongs in the smallest useful release.
Service Design / Retail UX
S-Hävikki
Overview
A food waste reduction concept for S Group's retail environment, designed to reduce waste, save money, and make near-expiry product checks less frustrating for store employees.
6 min read
My role
Product designUX designService designBrand direction
Status
Concept and prototype scope, 2026
Project Takeaways
What I explored
How near-expiry products could become easier to find, handle, and choose through a connected employee tool, branded in-store point, and digital extension.
What is worth preserving
The strongest part is the practical system thinking: the concept connects store operations and customer behaviour instead of treating food waste as only a campaign message.
What needs validation
The risky assumption is that better visibility will change behaviour enough. The next step should test placement, signage, and employee workload before adding more features.
Problem framing
Finland has already made meaningful progress around food waste. Grocery stores discount near-expiry products more visibly than before, consumers are more used to buying them, and the topic is no longer hidden in the background.
This project does not frame food waste as an ignored or unsolved crisis. The opportunity is more practical: if the category is already moving in the right direction, how could design help stores make the next step easier?
The context matters: The Finnish Grocery Trade Association cites Natural Resources Institute Finland estimates showing that grocery retail accounts for around 15% of food waste in the Finnish food chain, about 53 million kilos. At the same time, retail has improved heavily: the same source reports that PTY member companies' food waste averaged 1.0% of food volume in 2024, and S Group says its grocery food waste fell 31% between 2014 and 2024.
The bigger reason for the project is simple: reduce waste while saving money, time, and unnecessary stress. If fewer products are thrown away, stores lose less value, customers get better deals, and the environmental impact becomes smaller.
The more technical problem sits inside the daily work. Checking expiry dates is still a surprisingly manual and old-fashioned task. Products close to expiry need to be found, discounted, moved, and followed up consistently during busy store routines.
There is also a customer experience challenge. Near-expiry products can still be scattered, visually inconsistent, or treated like leftovers. Even when the discount is attractive, the product can feel like a compromise instead of a smart choice.
Who this is for
Store employees responsible for expiry checks and customers who are open to discounted food when it feels easy, trustworthy, and normal to choose.
User situation
Employees need to find and handle near-expiry products during normal store routines, while customers notice the products only if the in-store signal is clear.
Success would mean
Fewer missed products, faster handovers between employees, better pickup of near-expiry items, and less waste without adding a heavy new process.
Design challenge: build on existing progress by making date checking faster, less frustrating, and more reliable for employees while making near-expiry products easier for customers to choose.
Problem boundaries
A key assumption to avoid is that discounted products do not sell. In many Finnish stores, red-label products already move well and can disappear from shelves quickly. That changes the design problem.
S-Hävikki is not trying to convince customers that discounts exist. The sharper problem is how to support the store work around expiry checks, make the remaining products easier to handle, and avoid promising availability that may change minute by minute.
That means the digital layer should not behave like a reservation system. If only one or two products are available, or if they may already be in another customer's basket, the app should show broad, time-sensitive signals rather than exact future availability.
Context
This concept grew out of my own experience working in grocery retail for more than four years. During that time, I saw how much of the work around expiring products depended on manual checking, employee memory, shelf familiarity, and local store habits.
The frustrating part was not only that the process took time. It was that the work could feel repetitive and unnecessarily hard to keep track of, especially when the store was busy and the same shelves needed to be checked again later.
I had earlier suggested separating near-expiry products into dedicated displays near checkout. That type of display now exists in many stores, which is a good sign: the market has already moved. It also makes the remaining opportunity clearer. Visibility helps, but it does not fully solve the employee workflow or create a consistent branded experience.
Opportunity
S Group is a good base for the concept because it already communicates sustainability through initiatives such as Tekosysteemi, and because its cooperative structure makes chain-level rollout easier than a store-by-store model.
The opportunity is not to invent a completely new waste process or dramatize the current situation. The sharper direction is to package existing behaviours into a clearer system: identify products earlier, move the right products into a visible point, and make the customer-facing message feel intentional.
Solution
S-Hävikki is a connected retail concept with three parts: an employee shelf-mapping tool, a branded S-Hävikki point in store, and a lightweight section inside the S-kaupat app.
The system is intentionally practical. The value does not come from one big feature. It comes from reducing friction at the exact moments where food waste is created: when employees need to find products, when stores need to present them clearly, and when customers decide whether they are worth picking.
For employees, the goal is not just speed. The tool should make the task feel easier to start, easier to continue, and easier to hand over to someone else.
01 Employee shelf-mapping tool
The employee tool is designed as software for the existing store tool ecosystem, not as a separate device requirement. The most realistic first version would run on the handheld scanners or internal tools employees already use.
The interface is built around a simple shelf map that mirrors the physical product layout. Instead of checking items one by one without a clear overview, employees can see which shelf areas need attention and act faster during daily routines.
The intended flow is narrow:
Open the S-Hävikki tool during the daily shelf check.
See highlighted shelf sections with products close to expiry.
Check the matching physical products.
Choose the next action: discount, move to the S-Hävikki point, or mark as handled.
Update the status so the next employee can see what has already been checked.
This avoids turning the first prototype into a full inventory system. The first job is to support one repeated task well.
UI prototype direction
The shelf map is designed to work one shelf unit at a time. In this early direction, each square represents one physical shelf section. The colour shows whether that section needs attention, while the back action takes the employee to a broader department map if the device needs to be used elsewhere.
Hävikki
Milk shelf map - Unit 4
Dairy department > Milk > Unit 4
2 sectionsneed checking · Unit 4
Top level
1
2
3
4
5
Bottom level
Department map
Hylly 2, osa 2
Amount1
Product groups
Product groups and shelf units can be edited from store or chain-level settings so the shelf maps stay consistent across devices.
The coloured areas show how each square in the tool can represent one physical shelf section.
Green: no action needed
Brown: 2-3 days left
Red: act now
02 Branded in-store point
The S-Hävikki point is the customer-facing part of the system: a dedicated cooler, shelf, or display near checkout or another high-traffic area. Its job is to make discounted near-expiry products quick to scan and easy to understand.
The customer value should stay concrete: save money, find useful products quickly, and feel confident that choosing them is a normal, practical choice. The concept should not rely on guilt or a dramatic sustainability message.
The point should communicate three things immediately:
These products are still good to use.
Choosing them saves money and reduces waste.
The selection changes often, so it is worth checking regularly.
For the first version, the physical setup should stay lightweight: branded signage, a consistent label system, and a clear product zone. A custom installation can wait until the behaviour change is proven.
The branded point turns near-expiry products into a visible, intentional store touchpoint instead of a scattered discount area.
03 S-kaupat app extension
The app extension would give S-Hävikki a digital surface without making the app carry the whole concept. The most useful first version would be a simple section for nearby S-Hävikki availability, selected product categories, or store-level reminders.
This should stay secondary in the first version. The in-store flow matters more because near-expiry products are still physical, time-sensitive, and dependent on store handling. The app is useful only if it supports that reality instead of promising exact availability the store cannot maintain.
To avoid a broken customer promise, the app should avoid exact future claims like "available in three days". A safer model would show live or near-live category signals, such as "S-Hävikki products available today", and hide the section when availability is too low or uncertain.
Prototype scope
The prototype is scoped around the employee workflow instead of a new physical device. That keeps the work close to the real store environment: employees already use handheld scanners and internal tools, so the first version should prove the interaction model before adding hardware.
Core prototype: shelf map, expiry highlights, item status, and simple actions for discount, move, or handled.
Physical concept: a branded shelf or cooler with simple signage and consistent labels.
Out of scope for version one: custom hardware, advanced inventory integrations, personalized app alerts, and complex customer rewards.
Scope principle: prove the workflow and in-store behaviour first, then decide whether a dedicated device, deeper app integration, or more automation would actually improve the system.
Validation plan
I would validate the concept through a small pilot before designing a more polished system: one store, one or two product categories, and a short test period of one to two weeks.
Employee test: compare a normal shelf check against a mapped checklist prototype. Measure time, missed items, and how often employees need to re-check the same area.
Customer test: place the same discounted products in the current location and in a branded S-Hävikki point. Compare noticeability, pickup rate, and shopper understanding of the offer.
Availability test: check whether the app can show useful signals without creating false expectations when only a few products are available.
The important metric is not whether people like the brand idea in theory. The useful signal is whether the system reduces missed products, makes the task feel easier for employees, and increases actual selection without confusing customers.
Operational metrics: shelf check time, missed near-expiry products, repeated checks, and handover clarity between employees.
Customer metrics: noticeability, pickup rate, perceived clarity, and whether the display feels useful rather than gimmicky.
Business and impact metrics: value recovered from discounted products, reduction in unsold near-expiry items, and whether the process fits normal store routines.
Reflection
The strongest version of S-Hävikki is not a big app idea or a custom hardware pitch. It is a small retail system that connects employee action with customer discovery.
The concept still needs evidence. The biggest risk is assuming that branding and placement alone can overcome real operational friction. That is why the prototype should stay narrow: prove the employee flow and the in-store point first, then decide whether the app and hardware deserve more investment.
Chrome Extension / Reading Support Experiment
Tahti
Tahtinoun pace, rhythm
Overview
Tahti is an experiment in reading selected text one word at a time at a controlled rhythm. The goal is not to prove that this is a better way to read everything, but to test whether pacing can make starting, focusing, and staying with text feel easier.
Whether a one-word reading mode can reduce the friction of starting a longer text and help the user stay with a controlled reading rhythm.
What is worth preserving
The strongest decision is the narrow MVP: selected text, overlay reader, pace control, pause, rewind, and basic comfort settings.
What needs validation
The risk is comprehension. Tahti may help focus, but it can also remove sentence structure, scanning, and context that normal reading depends on.
Problem framing
Some reading problems start before comprehension. A long block of text can feel heavy before the first sentence is even read. Tahti looks at that starting moment: what if the interface reduced the visible amount of text and gave the user a simple rhythm to follow?
The starting point is personal: I have mild astigmatism, and ADD makes sustained reading focus harder for me at times. I am also not a particularly fast reader in the traditional line-by-line format. In my own use, Tahti has helped in some situations by reducing visual load, giving the reading session a clearer pace, and letting me move through text faster than I normally would. That is a useful signal, but not enough evidence on its own.
The product should not be framed as a speed-reading promise. Reading one word at a time can remove useful context, make backtracking harder, and flatten the natural rhythm of paragraphs. A more honest direction is reading support: pace, focus, and temporary structure when ordinary reading feels demanding.
Who this is for
People who struggle to start or stay with dense text, especially when the barrier is visual load, focus, or reading fatigue rather than lack of interest.
User situation
The user has found a long article, notes, or documentation page and wants to read one selected part without leaving the current page.
Success would mean
The user starts reading faster, stays with the text longer, and still understands enough for the pace tradeoff to be worth it.
Product principle: Tahti should help users control reading pace without pretending that faster reading is automatically better reading.
Why a Chrome extension first
The first useful test does not need accounts, a mobile app, reading streaks, PDFs, or AI summaries. It needs one core behavior: select text on a web page and read it in a focused overlay.
Selected text keeps the MVP technically small and gives the user control. Full article parsing can wait, because web pages contain headings, images, tables, embeds, code blocks, and layout patterns that would quickly turn the first version into a parser project instead of a reading experiment.
Research context
Tahti sits close to a known reading method called Rapid Serial Visual Presentation, or RSVP. The basic idea is not new: words or small chunks are shown sequentially in one fixed visual position, reducing the need for eye movements.
The evidence is mixed, which is exactly why I want to keep the product claim careful. A mobile readability study found that RSVP formats increased reading speed for short texts without significant differences in comprehension or task load, but longer texts increased task load. A study of Spritz-style RSVP found weaker literal comprehension and more visual fatigue, likely because users lose rereading, parafoveal preview, and some natural control over pace.
There is also a relevant accessibility angle. Research with visually impaired readers has found faster reading with dynamic text presentation, including RSVP, compared with more traditional page-style presentation. That does not prove Tahti works for attention or focus, but it supports the idea that alternative text presentation can be worth testing for specific reading constraints.
Design implication: Tahti should be tested as reading support for specific situations, not positioned as a universal speed-reading tool.
MVP scope
The first build is a framework-free Chrome extension. The user selects text, launches Tahti from the context menu or extension popup, and reads the selection one word at a time in an overlay.
Core reader: one-word display, play, pause, reset, back 10, and next 10.
Pace control: WPM starts lower, warms up toward the chosen pace, and pauses slightly longer after punctuation.
Comfort settings: font size, dark/light mode, and a short countdown so the first word is not missed.
Out of scope: accounts, analytics, streaks, mobile app, PDF support, AI features, and automatic article extraction.
Select text
Right-click
Read with Tahti
Set pace
Read
Pause or rewind
Return to page
Design detail: pacing
A fixed WPM setting was not enough. Reading rhythm depends on punctuation, word length, and language.
Instead of advancing every word at the exact same interval, Tahti gives slightly more time to sentence endings, soft breaks, and longer words. The first words also start slower, helping the reader settle into the rhythm.
This was a small implementation detail, but an important product decision: the goal was not just speed, but a pace that still feels readable.
Interaction decisions
The reader UI has one main job: reduce eye work. If the user only gets a short countdown before the first word appears, they should not have to scan the edges of the screen to understand controls, progress, or current state.
The current prototype keeps the reading word, controls, and progress close to the user's central focus.
The current direction keeps the word, controls, and progress in one central reading stack. WPM and font size use compact sliders instead of stepper buttons, because the steppers made the overlay feel too much like a control panel.
The first version required opening the extension after selecting text. Moving launch into the right-click menu removes that extra step.The first overlay exposed settings, but split attention across too many areas.The later version pulls progress and controls into a tighter reading stack.
Risks
The main UX risk is false usefulness. Tahti may feel calmer while also reducing comprehension. One-word reading removes many things people normally rely on: sentence shape, paragraph rhythm, quick back-scanning, lists, visual grouping, and the ability to slow down naturally when the content gets harder.
That is why the project should stay in experiment mode until it is tested with real reading tasks. The useful question is not "can this move words across the screen?" but "does this help the user start, continue, and understand enough to make the tradeoff worth it?"
Next step
I would keep the next version narrow: use Tahti on real articles, notes, and documentation, then log where it helps and where it damages understanding. After that, I want to run user testing to understand whether the need exists beyond my own reading habits and whether the interaction helps other people with focus, visual load, or reading fatigue.
If that signal is positive, the next feature worth exploring is article mode with pauses for headings, images, tables, and other elements that should not be forced into a one-word stream.
Validation questions: do I start reading more easily, stay focused longer, understand enough, feel less tired, and know which text types are clearly wrong for this mode?