I want the code I write to be as easy to follow as possible, and proper documentation is key to accomplishing that. Documentation’s role isn’t to give a full explanation of what the code is doing. Instead, it’s a tool for setting up context. It should give other developers the confidence to move through the […]
Recently, I started to customize my Git configuration to fit my workflow. I’ve found a few configurations that should be the default for anyone who installs Git: git config --global pull.rebase true git config --global fetch.prune true git config --global diff.colorMoved zebra I’ve had these in place for the past few months, and I’d encourage […]
Recently, one of my teammates noted that our project’s codebase doesn’t have a lot of classes. The observation wasn’t framed positively or negatively. It was just an observation about a particular code style of the team as a whole. I didn’t think much about it at the time. But looking back, this observation has lead […]
I’ve heard the term “pain” thrown around the developer community quite a bit. This “pain” comes from the vast amount of learning every developer needs to do to evolve in an ever-changing technological landscape. There are always new languages and patterns to learn and countless legacy systems which need to be integrated. Stretching one’s knowledge […]
Recently, I used Apollo Client local cache on a project. Like most features of Apollo Client, it’s powerful but complicated. For my project, I wanted to save a blob of data that represents the current state of a page. This blob would allow a user to navigate away from a page and come back later […]
I recently had to give a short talk for a conference. All the talks at this conference were about 20 minutes long, and it got me thinking about what I like about short presentations.
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 […]
I’ve been writing software professionally for a few years now, and I’ve been reflecting on the skills my co-workers told me would be useful when I first started working here. Writing quality software takes a lot of skills, and it can be overwhelming to decide which ones to focus on first.
TypeScript is a wonderful language for designing data-driven applications. The type system is suited to describe the many different shapes and transformations of data as it travels from one end of a system to another. As my team has gained more experience with TypeScript, we’ve developed some guidelines for creating typed modules that help the […]
Being explicit about the return type of the function is the most under-utilized feature of TypeScript. At least, that’s true for the way I write my code. When I first started using TypeScript, I was really impressed with the way it inferred the return type of the function, and having these types perpetuate throughout the […]