Every few months I see a post or article about what it means to be a ‘senior developer’.
Some of the articles are rant-flavored critiques of the practice of granting the ‘senior’ title as a retention gimmick to 2 or 3 year-old devs in place of more money. But I think most are sincere. They’re popular because people care about their careers, want to improve, and recognize there is uncertainty, and therefore risk, in choosing ‘what to get better at’.
I’m 33 and just starting to feel like a senior hire. This short post is about what makes me feel senior and what I see junior devs doing that makes me think ‘I was young once’.
What makes me feel senior
- The conversation has changed in interviews. Especially since I started consulting, I usually know everything about a company before I show up to meet them. This is 1/4 experience, 1/4 homework, 1/4 the fact that my ‘jobs’ are short-term projects, and 1/4 me asking the right questions on the phone. My interviews are all about their problems and how we’d solve them together; they’re really like preliminary design meetings.
- Fit matters to me. My experience is that you know at the interview stage what’s wrong with the fit, you just don’t know whether it will go wrong. In fact I’m probably getting worse at the detection/prediction side of this. The feeling of seniority comes from caring more than I used to about the outcome, caring about what I can give to a company and what resources they’ll give me to get the job done.
- I’m passionately interested in young companies. If you’re at a company sub 10 people, no matter who you are or what you do, I can listen to you talk all day.
- I’m suddenly older than people. ‘Seniority’ isn’t really age, but it’s correlated with. My coworking space is full of 24 year-olds and they seem like teenagers to me. I can’t imagine what I look like to them. A 33 year-old with thinning hair? The guy who dresses like it’s still 2014? The out of touch guy building a text-based dating app?
- Old people (and I mean 50 and 60 year-olds – sorry) are starting to be interested in what I have to say. I think it’s because I’ve survived several ‘cycles’. I’ve seen things go from working to not working and vice versa. But I also have some connection to youth culture: I understand their technology but not their music. For a 50 year-old, I’m a bridge to the present that can speak their language. It’s like reverse nostalgia.
- My fears are different. I’m not worried about getting or keeping a job, and I don’t read ‘will I get fired tomorrow’ into my colleagues’ and managers’ tics. But I’m worried about my long-term viability: to grow in my career I have to think like a teenager and start from scratch with new tools. I can make a living without being creative, and that’s dangerous.
- Erosion of ego. I no longer feel worthless if I’m not doing everything myself. I recognize the value added by good managers, in part because I’ve had the good luck to work with some. I respect talent wherever I can find it.
What gives junior devs away
- They don’t ask questions about the business. They assume that anything they haven’t been told is off-limits information, and they’ll cross some boundary of respect or back-talk if they speak up.
- They’re wrong in different ways. When senior devs are wrong, it’s usually religious: ‘X is faster than Y’, ‘we need 100% test coverage before we launch’, ‘there’s no way to speed this up’, ‘users don’t click there’. When junior devs are wrong, it’s often a misapplication of something they heard to an unrelated situation or tool.
- Some rely on the organization for information; even in 2017 with access to github and google, some still ask for help in doing or understanding things they could just look up.
- They don’t get many opportunities to make decisions on behalf of the group, and so they’re not prepared to do so when asked.
- They don’t cultivate relationships in other parts of the business. Especially at a healthy organization, senior people are spending energy on keeping the channels open between subdomains (sales, product, devs, art, whatever).
It’s not like they’re not allowed to do these things. They’re just not asked to. If you’re a junior dev, there’s no harm in starting.
Sometimes I wonder if junior devs should exist at all. I meet young founders who are bright, independent, and making decisions left and right. I wonder if 16 years of school where your decisions have basically zero consequences create useless young adults who have to be resharpened when they get to work.
Are you a junior dev?
Do the heavy lifting in your organization. Produce good software from incomplete or bad designs. Measure twice & cut once.
Talk your way into the room when the decisions are made, and if you’re not tagged in this time, be prepared to get asked next time. Do your homework, predict what’s coming down the pipe. Don’t appear naive if you can help it, but you can’t always help it. When you screw up, keep your mouth shut, listen, and learn for next time.