Out of all the tests I write on a day-to-day basis, acceptance tests are the hardest. In my experience, writing them for web applications is complex. There are many asynchronous actions going on: web requests firing off, responses being processed, UI elements popping on and off the screen, etc. To manage this complexity, I’ve been […]
As we decide where to focus, figure out the best way to implement things, or evaluate costs on any project, we hear the same questions: “How much will this cost?” Or “When will it be done?” Or even technical questions like, “How many records can this process per second?” We need to make decisions and […]
Did you know that there’s a relational database hiding in your Unix shell? There really is, it turns out. A friend of mine was recently telling me about his discovery of the join command, which allows you to combine data from multiple files that contain tabular data. Let’s take a closer look.
Releasing a new version of a mobile app can be a stressful process. The first few times you do it, your customer base is probably pretty small, so it doesn’t feel like a very big deal. However, after your user base grows into the thousands, the pressure really starts to build. The fear of releasing […]
The Minikube tool is a wonderful resource when you need to run a Kubernetes cluster locally. It was very convenient for our team when we needed to recreate an existing deployment.
Picking the right libraries for your project is important. The wrong ones can create long-term headaches and introduce technical debt that will eventually be very expensive to correct. When making your choice, there are a few important things to think about, and a few common things to avoid.
Containerizing can be a useful approach to developing applications. While it has many benefits, there are also situations where you might not want to use it. In this post, I’ll cover both the pros and cons. What Are Containers? Containers are the result of a packing mechanism that decouples applications from the environment where they […]
The package.json file is the heart of any Node.js project, but it often goes entirely undocumented. In this post, I’ll review a few areas that are worth documenting, and how I like to do it.
Okay, that’s a bit grandiose, I admit. But I often see tweets or posts about how people don’t “get” capital-A Agile. Tweets like this and this point out common faults. Everything they say is technically correct but not especially useful. Pointing out all of the not-get-its in the wild won’t make people “get it” better, […]
This is the third in a three-part series about strategies for synchronizing data between systems during a software replacement project. You can read about one-way integration and two-way integration if you want to catch up.