Level 1/10 Boot 0/0

Level 1 · Boot

Martin Li

Software Engineer II @ JPMorgan Chase

I build the systems people depend on, and then I stay to look after them. Four years of that at JPMorgan Chase in Java, Python, and React: the fund platform portfolio managers open every morning, plus the migrations, monitoring, and releases running underneath it. I am finishing an M.S. in Computer Science at Georgia Tech, and building things of my own most evenings.

Scroll to play

Level 2 · Stack

Collect the coins

Nothing aspirational on this list. Every coin below is something I have shipped with in production, used to build a project of my own, or worked through in graduate coursework.

Languages

  • Java
  • Python
  • TypeScript
  • JavaScript
  • SQL
  • HTML/CSS

Backend

  • Spring Boot
  • FastAPI
  • Microservices
  • REST APIs
  • Concurrency
  • Hibernate/JPA
  • OpenAPI/Swagger
  • JUnit
  • Mockito
  • pytest
  • Liquibase

Frontend

  • React
  • React Native
  • Redux
  • React Query
  • Jest
  • React Testing Library
  • ag-Grid
  • Expo

Cloud & Reliability

  • AWS
  • Kubernetes
  • Docker
  • CI/CD
  • Jenkins
  • Dynatrace
  • Splunk
  • AutoSys
  • Linux
  • Bash

Data & AI

  • MS SQL Server
  • Oracle SQL
  • PostgreSQL
  • MongoDB
  • Redis
  • LangGraph
  • On-device LLMs
  • scikit-learn
  • Claude Code
  • Cursor

Level 3 · Pipeline

Where I've shipped

  1. Software Engineer II

    Jul 2022 – Present

    JPMorgan Chase & Co. · Plano, TX

    • Shipped the fund platform 25+ portfolio managers and internal teams use for onboarding, due diligence, and portfolio management. React and TypeScript on the front, Java and Spring Boot REST APIs over SQL Server behind it.
    • Co-led a Spring Boot and Jakarta migration across 35+ microservices, building the tracker that surfaced the nine repositories with blocking merge conflicts, and writing the team's incremental upgrade guide.
    • Sole-authored a full-stack compliance tool in Java, SQL, and React that turned a multi-day manual database process into self-service, taking engineers out of the critical path for routine business operations.
    • Built and own the Python automation that monitors 35+ services for uptime and audits CI/CD compliance across 35+ repositories, emailing the team a status table every morning.
    • Release-engineered compliance-gated production deployments of 13+ services at a time across on-prem Kubernetes and AWS EKS, alongside a 22-service observability audit spanning four platforms.
    • Cut deployment time up to 40% and fund setup 70–80%, holding 99.9% uptime across 30+ applications.

    JavaSpring BootPythonReactTypeScriptAWSKubernetesSQL Server

  2. Software Engineer Consultant

    Dec 2021 – Jun 2022

    Ouicruit · Remote

    • Modernized Java and SQL API services with OpenAPI/Swagger, stronger validation, CI hardening, and expanded test coverage, improving median API latency by about 30%.

    JavaREST APIsOpenAPICI/CD

  3. Linux Consultant

    Dec 2020 – Jun 2021

    Oppenheimer & Co. · New York, NY

    • Automated secure 6–15 GB weekly financial file transfers with Linux, Bash, GPG, and scheduled jobs, cutting transfer errors by 25% and holding 99.9% data integrity.

    LinuxBashGPGAutomation

  4. Software Engineer Intern

    2019

    Federal Home Loan Bank · Jersey City, NJ

    • Built a QA data-visualization dashboard that cut outsourced reporting costs by 15% and took the tedium out of a recurring reporting workflow.

    Data VisualizationReportingQA

Level 4 · Impact

High score

35+ Microservices migrated Spring Boot and Jakarta upgrade, co-led
99.9% Uptime held Across a 30+ application portfolio
40% Faster deployments Containerized delivery and CI/CD
25+ People using what I built Portfolio managers and internal teams

Level 5 · Craft

How I actually work

Four habits that show up in almost everything I ship. None of them are original. They are just the things I learned the slow way and now refuse to skip.

Write the runbook, not just the code

I try to write the page I would want to find at 2am during an incident: the exact command, the exact error, the fix, and the why. Twenty-two of those exist because of a rollout or an outage I did not want anyone to have to rediscover.

Leave the decision visible

My interview platform withholds per-question scores until the interview ends, because a running score changes how people answer the next question and destroys the measurement. Its architecture notes have a section called "things deliberately not done" so those read as choices, not oversights.

Fix it even when it is not yours

An audit turned up services deployed to cluster pairs that were not actually in separate availability zones, which quietly defeats the point of having two. I did not own them. I wrote up the rule, raised the pull requests, and asked the owners to review.

Get it wrong in private, twice if needed

My first two passes at a script meant to run across 35 repositories were subtly broken in ways that would have been harmless on one repo and destructive on thirty-five. Scale turns a small bug into a large one, so I test the blast radius before I widen it.

