Skip to content
View g-andrade's full-sized avatar

Block or report g-andrade

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
g-andrade/README.md

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:

Title Backend
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:

Project Description Stars
locus MMDB reader for Erlang/Elixir — IP geolocation and ASN lookup ⭐ 121
sqids-elixir Official Elixir port of Sqids — short unique IDs from numbers ⭐ 94
aequitas Fairness regulator and rate limiter ⭐ 50
backwater Intercluster RPC for Erlang and Elixir ⭐ 48
taskforce On-demand worker pools for parallelizable tasks ⭐ 43
maestro Pool of pools ⭐ 31
deigma Event sampler ⭐ 24
tls_certificate_check CA store and partial chain handler for TLS ⭐ 23

full list


Upstream contributions

erlang/otp

  • ets:select_replace/2 — matchspec-based row replacement in ETS tables
  • math:fmod/2 — floating-point modulo BIF
  • enif_hash — hashing arbitrary terms from NIF code
  • Cryptographically strong random number generation via rand plugin
  • zlib inflation dictionary extraction
  • Various fixes and documentation improvements

Erlang/Elixir ecosystem

rebar3, rebar3_hex, rebar3_hank, ex_doc, exile, hackney, certifi, and 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)


Contact

website@gandrade.net · LinkedIn · Website

Pinned Loading

  1. locus locus Public

    MMDB reader for geolocation and ASN lookup of IP addresses

    Erlang 121 18

  2. sqids/sqids-elixir sqids/sqids-elixir Public

    Official Elixir port of Sqids. Generate short unique IDs from numbers.

    Elixir 96 5

  3. aequitas aequitas Public

    Fairness regulator and rate limiter

    Erlang 50 2

  4. tls_certificate_check tls_certificate_check Public

    CA store + Partial chain handler

    Erlang 23 6

  5. erlffx erlffx Public

    Format Preserving Encryption - FFX

    Erlang 9

  6. xb5 xb5 Public

    B-trees of order 5 (tree, set, multiset) for Erlang/OTP

    Erlang 4 1