Rails, Active Record & Postgres – Optimizing Deletions

Every Rails project I’ve worked on has used Active Record. ORMs like Active Record have many benefits. They abstract you away from the database. They make querying data elegant and simple (in most cases).

However, sometimes Active Record is not more efficient than Postgres.
Read more on Rails, Active Record & Postgres – Optimizing Deletions…

Designing a Scalable Deployment Pipeline

Anyone who’s led a product engineering team knows that a growing team requires investments in process, communication approaches, and documentation. These investments help new people get up to speed, become productive quickly, stay informed about what the rest of the team is doing, and codify tribal knowledge so it doesn’t leave with people.

One thing that receives less investment when a team scales is its deployment pipeline–the tools and infrastructure for deploying, testing, and running in production. Why are these investments lacking even when the team can identify the pain points? My theory is that it nearly always feels too expensive in terms of both money and lost progress on building features.
Read more on Designing a Scalable Deployment Pipeline…

Open Source Basics: NPM Edition

As software developers, we’ve long used third-party code in our day-to-day work, but these days, it’s much easier to find and integrate it with package managers and searchable repositories.

Inevitably, there comes a time when our unique use of a library exposes a new bug, or we find that we could almost use that sweet tool if only it did this one tiny thing differently. When that happens, we find ourselves popping open the hood and making changes to a third-party dependency. Read more on Open Source Basics: NPM Edition…

Getting Started with AppleScript

As a consultant, I do my best to be as efficient as possible. I want to provide the greatest value I can, and one of the ways of doing this is by cutting down the repetition in my workflow. If I find myself doing a task frequently, I try to shorten the time it takes to do it, or to automate it completely. Recently, I have been exploring AppleScript, which is a very powerful tool available to anyone running OS X.
Read more on Getting Started with AppleScript…

Tech Debt Isn’t What You Think It Is

Technical debt isn’t what you think it is.

Kellan Elliott-McCrea wrote up an excellent commentary on tech debt back in January ’16. He makes some fantastic points that help clarify what tech debt is and isn’t, but I’ve still been feeling like something is missing in his definition. I think I’m starting to get a handle on it.
Read more on Tech Debt Isn’t What You Think It Is…

Life After Text Mode: How I Learned to Stop Typing So Much and Love the GUI Again

The command line is a powerful abstraction in the developer’s toolbox—a succinct line of communication directly into the heart of the operating system. A skilled developer can take a small window filled with nothing but a blinking cursor and turn it into a productive environment for building websites, apps, and experiences that delight, amaze, and inspire. But sometimes, we developers get so caught up in the productive asceticism of the command line that we forget about the world outside and all it has to offer. Three apps have me rethinking my Text Mode lifestyle. Read more on Life After Text Mode: How I Learned to Stop Typing So Much and Love the GUI Again…

Help Your Fellow Developers with Well-Worded Error Messages

When something goes wrong in my code, I usually try to throw an error with a message telling me what went wrong. I don’t think too much about what the error message is. It’s usually just enough to give me an idea about why the code raised an exception.

Recently, one of my co-workers pointed out an improvement I could make: Write error messages that won’t make him think. A good error message should not only point out a problem in your code. It should also indicate that a solution is available. Read more on Help Your Fellow Developers with Well-Worded Error Messages…

Sharing Web Data with iOS Using WKWebView

I recently helped develop a native iOS app for a client that sells software to many different educational organizations. We wrote the app in Swift, and it interacts with our client’s pre-existing web API.

One challenge we faced was that many of our client’s customers require single-account, multiple-login (SAML) support through their own web portals. To support SAML, we needed an easy way to pass a user’s API credentials from a web page to our iOS application. In this post, I’ll show how this can be accomplished using WKWebView.
Read more on Sharing Web Data with iOS Using WKWebView…