Sharang Gupta

Java · Spring · TDD

Sharang Gupta

Software Engineer

Java and Spring, built test-first.

I work mainly on backend systems in Java and Spring Boot, deployed on Kubernetes and Google Cloud Platform. Away from work I build small apps that each show one idea, and write about what I learn.

Bournemouth, England.

Download CV (PDF)Email me

01 · Work

Selected work

Small, complete projects, each built test-first to show one idea.

  • Orderly (Work in progress)

    A learning project: moving from controller-service-repository habits to a hexagonal design, one failing test at a time. Each layer is a Maven module that lists only what it may depend on, so an inward import from the domain is a compile error, not a review comment. The domain is built and the application layer has started; the REST API, database and Spring Boot application are planned.

    • Java 21
    • Maven
    • Hexagonal architecture
    • TDD

    View Orderly on GitHub

  • Flight search

    A Spring Boot REST API for searching flights, built test-first with hexagonal architecture. The domain and application code is plain Java; all framework code (Spring, JPA, REST) sits outside and depends inward, never the other way. Java 21, Spring Boot 3.4, with CI on GitHub Actions.

    • Java 21
    • Spring Boot 3.4
    • Hexagonal architecture
    • GitHub Actions

    View Flight search on GitHub

  • EazyBank

    A banking application split into four Spring Boot microservices: a gateway as the single entry point, and account, card and loan services, each with its own PostgreSQL database. Runs on Kubernetes, with GitHub Actions workflows to build and deploy each service, and an observability stack (Prometheus, Grafana, Loki and Tempo) for metrics, logs and traces.

    • Spring Boot
    • Kubernetes
    • PostgreSQL
    • GitHub Actions

    View EazyBank on GitHub

  • OAuth2 product

    An OAuth2 resource server and client with Spring Boot, built test-first and run end to end with Docker Compose. The article series below follows this code.

    • Spring Boot
    • OAuth2
    • Docker Compose
    • TDD

    View OAuth2 product on GitHub

Also

02 · Open source

Fixes that landed upstream

Merged pull requests in libraries I use.

  • Spring Cloud Stream

    DefaultBinderFactory no longer starts plain lifecycle beans in binder contexts during a normal refresh (gh-3155). Backported to 5.0.x.

  • Apache Commons Lang

    TypeUtils.containsTypeVariables and unrollVariables honour the owner type of a ParameterizedType (LANG-1836).

  • Micronaut Core

    An Accept-Charset header is ignored when reading String request bodies.

  • SpotBugs

    RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT now reports an ignored Arrays.copyOf result.

  • ArchUnit

    New haveOnlyFinalNonSyntheticFields() condition that skips compiler-generated fields.

  • OpenFeign

    A null Request.Body is treated as a request with no body.

More are in review: open pull requests on GitHub.

04 · Experience

Where I have worked

  1. Software Engineer, THG

    Jan 2023 to present · Bournemouth, England (remote)

    • Backend development in Java and Spring Boot, deployed on Kubernetes and Google Cloud Platform.
    • Diagnose and fix production incidents.
    • Test-first development and code review.
  2. Associate Software Developer, JPMorgan Chase & Co.

    Sep 2022 to Feb 2023 · Bournemouth, England

    • Built more depth in Spring Boot while working on backend services in a banking environment.
    • Hands-on exposure to Kubernetes and cloud deployment.
    • Worked with production monitoring and observability.
  3. Graduate Software Engineer, THG

    Oct 2021 to Sep 2022 · Salford, England

    • First professional work in Java and Spring Boot, on a large production system.
    • Learned clean-code practices, code review and team delivery workflows.
  4. Python Developer, Karza Technologies

    Dec 2018 to Sep 2020 · Mumbai

    • Responsible for building data pipelines across multiple web sources like BSE, NSE and electoral rolls via web-scraping using python
    • Created over 300 web crawlers, harvesting millions of data points, thus creating end to end data pipelines for consumption
    • Introduced in-memory download and re-upload of scraped PDFs reducing disk memory usage to a fraction of original
  5. Software Engineer, Bombardier

    Aug 2018 to Dec 2018 · Vadodara, India

    • Responsible for developing web-hmi components for new metro trains
  6. Software Engineer Intern, Symantec

    Jan 2017 to Jun 2017 · Pune, India

    • Built a crawler to collect files and their hashes for the most popular cloud-based software; gathered 1 million files to whitelist, hitting the target within 3 months
    • Delivered a second crawler in record time for a time-sensitive, high-priority project
    • Stayed on after the project to work with the team on development, across all stages of production

05 · Recommendations

What colleagues say

From LinkedIn recommendations; names and context as shown there.

  • “Sharang has shown outstanding dedication as a Software Engineer. He has consistently gone above and beyond to understand the complexities of the Product platform, demonstrating a remarkable ability to quickly assess and address issues. Although being part of a different team, Sharang acted swiftly and effectively during critical incidents to reduce impact on our team's platform. I am confident he will continue to make a positive impact wherever he goes.”

    Ahmad Aussaili, 2024, worked with me on a different team
  • “Sharang reported to me during his first year as a graduate software engineer. I have no doubt he will be a great success at whatever he sets his mind to. Sharang’s enthusiasm to learn and develop was consistent from day one. He took a proactive approach to his, and the team’s, development. He was a pleasure to mentor, and would be welcome back anytime.”

    Charlotte Cozens, 2022, managed me directly
  • “Sharang has been an absolute joy to work with, technically curious, willing to jump in and try new things whilst always pursuing his thirst for learning. I found Sharang to be extremely outcome and delivery focused.”

    Steve Moss, 2022, managed me directly

See all recommendations on LinkedIn

06 · Background

Education and skills

Education

Skills

Languages and frameworks
JavaSpring BootPython
Platform
KubernetesGoogle Cloud Platform
Data
MySQLCouchbaseMongoDB
Practice
TDDJUnitClean codeSOLIDCode review

07 · Contact

Get in touch

Open to hearing about interesting engineering roles.

sharang@sharanggupta.dev+44 7563 566755

Bournemouth, England