top | item 24916016

Ask HN: Jack-of-all-trades of HN, how do you approach job search?

327 points| a_square_peg | 5 years ago | reply

I have enough experience under my belt to feel comfortable approaching fuzzy engineering problems that span relatively unfamiliar domains but I feel it's quite difficult to convey this when applying for positions.

I'm also sure to fail googlable technical questions so I was wondering how others might approach this.

250 comments

order
[+] gregjor|5 years ago|reply
I’m almost 60, lots of various technical experience in my 40 year programming career. I’m busier than ever with freelance work.

Don’t try to join startups or cool SV companies unless you have an inside track. Their recruiting and hiring practices are mostly geared to ensure “culture fit.” That’s code for young single male who will work 12 hrs/day and think free beer and pizza makes it cool.

Focus on measurable accomplishments rather than languages, frameworks, tech buzzwords.

Learn to solve business problems rather than “engineering problems.” No one needs 2,000 more lines of Javascript. Lots of companies need business problems addressed.

If you’re applying for jobs you’re hobbling yourself. If you have years or decades of experience you should have a large network of colleagues to get leads and jobs from.

[+] msluyter|5 years ago|reply
If you have years or decades of experience you should have a large network of colleagues to get leads and jobs from.

Clearly I've failed here. I've kept in touch with a few folks from previous jobs via LinkedIn or whatnot, but as a network, I'd describe it as "thin and weakly connected." Part of that is due to being an introvert and generally terrible at maintaining long term human connections. And part of it is a certain indifference I've had in the past to actively managing my career, which in an of itself is a result of how generally easy it's been to find work. Curious if I'm alone in this?

[+] cactus2093|5 years ago|reply
Sounds way too negative from my experience. I’m only in my 30s to be fair, I’m sure it does get harder as you get older, but I’ve also definitely interviewed a lot of older engineers and made offers to them at what seems like a similar rate as other age groups.

I have to strongly disagree about advising the OP not to join SV startups. I’ve worked at many of them, and they can the perfect environment for a “jack of all trades”. I also have not found that all of them just care about culture fit, there are certainly some that might fit that caricature but but by and large what they care about is can you get things done quickly without needing a lot of hand holding. Smaller startups are more likely to look for this as well in an interview, and for example have you build something fairly practical rather than solve tricky algorithms problems that bigger companies rely on.

As far as using your network to get jobs, you might be surprised that it’s not as easy as you think. The smaller the company the more pull this can have. But most companies try to be objective in the hiring process, and any company over a certain size (I.e. if they’re big enough to have recruiters and a head of HR) probably won’t just give you a job if you don’t pass their standardized interview questions. The main way it can help is if you don’t yet have enough experience on your resume or a good school and are having trouble getting past the resume screen, a personal intro can move you along to at least the hiring manager screen or first technical screen step.

[+] lostcolony|5 years ago|reply
Biggest thing you can do is form a thick skin to perceived failure. Best way I've found to do that is to hold very closely the tangible evidence that you are good at getting things done. Then interview a lot until you find something.

See, there's a couple of things to remember. First, the biggest way to sell yourself in an interview is to demonstrate confidence. Not bluster, but gentle self-assured comfort in the face of being interviewed. The ability to answer questions you do know, and to say "I don't know. But I think I'd...." or similar in the face of things you don't. Even if that's to say "I'd have to Google that".

Second, the actual interview...yeah, you might get turned down at a FAANG. But I've had plenty of interviews that were far less algorithmic. Far more concerned with whether i could speak intelligently about things I'd done previously. Even coding; I've had the algorithmic questions...I've also had really simple toy functions that were there just to make sure I could write some code, and formed all of 10-20 minutes of the hour long interview.

The way to get better for both of those is practice. Literal sitting in an interview practice. The more you interview the less you care about any given one, and the more likely you'll stay calm and collected. That exudes confidence, makes you more likeable, and lets you put your best foot forward when it comes to any coding problems.

[+] grep_name|5 years ago|reply
> interview a lot until you find something.

