Welcome to my GitHub page. This is where you can see what I'm currently working on. Have a look around!
You can check out my showcase projects over on MPM-Labs
Who am I β’ Philosophy β’ Current Focus β’ Work β’ Tech
My name is Jonas and I am a software engineering student at Oslo Metropolitan University.
I love understanding how things work, and can never stop myself from investigating something I don't understand.
In addition to attending OsloMet, I am also the corporate contact and event manager at Ditio, the student association for IT students.
Currently, I am learning Rust. I like its unique position as a fast, compiled language with safeguards you would often only find in slower, interpreted languages.
I am also trying to learn more about functional languages. This is not just about efficiency in terms of raw execution speed, but about efficiency in terms of development time. Functional programming offers guarantees like safe concurrency, testability and more. Even if I don't end up working with it daily, it's worth learning. I use Haskell. On the side, I'm reading Category theory for programmers by Bartosz Milewski.

"A monad is just a monoid in the category of endofunctors."
β Saunders Mac Lane, Categories for the Working Mathematician (1971)
Nix deserves its own mention. It's a purely functional language drawing heavily on Haskell for its inspiration. It is, however, not primarily intended as a general purpose language. It is Turing complete, but its purpose is declaring and defining packages, system configurations, development environments, and much more. In general it provides a lot of great tooling involved in software development. I use it for all my projects, as well as for configuring all my machines, which run NixOS (a Linux distro based on the Nix package manager that is used with the Nix programming language).
π§ My current Nix deep-dive (click to expand)
Recently I've been focusing on the practical use cases of Nix. My portfolio page serves as a real-world test bed for a full Nix-based pipeline:
- Build β The site is written in Rust using Leptos. Nix builds the binary and all static assets reproducibly. Same inputs, same outputs, every time β like Docker, but more deterministic.
- Package β The build output is wrapped in a NixOS module that declares exactly how to run it, with configurable options for tweaking behavior.
- Test β The module runs inside a NixOS VM, letting me validate the full server environment before it ever touches production. This also enables automated integration tests with virtual servers and clients.
- Deploy β My own deployment tool handles server bootstrapping, updates, and secrets management via GitHub Actions and environment secrets. Binary caching bridges source and binary deployment, keeping build times low on resource-constrained servers.
As a bonus, Nix gives me deterministic, language-agnostic dev environments that live in the Git repo and work identically for every contributor.
Simply put, Nix is incredible.
Good software accounts for ethical, societal and practical considerations. It's not only functional, but also maintainable and well documented β able to evolve with the client's needs and be passed to other developers with little friction.
I have a great interest in finding "proper" solutions to problems. More and more I find myself preferring expert books and official documentation over less formal sources like blogs or guides. That's not to take away from the wonderful part of the software world that is sharing and helping each other. It's just important to verify against official sources β otherwise you hit pitfalls like security holes and solutions that only work sometimes.
I care about efficiency. Modern hardware is fast, but energy consumption and scalability still matter, and I find it more satisfying to work in compiled, statically-typed languages where sloppiness has less room to hide. This will likely explain many of the technologies, languages and techniques I prefer using in my work.
πΌ I'm actively looking for a job opportunity within software engineering.
I'm especially interested in roles involving Rust, systems programming, or infrastructure/tooling β but I'm open to anything where correctness and craftsmanship matter.
Rust |
Currently working on async understanding. |
Nix |
Currently working through chapter 5 of the thesis. |
Bash |
I often bump into commands I haven't used before and try to get familiar with as many as possible. (technically I use zsh) |
Haskell |
Currently reading Programming in Haskell and Category theory for programmers by Bartosz Milewski. |
WASM |
I am developing my portfolio site that runs on Leptos, but would like to learn more about WASM itself. |
Bevy |
Game development in Rust. |
Neovim |
Next time I have a couple years to spare. |




