Keygamesnetwork
2008Spele.nl, I-Med
I-Med, the publisher of Spele.nl, reaching out to more than 500K unique people every day, proposed to build a self-serving advertiser platform. This started a 4 month project to build Keygamesnetwork.com.
Keygamesnetwork intermediates between game developers, publishers and advertisers. It enables game developers to speed up the game development process, and publishers to find interesting content for their domains. A great platform to advertise emerges through all the games published through the publishers' domains.
I will describe below the different roles I performed in helping realise this platform.
Design challenges
Setting up the structural design, architecting the key components, and selection of various open-source components to form the basis of implementation:
- Rails
- RSpec
- Haml
- Sass
- Rails Metal using Sinatra
- PostgreSQL
- Nginx
- Varnish
Whenever I select an open-source component, I actually dive into the code to assess the quality. I only select quality components to base a system on.
Technical challenges
Capistrano zero downtime deployment
Using Capistrano to set up a 3 server production environment and a 1 server staging environment. Running Unicorn, nginx and Varnish. Unicorn configured in such a way that server restarts can be done without any downtime, even taking into account database migrations. Since certain development machines should be able to deploy from outside the firewall, secure access was set up. Capistrano was customised for this process.
Adobe Flash wrapper
Flex pipeline enabling game developers to secure and enhance their games. In the technical specification I defined a secure method of communicating with the Keygamesnetwork backend, described different UI enhancing components, such as login and highscore widgets, and described a distributed loading of different reusable, themable components on demand (faster load times, and live updates). The implementation was started in parallel with a hand-picked Flash development team.
Generic adaptable statistics modules
Setup of generic components to enable tracking, maintenance and aggregation of database logfiles. The analytics is presented in a professional way to each of Keygamesnetwork's end users. The games and ad components log a lot of information, in many games, with many players. These generic components handle the aggregation and maintenance of these database driven logfiles gracefully.
Rails configuration and setup
Coding the controllers and views of the Rails application. Using Haml, Sass, jQuery, CoffeeScript and of course pure clean Ruby code. Adapted Haml core to enable custom tags. Since all was well thought out before, we ended up with a clean model, all recurring patterns nicely included.
BDD / TDD
A combination of BDD and TDD is being used to test Keygamesnetwork.
DRY to the bone
All mundanities, complexities and repetition were scripted away.
More screenshots
Team challenges
Thinking through the specifications and coming to a detailed technical specification. Selecting appropriate freelancers to form a team. And after delivery, transferring knowledge to an offshore maintenance team.
After 6 months of hard work the system was ready and performed excellently under medium to high load: an Apdex score of 1, tracked with New Relic.



