Ruby Queue Pop with Timeout, v.2 (Correctly Handling Spurious Wakeups)

In one of my previous posts, I wrote a queue implementation that would let you provide a timeout to the pop method. Unfortunately, it has a bug caused by spurious wakeups. Here is the fix along with an explanation of how you can avoid this sort of problem in the future. Read more on Ruby Queue Pop with Timeout, v.2 (Correctly Handling Spurious Wakeups)…

(Clojure) Spec-ing Data from JSON

I’ve returned to Clojure after some time using other tools, so I’m late to the party regarding learning and experimenting with Spec. The first order of business was to build some specs for data I’m receiving from an external system in JSON format. Given that it was my first real experience with Spec, and I had no control over the shape of the data I was spec-ing, I was uncertain how to proceed. Read more on (Clojure) Spec-ing Data from JSON…

Introduce Human-Centered Design: Start Small and Start Today

Introducing Human-Centered Design doesn’t have to be complicated. It isn’t a monolithic process that has to be applied across an entire organization before it works. Human-Centered Design is a discipline, a way of thinking and framing context, that provides value incrementally throughout the lifecycle of product design, development, support, and beyond. You can start simple, wherever you are in a product lifecycle, and begin reaping value from it immediately. Read more on Introduce Human-Centered Design: Start Small and Start Today…

Building Your Network After Relocating

There’s no doubt that relocating can be both stressful and exciting. I recently moved from Philadelphia to Ann Arbor to join Atomic Object as a Delivery Lead. I was attracted by Atomic’s strong values and long-term approach to software development as well as the concept of this blog.

Although I was excited to join Atomic, I was nervous about leaving my native Philadelphia. As I planned my move, I worried that I’d lose some of the benefits of a broad network—strong mentors, sponsors, and easy access to feedback and advice from a diverse group. Read more on Building Your Network After Relocating…

Two Resources for Introducing Young Developers to Testing and Quality

At Atomic, we’re doing a great job of taking on and training up new grads to be excellent developers through our Accelerator program. I recently gave a talk to introduce them to some testing concepts and quality attributes that they should be thinking about in their work. Read more on Two Resources for Introducing Young Developers to Testing and Quality…

Why and How to Discuss Design with Developers

In Art & Design School, design critique can be brutal. It’s often focused on judging whether or not work is “good” or “bad.” Reviews of work can be scathing, leaving art and design students running from the studio in tears.

Many professors say that critique is part of preparing students for work in a real world where creative directors possess brutal egos focused on crushing their underlings. I’m not sure that world is anything but a delusion. I’m also skeptical that this form of critique does anything but leave students scarred with bad memories, hesitant to throw themselves into collaborative environments.
Read more on Why and How to Discuss Design with Developers…

DateStr – A Strongly-Typed Date String for TypeScript

Nearly every project I have ever worked on has had to deal with dates in one way or another. For example, there might be a need to generate a report for a specific date range. This would require a user to select a start and end date, which would be sent over the network to an API. The API would use those dates in an SQL query to retrieve the correct results. Read more on DateStr – A Strongly-Typed Date String for TypeScript…

loading…