Slipmat · FireOne · Lemonade
Software engineer · product systems · interaction
I design and engineer systems that make complex behavior understandable.
My practice moves between product design and software engineering. Projects begin with observation, questions, sketches and working experiments. Promising ideas develop through explicit models, accessibility, performance measurement and repeatable verification, so exploration and implementation remain part of the same process.
Selected work
Selected projects and working methods.
Each case study describes the problem, the design process, the experiments and the engineering decisions that shaped the result. The emphasis is on how observation becomes a model, how a prototype becomes evidence and how proven behavior becomes part of a durable system.
Signal Broker · Defend · QMK / Vial / Halcyon
Booking · Inventory · Timeline
Kullaberg · Investigation Workbench
Slipmat
A playback-first multimedia client for owned and self-hosted media. Slipmat treats playback as an explicit system: one authoritative timeline, inspectable source and generation identity, a persistent Playback Rail, native audio processing, visualization and music analysis across Jellyfin and local media.
Private · active product development Read case studyFireOne
A submarine tactics game about uncertainty, geometry and commitment. Its Rust simulation separates world state from player and AI knowledge, using deterministic ECS behavior and sonar-driven incomplete information to make perception part of the simulation.
Private · playable pre-release Read case studySignal Broker
A vehicle-network development stack that exposes CAN, LIN and related buses through gRPC. Its browser client adds gRPC-Web and WebSocket access so live frames and decoded signals can be selected, inspected and charted interactively.
Read case studyDefend
A browser-based 3D tower-defense project combining procedural behavior, physics, AI, projectiles and generated sound. The current work uses the earlier playable build as evidence while the underlying systems are studied and modernized.
Read case studyQMK / Vial / Halcyon
An integrated split-keyboard system spanning QMK/Vial firmware, Halcyon TFT and encoder behavior, a typed Raw HID configuration contract, Vial host tooling and a visual Keyboard Atlas that models the physical Ferris geometry.
Public · active development Read case studyLemonade
A reconstruction of the classic Lemonade Stand around pricing, inventory and advertising under changing weather and market conditions. Deterministic simulation allows visual, audio and economic experiments to be compared from the same starting state.
Public · active development Read case studyBooking
A configurable booking platform that models appointments, capacity reservations and stays as related scheduling contracts, with auditability and supply-chain evidence designed into the workspace.
Public · active development Read case studyInventory
A local-first inventory PWA for check-out, overdue accountability, offline work, backup and export, with a clear history of items and responsible entities.
Public · active development Read case studyTimeline
A responsive workspace for events, ranges, categories and stories. It studies how factual chronology can support structured narratives while keeping source events explicit.
Public · active development Read case studyAdditional studies
Kullaberg digital ecosystem
Offline-capable, bilingual visitor software for a Swedish nature reserve, spanning mobile trail guidance, information-desk presentation and citizen-science participation.
Read case studyInvestigation Workbench
A local-first graph and knowledge-review workspace that separates source evidence, machine-proposed candidates, reviewed canonical knowledge and deterministic graph and timeline projections.
Private · architecture case study Read case studyProfessional thread
Design practice informs the way I engineer software.
My background connects graphic design, multimedia production and teaching with public-service software, large planning interfaces and systems engineering. I approach code as a design material: a medium for clarifying relationships, testing assumptions and shaping interaction.
Historical public material documents frontend application work for Länsstyrelsen Skåne and earlier leadership in design, multimedia and university teaching. Public LinkedIn material also documents close collaboration around the rebuilding of IKEA Kitchen Planner and IKEA Planner tooling using React, TypeScript and accessibility-focused frontend engineering.
Each stage added another instrument for inquiry: visual composition, interaction, user observation, state modeling, performance analysis, deterministic simulation and automated verification. Together they support a practice where intuition proposes directions and evidence develops them.
About
I am interested in systems where structure and discovery reinforce each other.
A small interaction can reveal a physical model, a simulation can expose an unexpected relationship, and a well-structured tool can make complex information easier to examine and act upon.
I work across product thinking, visual and interaction design, and implementation. Minimal surfaces, careful hierarchy and working prototypes help make complex capability approachable.
Across media playback, games, vehicle telemetry, public-service software, knowledge graphs and programmable input, the method stays consistent: curiosity opens a direction, disciplined modeling gives it coherence and automation preserves time for further study.
Working principles
Discipline gives experimentation a durable form.
Begin with observation and a useful question.
Sketch, prototype, simulate and test on real hardware when the medium calls for it. Early experiments make relationships visible and allow a surprising result to guide the next question.
Turn experiments into evidence.
Instrument behavior with deterministic seeds, visual laboratories, accessibility checks, performance traces and explicit domain models. Comparable evidence gives creative decisions a shared basis.
Give proven ideas a stable form.
Types, tests, CI and documentation preserve established behavior. Automation carries routine verification so attention can return to observation, interpretation and new experiments.