← Back to portfolio

Election Management System

Distributed backend for a national election platform

Featured
Senior Software Engineer — backend delivery lead for candidate lifecycle, reporting service, and authorization.
Duration: August 2023 – Present
Team: 30 members

Problem / Context

The Challenge

Managing candidate nominations, verification, and result workflows for a national election required a secure, high-availability distributed system capable of handling peak-period traffic.

Context

Commercial platform at Penta Global Ltd. comprising nearly 25 microservices. Supports 50,000 users and approximately 100,000 daily requests during election periods.

My Responsibility

  • •Led backend task allocation, grooming, planning, implementation guidance, and code reviews within a 30-person development team
  • •Designed REST API contracts for nomination lifecycle, candidate review, verification, payment-linked submission, and report generation
  • •Owned a reporting service that consolidated data from multiple services to generate official nomination, affidavit, candidate, schedule, and result PDF reports
  • •Applied Keycloak-backed authorization and workflow validation across sensitive nomination state transitions
  • •Replaced manual result-center, voter, candidate, and percentage-calculation workflows with digital system workflows for approximately 300 returning officers
  • •Used RabbitMQ for election workflows and contributed to approximately 30 deployments via Dockerfiles, Nginx configuration, and GitHub Actions CI/CD

Architecture & Key Decisions

JavaSpring BootHibernateRabbitMQKeycloakDockerKubernetesGitHub Actions

Microservices architecture of nearly 25 services. Services communicate via REST and RabbitMQ. Keycloak handles SSO and RBAC. Deployed to a self-managed Kubernetes data center with CI/CD via GitHub Actions.

Challenges & Solutions

Challenge #1

Coordinating data across nearly 25 distributed services while generating consistent official reports

Solution

Owned a dedicated reporting service that fetched and consolidated data from upstream services via REST, then rendered official PDF reports using a consistent template

Challenge #2

Enforcing nomination workflow rules across sensitive state transitions with different authority levels

Solution

Applied Keycloak-backed role authorization combined with server-side state transition validation on each API route

Challenge #3

Supporting approximately 100,000 daily requests during election periods versus 10,000 outside elections

Solution

Deployed on Kubernetes with horizontal scaling; used Docker and CI/CD pipelines to support approximately 30 production deployments

Impact & Outcomes

50,000
Users
Internal platform users during election periods
~100K/day
Peak Requests
Daily requests during election periods
~25
Services
Running microservices in the platform

Lessons Learned

  • →Owning a cross-service reporting layer requires careful dependency management and resilient data fetching
  • →Keycloak's token introspection and role enforcement scales well in a microservices environment when applied consistently
  • →CI/CD and Kubernetes support frequent deployments but require disciplined Dockerfile and Nginx configuration practices