Skip to main content
← All Projects

Enterprise Maintenance Platform

Lead backend engineer on a live multi-tenant equipment-health and maintenance-management SaaS (Elixir, Phoenix) used by enterprises including TCS and PwC. Inside a month I made a slow, untested codebase fast and closed its security leaks, then put it on solid CI/CD and testing.

ElixirPhoenixEctoPostgreSQLBroadwayRabbitMQMQTTDockerKubernetesAWS

A live, multi-tenant CMMS/EAM platform (computerised maintenance and enterprise-asset management) that enterprises use to monitor the health of their equipment, schedule preventive maintenance, and run the work orders and repairs that keep facilities running. It serves major organisations, including TCS and PwC. I was the lead backend engineer on the Elixir/Phoenix backend and the companion IoT data-ingestion service.

The reason I value this engagement is the state the product was in when I arrived. It was slow, had security leaks, no automated tests, no CI/CD, and a lot of inefficient code. That was a real pain point for the customer and was costing them clients. Within about a month I made the app fast and closed its security leaks, then over the engagement I put it on solid CI/CD and testing and shipped a large amount of new functionality.

The turnaround (first month):

  • Performance. Improved overall application performance by about 30% by optimising dashboard chart computations, work-order status calculations, and the report-generation pipeline, cutting out repeated style recomputation and redundant passes over data.
  • Security. Found and closed the platform’s security leaks, tightening how data was accessed and exposed across the API.
  • Reliability. Diagnosed and fixed a production out-of-memory leak in the work-order scheduler, where a background process re-queried PostgreSQL every few seconds in a tight loop. I introduced backoff throttling that stabilised memory and stopped the recurring crashes.
  • Resilience. Hardened the email and SMS subsystems by wrapping their background processes in proper error handling and converting attachment email to a synchronous call with explicit timeouts, so a delivery failure could no longer take the application down.

Engineering practices I introduced:

  • An automated test suite built from scratch, with a test harness, mocks and behaviours, and async execution, taking a previously untested codebase to roughly 130 test files across the core domains.
  • CI/CD on AWS CodeBuild with automated semantic-version git tagging, container builds pushed to ECR, and Kubernetes (EKS) deploys.
  • Containerised the application with a multi-stage Dockerfile (including a custom wkhtmltopdf image for PDF rendering) and docker-compose for local development, and upgraded Elixir, Erlang/OTP, and dependencies to current versions.
  • Authored Swagger/OpenAPI documentation for the API and drove broad code-quality cleanup.

IoT analytics and reporting (the highest-value feature work):

  • Designed and built an IoT analytics reporting suite that integrates the backend with a Broadway, RabbitMQ, and EMQX (MQTT) sensor-data pipeline, delivering energy-consumption, power-quality, indoor-air-quality, and specialised sensor reports as on-demand and scheduled PDF and CSV outputs for enterprise facility clients.
  • Authored the IoT service API client and the meter, sensor, and energy-summary endpoints that bring real-time equipment telemetry into customer-facing dashboards and reports.
  • In the IoT service itself I containerised the application and configured the RabbitMQ, EMQX (MQTT), and Broadway ingestion pipeline, moving configuration to environment variables for clean dev and prod separation.

Other delivery:

  • Migrated work-order file uploads to AWS S3 behind a behaviour-based abstraction with a test mock, and shipped manpower, attendance, people-shift-coverage, and inventory reporting features.

Leadership:

  • Hired, onboarded, and mentored a developer to scale delivery, reviewing and integrating their work while owning the architecture and code quality.

My role: Lead backend engineer (2025 to 2026), across the Elixir/Phoenix backend, the IoT ingestion service, and the deployment pipeline.