Skip to content

Software Engineer at First Insight

Mohammed Saifulhuq

Software Engineer · Backend & distributed systems

I build backend systems in Java and Spring that stay correct under real traffic — clean API contracts, safe retries, and the edge cases that only show up in production.

01About

I’m a backend-focused software engineer at First Insight, where I work on the retail analytics platform: the survey insight engine that turns raw responses into ranked, plain-language findings, and the report-sharing flows and tenant authorization rules around it.

Before that I built Spring Boot APIs for Indian Overseas Bank at Muthu Soft Labs, defining the API contracts on-site with the bank’s stakeholders. Outside work I contribute to Apache Fineract, an open-source core banking platform, and maintain DLQ Revive, a tool for safely replaying Kafka dead-letter messages.

I came to software from US healthcare revenue cycle operations, which taught me how much people depend on systems behaving correctly. The work I enjoy most is the part that keeps them correct: idempotency, tenant isolation, bounded concurrency and honest failure states.

02Experience

  1. Jul 2026 — Present

    Software Engineer · First Insight, Inc.

    Chennai, India

    • Designed and built the survey insight engine for the retail analytics product: four statistical generators for single-choice, multi-select, ranking and statement questions, each with its own baseline model, turning raw responses into ranked, plain-language findings for clients.
    • Found an unreported cross-tenant authorization gap in shared report links and designed the fix: a resolution endpoint that returns distinct wrong-tenant, deleted and unauthorized states.
    • Wrote the report-sharing API design and built server-side delivery of branded share emails through the existing async email queue, replacing a client-side mailto: flow that could not carry the required template.
    • Traced missing survey data in the Electron respondent simulator (21 of 50 plays completing while the progress bar showed 50/50) to unbounded request fan-out tripping the server’s rate limiter; added bounded concurrency with retry and backoff, reaching 200 of 200 completed plays.
    • Java
    • Jakarta EE (JAX-RS)
    • JPA/Hibernate
    • MariaDB
    • Keycloak
    • Angular
  2. Apr 2025 — Mar 2026

    Software Developer · Muthu Soft Labs

    Chennai, India

    • Built Spring Boot 3 REST APIs for Indian Overseas Bank, a public-sector banking client, and defined the API contracts directly with bank stakeholders on-site, shaping both the backend services and the Angular screens built on them.
    • Cut initial bundle size by 40% with lazy-loaded modules and applied OnPush change detection to reduce rendering work; eliminated duplicate-submit and stale-response race conditions with exhaustMap and switchMap.
    • Java
    • Spring Boot 3
    • Angular
    • RxJS
    • PostgreSQL
  3. Jul 2024 — Mar 2025

    Associate, Revenue Cycle Operations · Vee Technologies

    Chennai, India

    • Handled US healthcare claims: accounts receivable, claim follow-up and denial resolution.
View full résumé

03Projects

Open-source work, built and maintained outside my day job.

  • DLQ Revive

    Apr 2026 — Present

    Creator & Maintainer

    An open-source tool for inspecting and replaying Kafka dead-letter messages without disturbing the consumer groups that are still running in production.

    Replay path
    1. DLQ topic
      paginated browse
    2. assign() + seek()
      no rebalance
    3. JSONata
      preview before send
    4. Idempotency guard
      topic · partition · offset
    5. Target topic
      audited in PostgreSQL
    • Paginated, memory-safe browsing of stuck messages, a side-by-side transform preview, and an audit trail of every action in PostgreSQL.
    • The replay consumer uses assign() + seek() instead of subscribing, so a replay never triggers a rebalance in live consumer groups.
    • Replays are safe to repeat: an idempotency guard on UNIQUE(topic, partition, offset) makes a second run a no-op.
    • Message transforms are limited to JSONata expressions, which rules out remote code execution through the transform step.
    • Java 17
    • Spring Boot 3
    • Apache Kafka
    • Angular
    • PostgreSQL
  • Apache Fineract

    Jan 2026 — Present

    Open Source Contributor

    Contributions to the Apache Software Foundation’s open-source core banking platform, used by microfinance institutions worldwide.

    • Merged 4 PRs, including Force Debit for savings accounts: a dedicated force-withdrawal command, agreed on the community mailing list, that lets institutions debit beyond the available balance up to a configurable limit behind a new permission, with integration tests passing on MariaDB, PostgreSQL and MySQL.
    • Hardened the email and SMS read services against SQL injection by replacing string-built queries with prepared statements.
    • Proposed a request-level idempotency design using OncePerRequestFilter and INSERT … ON CONFLICT DO NOTHING to replace exception-driven duplicate handling.
    • Java 17
    • Spring Boot 3
    • PostgreSQL
    • Liquibase
    • Docker

04Skills

Backend
Java 17 / Spring Boot 3 / Jakarta EE (JAX-RS) / JPA/Hibernate / Apache Kafka / REST API design
Data
PostgreSQL / MariaDB / MySQL / Liquibase
Frontend
Angular / TypeScript / RxJS / JavaScript / HTML/CSS / Electron
Testing & Tools
JUnit 5 / Mockito / EmbeddedKafka / Docker / Docker Compose / GitHub Actions / Git / Maven / Gradle / Keycloak (OAuth2)

Education

B.Sc. Computer Science · Dhanraj Baid Jain College

2020 — 2023 · CGPA 8.52 / 10 · Chennai, India

05Contact

Let’s talk.

I’m open to backend and full-stack engineering roles, and always happy to talk about Kafka, Spring or open source. Send a note below or email me directly at mohammed.saifulhuq@gmail.com.