Meeshan.dev

How I Work

The process I follow to build things that work well, stay fast, and don't fall apart six months later.

Code is the easy part. The hard part is building the right thing, in a way that doesn't break next month. Here's how I handle the hard part.

1. Understand Before I Code

Before I write a single line, I figure out what's actually broken. Sounds obvious, but you'd be surprised how often people jump straight to solutions without understanding the problem.

I don't mix up symptoms with root causes. At this stage, I'm just describing what's wrong — nothing else.

2. Clarify the Scope

This has two parts.

i. What's Happening

I rewrite the problem in plain language. Not the vague spec someone handed me — what's actually going on. If I have to guess, I ask. If I'm assuming something, I say so.

ii. Why It Matters

Not every bug is worth fixing right now. I figure out what this problem actually costs:

  • App slows down as data grows
  • Screen flashes white before dark mode kicks in
  • UI feels laggy because of unnecessary re-renders

If the impact is small, maybe it waits. If it's hurting users, it moves up.

3. Boring Solutions, Exciting Results

Two parts here too.

i. What Can't Break

Before I change anything, I list what has to stay working:

  • Accessibility stays the same or gets better
  • Existing APIs don't break
  • Users don't notice anything got worse
  • Code doesn't become harder to read

ii. How I'll Know It Works

I set clear goals for the fix — not "make it faster" but specific things I can actually verify:

  • Selecting a row doesn't re-render the whole table
  • Callbacks don't trigger hooks that shouldn't run
  • Re-renders happen only where they should
  • Load time goes down, not up

4. Anticipate the Chaos

Users don't follow the happy path. They click things twice, close tabs mid-request, paste weird data. I think about this stuff before it bites me:

  • Weird user behavior
  • Empty states, loading states, error states
  • What happens when traffic spikes
  • Edge cases in third-party integrations

It's not paranoia — it's just planning.

5. I Own the Outcome

After I ship, I don't disappear. I write down:

  • What I built and why
  • Why I think it'll hold up
  • What I tested
  • What I'll fix if it breaks

If something goes wrong, it's on me. That's the deal.


That's how I work. Nothing fancy — just a process that keeps me from cutting corners and helps me ship stuff I'm not embarrassed by later.

On this page