Versatile vs Vanilla Engineering

For me, Engineering has always been about tackling tough/tricky problems. When I worked as a freelancer, I almost never got the “vanilla” gigs because I charged an above-average rate. In my corporate roles, I loved getting the interesting projects: stuff that other Engineers sometimes avoided because they required creative mental effort. A versatile Engineer (aka Hacker/Maker) is someone who has the most fun when tackling challenging technical tasks. Here’s a partial list of unique problems I’ve solved over the years using a diverse set of technologies (NodeJS, Python, .

An engineering perspective on Tech debt

One of the inescapable realities of enterprise software is the necessity of facing down “tech debt”. But what exactly is it? Is it always something to avoid? The central issue here, of course, it how you define this term. Here’s my definition of tech debt: Tech debt is the ongoing technical impact of business decisions made in order to secure a market advantage. Tech debt functions just like the availability of credit to a growing business, providing it with a much-needed boost during it’s rapid-growth stage.

Understanding the MVVM Pattern

One of the recommended best practices in Windows Presentation Foundation (WPF) development is using the Model-View-ViewModel pattern. It is quite a bit different from the classic “code-behind” approach, and it can take a while to get fluent in thinking this way. In the classic approach, the developer manually wires the UI together. Code is assigned to events and data is copied to/from UI elements and the state of the visual interface is managed directly.

Python, the best general purpose language

A Network/SysAdmin friend of mine, asked me this question: Which one programming language you would recommend a non-programmer to invest in? My answer was instant: Python. In my experience, Python beats any language in terms of general purpose usage. Consider the following: Python competes with Perl as a scripting toolkit. Scripting is a huge part of a sysadmin’s job. On Unix-like platforms Perl is the defacto standard, Python is a very close second – and in fact it is [considered more readable and maintainable](http://www.