Become a Software Specialist with the Help of Your Resume
One of my aims with this blog is to help software developers take charge of the business of writing software. And, while I love writing rants and diatribes, doing this requires a good bit of positively focused how-to sorts of things. Today, I’ll charge at one of those: how to become a software specialist in a world of low status generalists.
To specialize, you need look no further than your resume.
But I’ll come back to that in a bit. First, you need to understand the essential sales problem of the software developer, from a labor perspective.
Individual contributor software development is a terrible business model!
Before you pick up the pitchforks and torches, hear me out. I realize you’ve earned a good living writing code for some product company or agency. I’ve done that too in my life.
You can earn a good living this way. But you can’t really conduct good business this way. So when software developers hang out their shingles after years of salaried employment, things can go sideways from a leverage perspective. Mostly, people in this position become contractor staff augmentations that look a lot like employees. Why is that?
It’s because of an incoherent value proposition: selling code-writing-labor.
To make money as a business-person, you need a customer. I don’t mean a nameless, faceless corporation. I mean a middle aged guy named Stan. Or maybe a hard charging woman in her early thirties named Ashley. You need a buyer, represented by an actual human persona that you can picture and speak to. And this person has to be able to afford your services.
Who is this person that can buy tens or hundreds of thousands of dollars of your labor?
The Case of the Split Persona
At this point, you’re probably picturing Stan as an architect or Ashley as a tech lead. But those people don’t have tens or hundreds of thousands of dollars. In terms of company money, they have zero dollars and zero cents, unless the company gives them like a $1200 per year training budget. That doesn’t buy a lot of your app dev, does it?
You want a 3 to 12 month app dev gig, which goes on the market for $50,000 to $200,000. Do you know who signs off on buying that? A director named Sheila. And do you know what Sheila will say if you come to her and tell her that you’re really looking to work on a Node.js-this and a React-that? She’ll tell you that you need to talk to someone that reports to someone that reports to her. She can’t remember their names off the top, but, you know what, just send your resume to HR or something. (I’ve written more on this here.)
When you try to sell a keyword-heavy resume as your value proposition, you create an existential conundrum for yourself. The people that understand what you bring to the table can’t afford you. And the people that can afford you can’t conceive of what problem you purport to solve.
The only way you can make sales is to sell to a system — an algorithm involving various people and committees and whatnot.
And that’s a recipe for either going out of business or floating along through your “consulting” career as a pseudo-employee.
Enter the Software Specialist
So you don’t want to sell big honking chunks of app dev labor by the hour. At least, not if you’re serious about establishing yourself as a consultant, the way I epically described the other day.
I routinely advise people to specialize. (I’m certainly not alone in this — I could link you to lots of other freelance bloggers/podcasters/etc that say the same thing.) But I also recognize that this is hard. A self-defeating culture has settled over our line of work, encouraging us to compete en masse as generalists, rather than divide and conquer.
When I encourage folks with experience tuple resumes to specialize, their first impulse is to pick a tuple. “I’m going to specialize in the C# Oracle database driver’s API!” This can work. But only if you’re going to sell courses or books to fellow software developers.
If you’re going to try to sell your labor in $50K – $200K chunks, this is honestly probably worse than generalizing in C# or programming. Sheila still won’t understand or give a crap, and fewer Stans and Ashleys will perceive you as valuable and hire you.
To become a software specialist (or any specialist), you have to stop thinking about you and start thinking about your buyers. Who are they, exactly, and what problem do you solve for them? How do you make their lives better in exchange for a price that they can pay?
Your Resume Can Actually Help You Specialize
When people tell me about their lives, I can help with specialization ideas, based on what they enjoy at what they’re good at. I’ve gotten very used to thinking in these terms.
But I’ve also had such a prodigious amount of experience with this that it’s completely unfair. Not only have I consulted for years, but I’ve also been writing for a lot of others’ blogs, which forces you to think of their buyers and what they offer.
So I tried conceived of an admittedly hokey exercise imagining talking to myself from a decade ago, and thinking how it would go. A decade ago, Erik would have wanted to specialize in a driver API.
And the best gap-bridging exercise was to dig up an old resume, and use it as an example of how to iterate toward a specialty.
But first things first. Does your resume have one of these?
Mine did. CMM and waterfall “methodologies.” I wish I could remember if I added that cynically to light up the keyword detectors or if I really thought of them that way.
Anyway, the point is, toss this section of your resume in a garbage can. Then light that garbage can on fire and shoot it into space. (Or just ignore this part of your resume)
Your Specialties are in Your Accomplishments
Here’s another segment of my old resume. And wow, just noticed a grammar error in there at a casual glance (can you spot it?) ¯\_(ツ)_/¯
You probably have a section describing what you did, day to day, the way I have here. But hopefully you also have a “key accomplishments” section. If you don’t, add it, because it answers the question, “did anyone care that I worked at this place?”
Good accomplishment sections include not only things your employer recognized you for, but, ideally, who benefited and how. And, if you’re really on top of your game (as I would be toward the end of my resume taking days), you’ll start quantifying your accomplishments. For instance, “added an integration test suite that reduced escaped defects by 40%.”
But it’s not only good resume accomplishment statements that have these things. It’s good positioning statements for free agents! It’s full of ideas!
- I get late software projects back on schedule. (Sheila will appreciate that one)
- If your team hasn’t done it yet, I have an offering where I add automated tests to your build.
- I’ll setup a knowledge base for your team.
- I specialize in getting your team on newer source control with no loss of historical information.
You get the idea.
Brainstorm Furiously and You’ll Be Swimming in Software Specialist Paths
This is one role I had at one company once. With almost zero effort, I glanced at its accomplishments section and popped off four viable business models for free agents. Imagine me doing this with 10 years worth of roles, across a bunch of different companies. The ideas will pile up in hurry.
In the initial stages, don’t be picky. Leave it in there even if you think you’d hate it or that you couldn’t sell it. Just get in a mode where you’re piling up ideas. They’ll really start flowing this way.
Once you have an impressive hoard of them, you can start filtering. Filter out ones that would destroy your soul first, perhaps. From there, think about the marketability of the idea and the viability of the business model.
And think about how you’d position yourself (this is a post I can offer for another day, if people are interested — the different strategies for position). Remember, this is a buyer-focused activity, so as you filter your ideas, you should always think about who the buyers are and what makes you uniquely qualified to help them.
Like a muscle, exercise this style of thinking, and get used to it. Let it become second nature. Because it’s this style of specializing and positioning that really lets you differentiate yourself and stop competing with 18 million other software developers for the title of “best at algorithms.” Nobody cares about that title as a buyer, except wage employers that benefit from you making less than you could. So stop engaging in quixotic races and start using your unique specialty to run unopposed.
Kind of reminds me about the way many release announcements are made…we released xyz features. Ok, that’s great but what did it mean for the business and/or users? Same concept with the resume right?
Yes, exactly. In my experience, almost anyone reading a resume will be more interested in results than in either day to day or “techs used.”
Getting away from keyword bingo in your resume is definitely a good thing but you are still going to be talking to Stan and Ashley and not to Sheila simply because Sheila still does not care about you until you can solve a complete problem that the business has and generally that is going to take more than one warm body. With key accomplishments what you can do is present yourself as the person with the solution to solving some of the problems in creating software. For example being able to say that you can set up a solid continuous… Read more »
I think it’s helpful to conceive of investments that buyers make in four phases (the guys at the Freelancer’s Show talk about this a lot): diagnosis of process, prescription of therapy, application of therapy, re-application of therapy. Most people trading in experience tuples concern themselves only with the last two, which are the most labor intensive but lowest value. As a solo consultant you can (and I have for years) earn a living in the beginning of those: diagnosis and prescription. Sheila cares about the thing from start to finish, but neither the consultant nor Sheila will be much involved… Read more »
Would be great to see how that plays out…Erik consults Sheila to listen to Stan about shortening the company’s lead-time by reducing time to deployment. But especially the non-free parts of the same…how about a fictional account of the gig?
I’ve filed this in my reader question topics Trello — I think that could be fun to write about.
[…] discussed this in detail in a recent post, but I want to restate it here. When you sell “freelance labor” you’re selling […]
[…] of “programming” as anyone needs to be. After your employed residency, you should start to focus on your particular specialty and on growing your […]
Great article. I’m a Software Engineer currently focusing on Machine Learning and Natural Language Processing (NLP). When I think about specialization, I always have trouble in the granularity of it. I’m working on difficult NLP problems so I think I have something there, but is NLP a specialization or is it too general? What could be the right specialization? some branch of NLP like Natural Language Generation or some vertical like “Real Estate”? I’m not sure about this process, I guess that you start at the top level (NLP for example) and then you start getting some information about which… Read more »
I’m actually saving this in my reader question queue because I think it could make for an interesting post, but also because I’m thinking of building some kind of course or info product on picking a specialty for folks exactly in your situation. Off the cuff, though, here’s how I’d think of it. NLP is an interest of yours and certainly a marketable skill/knowledge-area. And it’s a “specialty” in the sense that it’s what you focus on and are good at. But when I’m talking about specialty, I’m framing it in the form of “I help [who] do [what].” (So… Read more »
Thanks for your reply Erik. I guess that you have to take some time to find some niche to focus on. It’s difficult to find it in isolation and maybe “through experience” is the only way. So if you have no experience you have to work in different things until you spot some possibilities and iterate on that. Am I right or is there another way?
I think that’s certainly A way, but I also think you can jump-start the process. I forget where, but someone I was talking to recently talked about just scheduling calls with people they knew (non-developers) to ask them about their work, what were sources of friction/pain, what they’d like to see improved, etc. Basically, very open-ended, non-sales sorts of conversations, just to get a feel for where there might be some value to add. Another thing you can do is go poking around internet forums and Q&A sites looking for unanswered questions or complaints about existing products that haven’t been… Read more »