Software Engineering

Coding, Python, web development, architecture, and deployment

  • Why You Should Build Your Own Tools

    Something has happened in the manufacturing world that is nearly irreparable.  As America moved production to China and downsized factories to realize the profit gains from low wage Chinese workers it also decimated an entire skill set from the national tool belt. When a factory tools up a new line to produce a new iPhone, sneakers…

  • Too Many Ideas

    I have a long, long list of software projects that I’d like to create.  Scattered across notebooks, Google docs and text files and collected over years. It’s unfortunate that even good ideas are worthless if you don’t have the time or capital to implement them.

  • The Tragedy of Magic Code

    There are many software platforms that offer ‘magic’ like ways to accomplish things. Ruby on Rails has a lot magic going on – pass in a string argument and it gets automatically pluralized, converted from snake case to elephant case, inferred as a class name in the global namespace, instantiated and connected to set of…

  • Exploratory Programming

    One of the unexpected benefits of free coding daily is the chance to explore solutions to problems you have to work on that day. When you write code freely without considering the use of it there is less pressure to keep a poor implementation. It’s practice that is a way to boost your understanding of the problem before writing it…

  • Study Open Source Applications

    I came across an excellent resource last week that more people should know about. The Architecture for Open Source Applications is a series of books that examines how some of the best software ever written is designed. Programmers rarely get the chance to study the work of others in detail.  You learn the fundamentals in school…

  • Free Coding Caused an Avalanche

    It’s about a month since I started doing some free coding everyday as part of an evening ritual. The idea was to spend a minimum of 10 minutes writing any bit of silly code I could think of. It could be completely meaningless random bits of syntax or it could be a useful script. And…

  • Three Ways to Become a Better Programmer

    Programming is a great mix of both the creative and technical skills. Problem solving on a daily basis makes it one of the best jobs imaginable. Staying ahead of the technology curve and continuing to get better at your core skill is what differentiates an average programmer from the superb. The three most effective ways…

  • Contributing to More Open Source

    This week I expanded my daily Free Coding time to include some contributions to open source projects.  It just scratches an itch to continue my learning and reach out to find other skilled developers to help drive some additional expertise. One of my free coding scripts was to develop an interactive file template engine, that…

  • Move Fast, Break Things and Collect Data

    With the help of unit tests, BDD, Coverage reports, Continuous Integration, and Source code control it has become easier than ever to build code that is robust against regressions while letting you branch and play with ideas quickly and without risk.  However there are times when the scale of code use in production requires a…

  • Finding Opportunities to Open Source

    There are so many good reasons to open source code. Gain contributions from the wider community Contribute back for all the awesome you’ve gotten from Open Source To build the status of yourself or your company Attract the best programmers Get public feedback on the quality of your software More people will use your software open…