Skip to content


Welcome to my development handbook. The primary purpose of this handbook is to serve as a living guide for best practices that I have picked up over the years I've been working on open-source projects. The secondary purpose is to serve the public community as source material for the various topics covered. These are not intended to be universal best practices, and many of them are very opinionated; hopefully, they still serve as a potential source of insight for others.


This handbook is a living document, meaning it is subject to rapid changes. That being said, guides and material are loosely categorized based on the technology being discussed. For example, specific practices for programming languages are organized by language, and most version control reference material is categorized under Git.

Some categories are too abstract to be contained by a single technology category and these are categorized more broadly (i.e., general, deployment).


It's helpful to understand the driving focus behind this handbook. My interests are mainly aligned with automation, specifically, methodologies that fall under the (overly broad) DevOps category. While I have been programming since I was a kid, I've always enjoyed the process of optimizing development and deployment, employing best practices for increasing productivity, quality, and security. Thus, much of the material contained in this handbook will fall within these topics.

In addition to the above, I'm an avid homelabber and consumer of self-hosted software solutions. Some best practices for these hobbies are also provided here.


If you happen to be perusing this handbook and are willing to provide feedback on anything you come across, please open an issue on Github. Almost everything I've learned has resulted from applying what others have taught me, and I value feedback from the community.