Software Engineer · TekMedia Software · Jan 2025 – Aug 2026

Intelitor
Enterprise Security-Monitoring & Alarm-Management Platform

Java · Spring Boot Apache Kafka Redis Elixir / Phoenix PostgreSQL · MongoDB Kubernetes · AWS

What I shipped

  • Owned the architecture of a microservices platform — 8 domain-bounded microservices (7 Java Spring Boot + 1 Elixir/Phoenix alarm-ingestion); built 4 from scratch (Alarm Ingestion, Alarm Processing & Workflow, Notification Service, API Gateway) and carried 4 to completion (Auth, Device Management, Subscription & Billing, Access Control), with tenant isolation at every boundary, gRPC on the hot alarm path and Spring Cloud OpenFeign for lower-frequency lookups. Picked up Java, Spring Boot, Kafka and Redis from scratch during the project.
  • Kafka event backbone with 7 Avro event types in the Schema Registry (AlarmTriggered, AlarmStateChanged, NotificationRequested, …), Kafka Streams for the severity, correlation and storm-detection engines, per-alarm-ID partitioning for ordered event processing, and Kafka Connect + Debezium CDC for materialization — saving operators critical minutes per alarm response in production.
  • Redis state — Redisson distributed locks, Spring Session for clustered sessions, and @Cacheable policy caches.
  • Spring Cloud Gateway edge — JWT verification, rate limiting, per-tenant routing, and a Kafka-to-WebSocket bridge streaming alarm events live to the operator portal.
  • Elixir/Phoenix alarm-ingestion service — BEAM process-per-connection concurrency handling 10,000+ concurrent device connections under OTP supervision trees, parsing SIA-DC09 signals from HikVision and Ajax panels plus camera analytics, and publishing normalized events to Kafka via KafkaEx.
  • Alarm Processing & Workflow — a branching incident-workflow engine with ~15 step types (auto_delay, auto_sms, auto_call with priority-ordered dialing, IVR-verify, footage review, control-close), JSONB step templates and a Redis-backed state manager, auto-spawning 7-step automated and 8-step manual TMA-guideline templates per alarm; a severity engine with spatial/temporal correlation (two same-site sensors within 60 seconds fold into one incident), storm detection and per-event-type SLA configuration; plus a keyholder lifecycle with 24 actions.
  • Notification Service — SMS, WhatsApp, IVR and in-app quick calls, FCM push and email behind a carrier-agnostic channel layer with full delivery logs.
  • Polyglot persistence — PostgreSQL for transactional state (JPA/Flyway), MongoDB for alarm activity/audit history and notification delivery logs; tested across JUnit 5, Testcontainers, MockMvc, Mockito, WireMock and jqwik, with Checkstyle/SpotBugs/SonarQube gates enforced in CI.

About the platform

Intelitor is enterprise-grade security monitoring as a service: it ingests SIA-DC09 alarm signals from on-site alarm panels (Ajax Systems, HikVision) plus alarm events from camera-feed analytics (cloud or onsite gateway), and gives operators a real-time role-based web portal to triage incidents. Runs as 8 microservices (7 Spring Boot + 1 Elixir/Phoenix ingestion) on Kafka and Redis with PostgreSQL/MongoDB persistence, deployed to Kubernetes (Amazon EKS) on AWS.

More of what I built

  • Floor-plan alarm context — sensor location, nearby cameras, and dispatch services surfaced directly inside the alarm modal.
  • Deterministic, collision-safe 4-digit site codes (hash-mapped) replacing guessable random codes.
  • Subscription commerce — plans, upgrade chains, minimum-plan fallback on expiry, payment/refund lifecycle, signed-agreement PDFs.
  • Policy-driven RBAC with territory-scoped caches; JWT, TOTP + email MFA, and session lifecycle management.
  • In-house alarm panel & sensor POC — own panels communicating over MQTT (EMQX, benchmarked head-to-head against HiveMQ with ~5x alarm-throughput headroom) and emitting SIA-DC09 to the existing production receiver, with Nerves embedded-Elixir evaluation.
  • Runtime-configurable email/FCM templates — PostgreSQL-stored, Redis-cached with {{var}} substitution and Kafka TemplateUpdated invalidation, configurable to/cc/bcc recipients, a Spring Batch EmailDeliveryJob writing DeliveryLog audit records, and a Microsoft Graph adapter for the customer's Microsoft 365 infrastructure.
  • Hardened authentication — RSA-256 JWT access/refresh with session rotation, TOTP and single-use email MFA (SHA-256 hashed, constant-time compare, 10-minute TTL, rate-limited), 4-tier password policy, and anti-enumeration forgot-password recovery that closed a prior account-takeover hole.
  • Production deployment — Kubernetes on AWS EKS with HPA, readiness/liveness probes and Istio mTLS, managed ElastiCache Redis and S3 media, shipped via Jenkins CI/CD.
  • Playwright + TypeScript E2E suite: session-conflict-hardened login, multi-tab site-creation wizard, resume-capable bulk provisioning, VMS portal automation.
  • CI/CD on Jenkins — Docker images, Helm-less EKS deploys and AWS S3 media storage.
← Back to TekMedia ← All experience