helloryan

I am a generalist by nature and by choice. My curiosity drives me to explore systems, tools, and processes, whether in software, photography, or building with Lego. I enjoy understanding how things work, identifying patterns, and finding ways to make complex systems predictable and reliable.

Professionally, I design and build software systems across multiple domains and platforms. But my pride in craft goes beyond coding. In Swedish, yrkesstolthet captures what motivates me: a dedication to doing things well, understanding the implications of every decision, and leaving work in a state better than I found it. This discipline shapes everything I do—from designing architectures and writing tests to documenting systems and refining processes.

Outside of software, creativity plays an equally important role in my life. Photography lets me explore light, composition, and timing—skills that require patience, observation, and technical understanding. Lego and video games are more than hobbies; they are exercises in problem-solving, spatial reasoning, and system design. All of these pursuits reflect the same curiosity and drive for mastery that guide my professional work.

I approach challenges with thoughtfulness, rigor, and a sense of curiosity. Whether it is designing a new software system, capturing a moment through a lens, or constructing a complex model, I aim for clarity, intentionality, and quality in everything I create.

What I Do

I work as a software developer across multiple domains and platforms, ranging from low-level embedded systems to modern application development.

My work includes:

I am equally comfortable implementing a scripting-language from scratch as I am designing a web application using Angular/TypeScript, or implementing the application backend in C++. The last few years I have focused on low-level programming in C for the ATmega MCU series, implementing an EVSE based on the EN IEC 61851-1:2019 standard.

Technical Stack

Languages

Platforms

Frameworks

Practices

Tools

Engineering Philosophy

I take pride in building software that is understandable, verifiable, and durable.

I enjoy reading and working from specifications, and I value precision in both implementation and communication. Writing tests and documentation is not a chore for me; it is part of the engineering process and a way to make systems trustworthy for future developers, including myself.

I prefer simple, explicit designs over clever ones, and I aim to leave codebases in a better state than I found them.

Modern C++ in Practice

I use modern C++ as a means to write safer, clearer, and more expressive code—not as an end in itself. I actively leverage contemporary language and standard library features to make intent explicit and to shift correctness checks as early as possible, preferably to compile time.

I use templates, constexpr, and strong types when they improve correctness, performance, or expressiveness, and when the resulting abstractions remain understandable. Where runtime flexibility or decoupling is required, I rely on well-defined interfaces and polymorphism. When neither is justified, I favor simple value semantics, composition, and free functions.

Resource management is handled consistently through RAII, avoiding manual lifetime management and making ownership rules explicit. I prefer standard library facilities over custom implementations, and I design APIs that are hard to misuse and easy to test.

My approach to modern C++ is pragmatic and disciplined: I use the full range of tools the language provides, but only when they meaningfully improve code quality, maintainability, or correctness.

Selected Work

libart-seafire

libart-seafire is designed to model the HTTP/1.1 protocol as accurately and efficiently as possible, leveraging modern C++ features to create clear abstractions for representations, resources, routing, and protocol behavior. Every design choice is deliberate, balancing correctness, performance, and maintainability.

The libart-seafire projects are named in honor of my beloved dog, Sefyr, to whose memory they are dedicated. He will always be remembered. 💔

Source Repository: code.helloryan.se

Technologies: C++, ASIO, build2

libart-paperback

An early alpha implementation of the PDF 1.4 specification in C++. Paperback is an exploration of complex file formats, parsing, and rendering, with a focus on correctness and adherence to the specification.

Source Repository: code.helloryan.se

Technologies: C++, build2

libart-hyperlane

A reporting engine designed for flexible output and integration. Hyperlane can optionally use libart-paperback for PDF generation and has future plans to support ZPL II for label printing. The project emphasizes clean architecture, modularity, and extensibility, allowing reports to be generated efficiently in multiple formats.

The project includes a graphical WYSIWYG designer tool implemented as an Angular library, intended to be embedded directly into the application using libart-hyperlane.

The source code for libart-hyperlane is currently not public.

Technologies: C++, libart-paperback

libart-json

Originally created as a deep dive into parsing and compiler design, libart-json demonstrates my interest in language processing and formal specifications. I once presented this project in a session on parser and compiler implementation (formal grammars, abstract syntax trees, lexical analysis, etc.), highlighting its architecture and design principles.

Source Repository: code.helloryan.se

Technologies: C++, build2

Beyond Programming

While software is a major part of my life, it is far from the only lens through which I explore the world. My hobbies and creative pursuits reflect the same curiosity, problem-solving, and attention to detail that guide my professional work.

Photography is a creative and technical outlet for me. It combines observation, patience, and experimentation, rewarding both preparation and improvisation. I enjoy capturing moments with intention, exploring light, composition, and perspective, and continually refining my understanding of the medium.

Building with Lego allows me to think in terms of systems, structure, and modular design. Complex models are exercises in planning, iteration, and adaptability—skills that translate directly into software and engineering challenges.

Video games provide both relaxation and a playground for strategic thinking. I appreciate titles that encourage problem-solving, experimentation, and creativity, and I often find inspiration in their mechanics and design.

Together, these activities reflect a mindset of curiosity and craftsmanship that extends well beyond code. They remind me that thoughtful design, exploration, and iteration are valuable in every creative or technical endeavor.

Contact

I am always open to hearing about interesting problems, potential collaborations, or opportunities to build something new. Whether you are looking for consulting on a project, exploring a partnership, or simply want to discuss ideas, feel free to reach out.

E-mail me at ryan@helloryan.se or use the form below to get in touch.

Optionally, describe what you need assistance with.

I aim to respond thoughtfully and promptly, and I welcome inquiries from both technical peers and decision-makers alike.