Skip to content
View thitipongroo's full-sized avatar
🎯
Focusing
🎯
Focusing
  • One Inspector And Consultant
  • Bangkok Thailand
  • 09:37 (UTC +07:00)

Block or report thitipongroo

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
thitipongroo/README.md

Thitipong Roongprasert

Backend Engineer — Java/Spring Boot & Node.js · Bangkok, Thailand

I build backend services for production traffic. Most recently a real-time analytics platform sustaining 10M+ requests/day at sub-100ms response times, built on Kafka and Redis. Two platforms I'm building at One Inspector and Consultant, my own consultancy: Sentinel IoT Platform, an industrial monitoring system in Java 21 / Spring Boot with MQTT ingestion, circuit-breaker resilience and GitOps deployment to EKS; and Construction OS, an AI-native construction management platform currently in development.

LinkedInEmail


Tech Stack

Languages

JavaTypeScriptPythonGoC++

Backend

Spring BootSpringNode.jsNestJSExpressFastAPI

Data & Messaging

PostgreSQLMySQLMongoDBRedisKafkaClickHouseNeo4jFirebase

Infrastructure & CI

DockerKubernetesAWSTerraformHelmArgoCDGitHub Actions

Observability

PrometheusGrafanaOpenTelemetryJaeger

Frontend & Testing

ReactNext.jsReact NativeTailwind CSSJUnitTestcontainersCypressk6


Production Work

The systems below were built under commercial engagements, so the source is proprietary and not published here. Happy to walk through the architecture and trade-offs in conversation.

Real-time analytics platform — Kafka, Redis, Docker Sustains 10M+ requests/day. Redis caching layer brought API responses under 100ms; Kafka-based ingestion decoupled the write path from reporting reads so traffic spikes stopped degrading dashboard performance. Collapsed client reporting from a multi-hour batch job into on-demand results.

Distributed chat service — WebSocket, Pub/Sub Pub/sub fan-out keeps message delivery consistent across nodes instead of pinning users to a single server.

High-throughput notification pipeline — Kafka Event-driven delivery with retry/backoff, dead-letter handling, and idempotent sends.


Projects

Construction OS · NestJS, Next.js, React Native, Python, Go 🚧 In development

AI-native construction management platform built for enterprise scale. Currently at Stage 1 (BUILD) — architecture and specs are settled, implementation is underway.

  • Modular monolith over microservices — one NestJS deployable holding all domain modules (identity, tenant, project, BoQ, procurement, site-ops, finance, equipment, workforce), with separate services only where a language or throughput boundary justifies it: Python/FastAPI for LLM gateway, embedding, OCR and transcription; Go for analytics, knowledge-graph and MQTT IoT ingestion
  • Multi-tenancy — shared database with tenant_id and PostgreSQL row-level security, chosen over schema-per-tenant and documented as an ADR
  • Offline-first clients — Serwist PWA with IndexedDB on web, Drizzle over expo-sqlite with a sync queue on React Native, reconciling through Kafka; built for sites with no signal
  • Monetary correctnessDECIMAL(19,4) in PostgreSQL, decimal.js and Python decimal in application code, floats banned by lint rule
  • Event bus — Kafka with Avro and Schema Registry under BACKWARD_TRANSITIVE compatibility; Temporal for long-running workflows
  • Auth split by user reality — phone + SMS OTP via AWS SNS for site workers, Keycloak OIDC with RS256 JWT for office staff
  • Polyglot persistence — PostgreSQL + TimescaleDB, ClickHouse (analytics), Neo4j (knowledge graph), pgvector + OpenSearch (retrieval), MinIO (objects), Redis
  • Operational discipline — PgBouncer in transaction mode with direct PostgreSQL connections prohibited, OpenTelemetry → Grafana/Loki/Prometheus, secrets via Vault and AWS Secrets Manager, ~60 ADRs and a 100% line/branch coverage mandate

