Making Your Resume Stand Out From the Crowd

The team that I work on has been trying to hire for a while now, so I've been going through a lot of resumes. I've seen hundreds of resumes in the past few months and I can't think of a single one that stood out. Out of those hundreds of…

Writing Acceptance Tests for Collections: Two Approaches

I have written a few articles describing how I like to write automated acceptance tests with descriptive test names that read like a specification. These tests not only ensure the quality of the software, but they also act as documentation, and they become a focal point for collaboration. I have…

The Iceberg Secret Is Just the Tip of the Iceberg

Joel Spolsky's article The Iceberg Secret, Revealed is, for me, one of his most memorable articles. He frames the situation as follows: "I don't know what's wrong with my development team," the CEO thinks to himself. "Things were going so well when we started this project. For the first couple…

On Being a Team Lead: Welcome to Our Team

I've had a few opportunities to be a team lead, but I've always declined these opportunities. Sometimes it was because I felt the project or the timing just wasn't quite right, but, as much as anything, it was because I wanted to keep developing my technical skills by doing the…

The Benefits of Blogging

It has been two years since I started this blog. A year ago, I reflected on the first year. I have averaged an article a month, this being number 24. I try to post an article in the first week of each month. That cadence is about right for me.…

Sharing Tests and Generating Tests in Scala

I have written before about how I like an automated test to test only one thing, have one clear assertion, and have a descriptive name that reads like a checklist item in a specification that can be understood by someone who is not a programmer, like a product manager. This…

An Interview as a Listening Session

In my last article, inspired by Indi Young's book Practical Empathy, I proposed that we might expand the thinking and effectiveness of our organizations by developing empathy during a technical interview, through what Indi calls a dedicated listening session. In this article, I will explore what this technical interview might…

Practising Empathy in Technical Interviews

I would like to propose an experiment for improving the effectiveness of technical interviews: developing empathy for the candidate through a dedicated listening session. Previously, I shared my thoughts on incorporating code review in technical interviews as a means of developing empathy, to increase the effectiveness of the interview and…

Encapsulating More than Just Resources with Test Context Classes

In my last article, I explored automatic resource management in Scala by developing test context classes to reliably manage resources in functional tests. I have explored the topic of test context classes a few times, and each time I focused on using these classes purely for resource management. In this…

Automatic Resource Management in Scala: Revisiting Test Context Classes

I have written previously about how I like to use what I call call context classes for functional tests in order to encapsulate test setup, reliably cleanup resources at the end of a test, and to promote code reuse across tests. I started by writing about using disposable objects for…