Ask HN: What job can a “jack of all trades” look for?
-
I've been at the same small company for over 7 years. I started at the bottom, worked my way to the top after 3 years, and I've been here since. For a couple years I created new positions for myself because I hate being stagnant, but there's nothing else to do here.
I'm proficient in many things and enjoy doing all of them. Development (full stack), server admin, data center management, DevOps, project management, managing teams, VoIP, routing/switching, training, sales... the list goes on.
My issue is I haven't had formal training in a lot of it, and I didn't have any mentors or people above me to teach me more because this company is too small. I just love learning and love moving forward so I kept teaching myself new things, and then using them in the company. I don't actually feel like I have impostor syndrome, but I also feel like someone that is filling these roles at another company probably knows/does it better job than I can. I'm just a big fish in a small pond here.
So finally to my question: what role/job title I should be looking for? All the searching I do points me to one specific roles. PHP Developer. Systems Admin. Network Engineer. Etc. Are there any other "Jack of all trades" out there that can tell me what your job title is, and what I could be looking for?
216 comments
[ 4.2 ms ] story [ 251 ms ] threadP.S. We believe it's a marathon, not a sprint. Salaries are market rate, benefits excellent (on par with large tech, i.e. 6% $1/$1 401k match, etc.).
P.P.S. While message is directly to OP, also open to anyone else reading. More background in my profile bio here.
Edit: although the OP is broader in experience than most.
Big companies like Google also seem to hire a lot of generalists who have good programming fundamentals, are smart, and can quickly (i.e. within months) become productive in many kinds of projects.
These generalists then work on a project for 1-3 years. When they lose interest, they move to another Google project or leave the company.
If you really want to work on both engineering and sales, you'd probably want to run your own business or work at a very small company.
The larger and more mature a company is, the more able it is to afford a job title which specializes in something narrower. It doesn't need to be super large; if the product is very technical, a specialist might be necessary.
The situation can be a bit different in a large company. They might want to hire a Java developer, or a front end developer. These are specialist roles, in that the people in them have chosen a professional specialism. They're commodity specialists though, so common that they're not thought of as special. It's more rare that they want someone who can do devops, UI, JS, RoR, Java and C++ - this is a generalist.
The challenge is endless, diverse, and there is no perfect solution to the problem if people. It is a strange domain, but being technical is nice when working with development. Worth a try if you are in to that
Speaking from the experience of a friend, they started out by talking with their manager that they did not want to be a developer in the long term. Shortly thereafter, the manager announced to the team that the developer was going to start taking on project management tasks (like managing the project using Microsoft Project and leading the scrum daily stand ups). They continued in that capacity until they officially became project manager for another team. Now, years later, they are still managing but managing managers and a much larger team overall.
There are some technical product management positions. If you are looking for training and feel like that route and MBA will almost certainly set you down that path. Though I did not and got to a PM position. Luck is also involved. Haha
You're slightly moving the goalpost with your comment, because it's not necessary to go through formal training to be a PM. Engineers are tangentially involved in the product process pretty much always. The transition is essentially about taking more responsibility over the product and spending more time driving product vision as opposed to building. Passing a PRD to your manager if you thought a feature could be done better was encouraged at my last job.
Your manager will often support you doing this. Then, if you've been doing this well, you can speak about making a change to the PM role because you've proved yourself. If your manager does not support you doing this or the company doesn't need another person in a product role, then you might need to make a change.
FYI large companies accept internal applications for their APMs, which is a formal training program, albeit pretty much for junior employees only.
Be knowledgeable about metrics/kpis (and help create them if they don't exist), help your teammates grow through coaching, and work your way to be involved in those product discussions.
If you're not in such a position, try looking for a new job. So many companies need product managers and if you come clear on your ambitions, it seems to be easy to get past that initial wall.
Maybe in a few years after I get more experience in the business.
As a concrete example, I'm at Red Hat Consulting. We have products that range from RHEL, to Kubernetes/OpenShift, to language runtimes/tools/middleware, and finally to more process focussed transformation. You can specialize, but the more of these you are competent in the more useful you become. I am in more of a leadership role now, and in any one project I am likely involved in all of the above.
The key skills you haven't mentioned are the "Soft" skills: mentoring, client facing leadership, presentation skills, etc. If these are a strength for you, then consulting would be perfect.
Shameless plug at the end, Red Hat is hiring: https://careers-redhat.icims.com/jobs/search?ss=1&searchCate...
On the actual consulting side, 95%+ of consultants have seen no impact. Those that are being impacted are working on projects that have more IBM products involved. For example, some of my team is starting to work with OpenShift on Z.
As an example, at my current job over the last two years I've done data engineering, devops, sysadmin, security, machine learning, backend api, people management, product management, project management, and probably some things I forgot about.
It does help to have a core set of skills that you are particularly good at and experienced. Mine is data engineering followed by machine learning and devops (devops being a recent addition). I avoid boredom in those areas by building better systems at every company based on past experience and the specific business goals of the company.
Btw big companies like FAANG interview generalists all the time.
There are definitely generalists at FAANGs, and they've got license to kill, but it seems like they were hired specifically at a certain rarefied level or they grew into the role over time.
Something i learned about myself a little bit farther in was that I wasn’t a generalist so much as I was a serial specialist (once you haven’t touched something you used the be good at for seven years, can you still claim to be good at it? Turns out I can’t).
What you list sounds quite a bit like what devops was supposed to be but nobody does it that way. Instead you should probably look at small companies. In a large one the only way to wear that many hats is to stick your nose into other people’s responsibilities. At a small company there are gaps everywhere, and people are just glad when someone can fill them.
If you have any ability to mentor, you might want to look at lead positions as well, or think about what you need to get there. That gets you some management responsibilities but you still get to make things.
Can you elaborate on this?
If Mark the networking guy is on vacation, Jane the fullstack dev should be able to perform basic networking troubleshooting and implement some fix until Mark returns and possibly fixes it.
Turns out people who can do that are:
- incredibly expensive
- very difficult to find
That's my take. I imagine a kanban board where prioritized issues are taken not by people who specialize in that particular area, but by whoever has the time right now. Again, I've actually never seen that implemented, except maybe for companies that consist of nobody but Jane and Mark :)).
In other places, it just means operations people with some basic coding chops. And they’re still a completely separate group, instead of an integrated team solving systems problems.
Tl;dr - figure out which of your experience areas align with an area that’s either lucrative to you or of high interest for you for other reasons, and pursue that at a large company. At higher technical levels, your soft-skill and cross-dept experience will further accelerate your career.
I do not spend as much time as I would like contributing to the codebase (the devs in my team do often a better job of it), but rather tend to act as a solution architect. I often bootstrap projects, do a lot of research and development, build proof of concepts, and overall push the team towards best practices.
I am very proud of some of my achievements (we are lucky enough to have freedom in the tech that we use and are currently testing out Elm for a small app, we moved the team from Java to Kotlin..) but I feel like I have lowered my value in the general market.
I would be curious to know in what form you contribute to your current team. I do not feel like my job is done here, but I am also going back and forth on whether I should get back to a more coding-oriented job, rather than doing my coding in my free time just to keep in touch with the craft.
Seeing the quality and technical abilities of scrum masters I've worked with, that statement is probably true.
That said, if you can demonstrate that you're a good scrum master that is actually technically skilled, I'd pay your weight in gold for you... Monthly...
Mine, so far, weren't.
Run a few product implementations at customer side and there will be no monotony.
If you grow older and start appreciating more the routine in your life you can go into product management using the knowledge accumulated on customer side implementations and finally consulting.
>I've been at the same small company for over 7 years. I started at the bottom, worked my way to the top after 3 years, and I've been here since. For a couple years I created new positions for myself because I hate being stagnant, but there's nothing else to do here.
I've been there and I thrive on it to this day. There are ups and downs with this, but you have something that will serve you very well if you choose to have a change of perspective/attitude.
You can either take this as a blessing or as a curse. Have you thought about going into an executive role and leading the company in a larger capacity, and helping it grow further?
At a certain point you have to drop off all of these duties that you are performing so that you can leverage the people you have around you.
You may think you still enjoy doing all of these things, but this stagnancy is going to haunt you, because there isn't an infinite growth in these areas. People, and companies, like predictability. Your voracious appetite is an anomaly. And you can't keep it up forever, either, because eventually you'll just plain get tired of it.
>I also feel like someone that is filling these roles at another company probably knows/does it better job than I can.
Questionable. There are a lot of muppets in other companies that don't know what they are doing.
Did the company grow over the years that you were there? I'm assuming it's not as "small" now as it was when you started. If so, you grew along with the company and you have a very good grasp of how to introduce and manage things within a company over time as it grows (ie. transitioning/pain points).
>What roles out there fit the skill set of someone that is good at a whole lot of things, but doesn't feel like a master/senior in any one of them?
People here are already playing Startup Bingo bullshit.
I doubt working at a startup will satisfy you, because that shit will feel like Groundhog Day much like how it currently does for you. You'll get to go through all the same nonsense over and over again.
Furthermore, the startup hustle is far riskier (with even less guarantee of a payout) than the position that you are in, because your position is much rarer. Anyone can choose to start a startup. Very few people can choose to be at the top of the food chain in a company that is alive (and healthy, I hope) after 7+ years. You didn't stumble into this position by accident.
You can leverage knowledge you don't know you have to do things that you couldn't do at a startup, all while having financial backing, a solid team and processes in place.
>My issue is I haven't had formal training in a lot of it
Most of what you know that is vital (that you've dismissed, I think) has no formal training. I can get formally trained monkeys to sling code all day if I wanted to, and while it wouldn't be done as well as I would have done it, it would satisfy the larger picture and keep things moving forward. Sacrosanct words for "engineers" who keep themselves busy writing more useless unit tests I'm sure.
>So finally to my question: what role/job title I should be looking for?
Before you jump ship, see what options at the top of the company pyramid are available for you, because if you leave and go elsewhere, and if you market yourself as a "PHP Developer" or "Systems Admin", you'll more than likely just move the clock back by 7 years and have to start all over again, in a different company, doing the same shit you've done for the last 7 years.
Another you might consider is starting your own business.
This path is not for most people. However, being successful as an entrepreneur does require a wide breadth of knowledge, and plenty of new things you'd need to always learn.
If you go this route, keep your (current) full-time job while you start building it on the side. Your one and only test of when you're ready to go solo is your ability to make consistent profit.
Very similar story. Beyond doing the full stack development of their web properties and internal database, design, IT, networking, I've created a marketing, seo, and advertising role handling all of that to bring in clients. It's a busy day but have automated as much as possible. Currently looking for something that checks all the boxes and that'll have me. Hardest part is remote is a must. Definitely don't have an issue traveling for work but relocation would be tough. Recently bought a house in the midwest with my wife.
I guarantee that none of the IT skills you have acquired will go to waste. Plus -- by choosing a fascinating area -- you might actually NOT BE BORED!
On the other hand, if you are at all hesitant, don't go to grad school. With the wrong adviser, it will chew you up and spit you out in tiny bleeding little pieces.
Just my 2 cents...
Exactly what happend to me. 4 years in a PhD program with an adviser that could not have cared less about anything I was doing. I gave up after my wife left me because I was spending too much time at "work". Yeah, now I have nothing and can't get a job because 4 years of nothing looks pretty bad. (Thank god I bought Bitcoin).
I got really surprised when I first read about the attributions. I had never seen all my interests forming such a harmonic whole before.
And if it never takes off, so what? At least it will be a great learning and self-growth opportunity, which is exactly what the OP is asking for anyway.
I had the same issues for many years, but the past 2 positions have been official "DevOps" positions and they more often than not have me doing so many random things that require all sorts of skills. I love it. It keeps things interesting, and it makes me very valuable to the company because I can do whatever they need.
Sure, some places have a very narrow definition of DevOps, but that's usually the large companies/teams. If you can find something a bit smaller, then you'll have more of a jack-of-all-trades role. At least in my opinion.
At my previous company, I work as one and really enjoyed it. I was a software engineer, but I was also responsible for infrastructure, tests, CD/CI.
Now, I'm looking for a job like this, but most of the companies just want ops people who can code a little bit for automation and support other developers work "thrown over the fence"