Sentinel IoT Platform · Java 21, Spring Boot 3.2, Kafka, Kubernetes

Industrial IoT monitoring platform — MQTT sensor ingestion, threshold alerting, multi-channel notifications, live WebSocket dashboard, and a full observability stack.

Measured: cache read path sustains 1,000 req/s (60k+ ops/min) at p95 112 ms / p99 187 ms under k6 load test, against SLO targets of p95 < 200 ms and p99 < 500 ms.

  • Ingestion — Mosquitto MQTT via Spring Integration, with DLQ routing for invalid payloads and unknown devices; Kafka event streaming with Avro schemas and Confluent Schema Registry
  • Resilience — Resilience4j circuit breaker and retry; when Postgres is unavailable the dashboard stays live off Redis while writes queue to a Redis replay list, drained every 30s once the breaker recovers
  • Data — PostgreSQL 16 with monthly range partitioning, hourly aggregates, row-level security for multi-tenancy, Flyway migrations; CloudNativePG + Barman for HA replication and WAL archiving
  • Realtime — Spring WebSocket with Redis pub/sub fan-out across nodes
  • Observability — Prometheus, Grafana, OpenTelemetry/Micrometer, Jaeger tracing, structured JSON logging with MDC request correlation, multi-window burn-rate SLO alerting
  • Testing — JUnit, Mockito, Testcontainers, Pact contract tests, JMH benchmarks, Pitest mutation testing, ArchUnit, schemathesis fuzzing, k6 load tests
  • Deploy — Docker Compose locally; EKS via Terraform and Helm, GitOps with ArgoCD, blue/green and canary rollouts with Argo Rollouts, event-driven autoscaling with KEDA, Velero backup/DR
  • Frontend — Next.js 14 App Router, Tailwind, Recharts, react-query, Zustand, list virtualization

LINE Bot API · Java, Spring Boot

RESTful service integrated with the LINE Messaging API, handling webhook events and message delivery.

Codebox Platform · Node.js, Express, MongoDB ✅ Completed

Full-stack platform for user and content management. Currently migrating the frontend from server-rendered EJS to React + Tailwind CSS.

Cypress Cinema Automation · Cypress 13 📚 Portfolio project

E2E suite for a cinema booking platform, covering language switching → cinema selection → movie selection → showtime verification → seat selection.

  • Page Object Model — selectors and interactions encapsulated per page class
  • Fixture-driven test data, decoupled from test logic via JSON
  • Mochawesome HTML reports, generated in CI on every push and pull request
  • Retry strategy for flaky network-dependent tests

Remote Vote · Firebase, embedded C ✅ Completed

Secure remote voting system with live result updates, backed by a microcontroller client. Firebase Authentication, Cloud Functions, and Realtime Database.

Smart Window · Embedded C++ ✅ Completed

IoT automation that reads environmental sensor data and drives microcontroller-based window control logic.


Certifications

Google Cybersecurity · Prompt Engineering & Agentic AI (AIS Academy) · Secure Coding: OWASP Top 10 · Secure Coding on Frontend

Popular repositories Loading

  1. smart-window smart-windowPublic

    IoT smart window automation using sensors and microcontroller decision logic

    C++ 1

  2. remote-vote-firebase remote-vote-firebasePublic

    Secure remote voting system using Firebase Authentication and Cloud Functions with C++ microcontroller

    C

  3. line-bot-api line-bot-apiPublic

    RESTful API service integrated with LINE Messaging API, built with Java Spring Boot

    Java

  4. cypress-cinema-test cypress-cinema-testPublic

    End-to-end test automation for cinema booking system using Cypress + Page Object Model

    JavaScript

  5. ibm-cloud-garage-tdd ibm-cloud-garage-tddPublic

    JavaScript

  6. iot-for-beginners iot-for-beginnersPublic

    Forked from microsoft/IoT-For-Beginners

    12 Weeks, 24 Lessons, IoT for All!

    C++