Sebastian Cohnen

my tech-related blog

Professional Work

So far I’ve professionally worked with Ruby/Rails and node.js environments, NoSQL databases like CouchDB, Redis & Riak and messaging infrastructures based on RabbitMQ. I also have experience in performance optimization and load testing larger systems with distributed testing tools.

I use to work — and actually prefer to — in a Scrum or Kanban development process. I also like to work with small proof-of-concept prototypes and I try to work test driven wherever I can. Most of the time I work in small to middlish sized teams.

Here are some of companies and their projects I’ve been working on in the last years.

ESC App (2013)

For the 2013 Eurovision Song Contest App, Railslove build the registration and payment workflow. They designed a sophisticated system architecture enabled to scale out across multiple datacenters to withstand the estimated traffic and possibly even grow beyond that.

I joined the team to identify and straighten out some performance issues. We designed some load test cases to verify the architecture and assess the performance of the system. I implemented the tests using tsung running on multiple nodes over long period of times to simulate user moving through the multiple stages of the sign up process. We uncovered some minor defects and issues but the team was able to fix almost all of them. In the end the project was a success and the system handled the production traffic without any problems.

  • distributed system
  • load testing

fejo.dk (2013)

fejo.dk is a holiday lodge agency specialized for Denmark. They have about 30,000 houses and are one of the biggest agencies for Denmark. The have excellent rating data for houses and areas in Denmark collected by surveys of their customers. They also have very detailed content pages on different subjects.

In 2013 I helped fejo.dk with some subtle changes for existing and also added some minor new features. Another part of my work was to reduce complexity and make certain background processes more robust.

  • Rails 2.3/3 project
  • complex business and search logic

adcloud (2011/2012/2013)

Adcloud was founded in 2009 by the performance marketing pioneers Henning Lange and Oliver Thylmann. The head office is in Cologne, and another office is located in Madrid (taken from here). They handle thousands of requests per seconds with only a few application servers and lot’s of raw data is produced every day which makes it a quite exciting company to work for.

I initially started to work for adcloud in late 2010. Back then I helped them with some CouchDB performance and stability issues.

Since early 2011 I work on a regular freelance-base especially on their high-performance ad-server system. E.g. I created a distributed and an automated test suite with various algorithmic analysis on top. Besides performance engineering I also introduced Redis and Riak to further improve the overall scalability of the system. A new public API service was launched based on Rails where I was involved with too.

  • high-performance node.js system
  • distributed architecture
  • distributed load testing
  • NoSQL galore! Riak & Redis are heavily used
  • AWS hosted environment

tiramizoo (2011)

tiramizoo is a Munich-based startup I had the pleasure to work with. tiramizoo tries to establish a marketplace for couriers and to bring customers and couriers together while creating a competitive market for everyone. The project was initially prototyped and started by Galaxy Cats and I joined the team later in 2011.

Besides Rails 3 I worked on integrating Google Map APIs, iOS and Android Push Notifications and jQuery Mobile to prototype a mobile application. We also made heavy use of HTML5 websockets and a node.js-based messaging system for asynchronously communicating with couriers. My personal highlight was a caching system to enable a low latency realtime price calculation based on the deliveries start and destination addresses. Since the price in their marketplace is highly dynamic, quite a lot information need to be processed in order to figure out the resulting price for a single delivery request. We used Redis to implement this caching system.

  • Rails 3
  • Google Maps API
  • iOS and Android Push Notifications
  • node.js
  • specialized caching layer using Redis

SevenSnap (2011)

SevenSnap is a shop platform where your buying experience becomes an adventure. The idea is that per product a so called snap room is created. You can join this room together with other participants. The product price drops every second and if you are the first one to decide that you like the price, you made the deal!

Every snap room is represented as a XMPP group chat internally which is used as a messaging system. A bot written in ruby constantly watches the channel, authenticates clients, and handles actions performed by users.

I helped out the dev guys from SevenSnap in a one-day marathon to remove a performance bottleneck in their XMPP bot infrastructure by migrating the existing bot code to an event-based architecture using EventMachine.

besserbewerben.de (2011)

besserbewerben.de offers a nice holistic online solution for creating and sending high quality job applications, offered by the Munich-based startup damondo.

Applicants can use job search and a knowledge base to get started on their own. Various consulting services are offered to quality-check, optimize or even create application documents. A web-to-print service allows customers to upload their documents and have premium grade application portfolios printed and shipped to the destination of their choice. Additionally, the platform helps applicants manage the job application process and deal with multiple applications in parallel.

I provided guidance to kickstart their development process using Scrum and bootstrapped the foundation of the plattform. Besides the basic Rails stuff, payment, print and shipping integration was needed. Also some nice tools where build to analyse PDF documents to verify their quality before sending them to the print shop. It was a great pleasure to work with the guys behind besserbewerben.de.

  • Introduced Scrum
  • Project bootstrapping with Rails 3
  • PDF processing
  • Payment integration

Payango (2010/2011)

Payango offers prepaid payment solutions since 2009. The nice thing is that they offer custom-branded prepaid credit cards and payment solutions for their customers. Go and check them out!

I’ve worked on the project for some months together with Railslove. I helped designing the overall REST/service architecture behind the new Payango system. One personal highlight of the project was to design and implement a messaging-driven subsystem to create a reliable communication infrastructure between different components of the system.

Technologies I’ve been involved with in the project:

  • Rails 3
  • lot’s of servers managed by scalarium and chef
  • AMQP/RabbitMQ
  • EventMachine-based dispatcher passing incoming messages to the Rails-stack.