How do you find the time to 'interview a lot' though? I get about 10 days off in a year, and rarely get interviews with enough frequency to schedule two on one day. In an ideal world, I'd let my current employer know I'm planning to leave, take that as an opportunity to let them wind down my responsibilities and prepare for a handover, and have a good reference for a full-time job search after leaving, but I'll never be able to do that due to employer-tied insurance

[+] chrisbennet|5 years ago|reply
Suggestion: Don't call yourself "A jack of all trades." When you call yourself that, some people/interviewers will add "master of none" mentally. Call yourself a "Swiss army knife" or something.
[+] tvanbeek|5 years ago|reply
"A jack of all trades is a master of none, but oftentimes better than a master of one."
[+] blhack|5 years ago|reply
"Full stack" ;-).

Lately the idea of a "specialist" (at least in webdev) has come to mean (in my head): "I really know how to use this particular framework, but do not understand any of the surrounding technology. If I reach a problem, I will bloat the code with more libraries until it starts to work."

[+] jlokier|5 years ago|reply
I'm partial to "multi-skilled" these days.

When people ask what are my particular areas, I'll say I mainly do... I'm expert in... I have strong experience with... over the years I've worked in several technical areas...

And list 4 or 5 different specialisms where I would realistically do ok if interviewed in those areas on the spot without warning.

I don't know if that would work for someone who really is a generalist without specialist knowledge at the current stage in their career.

In my case, I really have gone much deeper than most people into a number of different sounding domains. Not different skills or tech stacks, but really very different tech areas. I'm often regarded as interesting because of that, rather than "master of none".

[+] Iv|5 years ago|reply
In my case, I call myself a specialist in one of the relevant fields I have worked in the last 3 years. Then I mention all the other things I have done when I have a chance. Don't call yourself a jack of all trades, make them call you that.
[+] kevmo|5 years ago|reply
If you really are a jack of all trades, it doesn't matter. At that point, you're smart and capable and generally a great hire. If a company isn't hiring well enough to recognize that, you don't wanna work there anyway.
[+] CodinM|5 years ago|reply
"Apart from X,Y,Z which I am realistically proficient in, I have knowledge a mile wide and an inch deep"
[+] a_square_peg|5 years ago|reply
As a systems engineer who usually works in the intersection of HW and SW (usually working with systems requirements or managing interfaces), I tend to add 'master-of-none' myself as I'm proficient in neither. :)
[+] blablabla123|5 years ago|reply
Although I've interviewed for 2 companies in the past that actually appreciated this and basically called me like this themselves. :D They worked on actually complicated stuff and also expected some kind of work sample. Turned out both were jobs where you can burn out quickly so I didn't stay long at either.

But true, normally interviewers already get confused when you mention a skill that is not directly required by the job ad.

[+] kenhwang|5 years ago|reply
I say "multiple specialties". Seems to be received extremely well.
[+] pplanel|5 years ago|reply
From my resume: "Experienced m-shaped professional..."
[+] 0df8dkdf|5 years ago|reply
or just say full stack. I hate buzz word, but sometimes it helps the manager to understand.
[+] CoreFailure|5 years ago|reply
As a generalist I've been able to find several positions with this strategy, even while hunting for my latest position during the pandemic:

1) Don't over-filter. Take the time to manually skim each job posting on high-quality job lists, like the HN who's hiring. As a generalist I tend to be a good fit for smaller teams that have diverse problems and individuals I can connect with. Those individuals usually make more open ended job postings that don't sift well through most filters. Additionally, you'll get a better sense of where the job market as a whole is at.

2) Make extra effort in your initial outreach to a few positions. Surprisingly "cover letters" are still effective if they're presented in the right way and through the right channels. A form cover letter may be ignored, but a freshly written pitch for a particular job listing can stand out.

3) Don't copy-paste until you have your pitch figured out. If you're like me you'll find yourself rephrasing it slightly each time you write an initial outreach, and eventually you'll find the common elements that make their way into each. Try to make your pitch shorter each time while keeping those commonalities. A shorter pitch is more likely to be read.

[+] datameta|5 years ago|reply
I highly support writing cover letters. Once you get into the groove of having a heavily iterated cover letter template it becomes rather quick to swap things around and customize details to the job posting. In my opinion it really sets you apart from those who don't bother writing one at all, even if their resume is shinier. A little bit of extra effort at the early stage gets a strong multiplier.

