Managing dotfiles on MacOS

I recently wanted to use all of the dotfile configurations that I had on my home laptop with my setup at work. After hours of meticulously getting Vim, Tmux and Zsh to work exactly how I wanted them, I needed a way to copy these files over to my work…

Page Objects in Python

Using Behaviour Driven Development to build your software can make your life alot easier. While the testing and documentation benefits are incredible, one potential roadblock is having high-maintenance tests that require you to fix or refactor often. Fortunately, there are numerous ways to avoid having a brittle test suite, one…

Using Selenium Webdriver with Behave BDD

Testing your web application is a crucial part of the development lifecycle. Being able to simulate exactly what a user will encounter while using your application is an absolute game-changer. It's even better if your tests can explain what your software does at a higher level using natural language. This…

Learning tmux: quick start

As a developer, having the right tooling can be a productivity-multiplier. There are many ways you can automate different parts of your workflow, allowing you to focus on bigger problems and avoid redundant work. I've enjoyed working with tmux over the past few months and will be sharing some basic…

Pymongo Job Queue

We recently had a hack week at work and I was able to open source one of our Python micro-libraries. Pymongo-job-queue (aka pymjq) is a simple Python library that uses MongoDB's tailable cursors and capped collections to implement a queue. We've been using this in production for the past year…