not just code

Building products is hard, building good products, even harder.

Here you’ll find my hardships and experience described, in snippets, rants and software.

What do I do?


Build software

I’ve been coding professionally since 2008, more than 10 years now. I have been working both as an employee and contractor in public and private sector.

I’ve done desktop clients, web clients, batch processing systems and backends.¬†


Since I wrote my first lines of Visual Basic code in my school days I have used many different languages and frameworks. I have found that coding is about more than the actual code though. I constantly try to improve both within and without the confines of the IDE to better myself in the hard and the soft parts of that which is the engineering craft.


Help out

Finally, though I do enjoy to tinkering on my own, building real products is seldom one man show. As such, I believe that it is incredibly important to work together and share knowledge. Which is what this blog is partly about. Giving back to the community that’s given me so much.

Sharing is caring

There are so many brilliant people out there in the world. Since I started developing I’ve been saved so many times by both framework creators and the StackOverflow community alike. I’ve a huge respect for the open source community and everyone that simply gives without asking anything back. So I want to do the same. I want to share both my experience in the form of my thoughts and experiences in this blog and also the code I put together.

Past projects

Some stuff I’ve written and I’d love for you use

It’s not much but in my free time I’ve put together a few projects that are still alive. I’m thrilled to see anyone using the stuff I’ve written or even perusing it so if you can spare the time and effort.


The blog

Loading overlay in Flutter

Loading overlay in Flutter

Maybe the easiest way to handle user input during async operations is to simply block the entire UI. Sure, there are friendlier ways but if we don't block the UI we may need to handle cancels and late-response errors in a much more complicated manner. Simply showing a...

Example of refactoring with proxy pattern

Example of refactoring with proxy pattern

Today I came across a good refactoring example, extracting a cross cutting concern using proxy pattern. First let me explain what I'm trying to achieve here and then dig into the problem and how I solve it. The example code In our app, we have a class to wrap any...

Reloading future with flutter FutureBuilder

Reloading future with flutter FutureBuilder

The Flutter FutureBuilder is a great example of Flutters composability with widgets. It allows us to wrap a Future, an async operation, and easily render the three different states, loading, error or result. However, this turned out to be less straightforward than I...

Thank you for popping in

Why not join the newsletter?

Why not join the newsletter?

If you're not a fan of facebook or twitter, sign up to the newsletter and I'll send you a quick update every so often with what's going on and new posts coming out.

You have Successfully Subscribed!