Case study

Small and big lessons for small and big programmers.

Starting point

Late 2020. Michal Beneš's epidemiological model and the idea of turning it into a game that shows the public how the timing and strength of measures change the outcome. It had to be done over Christmas, before the next wave. We took it on pro bono.

What we did

Five engineers, agile sprints, TypeScript, an Angular UI, a minimal backend over JSON, and automated tests from day one. The hardest part was integrating the simulation core, which changed fast during development.

Launch on January 28, 2021. A link from a major news portal overloaded the server. Disabling gzip for static files was a mistake. Moving static assets to Cloudflare stabilized the site. 50,000 games played in the first days, over 100,000 players in total. People in government used the game too, and national media wrote about it.

On February 7, a TV report brought a spike several times larger. A database backup was running at the same time. The result: several dozen minutes of downtime.

Result

The game served its purpose. The author's key message: delayed measures cost lives, school days, and money. The effort came to roughly 80 SWEHQ person-days, four times the original estimate.

What we learned

  • Estimate conservatively. Even enthusiasm has a price.
  • Understand inherited code first, then change it.
  • Prepare for traffic spikes in advance: CDN, static assets, no backups in prime time.
  • During data import, MongoDB read only about 10% of records without errors. Next time, PostgreSQL.
  • A cohesive team and a junior who got room to both design and code.
“SWEHQ was a professional team that genuinely cared about our project.”
Quantitative analyst, project initiator · Clutch

All case studies

Next step

Working on something similar?

An engineer replies within a day. Within a week you have an honest view of scope, risk, and price.