Profile image

About me

I started to code during my studies at Malmö University, it didn't take long before I spent most of my spare time learning new concepts, principles and programming languages. Today I work across the full stack and even though I'm spending most of my days coding at work, I still spend a big chunk of my spare time exploring new technologies.

What currently peaks my interest is Elixir, a delightful functional language which I now have a couple of years of experience with. And also everything in JS-land, new features, frameworks, constantly learning and evaluating the available alternatives we have today to build web applications.

april

Senior Consultant at Webstep

Working at Webstep as a Senior Consultant.

Mainly focusing on Front End and Full Stack Javascript Development using modern frameworks and technologies.

september

Developer at PinMeTo

I started to work at PinMeTo. For sometime I've had an interest in functional programming, learning it through Elixir, JS, Elm and Haskell. PinMeTo uses Elixir as backend for some services, having a chance to code in Elixir at work was great.

Besides Elixir, work commonly included Node.js, Elm and MongoDB. I'm working with these more or less daily depending on what's currently in the pipeline.

january

Developer at Prisjakt

I start working at Prisjakt in January 2015. In the beginning, most of the work were done using PHP, MySQL and general Front End Development.

My role adapted to work full time with Node.js, React and GraphQL to for total rebuild of the fronts. These tech choices aligned well with my own interests and knowledge.

june

Developer at Vendre

Full time distance job at Vendre where I continued the work of porting the E-Commerce administration tool to AngularJS. The work were mostly geared towards the Frontend, but I also did a fair amount of PHP development.

sep - dec

Project with Vendre

I was part of a project organized by Malmö University where students were teamed up with Businesses to solve a problem. My group teamed up Vendre with the goal of improving their Administration UI. We developed a prototype using AngularJS. The prototype were evaluated through usability testing.

sep - dec

Teacher Assistant

Helping out as teacher assistant in the same course with new first year students.

sep - dec

Teacher Assistant

During the fall of 2012 I did some work as a teacher assistant for the course Introduction to Web Development at Malmö University. I was present during exercise sessions to help students. The work also included evaluating/grading the code assignments done during these coding sessions.

september

Information Architect

I start to study Information Architecture at Malmö University.

Technologies

Here's a list of some (not all) languages, libraries, frameworks, databases, etc. that I've worked with during my career, either professionally or personally. I've written some of my thoughts on each one.

  • Your code tells how, your commit messages tells why. Writing good commit messages benefits in code reviews, your future self and your colleagues.

  • JavaScript is one of my go to languages for both Front and Backend development. I often check out upcoming ECMAScript features, new libs and frameworks.

  • I've worked with Node.js for a couple of years, and it's nice be able to use JavaScript on the server and don't have to do the mental switching of having different languages in the front and backend.

  • React is a great framework, I've worked with it a lot both professionally and in personal projects. It has improved over the years and continues to improve with a great community.

  • I've used it extensively with React, mostly at work, it's a good state handling library, but it also adds some indirection to the code with actions, dispatchers and reducers.

  • A great state handling library, it's framework agnostic so we can easily use it with our favorite framework or with no framework.

    In xstate we model our state as a state machine, where all possible states and transitions are made explicit. e.g. which state transitions are possible for each state and the side effects that should happen.

  • This is my favorite framework. It stays out of your way and let you get things done, the syntax is almost like you're not using a framework at all, like writing JS, HTML and CSS.

    Svelte is actually compiling what you write into imperative code that's very performant, so it will not need to include as much as React, Angular or Vue needs, which evaluates everything at runtime. This build step results in smaller bundle sizes.

  • Sapper is the companion framework to Svelte, it will help you bootstrap your project with server side rendering (SSR), routing capabilities and more.

  • I think elm is great language for learning Functional Programming. It's more accessible than Haskell, especially if you do Front End Development.

  • Functional, lazy and powerful. I find it much less limiting than elm. It has very robust type system. I like how it has typeclasses which defines behavior.

    A type can be part of many typeclasses, e.g if a type is a member of Show the type can be turned into a string representation. If it's part of Ord then it can be sorted and comparable with lt, eq, gt.

  • Elixir is functional programming languages that compiles down to Erlang. It's one of my favorite languages, and one of my top picks for Backend development.

    It's designed for fault tolerance and concurrency. You can spin up hundreds of thousand of tiny isolated processes that's controlled by underlying Virtual Machine BEAM. These can crash and be restarted independently without effecting the rest of the system.

  • Phoenix is a framework for the Elixir programming language. It's very fast and reliable and provides great tools when building for the real time web. I've been using it for a couple of years, both professionally and on personal projects.

  • I try to stay up to date with best practices, knowledge about HTML should not be neglected.

    You need to know HTML to do web development properly, its not uncommon for people to misuse it. You should aim to always try use meaningful tags that describes your content, for accessibility.

  • I consider myself to be pretty good at CSS, and I think we should try to aim to solve design problems with CSS before we reach for JavaScript which often is less performant and sometimes harder to maintain.

    The feature set for CSS keeps getting better support as more people use evergreen browsers. This also means that we can rely less on pre-processors for some features.

  • When I'm using a Preprocessor for CSS, Sass is the one a prefer. But I don't think it matters that much which you choose unless you need to do advanced stuff.

  • Less I've used mostly at work, it's pretty similar to Sass, only some small differences in syntax, and unless you need to do some fancy stuff it will suffice.

  • I've used back in the days before they broke backwards compatibility. So I've got some experience with legacy versions of Angular.

    But I haven't tried the more recent version of the framework yet.

  • I've played around with RxJs. The streaming nature reminds me of the laziness of Haskell. You build pipelines through functional composition that describes how the data should transform step by step without building up intermediate data structures.

  • I like GraphQL, it doesn't care where the data comes from as long as it adheres to your schema, and it only resolves what the client asks for.

    The main downside compared to REST is caching, where REST can leverages HTTP. In GraphQL you don't get this for free.

  • I'm a bit conflicted when it comes to MongoDB, sure schemaless is easy when you don't need to specify your data and sometimes that's a good fit, you might not control the data.

    But sooner or later you'll need validate data and with schemas you get a lot for free.

  • I worked a lot with MySQL during my time at Vendre and Prisjakt. I feel pretty comfortable writing SQL.

  • This is my database of choice when I'm working on personal projects. It's also the default database used in Phoenix which I often use as backend.

  • I started to use Vim back when I worked at Prisjakt. It was a challenging at first, but it really pays of. Its actually very intuitive with its composable commands.

  • One of the first programming languages I learned and worked with professionally. I did some deep dives into Design Patterns to achieve less coupled code, composition over inheritance.

    I've since moved on to functional programming and if I'm in a position to choose, I prefer languages who better promotes the functional way.

  • Docker is great, it makes it easy to focus on what you want to build and not so much on how to setup your environment.

  • I've recently started to explore Kubernetes. It allows you the orchestrate your Docker application in a cluster.