Software Engineering

Coding, Python, web development, architecture, and deployment

  • Programming Deliberate Practice

    For software developers there is an unhealthy prevailing belief that being a great programmer is some innate skill that others have. Brilliance with developing code is difficult to train for because it either requires some gift you don’t have or years of on the job experience.  There is a large amount of impostor syndrome within…

  • Programming Momentum

    Writing code everyday has been an interesting challenge. In 2015 I started to work towards a long streak on GitHub which eventually capped out at 250 days. The questions I wanted to answer was: Can I apply ‘deliberate practice‘ to programming and get better? Can ‘free coding’ (like free writing) be effective way to push…

  • Deploying a Python Flask App on Amazon Lightsail with Dokku

    One of the welcome additions to Amazon’s AWS offerings is a simplified server provisioning service to compete directly with Digital Ocean called Lightsail.  Lightsail provides a nicer web UI for launching instances, many quick launch options for common apps like WordPress or GitLab and simplified billing (yay!).  With Lightsail you don’t need to pre-pay for Reserved…

  • Small Projects

    There’s nothing quite like the feeling of starting a new project idea and seeing it all the way through to finished and published.  It’s a feather in your cap that you can look back on and say “I built that”.  Regardless of if it is a big hit or not, it will make you a…

  • Finding Appropriate Side Projects

    Time is our one major limited resource and so it’s important how we decide to use it.  One of the biggest questions we ask ourselves as developers is often what kind of cool stuff could we do on evenings and weekends. Here are my considerations for any side projects that I feel are worth saying…

  • Web Design Fallacies and the Failure of CSS

    Having the experience now of building dozens of different web sites over the years I have come to the conclusion that there are some major flaws in how web design is done and the underlying assumptions have proved inadequate to make web design better. The first of these is the about CSS.  The goal of…

  • Programming Should Be More Like Authorship than Engineering

    Most programmers I know come at the discipline from an engineering background and this leads to all sorts of pre-conceptions about what we do and the guarantees we offer. Clients often believe that paying for software development is like building a bridge.  You have some meetings to decide what kind of bridge you want to…

  • Web Scraping With Scrapy

    After reading a reddit thread about interesting scripts people have written to automate things I was inspired to put together a quick web scraping script to check the sales at the LCBO and send me a message (on Telegram) if there is anything interesting. Back in the day I would have done something like this…

  • Writing Bots

    This past week I had a chance to work on a conversational UI.  It’s a neat way to interact with software and presents an interesting set of problems to implement. Before even starting to build something I needed to decide on some tools to help with managing the conversations. There are a small number of…

  • Fun With Chat

    Chat is becoming the next platform. Interacting with computers through channels that you already use to talk to people (Facebook Messenger, SMS, Slack etc) in a way that feels natural is a powerful way to accomplish many things for which web pages, mobile apps, desktop applications, or commandline scripts are cumbersome. Chat is not a…