mysu.
Notes from the build

What we learned.
What we changed.

These come out of real production work, not theory. Each is paired with the practice it produced, because a lesson nobody acts on is just a story.

01
Engineering

A minifier moved one line and broke month-end for four days

What happened

Object shorthand inside a call the bundler chose to inline survived relocation un-expanded. The deployed bundle then referenced a variable that no longer existed. It failed only in the production build, and only on the email path, so every local test passed and the error looked like a bad deploy.

What changed

We reproduce against the platform build, not just a local one, before calling anything fixed, because that is the only place this class of bug appears. We grep the compiled chunks for the pattern rather than trusting the source. At known-risky call sites we write arguments out in full instead of using shorthand.

Read the note →
02
Data

Most dashboards are confidently wrong

What happened

User metrics are not additive, category buckets are rarely exhaustive, and almost nobody reconciles the figure against the provider’s own interface. The number a business quotes in meetings is usually the one nobody has checked.

What changed

A metric does not ship until it reconciles against the source platform, and buckets are made exhaustive by construction so totals cannot silently drift. If a figure cannot be traced back to a source, it does not go on the dashboard.

Read the note →
03
Practice

Build for the person who does not like software

What happened

The people using this are company staff, not software operators. The first instinct on any interface is to add a delete button; the first instinct of a nervous user is to avoid touching anything at all in case it breaks.

What changed

Destructive actions became voids rather than deletes. The record keeps the mistake and the reason for it. A schema now starts with the recovery path rather than the happy path, and we design for the error a real person will make rather than the demo.

Read the note →
04
Design

Motion is a timing problem before it is a styling problem

What happened

A hand-drawn look was chased through shading and colour for days without success. It was never a shading problem: a physics simulation cannot hold a frame, and smooth 60fps interpolation reads as computer-generated no matter how it is painted.

What changed

Motion is now specified as frame rate and hold: how many drawings, held how long, before anything is drawn. Easing curves and colour come afterwards, and only if the timing already reads correctly.

Read the note →