Todd Wolfson

Software Engineer

February 27, 2016

I want to take an article to step back from the trenches of programming and reflect on the wonder and power of tools.

In my experience, tools have made me more efficient by many factors (if not magnitudes).

Breadth of tools

In "Develop faster" I covered a lot of tools which encompass tightening developer workflows. They have saved me and my coworkers countless hours and reduced potential frustration at tedium.

On top of that, we have tools that make team collaboration seamless and make "the whole greater than the sum of its parts". When working remotely, the time spent researching pays for itself. The best tools were:

  • Trello for making progress visible to everyone while saying nothing
    • My standard board format is "Backlog", "In Progress", "Blocked", "In Review", "Merged", and "Deployed"
  • Google Docs/Drive for shared plans, notes, and assets
  • GitHub for shared repositories, code review workflow, and code-specific documentation (e.g. port reservations, folder structure)
  • Jenkins/Travis CI for automated code testing to catch lint errors when the developer forgot to run it
  • Slack for expressive and well connected communication
  • Appear.in for hassle-free video calls

Tool empowerment

I don't think I would have been able to move as fast as I do either solo or on a small team without tools to push me forward (e.g. "Develop faster") and prevent me from falling behind (e.g. testing/monitoring).

On a similar note, I don't think I would be able to start my company experiment without tools at my side.

Creating your own tools

As developers, we are fortunate that our tools are written in the same format as the output we generate. There are some professions which don't have this luxury (e.g. UI/UX designers, project/product managers).

If you have never written a tool for yourself before, then I suggest trying it out. The benefits will include:

  • You will start to see your actions in a new light
  • You will start thinking of new solutions for problems
  • You will have a new tool and as a result be more efficient

If you would like examples of tools, look at my GitHub:

Unfortunately, I can't tell you what to build because:

  • I don't know the problems you are experiencing
  • My problems won't motivate you as well as your own problems

References

A lot of design plays into building tools and solving problems. Although, you don't need to have design experience to do it.

Here are some design topics to get you started at seeing hidden problems and hidden solutions outside of code:

Top articles

Lessons of a startup engineer

Lessons from being a 3x first engineer, former Uber engineer, and working at even more startups

Develop faster

Removing the tedium from creating, developing, and publishing repos.

Sexy bash prompt

A bash prompt with colors, git statuses, and git branches.