Having spoken to those on the other side, "easy apply" positions get absolutely flooded and sifting through so many applications makes the hiring manager gloss over people, skipping them entirely no matter how effective your short blurb is in the condensed list. Imagine how easy it is to scroll past an HN post you're only mildy interested in at a glance. So don't let that be your main method even if you apply to a bunch a day that way. You don't want to fight uphill against probability and human attention span.

I should also add - being early to apply to a position is HUGE. I can't overstate this enough. Once the position has a certain number of candidates each person gets less and less attention until the behavior I mentioned earlier is exhibited.

[+] qzzqzz|5 years ago|reply
Can you recommend other high-quality job lists?
[+] awb|5 years ago|reply
Startups want generalists. Larger companies want specialists.

The more areas of expertise you have mid/Sr.-level skills in the smaller the company you should try to work at.

For example someone who can code frontend, backend and run DevOps is invaluable to an early stage company as it means hiring 1 person instead of 3 (which they probably don't have the workload or budget to hire anyway).

At larger companies, your other skills won't net you much because they have 40hrs/week of frontend work they want you to focus on and continue to get better at.

[+] giantg2|5 years ago|reply
How do I approach job searches?

The short answer is - I don't.

I accept that I have varied experience in many technologies, which makes me less attractive than the single stack experts. I hate my job, but I don't really have any options to leave since my true expertise was built in FileNet and Neoxam. I'm also quite limited since my wife refuses to relocate.

[+] sevensor|5 years ago|reply
You'll find that nobody advertises for your skillset, because statistically speaking you don't exist. I wound up in my current, quite unique, position, by putting in for a position writing firmware. I wasn't deeply qualified for firmware, but I thought it would be interesting work and I was confident in my ability to learn how to it professionally. They ended up hiring another person for that job, but they also hired me. Now they're trying to hire more of me and finding it impossible. Eventually they'll cave and let me train somebody.

Disclaimer: my skillset includes a lot of non-software engineering, and I work for a company that does a lot more than software.

[+] mettamage|5 years ago|reply
Might I ask what company, and if they hire EU citizens? (email is in my profile)
[+] buro9|5 years ago|reply
To my mind when I interview people there are two types of people who match what you've described:

1) I'm a generalist and go wide but only surface deep.

2) I'm a specialist in multiple areas, I go deep and because I know how to do that I have done it multiple times and can also do it for whatever your problem domain is.

The first of these feels more like your full-stack web developer and the lack of depth usually deter me from hiring... the latter though, the latter feels like an interdisciplinary master that I would want to hire so long as I can see that the candidate is able to apply that to solve our business needs within a month or two of ramp-up.

I haven't seen your CV but I'd make sure that #2 was obvious at the top of the CV as that would provide context to the roles on the CV, each one enriching who you are.

[+] bogwog|5 years ago|reply
What about

3) I'm a generalist problem solver with expert programming ability, who can adapt to any technology/stack and go deep with your problem domain as I've done multiple times across various fields.

IMO that seems like the ideal hire for any position, as they'd be good for existing problems, and they'd be good for any new problems the business might encounter. Rather than hire an expert in new technology X who knows nothing about your business and existing tech/infrastructure, you can throw Mr. 3 at it.

The only time I don't think that type of candidate would be useful is if the company is competing on technology, and they need someone who has dedicated their career to being an expert and/or researcher in that single specialty (example: machine learning). But even then, most companies don't need someone like that, and those that do could probably benefit from having some 3s on the team in addition to the specialists.

[+] vmception|5 years ago|reply
Crypto my dude

The jack of all trades are making 7 figures building “DeFi” infrastructure

You just deploy a smart contract that helps people simplify a more complex task and your code takes a few percentage points

No overhead costs, incorporation, lawyers, banks etc necessary

Never been easier to make money

Basically the key concept that appeared this year is called “composability” where the outputs of one operation can be used as inputs of the next operation, so this is analogous to the interchangeable parts era of the industrial revolution

Smart contracts are extremely limited in the kinds of operations they can do, with most data structures algorithms being too expensive so you never have to employ the bullshit technical questions or any academic knowledge

