Mob programming

Last week, my team and I had the need to re-focus our priorities and put our joint efforts into pushing a new project forward. Traditionally, we have had a bit of work segregation going on with individuals and pairs working on smaller sub-projects, but the business now needed something different. Since we were all going to work on the same thing, which was new to most of us, we decided that doing a few days of mob programming would be a good way to kick things off.

»

Event stream processing: backfills

During the last months I have been involved in developing an event processing pipeline based on Amazon Kinesis. This post is about different strategies for replaying or backfilling events, to make up for lost events or a buggy stream worker implementation.

»

Learn to read with ClojureScript, part 2

Almost a year ago, I wrote about implementing a learning aid for children in elementary school using ClojureScript. I finally got around to finishing this project now and decided to write a few words about the experience.

»

Action leads to inspiration

Last weekend, a ClojureBridge event took place in Berlin. I was one of the coaches and had a wonderful time exploring Clojure with a group of new-comers to the language. In addition to coding, some lightning talks touching upon different aspects of software development in general and Clojure in particular were held. One of the presentations was by me, in which I talked about some of the hurdles that novice programmers might face and gave some tips on how to overcome them. This is that talk in blog form.

»

A look at running Clojure on AWS Lambda

Lambda is the name of the serverless function execution service that has been part of the Amazon Web Services ecosystem since late 2014. The evolution of the Lamba service has been quite rapid during the last year, with one of the recent additions being support for execution of Java code. And as we know, where there’s Java, there can be Clojure, so during a recent project I decided to implement some of the backend parts using the AWS Lambda service.

»

Fun with Specter

Specter is a new library by Nathan Marz that makes it easier to deal with nested data structures, such as lists of maps of maps. This post explores some less-documented parts of the library.

»

Distributed Matters 2015

Yesterday, I had the pleasure of attending the Distributed Matters 2015 conference here in Berlin. The conference had re-branded itself for this year, having previously gone under the name of NoSQL Matters. I think broadening the scope to distributed systems was a good move - NoSQL was still very much present in the agenda, but my favorite topics were definitely those dealing with distributed systems and communication on a broader scale. All in all, the conference was very library-, technique- and tool-oriented, there were not many talks of the more philosophical kind.

»

Stop the microservice spaghetti

When moving from a monolithic architecture to microservices, you immediately appreciate the agility with which you can develop new functionality. It’s easy to get over-enthusiastic and throw a microservice at any problem you have and not spend much time thinking about the bigger picture. The last thing you want to do is replace the monolithic spaghetti code with a distributed service spaghetti. Here are some of the lessons I’ve learned over the last year or so of working with microservices and some thoughts about what could have been solved in a better way.

»

Week 26

Some random things I’ve been thinking about this week:

»

freq-words: learn to read with ClojureScript

My father, a retired elementary school teacher, runs a website offering material for young children who are just starting to learn how to read and write in Swedish. A big portion of the material is geared towards children who experience difficulties learning the basics of reading and writing and one of the teaching aids is an old Flash application I wrote almost a decade ago; children can use the application to practice reading some of the most common words in the Swedish language.

»

Spicing up Java projects with Clojure

Many engineers with an interest in Clojure are probably working on Java code bases for most of the day. This doesn’t have to be the end of the world if you’re tickling to write some Clojure code, as there are many ways of bringing Clojure to existing Java-based projects.

»

A vertical microservice with Spring Boot

At komoot, we have lately been busy moving to a more microservice-oriented architecture. Many of our new features, such as the card feed that shows up whenever our mobile apps are opened, have been implemented in this fashion. We have also refactored and re-implemented some existing core components as dedicated services, one example being our routing engine.

»

Taking duct for a spin

I have been meaning to try building a simple web application using Stuart Sierra’s Component library for a while now. If you haven’t heard about it, it’s definitely worth having a look at - it is a lovely way of organising the different components that go into an application and gives you a smooth workflow in the REPL.

»

A new blog is born

It is time for a new blog. My experiences over the last few years have changed the way I develop software a lot and I feel the need to reflect on that. I am also now more focused on the technological side of software development as opposed to working as an agile coach and scrum master, which was what a large part of the posts on my previous blog were about.

»