Languages

Java

Production Java for enterprise APIs, batch processing, and backend services.

Advanced2+ yearsLanguages

Java is my JVM language of choice for enterprise work. I have used Java 11/17 in production for REST APIs, scheduled batch processing, integration services, and migration tooling — primarily inside the Spring Boot ecosystem but also in plain-Java jobs and CLI utilities.

My Journey

How I work with Java

I learned Java during my engineering coursework and started using it professionally at GTCSYS for backend services on the Spring Boot stack. I quickly grew comfortable with the modern language — streams, optional, var, records — and the operational realities of running JVM workloads.

Beyond Spring Boot, I have written standalone Java for migration scripts, ETL between PostgreSQL and MongoDB, and small CLI utilities. I treat Java as a serious production language: I write tests with JUnit, profile with VisualVM, and care about GC characteristics when it matters.

I am most productive in Java 17 with Spring Boot, Maven, and Lombok, but I have read and maintained older codebases (Java 8) and migrated them forward.

Where I've Applied It

Java across business domains

Real Estate

Wrote the core API layer in Java + Spring Boot, including search, listing CRUD, and lead-management endpoints.

Compliance Management

Implemented audit, reporting, and scheduled-task logic in Java, with batch jobs running nightly to compile compliance reports.

Manufacturing & Industrial

Delivered Java-based integration services that bridged legacy industrial systems with the modern web platform.

Problems Solved

Real issues I resolved using Java

Rewrote a slow stream pipeline to cut report generation by 70%

Problem

A nightly compliance report job was taking 90+ minutes because of a chain of `Stream.collect` operations that materialized intermediate lists in memory.

Solution

Refactored to lazy operations (peek, reduce, downstream collectors) and pushed grouping into PostgreSQL with a single aggregating query, returning a thinner result set to Java for formatting.

Impact

Report job runtime dropped to ~25 minutes, JVM heap usage during the run halved, and the on-call rotation stopped getting paged for OOM kills.

JavaStreamsSpring BootPostgreSQL

Replaced reflection-heavy mapping with explicit converters

Problem

A service was using a reflection-based bean mapper between entities and DTOs, which was slow and silently dropping fields on rename.

Solution

Generated explicit MapStruct mappers checked at compile time, so mapping mistakes became build errors instead of runtime bugs.

Impact

Eliminated a class of silent data-loss bugs, improved mapping throughput measurably on hot paths, and made refactors safe.

JavaMapStructSpring Boot

Hardened a third-party integration with retries and timeouts

Problem

An external Java integration was occasionally hanging because it relied on default HTTP client timeouts (effectively infinite) and had no retry policy.

Solution

Switched to a properly-configured RestTemplate with connect/read timeouts and added a retry policy via Spring Retry with exponential backoff on transient errors.

Impact

Background workers stopped getting wedged, downstream alerts cleared, and transient blips became invisible to users.

JavaSpring BootSpring Retry
Related Skills

Often used together

Have a Java project in mind?

I am open to full-time and contract work where Javais core to the stack. Let's talk about what you are building.