Three weekends and a spreadsheet problem
I'm Kai Lin, a process engineer at a nanomaterials lab in Hsinchu. I grow thin films one atomic layer at a time, and I'm the guy people ping when a script breaks. Mechanical keyboard, a shelf of Gundam kits, zero formal software training. You get the picture.
In early 2026 my team was drowning in spreadsheets. Every atomic layer deposition (ALD) run gave us a recipe file, an ellipsometer export, and a folder of SEM images. Linking them meant copying numbers by hand into one shared Excel file that four of us edited at the same time. It was as bad as it sounds.
So one Friday night I opened Claude, described the problem in plain words, and started vibe coding. By Sunday I had something running.
What I was building
The tool had one job: put every deposition run and its measurements in one place, so we could see which recipe settings gave us the best films.
The first version I built with Claude had four parts:
If you don't work in ALD: growth per cycle is the number we care about most. It tells you how much film you add in each cycle, usually a fraction of a nanometer. Get it slightly wrong and you make expensive decisions on the tool.
What went right
The speed was real. I had put this project off for two years because I assumed it would eat a whole quarter. The first usable version took three weekends.
Instrument formats stopped scaring me. Our ellipsometer export has merged header rows and a vendor specific date format. The SEM metadata hides inside proprietary TIFF tags. I pasted in samples, and Claude wrote parsers that worked on the first or second try. That alone saved me weeks.
I learned while I built. Claude explained what an ORM does, why the API should validate inputs, and how React state works. I learned more web development in that month than in the previous five years.
People actually used it. Within six weeks, 12 engineers across two shifts were checking the dashboard before booking tool time. We retired the shared Excel file. My manager started screenshotting my charts for weekly reviews, which felt great.
That adoption is also where the trouble started.
What went wrong
The worst failure was a unit bug that sat in plain sight for nine days.
A software update on our ellipsometer switched its thickness export from nanometers to angstroms and renamed the column. My import broke. I asked Claude to fix the import error, and it did exactly that: it mapped the new column name and kept the old assumption that every value was in nanometers. Nothing crashed. New runs just showed films ten times thicker than they really were.
For aluminum oxide grown with TMA and water, growth per cycle sits near 1.1 angstroms, about 0.11 nm. My dashboard started reporting 1.1 nm. A senior engineer caught it while reviewing a proposal to cut the cycle count on a production recipe. The change never reached the tool. I still think about how close it came.
Once I started digging, I found more:
None of this was exotic. Every problem came from moving fast with no written rules for my own codebase.
Shopping for a cleanup service
My first instinct was to hand the mess to professionals. Vibe coding cleanup is a whole service category now, so I contacted five firms over two weeks.
Where | What they proposed | Timeline | Quote (USD) | Where it stalled |
Kraków, Poland | Full rewrite in a new stack | 12 weeks | 48,000 | Wanted full code and sample data offsite |
Amsterdam, Netherlands | Paid audit first, then a fixed bid | 3 weeks for the audit | 9,500 for the audit | The audit alone blew past my discretionary budget |
Ho Chi Minh City, Vietnam | Refactor plus a support retainer | 8 weeks | 22,000 plus 1,800 per month | Nobody on the call knew what growth per cycle meant |
Bengaluru, India | Dedicated team, time and materials | Open ended | 3,200 per developer per month | Scope stayed vague after two calls |
Singapore | Rebuild on a commercial LIMS | 16 weeks | 65,000 plus licenses | Would replace the tool my team already liked |
These were capable teams. Two problems kept coming back.
Our data could not leave the building. The recipe parameters for our films are trade secrets. Taiwan tightened its rules on protecting core key technologies in 2022, and our legal team would not let code with embedded recipe logic go to an outside vendor without months of review.
The domain gap was huge. Every firm needed me to explain ALD, ellipsometry, and why a unit error mattered. I realized I'd spend most of the engagement teaching. And I would end up owning the code afterwards anyway.
Doing it myself, with a scoping partner
In the end I did the cleanup myself. I brought in a small vibe coding cleanup engineering team for scoping and review only, on a fixed fee lower than the cheapest audit quote I'd received.
The code never left my laptop. They worked through screen shares and asked a lot of good questions. They never asked for the repository.
Two scoping sessions gave me a one page plan. Every module went into one of three buckets: keep, rewrite, or delete. The order mattered most. Units and data integrity first, access control second, features last.
Then six weeks of weekly one hour reviews. I did the work with Claude between sessions. They reviewed my diffs, pushed back on my shortcuts, and caught two more bugs before they shipped.
Here is what changed:
The codebase shrank from about 14,000 lines to 8,500. About 20 engineers use the tool today. In the four months since the cleanup, we've had zero data integrity incidents.
What I'd tell the next engineer
I still vibe code. I just do it with rules now.
The tool that almost pushed a bad recipe change now guards our recipes. It took three weekends to build and six weeks to make trustworthy. I'd take that ratio again.
About Us · User Accounts and Benefits · Privacy Policy · Management Center · FAQs
© 2026 MolecularCloud