Skip to content
Nitheesh Kodarapu
← All work

May 2025 – May 2026 · Houston, TX

Waste Management

  • Software Engineer (Part-time) · Aug 2025 – May 2026 · Promoted from intern
  • Software Engineer Intern · May 2025 – Aug 2025

Started as an intern modernizing a 20-year-old point-of-sale system used at 200 scale houses, then was promoted to part-time to fix a long-standing memory leak and automate manifest processing with Amazon Bedrock.

RAM after fixing a memory leak
−40%
RAM after fixing a memory leak
operator screens redesigned
30+
operator screens redesigned
manifest processing turnaround
1 wk → 2–3 days
manifest processing turnaround

Finding the memory leak

Each form loaded its data into several DataSets. Closing the form never released them, so every navigation, even back to the same form, left another batch in memory.

Scale House POS

Click a form to open it.

Forms opened: 0 · click any form to add your own

Memory in use Before fix After fix

time into shift →

Before the fix

DataSets in memory: 0

every DataSet ever loaded is still held

After the fix

DataSets in memory: 0

a form's DataSets are released when it closes

Illustrative recreation with synthetic data. No company code, data, or internal tools.

Reading manifests with Amazon Bedrock

A manifest arrives as a scan of a paper form: typed fields, handwritten quantities, a signature.

WASTE MANIFEST

Manifest no. 004817293

1. Generator · site ID TX-GEN-48213

ACME METAL FINISHING CO.

1200 INDUSTRIAL BLVD, HOUSTON TX 77029

2. Transporter

ROADRUNNER TRANSPORT LLC

TX-TRN-91744

3. Designated facility

EASTSIDE DISPOSAL FACILITY

TX-FAC-30051

4. DescriptionNo.TypeQtyUnit
INDUSTRIAL SLUDGE (NON-HAZ)4DM1,800P
CONTAMINATED SOIL1DT12Y

5. Generator certification

Date shipped

11/04/25

Amazon Bedrock

waiting for a document

↓

Illustrative recreation with synthetic data. No company code, data, or internal tools.

The problem

Scale house operators weigh trucks and write tickets all day in a point-of-sale app that was 20 years old. It was slow to load, hard to read, and its memory use kept growing the longer it ran. Separately, waste manifests arrived as scanned forms that had to be read and entered by hand, so processing one took about a week.

What I built

Screens designed with operatorsIntern

I interviewed scale house operators about where the old system slowed them down and redesigned 30+ operator interfaces around those pain points.

Faster loadsIntern

Moving the data pipeline from synchronous calls to asynchronous lazy loading cut load times 15% across 200 scale houses.

A memory leak, found and fixedPart-time

Using Visual Studio Profiler I traced the leak to DataSets that each form loaded but never released, so every navigation added more. Releasing them when a form closes lowered RAM use 40% across 200 scale houses.

Manifests read by Amazon BedrockPart-time

Scanned manifests now go to a model on Amazon Bedrock that extracts each field into structured JSON, which is checked against a schema before it's saved. Processing turnaround went from about a week to 2–3 days.

Stack

  • C#
  • .NET
  • Visual Studio Profiler
  • Amazon Bedrock
  • SQL

The illustrations on this page are recreations built for this site with synthetic data. They don't contain Waste Management's code, data, or internal tools.

Next case studyCotton Holdings