Go Is the Founder Game

I’m currently founding a company, and just purchased a new Go board. As I was explaining the principles of the game to my wife I was forcibly struck with the similarities to founding a compa… | Continue reading


@bitsnbytes.blog | 4 years ago

Organizing Members of a Class

I don’t recall any coding books talk about organizing the different members of a class. However, the lack of any standard for organization has been the single biggest obstacle to feeling at … | Continue reading


@bitsnbytes.blog | 5 years ago

Getting the most from your log file

The reason most logs are huge and useless is the piece-meal accumulation of statements which were thrown in over time. To avoid this problem, log files should be explicitly written for consumption … | Continue reading


@bitsnbytes.blog | 5 years ago

Thoughts on Toxic Masculinity

I view “toxic masculinity” as being what the philosopher, Ayn Rand, called a package deal. That is, a bunch of concepts grouped together with the effect (usually deliberate) of damning… | Continue reading


@bitsnbytes.blog | 5 years ago

What I Learned from Edward Tufte

I recently was able to attend Edward Tufte’s seminar on presentations and data graphic design. This blog post covers the essential elements I took away from the lecture. | Continue reading


@bitsnbytes.blog | 5 years ago

Atomic Habits by James Clear

I recently picked up “Atomic Habits” by James Clear, and I think it will become one of the most influential books I’ve read. | Continue reading


@bitsnbytes.blog | 5 years ago

GTD: Mastering Capture

I started using the GTD over 10 years ago now. Since then, I’ve learned a lot. Here’s what I currently do for my “capture” step. | Continue reading


@bitsnbytes.blog | 5 years ago

Improving your estimates

Estimating most projects is necessarily an imprecise exercise. The goal of this post is to share some tools I’ve learned to remove those sources of error. | Continue reading


@bitsnbytes.blog | 5 years ago

Meditation for Practical Skeptics

I have been meditating on and off since I was a teenager. When I mention it to others, though, they’re often somewhat surprised since I don’t really seem like “the type”. I&… | Continue reading


@bitsnbytes.blog | 5 years ago

Being Helpful While Still Saying “No”

Instead of refusing what you can’t do, offer what you can do. | Continue reading


@bitsnbytes.blog | 5 years ago

Being the “second” parent

In our family, I’m the de facto “second” parent. | Continue reading


@bitsnbytes.blog | 5 years ago

My favorite books on software engineering

Of all the books in my collection, I view these three as having been most personally influential on the way I write and think about code. | Continue reading


@bitsnbytes.blog | 5 years ago

Git 201: Creating a “fixup” commit

In this post I’m going to focus on using the “fixup” command within git’s interactive rebase tool. | Continue reading


@bitsnbytes.blog | 5 years ago

Git 201: Using a work-in-progress commit

My work day doesn’t naturally divide itself cleanly into commits. This post is about one trick I use in those situations. | Continue reading


@bitsnbytes.blog | 5 years ago

What makes a good commit?

A good commit is much like a good sentence: a well-formed, grammatically correct, complete expression of a single thought. | Continue reading


@bitsnbytes.blog | 5 years ago

Fail early, fail loudly

One easy step to help simplify your programs is to follow the adage “fail early and fail loudly”. | Continue reading


@bitsnbytes.blog | 5 years ago

Makers vs. Managers

Makers and managers are often at odds about the best way to schedule time. Here I offer two techniques to keep the peace and make everyone productive. | Continue reading


@bitsnbytes.blog | 5 years ago

The Interview Schedule

It’s important that every candidate be treated like you’d treat a VIP customer.  Even if you don’t wind up making an offer, you want them to go away wishing they’d gotten on… | Continue reading


@bitsnbytes.blog | 5 years ago

Short-Circuit Statements

Short circuit statements allow a reader to take certain facts for granted for the remainder of a method, thus greatly simplifying the code. | Continue reading


@bitsnbytes.blog | 5 years ago

What flipped my understanding of “white privilege”

White privilege isn’t a positive benefit that white people receive overtly: it’s a lack of the hostility directed exclusively at people who are different by not being white. | Continue reading


@bitsnbytes.blog | 5 years ago

Breaking Out of Consensus Deadlock

Consensus deadlock occurs whenever there’s not enough data, the team wants a unanimous decision, no one is willing to budge, and there’s no clear owner. | Continue reading


@bitsnbytes.blog | 5 years ago

Scales of Preference

I’m constantly trying to make decisions with other people. One of the tricks I’ve learned for making these situations easier is to say how strongly I feel about each option. | Continue reading


@bitsnbytes.blog | 5 years ago

Canvas vs. SVG

Weighing the pros & cons of server-side graphics rendering, canvas, and SVG | Continue reading


@bitsnbytes.blog | 5 years ago

Reversibility and Fast Decision Making

There are a number of different circumstances when it’s important to distinguish between reversible and irreversible decisions.   | Continue reading


@bitsnbytes.blog | 5 years ago

Streams in Node.js, Part 2: Object Streams

In which we dive deep on the utility of object streams in Node.js. | Continue reading


@bitsnbytes.blog | 5 years ago

Streams in Node.js, part 1: Basic concepts

In which we learn about the basic stream functionality provided in the Node.js API. | Continue reading