Level 6 · Deep dive

The work behind the bullet points

A résumé gives each of these one line. Here is what actually happened, including the parts I got wrong first. Details are generalized, because the specifics belong to my employer.

Migrating 35+ services, one version at a time

Every service sat a different distance from the target version. I co-owned the tracking: a merge-status board for all 35 that surfaced nine repositories with blocking conflicts, four where the mainline already had the change, and one abandoned service I cut from scope. Then I wrote the team's upgrade guide, because jumping several major versions at once produces breakage nobody can isolate.

Knowing your dependencies are up, not just your service

Audited 22 services across four platforms, verified every log index and APM process group, and found services missing the egress rule their collector needed. Then went a layer down: a custom health indicator checking 20+ downstream dependencies in parallel with CompletableFuture, and a Python job that mails the fleet's status daily.

One config change, 35 repositories

Scripted as a batch change rather than 35 hand-written pull requests. Took three tries: a malformed pattern, then a fragile range delete that could swallow an unrelated section, then awk flagging on the key and stopping at the next non-indented line. A parallel Python audit hit an auth wall, so I moved to token-based API access.

Five services, five completely different failures

A stack that had never worked in dev. No auth client for that environment. A gateway with four stacked problems including an audit table that did not exist. A service still pointed at a decommissioned cluster. The method was unglamorous: read the actual error out of each pod instead of guessing.

Compliance-gated releases, 13 services at a time

Release engineer across two ecosystems, on-prem Kubernetes and AWS. Coverage thresholds, security scans clean of critical and high findings, a change request carrying every signed-off ticket, then control-platform approval before the pipeline runs at all. One release carried ten tickets at once, well above the usual batch.

A tool built for whoever cleans up after it

Stock splits used to mean hand-running SQL across four tables. The wizard that replaced it resolves human-readable identifiers to internal keys server-side, so a request can never touch the wrong security, and shows sample rows before and after so operations can check without dumping the dataset.

Certificates, made boring on purpose

Owned the mutual TLS lifecycle behind a file-transfer integration: request, install, rotate, test. Whoever does it next is usually under pressure with an expiry behind them, so I wrote it as a nine-step SOP with the exact commands and keystore conversions.

Two clusters, one datacenter, zero redundancy

Services should pair across separate availability zones. An audit found pairs built from mismatched bases and one service spread across three. I did not own them. I documented the rule, ordered the replacement addresses, raised the pull requests myself, and asked the owners to review.

Level 7 · Builds

Side quests

The things I build when nobody is asking me to. This is where I make every architectural call myself, get them wrong in private, and learn the most.

Gauntlet

A FastAPI and LangGraph engine that runs adaptive technical interviews. The hard part was never the model call, it was deciding what the model is allowed to judge: code computes the facts and enforces the constraints, the model handles only genuine judgment. 21 REST endpoints, 194 tests, and a CI-gated benchmark that grades the grader.

PythonFastAPILangGraphPostgreSQLRedisReact

ClearSpeak

A speech coach that listens while you rehearse and gives feedback in real time: filler words, pacing, progress across sessions. The LLM and the speech-to-text both run on the device, so the recording of you stumbling through a practice run never leaves your phone. Built and shipped solo.

React NativeTypeScriptExpollama.rnwhisper.rn

PressurePoint

A local-first app for executive dysfunction, built on one idea: the hard part is starting, not finishing, so nothing in it punishes a miss. Research-grounded behavioral UX, WCAG AAA accessibility, and 155 assertions that test the design rules so a future refactor cannot quietly undo them.

React NativeExpoTypeScriptAccessibility

Randomized Optimization

A graduate study putting backpropagation head to head with genetic algorithms and MIMIC on heart-disease classification, reaching about 0.945 accuracy. The interesting result was not which one won, but where each method stopped improving, and why.

Pythonscikit-learnNeural Networks

Level 8 · Credentials

Power-ups earned

M.S., Computer Science

Georgia Institute of Technology, concentration in AI/ML. Taken part time while working full time.

2026 · GPA 3.6

Machine Learning · Artificial Intelligence · ML for Trading · Data & Visual Analytics · AI, Ethics & Society

B.S., Computer Science

The City College of New York.

2020

AWS Certified Cloud Practitioner

Amazon Web Services.

Nov 2022

Level 9 · Trophies

Weekends well spent

1st Place

Cornell University Data Science Hackathon

1st Place

Heroes vs Hackers Hackathon

Best Website Hack

Columbia Health Hacks

Level 10 · Ship it

Game complete

Thanks for scrolling all the way here. I am open to Software Engineer roles across full-stack, backend, platform and reliability, or AI/ML, and I am based in Plano, TX. If you are hiring, or you just want to compare notes on a migration that went sideways, I would genuinely like to hear from you.

Prefer the boring version? Read the plain résumé or download the PDF.