Many engineers will tell you that one of the most complicated responsibilities of our job is naming things. Variables, classes, functions, everything we write requires conscious thought.

A special case among these are interfaces. This is because we not only have to name an interface, but we need to decide how to name the implementations as well.

In the most recent live stream for Tasks Of Affirmation, we looked at creating a good developer experience. It’s important to consider developers at the start of any new project, so we can ensure that over the lifetime of a project anyone who contributes can understand how to contribute, match any guidelines that a team has, and get up and running quickly. We also want to ensure that our codebase maintains a certain quality of formatting and a lack of code smells - and putting these checks in place before you even start prevents them from ever being introduced at all.

Let’s look at five developer experience concepts I consider essential to every project.

In the late summer of 2020, I began live streaming on my Twitch channel. We started off by building an Android Study Guide application. The purpose of the application was to build something people would be interested in using, while also taking the opportunity to build an application out in the open.

For a number of reasons, discussed in the latest video, I’ve decided to sunset that project and begin a new live stream series: Tasks Of Affirmation.