@bitsnbytes.blog | 5 years ago

Gotchas: Searching across Redis keys

Redis GET & SET commands seem like they support “paths”, but they really don’t. | Continue reading


@bitsnbytes.blog | 5 years ago

Avoiding Us vs. Them in Problem Solving

I can’t count the number of times when I’ve seen two people trying to solve a technical problem where the real conflict is anything but technical. Fortunately, I’ve run across an… | Continue reading


@bitsnbytes.blog | 5 years ago

Goodwill Accounting on Teams

A “goodwill account” reflects the emotional reserves you have with another person. Keeping your balance “in the black” can take some deliberate effort. | Continue reading


@bitsnbytes.blog | 5 years ago

Recipes: Chicken Tikka Masala

One of my other hobbies is cooking, and I’ve been collecting recipes for a while now.  As I try new recipes, I re-write the ones I like into my own online cookbook. | Continue reading


@bitsnbytes.blog | 5 years ago

Building a Board and Weekly Progress Reports

In starting out a self-funded company, I didn’t just get a board by virtue of taking on an investor, but I still found that I really wanted a way to get feedback and advice from more experienced pe… | Continue reading


@bitsnbytes.blog | 5 years ago

Redis: Storing time-series data in a sorted set

I wanted to store time-series data in a sorted set, but, since I can be pretty sure that the values won’t be unique, I can’t use a plain sorted set. However, I did figure out a handy work-around us… | Continue reading


@bitsnbytes.blog | 5 years ago

Building my own Workbench

When I first set up my wood-shop, I was using an old door thrown across two sawhorses as my work bench: It was wobbly, the door tended to slide off the horses, and you really couldn’t attach … | Continue reading


@bitsnbytes.blog | 5 years ago

Flexibility with the Pomodoro Technique

I find it works best to manage my unstructured work hours using a variation of the Pomodoro Technique. | Continue reading


@bitsnbytes.blog | 5 years ago

Staying Productive Working from Home

When I was a solo founder, and I would tell people what I do, their first response would nearly always be: “Oh, I could never do that.  I’d goof off all day.  How do you keep from getting distracte… | Continue reading


@bitsnbytes.blog | 5 years ago

Applying GTD to Email

I’ve applied this technique for both personal and work email for years now, and I get my email inboxes empty several times a day.  I’ve decided to respond to work emails about twice a d… | Continue reading


@bitsnbytes.blog | 5 years ago

Conducting an Interview Loop–Part 2: Sending Cold Emails

If I could make every recruiter understand one thing, it would be: you are in sales.  I’m a prospect, and you have one chance with me.  Don’t blow it on cheap form letters or junk mail.… | Continue reading


@bitsnbytes.blog | 5 years ago

Conducting an Interview Loop–Part 1: Setting Up the Team

I’ve worked at a pretty diverse range of companies, and in every place I’ve worked, interviews are conducted according to the same general pattern.  This series will explore what I thin… | Continue reading


@bitsnbytes.blog | 5 years ago

Trash Trolley Mk. II

When I moved into my current house, there was a lot of work to be done.  One tiny piece of that was to remove / replace a long since broken trash compactor in the kitchen.  As one of the first proj… | Continue reading


@bitsnbytes.blog | 5 years ago

Choosing a product name

I started my company with a reasonably clear idea in mind of what product I wanted to build. The hard part was deciding what to call it. | Continue reading


@bitsnbytes.blog | 5 years ago

The value of stepping away from your desk

That 20 minutes away, and especially the mild exercise and change of scenery, resets my brain… [and] forces me to check my premisses about exactly what I think I know. | Continue reading


@bitsnbytes.blog | 5 years ago

Gotchas with using JSDOM for client-side testing

In other words, JSDOM supports creating the in-memory structure of the web page, even running JavaScript code and altering CSS attributes. However, it doesn’t actually assign the height, width, or … | Continue reading


@bitsnbytes.blog | 5 years ago

Forming a legal entity (part 6): Open a checking account

After the long wait to get back my incorporation papers, the first thing I did was to open a checking account.  The most important reason this was first was that I’d been told many times that it’s … | Continue reading


@bitsnbytes.blog | 5 years ago

Forming a legal entity (part 5): Filing incorporation papers

The most immediate decision was what kind of legal entity to create.  While there are a ton of options, the ones which were on the table for me were: a C-corp, an S-Corp, an LLC, or a Sole Propriet… | Continue reading


@bitsnbytes.blog | 5 years ago

Forming a legal entity (part 3): Choosing your company name

Following the example of several startups I’ve previously been in, I decided to choose a different name for the company and the product. | Continue reading


@bitsnbytes.blog | 5 years ago

Forming a legal entity (part 2): Finding a lawyer

The first step I took in founding a startup was to find a lawyer. | Continue reading


@bitsnbytes.blog | 5 years ago

Forming a Legal Entity (part 1)

One of the first things I had to learn when starting my company was how to actually start a company… | Continue reading


@bitsnbytes.blog | 5 years ago

On the Naming of Methods

The crucial thing I try to keep in mind when choosing method names is that I’m writing for the sake of other humans, and that methods should be tiny, imperative sentences directed at the obje… | Continue reading


@bitsnbytes.blog | 5 years ago