I'm captivated by technology, and I want to be able to control it all! So, as is typical for people in my profession, I'm doomed to a life of learning and wouldn't have it any other way.
I design and develop reliable software solutions for complex, critical business needs.
There is so much more to software engineering than simply writing code. It's not enough to be able to understand and write code--it's not even enough to be able to consistently write clean code. For any given problem, you must:
Controlling complexity is the essence of computer programming. Brian Kernighan
The above list is barely the beginning. Software engineering is a life-long discipline.
As explained in "The Pragmatic Programmer" an effective software design is Easy to Change. And software that is easy to change is the foundation of a software team's ability to be agile.
There is a non-exhaustive set of themes found in the software design guidance in "Refactoring to Patterns"--themes which also span across a larger set of literature
Most of my professional work is built on top of the .NET Framework and ASP.NET MVC and typically involves the use of one or more SQL Server databases. I've built and maintained enterprise web applications and web services as well as applications with a variety of other technologies including ASP.NET Core MVC, Web APIs, SOAP, REST, Microsoft Azure Service Fabric, and desktop applications in WinForms and WPF.
As a developer in the .NET world, the vast majority of what I write is in C#. And, on rare occasion, I'll do a little legacy application maintenance in VBA. I commonly use HTML, CSS, JavaScript and/or jQuery, and Ajax for web UIs. And I've had a couple opportunities to work with React and Angular. I'll write an occasional PowerShell script as well.
In my GitHub account, I've given technical descriptions of some of my professional projects.
When it comes to side projects, I'll dive into just about anything including .NET, .NET Core, .NET Core on Linux, PowerShell, Bash, Python, Node.js, Xamarin, iOS. And, I have a mile-long list of languages, frameworks, platforms, and project ideas to explore.
This website is one of those projects. It's a simple little thing now--an ASP.NET Core web app running on a Linux server. And, I'm excited about my plans for it and imagine I'll be working on it incrementally for years to come!
I'm constantly researching various software technologies, languages, and design techniques. And, I typically take notes and throw them in my GitHub wiki. Feel free to take a look!