I think one of my main themes is to take complex things and making them more accessible to others,
whether by explaining, creating a tool or making a helper library doesn’t really matter. I want
others to shine.
I like to know how things are implemented because this makes it easier to choose the correct
tool for the job. If you need super optimized graphics effects on a mobile phone then let's
implement it on the GPU or with ARM assembly, but in most cases higher level languages will result
in code that is faster to develop and easier to maintain.
Today I am intrigued by the UX in API design, like how can we make API:s that are easier to
remember and produces better results, or how helper functions can open up new thought paths without
sacrifying versatility of the underlying design.
- Software Architect at The Astonishing Tribe
- Senior Software Architect at BlackBerry
Teacher for courses
Posts by Erik
Configuring CMake for successRead more
One common question I get on our Advanced C++ course is how the project structure should look, e.g. should I split the source code into multiple directories? How can I introduce unit tests? Should I compile into multiple libraries?
Each project is unique in what it needs, so in this blog post I’ll go over my general preferred setup and then look at how we adopted it for C++ on Android where we also interface with Kotlin/Java.
Invariants hidden in callbacksRead more
Callbacks might look simple and innocent, but they can be dangerous!
News & feeds
We launch summer Boot CampRead more
Priority queues in Java and PythonRead more
How do you talk about a "priority queue", a queue data structure where elemens get to "cut in line" if they're important? In this article, we'll compare the (quite different) answers from Java and Python standard libraries.
How to install RavenDB on a VM in Azure (step-by-step, part 1)Read more
This is a guide for you who want to work with document databases. I describe how I got RavenDB to work on a regular Windows Server 16 virtual machine which in turn runs in the Azure cloud.