Production-deployed multiplayer game backend with real-time session management, persistent game state, and a full authentication pipeline. Designed, built, and shipped end-to-end as an independent engineering project.
-
Concurrent game state managed via
ConcurrentHashMapwith atomic operations, handling simultaneous WebSocket sessions without data races - WebSocket session lifecycle implemented with STOMP over SockJS, including connect/disconnect presence tracking and room-scoped message routing
-
Diagnosed and fixed a JPQL enum inner-class reference crash
(
User$UserStatus) causing game move rejections every 10 seconds; resolved by passing enum as a named parameter instead of inline reference - Resolved a Railway port-587 SMTP block by replacing JavaMailSender with Resend HTTP API on port 443, restoring account activation delivery from a 2-minute timeout to under 1 second
- CI/CD pipeline via GitHub Actions: builds JAR, copies via SCP to Oracle Cloud VM, and restarts the systemd service — zero-touch deploys
- Authentication pipeline: bcrypt password hashing, Spring Security with JWT tokens, email-based account activation with expiring tokens stored in PostgreSQL