Project case study

A real-time multiplayer drawing game.

Guess Drawing is a multiplayer game where people take turns drawing and guessing in public or private rooms. It combines a responsive mobile experience with a backend responsible for live state and player connections.

Get it on Google Play ↗
Guess Drawing app iconGuess DrawingDraw · Guess · Play together
01

The challenge

The challenge

Keep drawings, guesses, scores, and room events synchronized across several players while handling slow networks, disconnects, and rejoining.

02

The engineering approach

The engineering approach

Clear boundaries between native clients, REST APIs, and WebSocket channels. The server owns room truth while clients render changes as soon as events arrive.

03

From source to production

From source to production

Spring Boot and MySQL run behind Caddy in Docker on AWS, with HTTPS, secure WebSockets, health checks, and a rollback-aware deployment flow.

Technical architecture

From the first touch to a shared event

01

Android & iOS

Native experiences for drawing, guessing, voice, and room management.

02

Spring Boot

Game rules, sessions, REST APIs, and real-time event coordination.

03

WebSockets

Low-latency drawing strokes, guesses, and room events.

04

Cloud infrastructure

Docker, MySQL, Caddy, and TLS on AWS.

What the project demonstrates

End-to-end product ownership: shaping the experience, building clients and services, solving real-time systems problems, and operating it securely for real users.

Get it on Google Play ↗

Jump to a page