Advance Your Tech Career: Why make yourself replaceable, and how?

A few years ago, Seth Godin wrote this book called Linchpin. Among other things, the book suggests that you hoard relationships, knowledge, and context at your job so it’s impossible for the company to replace you.

People who read books like this presumably want to continue to grow, learn, and advance in their careers. In order to do those things, you’re much better off enabling other people to do everything you do.

A programmer might refer to this as deprecating yourself. It’s a critical leadership skill that you will need to build a tech team, rise through the ranks, or otherwise level up your tech career.

Continue reading “Advance Your Tech Career: Why make yourself replaceable, and how?”

Leading a Software Rewrite at Your Company

Bertrand’s Health Insurance has a problem. Their software system is hard to maintain.

The systems still rely on tools that had their heyday in 1990. The SOAP API doesn’t always return valid XML. The search calls take twenty seconds to return.

Bertrand’s CTO and CIO decide that it’s time to rewrite the system from the ground up.

And you’re going to lead the team that will do it. Congratulations!

Continue reading “Leading a Software Rewrite at Your Company”

Adding Members to Your Software Team

Congratulations! Your startup is taking off, or it’s time to accelerate the pace of your internal project or consulting work. It’s time to hire more people to join your team. You have chosen promising candidates, and they have accepted your offers. Now all you have to do is wait until their start dates…right?

Not necessarily. If you want to get your new team members up to speed as quickly as possible, you need a system for orienting those new team members to all the important context they need to do the best possible job for you.

Continue reading “Adding Members to Your Software Team”

Advanced Pair Programming: Enabling Your Pair

Maybe you are a senior developer in your role at your place of work. Maybe you happen to have most context on a given tech stack or application. Maybe you’re orienting a new team member, or you’re conducting an interview with a candidate using your code base. In all of these cases, you are in a position to bring your programming pair up to your speed on the project.

Continue reading “Advanced Pair Programming: Enabling Your Pair”

Advanced Pair Programming: Pairing Remotely

Maybe you work on a distributed team and you want to introduce more pairing into your development cycles. Or maybe you’re used to solving problems with pair programming and you have to be out of town for a few days. Maybe you’re a mentee, and you want to pair with a mentor in another city on your application. In any case, it’s valuable to know how to get the most out of remote pair programming. Here we’ll talk about some of the lessons I have learned pairing remotely with colleagues and clients on entrerprise applications, as well as with some mentors and mentees.
Continue reading “Advanced Pair Programming: Pairing Remotely”

Test-Driven iOS: Testing Asynchronous Network Calls with FutureKit

Lately I’ve found myself writing asynchronous network calls on mobile platforms in the reactive style. I want to share how you can test-drive calls like this for iOS. The following example uses SwiftyJSON for JSON deseriaization and FutureKit as the asynchronous framework surrounding the network call. There are several libraries in iOS that do both of these things, but your structure here will look similar with any of them.

This example is updated to Swift 3.

Continue reading “Test-Driven iOS: Testing Asynchronous Network Calls with FutureKit”

Do iterations make business sense?

When an engineering manager tries to sell you on developing software in iterations, it sounds like a scam waiting to happen. You pay them money to write software for some number of hours, but the developers offer no guarantee that they’ll finish the features you’re asking for. It’s not even like getting your bathroom renovated; sure, the contractors take way longer than they said they would, but at least they don’t charge you more for the privilege of waiting. Why would any business agree to that for software?

This question is more interesting than it looks. It seems like common sense to us not to trust the iteration—but only because we make a common set of assumptions about how we should produce, consume, and pay for software.

And maybe, just maybe, those assumptions are wrong.

Continue reading “Do iterations make business sense?”

A Survival Guide for Female Employees in Male-Dominated Companies

*This post originally appeared on the blog of The Digital Dames under one of my pseudonyms.

No. Way.

You just got an offer from that amahhhhhzing company with the $70M venture round and the [insert tech buzzword here].

Maybe the business is super-secretive, or maybe all their glassdoor reviews rave about how fun it is to work there. Beer! And Starcraft!

You show up on your first day, eager to meet all the badass women in leadership.

All zero of them.

Continue reading “A Survival Guide for Female Employees in Male-Dominated Companies”

Blog at

Up ↑