But you probably should read a book like O’Reilly’s “Mastering Ethereum”. Ethereum introduces a concept called an “EVM” (like JVM) which is used on several more platforms that arent called Ethereum, so you should be familiar with that.

Oh! You also dont need to be distracted by:

“Consensus model ideology”

“I could use a database for this”

or any other self limiting thing.

because “you could also make money”

Lets be honest you were probably going to work for some ad tech startup anyway, all crypto projects have just as little utility for the world while possibly having the argument for much more utility, and you dont have to pretend like you are an investor that wont get zeroed out by VC liquidity preferences

[+] bouk|5 years ago|reply
What a waste of talent to have the smartest people work on crypto. Waste of everything for everyone involved.
[+] Nextgrid|5 years ago|reply
Is this satire? Reading your post I am still unsure about where the money would be coming from, or why would anyone pay it - what problem is being solved here?

Can you give me an example of a "smart contract" that simplifies a complex task and that can't be done with conventional code and a SaaS?

[+] JamesSwift|5 years ago|reply
I'm ignorant to all this (well, I guess I already knew that ETH has smart contracts). Can you point to a basic rundown of what "DeFi" infrastructure even _means_?
[+] cmuguythrow|5 years ago|reply
Could you recommend any resources for learning more about what you've discussed here?
[+] choxi|5 years ago|reply
> You just deploy a smart contract that helps people simplify a more complex task and your code takes a few percentage points

Could you list some examples? I didn't realize there were practical use cases for Ethereum yet

[+] unoti|5 years ago|reply
1. Make multiple versions of your resume tailored to different kinds of positions

2. Sharpen your skills in detail areas of specialization before interviews

3. Make a list of the coolest things you’ve done

4. Practice stories related to those things that you can bring up in response to various questions

5. Select different items from that list to highlight for different positions

6. Build an additional portfolio of work to support your capabilities to succeed in the positions you’re applying for

[+] perrygeo|5 years ago|reply
This is the list right here. Particularly the emphasis on story telling; if you've done anything interesting in your past work, your future employers want to hear about it. You are the one who can overcome challenges and pull off a victory!

Nobody wants to listen to a dry list of technology proficiencies - but they LOVE hearing a good story about how you solved a real world problem.

[+] foobaw|5 years ago|reply
These days, Leetcode seems like the way to go. If you can churn through Leetcode and do some practice interviews on solving them with someone else, you should be good.

If you're having trouble getting responses, I help people (hate advertising on here but I do this for fun for free) by providing connections to hiring managers (https://foxrain.ai)

[+] spacemanmatt|5 years ago|reply
46 years old, 3 years into my first CTO role. my algorithm depends on pretty regular professional development outside of work, but every time i've had more than 1 offer on the table, i choose:

where compensation >= sufficient order by entertainment_value desc

[+] optymizer|5 years ago|reply
FAANGs hire generalists. Speaking as someone with experience at 2 FAANGs, the entry bar to some of them is not as high as people make it to be.

The whole point of a generalist is to be that jack of all trades that management can just throw into any "high priority" project to get it shipped. These corporations are so big now that they've mostly wrapped all the existing tools or have developed their own, so the only skill you need is to learn a bunch of custom tools (with little documentation) sufficiently fast to be productive. So just learn the basic algorithms to pass the interview and then proceed to (probably) never use that knowledge at your FAANG job.

If you're on the older side, don't think about it. I personally know someone who's 65 working at a FAANG (anecdata but still). If you interview with a kid, they might ding you for "culture fit" because they're kids, but hopefully the hiring manager and the bar raisers are mature enough to see past that.

Your biggest hurdle will be the internal interviewer discussion that based on your experience you should be at level X, and, if in your interview you didn't show that level, that you might be unhappy at X - 1 or X - 2.

[+] samelawrence|5 years ago|reply
Interview a lot. I just wrapped up an interview 5 minutes ago for a job that I will not get. I had a shot at it, but I'm rusty on some specifics they need. It was a great learning experience, and because I was a "close" candidate, I don't feel guilty about wasting their time. Just not a fit.

Tomorrow, I'll apply for other similar roles and I'll interview again and again until something sticks.

