Diamond Dash
- position: senior backend engineer
- a game with millions of daily active users
- rewriting the backend from PHP code base to Ruby on Rails
- writing tests while reverse engineering the PHP code base
- improving the deployment process which was completely manual before
- profiling and optimizing code
- optimizing SQL queries (dataset ~ 50GB)
- datacenter / provider migration incl. DB with minimal downtime of few minutes
- writing payment validation and push notification service for iOS clients in Erlang
Bubble Island
- position: senior backend engineer
- a game with millions of daily active users
- rewriting the stateless PHP backend to a stateful Erlang backend and drastically reducing DB access and app server CPU usage
- writing tests while reverse engineering the PHP code base
- writing a ORM in Erlang for the existing sharded DB
- writing a small test framework for Erlang which I use for about every project (https://github.com/wooga/etest)
- datacenter / provider migration incl. DB with minimal downtime of few minutes
- switching from Linux (Gentoo) to FreeBSD as server OS
- choosing servers, provisioning servers, network setup, database server setup
- writing/improving payment validation and push notification service for iOS clients in Erlang
Dynamole
- position: senior backend engineer
- A real time multiplayer bomberman prototype to test the feasibility of mobile games with multiplayer features (over 3G), written in Erlang
- designed and implemented a highly optimized UDP protocol for client/backend communication
Business Intelligence Infrastructucture
- position: senior backend engineer
- central piece of infrastructure based on Kafka, collecting and processing tracking calls for all games of the company
- switching from a low performance and high cost cloud setup to a high performing low cost dedicated server setup
- survey of suitable datacenters
- choosing a rack full of hardware for brokers, consumers, databases and loadbalancers
- planning of a fully redundant network setup including CARP and manual datacenter failover to a different location and 10Gbit internal networking
- setup of redundant loadbalancers based on haproxy for thousands of requests/s including SSL/TLS termination
- all servers based on FreeBSD with Jails and ZFS, provisioned with Ansible
- gradual datacenter / provider migration incl. data with no downtime
Pearls Peril
- position: senior backend engineer
- a game with millions of daily active users
- maintaining, documenting and improving the code base, writing new features in Ruby
Road to Glory
- position: senior backend engineer
- new game, backend written in Erlang with PostgreSQL as database
- implementing a highly relational and complex data model optimized for performance
- researching the implementation of football simulators
- implementation of various statistical distributions in Erlang (poisson, normal, exponential, truncated normal, discrete probability) based on reference papers and C implementations from R (https://github.com/hukl/rstats)
- implementing schedule creation, league progression, simulation loop and various busines logic for football and for potentially millions of users
- running on dedicated servers with FreeBSD using Jails, provisioned with Ansible
- training / onboarding 2 frontend developers to become backend developers
General
- switching the company's CDN provider and supporting the migration of games to the new CDN
- consolidating a zoo of SSL certificates by migrating them to one provider and supporting the migration of various services
- helping to manage the company's DNS setup
- interviewing new candidates (~60+ screening calls and ~20+ on site interviews)
- consulting other teams on infrastructure / technology decisions