Guilherme Andrade
Software engineer based in Lisbon, specialising in Erlang and Elixir. I've spent over a decade building distributed backend systems — most recently at Dash Games, before that a decade at Miniclip, and earlier as a sysadmin at RNL, Técnico Lisboa.
Experience
Dash Games — Lead Backend Developer · 2023–2026
Sole engineer behind the studio's game backend — from the real-time game server and player systems to the full GCP infrastructure (Cloud Run, Cloud SQL, GCS, Secret Manager, IAP, Workload Identity), all under Terraform IaC and CI/CD. End-to-end ownership across architecture, implementation, deployment and operations.
Miniclip — Senior Software Developer · 2013–2023
A decade building, deploying and operating the server-side systems behind some of Miniclip's biggest titles:
| 8 Ball Pool | mobile | 2013–2016 |
| Agar.io | web + mobile | 2016–2018 |
| Mini Militia | mobile | 2018–2020 |
| Soccer Stars | mobile | 2022 |
| Mini Pets, Dino Pets | mobile | 2013–2014 |
…among others — designing them, shipping them, and keeping them running in production.
The work spanned the full stack of a real-time game backend:
- Real-time game servers — server-authoritative multiplayer for live, latency-critical titles, including C++ game servers for real-time multiplayer at viral scale. Worked across both major networking models: continuous real-time state, and client-side deterministic physics for turn-based titles.
- Game networking — Protocol Buffers over TCP/WebSockets as the default transport, dropping to UDP for latency-sensitive titles, including a C++ game-networking library wrapped in an idiomatic Erlang NIF with a custom binary protocol.
- High-concurrency load management — worker pools, rate limiting and fair resource allocation under massive, spiky traffic.
- Multi-cloud infrastructure — roughly a decade running game backends on AWS at scale (compute, autoscaling, load balancing, managed data stores, queues, CDN, infrastructure-as-code). Built demand-driven autoscaling against cloud-provider APIs — programmatically launching and tearing down capacity to track traffic peaks — across AWS, Linode and DigitalOcean.
- Edge security under live attack — automated Cloudflare to shield on-demand game servers from DDoS, and built an anti-cheat reputation system with trust scoring and graduated reCAPTCHA challenges that withstood a large-scale botnet attack shortly after launch.
- Observability & operations — production monitoring, alerting and on-call, with CI/CD pipelines deploying automatically to production.
- Runtime-level performance — native code (NIFs) where the BEAM needed a push, plus fixes contributed back upstream into Erlang/OTP itself
RNL — Técnico Lisboa · Systems Administrator · 2010–2012
Ran the university's student-run computing facilities as part of a six-person team — the student computer labs (the bulk of the fleet) plus the servers and network behind them, mostly Linux with some Windows/Active Directory.
Open source
A selection of libraries I maintain, mostly for the BEAM ecosystem — 19 packages on Hex, 16M+ total downloads:
Recent — xb5: B-tree (order 5) data structures for Erlang/OTP — drop-in gb_trees/gb_sets alternatives that run 1.2–2.5× faster with equal or lower heap use, plus an order-statistic multiset (rank, nth element, percentile). Ships with an idiomatic Elixir wrapper.
Recent — ex_fpe: Format-preserving encryption for Elixir — a pure-Elixir implementation of the NIST SP 800-38G modes FF1 and FF3-1, extending my Erlang erlffx to Elixir.
| Project | Hex downloads | Stars | |
|---|---|---|---|
| tls_certificate_check | CA store and partial chain handler for TLS | 14.7M | ★ 23 |
| locus | MMDB reader for Erlang/Elixir — IP geolocation and ASN lookup | 580K | ★ 121 |
| aequitas | Fairness regulator and rate limiter | 179K | ★ 50 |
| sqids-elixir | Official Elixir port of Sqids — short unique IDs from numbers | 83K | ★ 94 |
| taskforce | On-demand worker pools for parallelizable tasks | 55K | ★ 43 |
| erlffx | Format-preserving encryption (FFX) | 48K | ★ 9 |
| backwater | Intercluster RPC for Erlang and Elixir | 45K | ★ 48 |
| deigma | Event sampler | 2.4K | ★ 24 |
Upstream contributions
ets:select_replace/2— matchspec-based row replacement in ETS tablesmath:fmod/2— floating-point modulo BIFenif_hash— hashing arbitrary terms from NIF code- Cryptographically strong random number generation via
randplugin zlibinflation dictionary extraction- Various fixes and documentation improvements
Erlang/Elixir ecosystem
rebar3 rebar3_hex rebar3_hank ex_doc exile hackney certifi others
Technologies
Languages — Erlang, Elixir, SQL, C++; some C, JavaScript, Python, Rust over the years
Runtime / frameworks — OTP, Cowboy, Phoenix (LiveView), Ecto, Protocol Buffers
Infrastructure — GCP and AWS; Terraform, CloudFormation, Docker; demand-driven autoscaling via cloud-provider APIs
Data — PostgreSQL, DynamoDB, Redis
Observability & CI/CD — Datadog, OpenTelemetry, PagerDuty; GitHub Actions, Jenkins, CodeDeploy
Systems — Linux as a daily driver since the mid-2000s; shell scripting, comfortable live-debugging production issues
Experiments
Small interactive toys — audio illusions, optics, generative graphics:
| Circles | Generative canvas animation with live controls |
| Coalescence | Audio-reactive canvas visualisation |
| Curvature blindness | The curvature-blindness optical illusion, rendered live |
| Shepard tone | The auditory illusion of a pitch that seems to climb forever |
| Teardrop | Generative canvas animation that responds to mouse movement |
| WebGL plotter | Plots mathematical formulas in WebGL |
Talks
erlchronos — a gen_server wrapper with ticks (Erlang User Conference 2016)