Well...this is a little embarassing

Like many in the enterprise world, my work for the last seven or so years has been cloistered behind paywalls. And while, I stand behind (nearly) every bit of code I've ever shipped, flexing projects I did before 2017 would not be an accurate representation of my current skill set.

So in lieu of a bunch of sites that aren't even accessible on public servers anymore, I present some of my thoughts/philosophies/opinions with regard to making things happen with code.

Opinions

General

Simple > Clever 99.9% of the time.

HTML

Acccessibility matters

Less markup is usually better than more.

CSS

Only be as specific as you need to be.

If your selector is more than 4 elements long, there is probably an opportunity to simplify.

BEM is good.

TypeScript

Compile time code safety is good. Run time code safety is better. Having both is key.

TypeScript in test files is usually overkill and unnecessarily complicates covering edge cases.

It may not be clear from the previous two statements, but I am pro-TypeScript. It makes refactoring a breeze and helps eliminate stupid mistakes. But I feel there is a point where it stops boosting developer velocity and starts to hinder it. I’m not sure where that point is, but I think it tends to happen when people are being too clever with it. Or maybe the APIs it’s trying to protect are too flexible and that’s where the janky developer experience comes from. Either way, keep it simple.

React

Keep your components small.

Keep your project organized as flatly as possible.

Don’t use 3rd party libraries unless truly necessary.

Don’t use React to do what the browser can do for you.

Check for performance issues early and often.

Thunks are easier to reason about than epics.

CssModules > any other styling method (though I also enjoy working with Tailwind very much)

Other/Misc

Everybody has time to help. Everybody is entitled to ask for help.

Read the error message. Google (or ask your favorite AI assistant about) the error message.

Rubber-stamping PRs will bite you in the ass.

QA’s primary job is user advocate.