I'm a backend software engineer at Tata Business Hub (formerly Tata Nexarc), based in Kolkata. I work primarily in Java and Spring Boot, with regular forays into Go, Kotlin, and Python.
Beyond my day job, I build open-source tooling, hunt real bugs in production libraries, and contribute fixes to the Spring AI, OpenAPI/Swagger, and Go backend ecosystems. I created HavocFlow — an annotation-driven chaos engineering starter for Spring Boot — published to Maven Central.
All numbers above are directly traceable to public GitHub commit history, pull-request merge records, and release tags.
| Area | What I do |
|---|---|
| Bug fixes | Trace root causes in library internals — deserialization edge cases, broken annotation processing, nil-channel races |
| Security | Identified and fixed CVE-2026-22733 (CVSS 8.2) in HavocFlow dependency tree; ThreadLocalRandom hardening; ReDoS fix |
| Tests | Added 206 tests to chaos-spring-boot-starter; contributed test-coverage and readability improvements to Spring AI |
| Features | Maven BOM module for swagger-core; NORCET exam platform; WebFlux / Kafka / OTel / Gateway integrations in HavocFlow |
| Code quality | SonarQube compliance fixes across multiple libraries (S106, S1148, naming, assertion clarity) |
| Libraries supported | swagger-core ⭐ 7.5k · Spring AI ⭐ 9k · OpenAI Java ⭐ 1.5k · RudderStack ⭐ 4.5k |
| Project | Contribution | Link |
|---|---|---|
| swagger-api/swagger-core ⭐ 7.5k | Introduced a Maven BOM module (swagger-bom/pom.xml) so consumers can manage all io.swagger.core.v3 artifacts without specifying versions; includes integration tests and Sonatype Central publishing profile |
PR #4987 |
| swagger-api/swagger-core | Fixed validation meta-annotations not being processed — @Valid and constraint annotations on method parameters were silently dropped during schema resolution |
PR #4986 |
| swagger-api/swagger-core | Removed System.out / printStackTrace across the codebase to align with SonarQube rules S106 and S1148 |
PR #4988 |
| spring-projects/spring-ai ⭐ 9k | Improved test readability in OpenAiChatModelMutateTests — Sonar naming, assertion clarity, minor duplication removed; commit accepted into main |
Commit |
| spring-ai-community/spring-ai-session | Fixed AWS Bedrock Converse ValidationException — SessionMemoryAdvisor was storing empty AssistantMessage frames (emitted at end of tool-call sequences), which Bedrock rejected on replay; PR cherry-picked into main |
PR #19 |
| Project | Contribution |
|---|---|
| openai/openai-java ⭐ 1.5k | Fixed OrganizationCostsResult.Amount.value() throwing OpenAIInvalidDataException — live API returns numbers as quoted JSON strings (e.g. "0E-6176"); added a type-coercing deserializer |
| spring-projects/spring-ai ⭐ 9k | Fixed two independent null/empty ToolContext validation bugs in MethodToolCallback and ToolCallingManager |
| spring-projects/spring-ai | Fixed FactCheckingEvaluator and RelevancyEvaluator hardcoding feedback to empty string and discarding the raw LLM response |
| rudderlabs/rudder-server ⭐ 4.5k | Fixed file descriptor leak in Handle.upload() — outputFile opened via os.Open was never closed on either the success or error path |
| rudderlabs/rudder-server | Prevented nil-channel send DoS in RequestHandler — a nil channel send blocked an HTTP worker goroutine indefinitely |
| swagger-api/swagger-core | Added Java 8 java.time.* format support per the OpenAPI Formats Registry |
| swagger-api/swagger-core | Allow @ExampleObject values to be loaded from a classpath or filesystem file |
Annotation-driven chaos engineering library for Spring Boot — authored entirely from scratch, published to Maven Central.
What it does: Drop @InjectChaos on any Spring bean method to inject latency, exceptions, or connection exhaustion under configurable failure rates — without touching production code. Designed for resilience testing in CI and staging environments.
Technical highlights:
@InjectChaos/@SuppressChaosAOP annotations — method-level chaos with scenario inheritance and inline overrides- WebFlux support —
ChaosWebFilterfor non-blocking HTTP fault injection viaMono.delay(); suppressed automatically when Spring Cloud Gateway is present to avoid double-injection - Ramp-up calculator — linear
failureRateinterpolation over a configurable time window for gradual load testing - Ecosystem integrations — Spring Kafka listener chaos · OpenTelemetry span events · Slack/webhook notifications · Spring Cloud Gateway reactive filter · Testcontainers lifecycle hooks
- Security hardening — fixed CVE-2026-22733 (CVSS 8.2, CloudFoundry Actuator auth bypass in dependency);
HashMap → ConcurrentHashMapfor thread safety;Random → ThreadLocalRandom; ReDoS fix inantMatch();volatileflag for JVM visibility; overflow guard inLatencyParser - 206 tests, 0 failures — full unit and integration coverage across all strategies and integrations
- Java 8+ · Spring Boot 2.x and 3.x compatible · Published to Maven Central at
io.github.havocflow:chaos-spring-boot-starter - 5 releases:
v01.01.00→v01.04.01
<dependency>
<groupId>io.github.havocflow</groupId>
<artifactId>chaos-spring-boot-starter</artifactId>
<version>01.04.01</version>
</dependency>Full-stack exam-preparation platform for NORCET. Go backend serves a dynamically configurable set of 12 tools across 6 NORCET exam versions via a /api/v1/norcetIq/toolsConfig REST endpoint, with thread-safe in-memory caching using sync.RWMutex. TypeScript/React frontend fetches the tool catalogue at runtime, making the tool set reconfigurable without a frontend redeploy.
Setup: See
.github/workflows/snake.ymlin this repository. The snake regenerates weekly. You must enable Actions and theoutputbranch will be created automatically on first run.
I fix things that are broken in production and build things that are worth building.


