artisanal bytes

“Hand-crafted in San Francisco from locally sourced bits.”

Writings

Know Your Tools Deeply

Future you will be thankful for today's investment in knowledge

Accountability = integrity + learning

Stick to your word and help others get better

The Fallacy of the Speed / Cost / Quality Trade-off

You can have it all, if you focus on quality first.

Future-Proof Testing

Prevent future engineers (and future you) from breaking your precious code.

Testing, Absolutely!

100% test coverage with worthless tests is less than worthless; it's detrimental.

Being Self-Taught Ain't The Issue

Who cares how you learned as long as you learned and keep on learning.

One Meta Lesson From (Startup) Life

To learn, you must experience. Startup or not.

The Difference Between Learning And Knowing

It takes a whole lot more effort than you thought to really know something, but it is totally worth it.

2 Things I Learned From An Interview In 2001

15 years later, I look back on a seminal moment in my career that I did not recognize at the time.

The Difference Between Code That Works And Code That's Right

Learning the right way to use your tools will put you on the path to long-term code success.

Why I Read The Docs

Code never tells the whole story; the rest is in the docs.

With Not For

Sometimes the choice of even the smallest word can have the biggest impact.

Become And Stay A Senior Software Engineer

Strive to be a senior software engineer; then continuously improve.

A Case For The Fool

We need more fools in our companies.

Hiring For Philosophical Fit

Screen for philosophical fit, not just "share-a-beer-ability."

Reviving The Scientific Method

The process of software has hidden it, but the scientific method still has a place in our industry.

The Audacity Of Analogy

While an effective communication method, analogies have some debilitating flaws as well.

Leading By Example

To effectively lead by example you must teach the purpose of the example as you go.

On The Importance Of The Semicolon

Consistent code formatting makes a project more readable to everyone on the team.

Hypothetical Employment Contract

Lawyers be damned: this is the contract I want to sign.

Shifting Time In HBase

A way to use future timestamps to optimize read paths in HBase.

Thoughts On Innovation

The most valuable form of innovation can improve your daily work and add value to your career.

Clever Is Not Always Better

Strive for understandable code instead of clever code.