I've developed multiple command line and web interfaces and Python has always been my go-to tool. I've invested a lot of time in Flask and Click. As projects grow more mature I place more emphasize on stable APIs, semantic versioning, testing, and not least documentation. For Python packages I handle development using GitHub Flow, publish release on PyPI, and run automated tests on Travis-CI.

Chanjo 🐹

An open source coverage analysis tool for clinical sequencing. I've developed and maintained it over several years. It's being used at Clinical Genomics and elsewhere in the world like like Massachusetts General Hospital.

It's implemented in Python and used mainly as a command line interface. It's actively documented, automatically tested on Travis-CI, with excellent test coverage, and deployed automatically to PyPI if all tests pass!

This blog

I occationally write about topics that interest me or where I feel I can contribute something of use for others. In the past I've covered:

Web development

Building websites was my gateway into programming. I started with HTML/CSS and added JavaScript and backend programming skills when I felt the need. Developing graphical user interfaces have always interested me; how to display information in the most intuitive and effective way possible.

Scout UI

Scout. Web interface developed at Clinical Genomics and used by clinicians at Karolinska University Hospital. This is where clinicians access information from the DNA analysis and make diagnostic intepretations and ultimately the clinical decision.

Technologies. I worked on all parts of the project but with a focus on the server and frontend. We store data in MongoDB and consume it through a Python API. I've implemented the server in Flask but we run the production code using Gunicorn. On the frontend we rely heavily on Bootstrap.

Clinical Genomics Apps UI

Clinical Genomics Apps. I had the idea of developing a range of "apps" to manage our data at work. We collect all the tools in a central place and try to syncronize development while separating concern.

Technologies. We deploy many of the apps with one script to an Amazon Web Services server instance. The overview site is a simple static site compiled using Vue.js. It's not used much 😅 but it has execelent development tools that make deployment super simple! We use Google OAuth to handle logins across all apps.

Odot UI

Odot. TODO list app developed from the specification for a single-page web app with a REST API that a friend reveived as an interview assignment. You can test it out or take a look at the code in the repo.

Technologies. I've been following the Node.js revolution closely and done my best to keep up with build systems (Grunt → Gulp.js → Brunch → Webpack...) etc. I developed this app to get hands on with React and Redux - both of which I really like although I prefer the more intuitive "Vue.js + Vuex" combo. The app is backed by a simple REST API developed in Flask (Python). The app is deployed on Heroku with PostgreSQL for persistance.


I've been creating logos mostly for fun. However, I do believe they are an important piece in bringing a longer-term project together. A well crafted logo can inspire confidence in a project for potential collaborators and users. That's why I devote time to branding my software projects as they grow. Or offer to do the same for other's projects that I'm involved in.

Chanjo logo
Chanjo. My first serious software project. I wanted to create a mascot and had the idea of code naming every major release with an ... animal.
Clinical Genomics logo
Clinical Genomics. I wanted to create a logo for my
bcbio logo
NGI pipeline logo
Bioinformatics tools (bcbio-nextgen, NGI_pipeline). The bioinformatics field is underserved when it comes to attrative designs which bothered me. So I essentially reached out to a few projects I thought deserved some attention and offered to create these logos which were both happily accepted!
Robin Andeer logos
Personal branding. I like using an "avatar" for most of my online presence. I was inspried by Dustin Curtis and by the trend of adaptable logos that can be tweaked over time. This is the "evolution" of my personal branding attempt.