I’ve been working as a developer for a modest three years. Throughout the learning process, and my short time as a professional, I’ve faced the same challenges that I believe most people face in the transition from hobbyist or student to professional. This blog is my way of contributing to the developer community as a whole. It is, in principle, a coding blog, but I may occassionally take time to explore other things, such as books, podcasts, and other resources that I’ve found useful.

Today, in 2018, I’m primarily a .NET and TypeScript developer. Thus, the majority of the samples included in my blog will be in these languages, but I will deviate from these when it makes sense.

I’ve written hundreds of lines of code that make absolutely no sense: poorly designed classes, strange dependency graphs, obnoxious use of singletons. I’ve under-thought both class and method invariants, poorly employed asynchronous development patterns, and created poor solutions for problems with well-known solutions. I recognize that I’m not the first person to do this: many of us, when starting out, will re-invent the wheel a hundred times over. Often, this is born of either inexperience and/or ignorance.

When I was still a hobbyist developer, I built Windows Presentation Foundation (WPF) applications. The majority of my logic was written using code-behind files, and the application logic was intrinsically bound to the UI object that exposed the function. Like most developers, I eventually discovered design patterns, learned about SOLID design principles, and learned to appreciate how much I didn’t know.

As I’ve made the transition from hobby programmer to professional developer, I’ve found repeatedly that developers at all levels in organizations have questions about things like Dependency Injection (DI), Inversion of Control (IOC), IoC Containers, and other aspects of writing modern applications. We see each of these concepts in the frameworks we frequently use: ASP.NET; AngularJS; and Angular, as primary examples I work with on a weekly basis.

In this blog, I’m going to try to take the limited knowledge I’ve accrued over the years, and help spread it to the community. My only ask is that if you find something I’ve shared to be useful, that you please share it with others.

Thanks for visiting! I’m very excited about this project. The measurement of success for me is in the number of people I can help.