Linkfarm

Software Engineering and DevOps

I’ve read more books and articles / seen more videos than this, but these are what I feel to be important and seminal content that I refer to often. Presented in roughly the order I’ve read them:

  • Design Patterns - This is a pretty foundational read, and though there are aspects at times that seem dated, a number of these patterns really stand the test of time. Moreso, this book engages the mind to start thinking about software in a different way.

  • Scalable and Modular Architecture for CSS - I searched high and low for patterns for CSS. There’s pretty good prescriptive guidance when it comes to most programming languages, but when it came to a logical organization pattern for stylesheets I wandered in the desert for a long time. Until I found this book. I have yet to find a better approach.

  • Learning JavaScript Design Patterns - Frontend development has changed a lot but this book first introduced me to some fundamental concepts including the important AMD pattern.

  • C# Coding Conventions (C# Programming Guide) - I’m a big proponent of “When in Rome, code like the Romans do,” i.e. stick to the conventions of the communities surrounding a given language. These are those conventions for C#.

  • Framework Design Guidelines - Dovetailing off of C# conventions is overall conventions for library design in conjunction with the .NET Framework.

  • Adaptive Code: Agile coding with design patterns and SOLID principles (2nd Edition) (Developer Best Practices) - This is one of those unassuming books that winds up being totally earth-shattering. The SOLID principles are so well laid out this book, and it goes into good depth on a concept that is pretty essential these days: Dependency Injection. And much, much more. I cannot recommend this book highly enough.

  • Microsoft .NET - Architecting Applications for the Enterprise (2nd Edition) (Developer Reference) - After reading Adaptive Code, I recommend people read this book. It builds on those core concepts but takes them up a level into application architectural patterns including DDD and the Domain Model, CQRS, Event Sourcing and more.

  • Building Microservices - After reading the previous two books I highly recommend folks read this one, as it builds on those concepts more. This is another earth-shattering book that will entirely change how you look at software and deployment and a number of practices.

  • Pattern: Backends for Frontends - BFF is a key architectural pattern called out in Building Microservices and one that I reference often in designing applications, especially ones with multiple clients.

  • PowerShell Practice and Style - I looked around for a long time on good conventions for writing PowerShell and came across this from the community. I follow these rules about 95-98% of the time, though Microsoft themselves will have slightly different practices – what I wind up doing is following convention based on the project, so that at least within a given project things are consistent. Common things that vary per project are, brackets opening on the same line and the use of backticks.

  • Getting Started with PowerShell Desired State Configuration (DSC) - A great course for PowerShell DSC and PowerShell in general – lots of great tidbits shared throughout by Jeffrey Snover, the inventor of PowerShell.

  • Advanced PowerShell Desired State Configuration (DSC) and Custom Resources - Another great course to get deeper on PowerShell DSC and PowerShell in general.

  • The DSC Book by Don Jones et al. - A good evergreen book on PowerShell Desired State Configuration that continues to be updated. This book helps to fill in a lot of gaps an answer a lot of the niche questions about PowerShell DSC.

  • The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win - Another earth-shattering book. A necessary read for any DevOps practitioner.

  • Scaling Git (and some back story) - I refer to this seminal blog post by Brian Harry quite often, as it goes into great depth on how a large company like Microsoft standardized around common engineering standards with Git and VSTS.

  • Pro Git - aka the Git Book. You only need to know a handful of commands to get going as a normal Git user, but if you really want to understand the full breadth of the tool you need to read this book.

  • Mastering Regular Expressions - No, I have not mastered them, they are still hard. But, I at least have a better idea around DFA’s and NFA’s and how the different engines work having read this book.

Health

Over the course of 2016 and now into 2017 and beyond I started taking health seriously. In particular I lost 40 pounds eating a well formulated ketogenic diet, which I consider a lifestyle and something I will do forever now. in 2017 I’ve also started incorporating the gym into my diet after understanding the strong correlations between overall muscle mass and longevity.

  • 2 Keto Dudes - This is the podcast that got me started on my keto journey and pursuit of overall better health. I had listened to Carl Franklin for years on podcast .NET Rocks, and when he mentioned he was starting a new podcast with his friend Richard Morris to document his journey through Ketosis to fix his Type II Diabetes, I was intrigued, and knew I could do it, too. And I did. And I’m in the best shape of my life because of it.

  • The Ketogenic Forums - The dudes, being the software developer types, put their skills and energy to work to set up these Ketogenic Forums, which is a great source of information for anyone who is in the ketogenic lifestyle or thinking about starting the ketogenic diet.

  • The 4-Hour Body - This book can be a little crazy at times, but I have to admit this was the first place I heard about the concept of low carb and ketosis, and though I didn’t understand it years ago when I first read it, and I don’t necessarily follow the “Slow Carb” diet Tim lays out (I stay pretty much low carb most of the time), it has a lot of concepts that were ahead of its time. Still worth a read.