In defense of hiring the generalist
Specialization has been the right career shape for twenty years. I think that just ended, and my own weird résumé is the argument.
6 min read
I've spent twenty years watching hiring managers flatten a career into a single noun. Backend. Frontend. Manager. The résumés that scanned were the ones that could be read in a second. Mine never scanned. I used to treat that as a problem I had failed to fix. I don't think it is a problem anymore.
Specialization paid when execution inside a discipline was expensive. A specialist could produce more, faster, with fewer mistakes, and that difference was worth a headcount line. Execution got cheap in several disciplines at once. The expensive part moved to the connections between them. That is where I have actually lived.
The résumé that reads as unfocused
Here is the list, without the usual cleanup.
From May 1998 to May 2005 I was at UPS in Phoenix as a district software engineer, a tech support technician, and a supervisor. I wrote district operations software in PHP, VB.NET, and MySQL, and I managed deployments across three states and hundreds of locations.
From October 2005 to January 2007 I was the sole corporate PHP developer at Fidelity National Financial, the largest title insurance company.
From January to April 2007 I was a project manager at Electric Sheep for corporate and virtual-world builds shipped for IBM, AOL, STA Travel, and NBC. That was also my first PHP and MySQL API work.
From December 2007 to January 2009 I was content lead for Seesmic's corporate blog.
Then the campaigns: McCain in 2009 and 2010, Newt in 2012, Romney in 2012.
From 2014 to 2017 I was a senior technical lead at Zibtek for an engineering team in Pune, delivering for clients including Adobe and Livefyre.
From 2018 to 2023 I went from individual contributor to CTO at Life Happens.
The through-line from 2010 to now has been a consulting practice, Vaught Consulting and then Agency Intentional, running alongside those jobs rather than instead of them.
I also co-founded Common Thread, a rug tufting studio in downtown Xenia, Ohio, with two partners. It is a live testbed for applying AI to a local service business. Publishing here usually skips studio operations. This post is the exception. A shop floor, a booking calendar, inventory, and customers who walk in are an operation. Applying AI there is seam work, not a personality detail at the bottom of a résumé. You cannot do it from a stack preference.
In 2016 a hiring manager reading that list for an engineering role was looking for the plot. Supervisor, then sole PHP developer, then a few months of production work, then a blog, then campaigns, then Pune. The charitable reading was range. The actual reading was that I had not picked a lane. A content-lead year and three campaigns in the middle of the page did not match the job architecture the industry had spent twenty years building. I understood that reading. I would have made the same call.
What I think the list means now is simpler. Each job put me inside a messy operational problem. I had to understand how the people inside it worked, then build something they could use. That is the only through-line that is true. The studio is the same sentence, pointed at a different floor.
The specialization trade
Depth paid because execution was expensive. If you needed a Laravel application, a specialist who had only done Laravel would beat a generalist who had also run a blog and a campaign. The specialist had more of the expensive thing: hours of correct production inside one discipline.
Companies organized around that fact. Career ladders rewarded narrower excellence. Job posts asked for years in one stack. Interview loops tested depth because depth was a decent proxy for whether you could produce. That was not foolish. It was a cost structure. When typing out a working system took weeks, you hired for typing.
What it cost is less often named. The connections between disciplines went unowned. Somebody had to stand in the doorway, and that somebody looked, on a résumé, like a person who could not commit.
I held two titles at once at Life Happens, Director of Engineering and Director of Customer Success, because the loop between what shipped and what members experienced was the actual job. That is many hats as an operating choice, not a staffing accident. The player-coach version of the same fact is that I never fully left the editor while I was collecting those titles.
What changed
Execution got cheap in every discipline I know, at roughly the same time. You can get a first draft of the code, the copy, the spec, and the support reply without hiring a specialist for each. The draft is not the job. The job is knowing whether the draft is wrong, and wrong in a way that will show up at a seam: between engineering and support, between a campaign site and a rule that cannot move, between a shop's calendar and the model that thinks it understands the calendar.
Value moved to the seams. The seam is exactly where the generalist has always lived.
This is not a claim that specialists are obsolete. Deep work still matters. A generalist who cannot go deep in anything is a tourist. The failure mode is the person who is shallow in all of them. Range is not the same as depth in several places, and it is easy to confuse the two if you are the one telling the story. I am not exempt from that risk. The useful shape now is someone who has been deep enough in more than one room to recognize the handoff, and who will own the handoff instead of throwing it.
A 2016 hiring loop was designed to reject that person early. The jagged résumé was the reject signal. I think the signal flipped.
How I would actually interview for this
I would stop asking for a single noun. I would stop treating years in one title as the main filter. I would stop using a whiteboard puzzle in one language as a proxy for whether someone can tell when a generated answer is lying. I would stop asking people to apologize for the campaign, the blog, or the shop.
I would ask them to walk me through a system they did not invent, and what they changed after they understood the people who used it. I would ask where two functions handed work to each other and what broke at the handoff. I would ask for a discipline they are not credentialed in that they still had to be competent in last year, and I would listen for whether they can describe the actual work or only the vocabulary.
I would watch for the failure mode. The shallow generalist can name seven domains and cannot go deep enough in one to know when they are faking the others. The tell is speed without friction. People who have really crossed a seam remember the part that did not fit.
I ran hiring, retention, and capacity for an engineering organization. I do not have a clean rubric for this, and I am suspicious of anyone who does. Distinguishing range from restlessness is the whole problem. I am still figuring out the questions that do it. The only thing I am sure of is that the old scan, the one that wanted a single noun, is now a way to filter out the people the work actually needs.
Related: Many hats, Player-coach