Sprint showcase, anonymized

Seven real sprints, one client

This is the work I did for a US investment analytics platform between August and October 2026. Analysts upload Python scripts, the platform runs them each night against market data, and members read return cards, fund drill downs and daily emails. I removed every name, domain, repository and billing detail. The counts and the way I reported are real. They come from the delivered reports, the written updates and the merged pull requests. Every sprint below was scoped, reported and handed over in writing.

Length
2 to 9 days per sprint, 7 sprints
Scope
Features, data fixes, infrastructure and security findings
Stack
Python and Django, React and TypeScript, Postgres, AWS containers, Terraform, GitHub Actions
Outcome
16 pull requests, 336 commits, tests from 52 to 922

[2]Timeline

Sprint 18, nine days

  1. Before day 1Request

    The written scope

    The client sent a list of requests in a chat message. Within one working day I replied with each item in their words, what I would deliver, how I would check it and the hours per part.

    Artifacts. Scope
    written
  2. Day 1Kickoff

    Kickoff note and scope report

    A short kickoff message with the hours per part and the delivery day. The same evening the full scope followed as a report, with two findings that needed a decision first.

    Artifacts. Kickoff note
    Scope report
  3. Day 2Build

    All eight builds tested and live

    Every item on its own branch with tests, reviewed and deployed. The drill down now reads about 35 times fewer price rows per page. After the deploy one query made a fund page slow, and I cut its first load from 8 to 12 seconds to 1.7 to 4.7.

    Artifacts. 6 pull requests
    3 migrations
  4. Days 3 to 8Watch

    Nightly checks on the live site

    A watcher I left running proved that the nightly pipeline ran out of memory on 14 of 30 logged nights. I also found API keys in the code of 72 stored scripts and limited script code to staff the same day. A mid week note reported both.

    Artifacts. Progress note
    Watcher log
  5. Day 9Deliver

    Report, evidence and handover

    A delivery message, a report with 13 sections and 22 evidence references, a compliance sheet and a time statement. Before sending, a validation pass checked 388 statements against raw data. After the deploy a second pass checked 441.

    Artifacts. Report
    Compliance sheet
    Time statement

[3]Sample artifacts

Written samples

Two short excerpts from real messages, anonymized.

A finding sent before the deploy, sprint 17BAnonymized

One item cannot wait for the rest of the sprint. An old test script prints the platform's own settings into its error text, with real values. The platform shows that text to any signed in user, and anyone can register.

The code side is fixed on the branch. Error text is now shown to staff only, and any secret value is replaced before an error is stored or logged.

One rotation signs every user out once, so it needs your go ahead and a quiet half hour. I have changed nothing on production.

Michael

The close of a report, sprint 13Anonymized

Everything above is built, committed and proven against real data and a running application. None of it is deployed to your production environment yet, and I want that stated plainly rather than buried.

Michael

[4]Outcome

What shipped

  • Three month return on cards, tables, CSV exports, the daily email and its PDF, checked to four decimals
  • Sticky headers on three long tables, tested at desktop and phone width
  • A drill down of 1,800 rows, paged, sorted and searched on the server
  • Staff reruns of a script for an earlier date, limited to the script sandbox
  • A database disk moved from 10 GB to 20 GB on faster storage, with the database online
  • A fund page first load cut from 8 to 12 seconds to 1.7 to 4.7 seconds
  • Script source code limited to staff after API keys turned up in 72 stored scripts

[5]At a glance

Five sprints with full records

The same client, most recent first. The backend test suite grew from 52 tests to 922.

Every sprint

  • A finding that changes the client's risk goes first, before the feature list.
  • I fix the cause, not the symptom, and I say what the cause was in plain words.
  • Every figure in a report carries a reference to its evidence. I mark estimates as estimates and state my own corrections.
  • Nothing touches production without a snapshot first. Anything that changes who sees what, or rotates a secret, waits for written approval.
  • Reviews, merges and validation the client did not ask for are not on the time statement.

Next step

If you have a problem that needs careful engineering, send me a written brief.

Start a brief

I reply in writing within one working day.

How it starts

  1. [1]Send a written brief
  2. [2]Sign the agreement
  3. [3]Week 1 starts