11 Mar 2023
Road to PWA
A minimal set of features to make your web app a PWA
4 Mar 2023
Principles for a Strong UX Foundation
When starting a new software project, it's imperative to start on a strong foundation. These three principles will help you build a solid UX.
19 Nov 2022
React Testing Library Tips and Tricks
Some quick tips I've learned after using RTL for a few recent projects.
12 Nov 2022
Stop Using Git GUIs
How many times have you gotten your git repository tied up in knots and had to reach out to a coworker or Google for help? Do you feel fully in command when issuing git commands at the CLI or do you wince a little before hitting the return key?
31 Oct 2022
Benefits of Writing Tests First
Some benefits of writing tests first that aren't often discussed.
24 Oct 2022
Responding to TDD Pushback
In this post I am going to attempt to respond to some pushback I’ve read online relative to TDD.
27 Feb 2022
2021 Development Environment
I recently had this idea to write about my current dev environment every year. I thought it would be fun to keep track of how the tools I'm using every day change and evolve over time. And since it's still February 2022, I figure it's not too late for a 2021 recap post.
5 Dec 2020
Message in a Bottle - A Simple Clojure App
I've been spending time learning Clojure lately, and I wanted to build a super simple web application to put my learning to use.
7 Nov 2020
10 Tips for Awesome Angular Apps
This article started out as an explanation of my approach to handling state management in Angular apps. Instead, it's turned into a list of lessons I've learned while using Angular for around 3 years. I hope you find a point or two useful or at least find one of the articles I've linked to informative and a good jumping off point for your own exploration and learning.
19 Feb 2020
Integration Test Entropy
When I think about integration or end-to-end tests I've encountered in my career, entropy definitely comes to mind. I have written and encountered integration tests that were written when the project was under active development, but became more and more brittle and lost value as time went on. As a result, developers begin skipping them in CI builds and soon neglect them altogether. In this article, I want to talk about the two main reasons I believe this entropy occurs and what can be done to make sure integration tests thrive and provide value throughout the lifespan of a project.
7 Feb 2020
Learning to Love Testing Library
When I first started using Angular, I found the built in testing tools awkward to use and slow to run. In order to write unit tests and get into a TDD flow, I turned to isolated class tests. I really enjoyed this technique because it let me write tests for Angular components in the same fashion that I would write tests for C# classes. I even made a simple function to create typed stubs of dependencies to inject into tested classes.
18 Aug 2019
Become a Better Developer with Code Katas
In the software development world, code katas are commonly used by developers to hone their skill. They are meant to create a safe environment to experiment and learn new techniques. The word "kata" is borrowed from the world of martial arts.
11 Aug 2019
Correctness vs. Behavior
The debate on different testing outcomes.
4 Aug 2019
A Quick Introduction to TDD
Whether you're new to software development or have been around for awhile, you may have heard of TDD, but have never really gotten a full explanation of the process and benefits of adoption. The purpose of this post is to give you a quick introduction to TDD and hopefully pique your interest if you don't already have TDD in your arsenal of tools.
20 Oct 2015
Be an Engineer Not a User
It’s a wonderful time to be a software developer. The opportunities are abundant and the languages, frameworks, and tooling we use to do our jobs are amazing thanks in large part to our collaborative efforts in the open source world.
Thoughts on craftsmanship in software development.
It looks like that email is invalid. Try a different one.
reCAPTCHA check failed. Try again.
There was an unexpected error. Try again.
This site is protected by reCAPTCHA and the Google
Terms of Service