[+] bogwog|5 years ago|reply
> because I was a "close" candidate, I don't feel guilty about wasting their time.

Fuck that mindset. They're being paid to interview you, and you're (likely) unemployed. If anyone should feel guilty, it's the recruiters wasting your time making you jump through the many pointless hoops common in tech interviews today, and ultimately hiring someone else based on what is likely arbitrary reasoning (because in general, most people are lazy/bad at their jobs. Especially recruiters.)

[+] mettamage|5 years ago|reply
For me the sad truth is that I don't. I'm a junior pentester, junior to medior developer (depending on whom you ask) and know a lot more about data science than I'm supposed to for "my profile".

Now I'm in a job where I'm simply judged as a developer. I've noticed that even when I find vulnerabilities and show them to the dev team at the startup I work, they don't care. When it's a critical, they care a little. They actively dislike that I try to do more than just programming, since it isn't of my concern. And yet, this is the most graceful company that I've been at since they hired me, out of the 100 I applied to.

So yea, I'm floundering. I want to help out with marketing and recruiting. I want to help out with some data science. And I definitely want to hack the company I work at in order to harden your product against hackers. I know my main role is being a dev, but I hate being only seen as a dev.

If any company hires people based in Amsterdam and would like such a generalist dev, I'm for hire. I also speak English ;-)

[+] abledon|5 years ago|reply
curious question since you mentioned you were a junior pentester, do you see any value in the CompTia Pentest+ cert? e.g. does it guarantee interviews? or its simply a baseline etc..
[+] consilience|5 years ago|reply
Uniquely and by blowing up the ATS bots. Generalists aren’t favored by non-human companies. Don’t waste your time with them. Find your fit and alignment with other individuals. They are out there. Good luck!
[+] bfirsh|5 years ago|reply
If you have skills outside engineering too, the job title for this is "product manager".

I formally switched to product management in my last job. I have background doing startups, and this combined with jack-of-all-trades engineering, makes for a perfect technical product manager.

[+] brightball|5 years ago|reply
Smaller companies.

Every giant company is looking for specialization. If you like having your hands in everything and it’s where you add the most value, look for smaller companies where it’s possible.

[+] russdpale|5 years ago|reply
Im a full stack dev, using coldfusion (like adobe's version of PHP). I feel stuck, and like I am unable to even have the time to master anything.. When I tell people "full stack w/ coldfusion and a lot of SQL", they either tune out, or say "oh man that sucks" then tune out... and the interviewing process seems like a broken mess of bullshit for a lot of meaningless apps.
[+] napolux|5 years ago|reply
You should do coldfusion freelancing, if there's still something made with it.

I knew a guy some years ago making big money with his coldfusion experience.

[+] bondolo|5 years ago|reply
I like to say that I specialize in "loathsome technologies"; makefiles, maven, xml, SCM and CI systems, security, etc.

Though I have done everything from kernel work to web development in my career I often end up working on or helping with the build and release engineering aspects. I will also frequently end up being the person who works on the product cybersecurity and security model.

It certainly isn't the most "fun" work but it is necessary and usually gives you a deep understanding of how the system works. This is especially true for older products.

Part of the problem you are facing is the assumption that by hiring smart people they are hiring people who can do anything, the people are interchangeable, fungible. Even if the "smart" part is true the willingness to work outside of their preference areas is not universal. Developers are often entitled, spoiled and fussy. And why not, with the variety of work opportunities and amount of choice available they can generally afford to be picky.

So it is not enough to say that you are a jack-of-all-trades, but that you are happier being that way and are explicitly willing to take on tasks/roles that may otherwise be hard to fill. This doesn't mean that they can assume that they will only give you the shit-jobs; it is still negotiated. If they want to you work on, for example, QA tooling and you REALLY hate that make sure to negotiate that the work is not open ended and for a specific project or time window. You are solving a problem for them, usually temporarily, and they still need to come up with a long term answer. Don't get yourself stuck in a rut of one particular assignment, it is too easy to wind up being stuck in that role for the rest of your time in the organization.

You can use staff turnover, particularly management turnover to your advantage. Every staff change creates a new configuration. Use these occasions to adjust your role and volunteer for opportunities which interest you.