Hacker News new | ask | show | jobs
by emerongi 1220 days ago
> What should I do to get to a point where I feel confident enough to actually send in applications?

If you apply for a junior position: no need to do anything. Everything is relative to what kind of a job you want. LeetCode problems are only relevant in FAANG. I've never done LeetCode.

> Will the 4-year gap and my choppy CV be a major hindrance to my hirability?

The short stints don't look great.

> I feel like I have the best chance of getting hired in the kind of roles I used to work at and those are the ones I'm interested in as well but in doing so am I restricting myself to a limited number of positions?

When you specialize in anything, you restrict yourself. However, specializing makes it easier to get through the interview process. There's a bazillion Java developers, but not that many Haskell developers. Haskell shops can't just discard 70% of the applications, they actually can take the time to interview all the people that apply. A great Haskell developer has a way higher chance to get a job than a great Java developer, probably not that much difference for an average one though.

> Is my timing bad?

Does it matter? If you can't get a job right away, keep applying, but find some other way to support yourself in the meantime.

4 comments

I am unemployed and have a newborn and the situation is getting really bad. Problem is the language I am specialist is C, but C shops don't want to hire me because I don't have any past industrial embedded jobs.

What language you recommend that has lots of jobs and low competition?

I learned go and that was unusual enough in London to make me more attractive to a company that needed it.

I took a few steps back in salary from where I had been to get a job in a new technology area. Now I earn more.

I don't have an excellent answer for you - C is a bit too limiting as you mention but I wouldn't stop looking because a company that needs you at a reasonable price might be out there and might overlook your lack of embedded experience if they like you as a fit for their team - eager to learn, person they could have a beer with kind of thing.

I would definitely learn some other thing - at least to show you can. Something too popular won't give you that "we can ignore experience" thing and something too odd won't get any hits. You could say "I'm learning Rust" or "Go (basic level" on your CV and see if it gets you more hits.

I'd guess most of the places that use C would tend to be embedded; those that aren't probably moved to C++. Could you credibly claim to know C++?

Have you used Java or Python for anything in the past? If you need something now those are options with a lot of jobs.

If you only know C, I'd recommend at least learning Python. You'll use it for a lot of quick stuff, and it opens you to more jobs. If you want employment and are okay with "boring" companies, Java is useful: there are a lot of Java jobs that aren't going to go anywhere, and Java is superset of C so at least you'll get going quickly.

You can also go the contractor route, via Toptal, for instance. Breadth is also valuable in contracting. I got a contract once because I'd worked with the PostScript language a bit as a kid, so I could claim to have worked with PostScript.

If you can credibly claim to have learned multiple languages, you could try applying for an job with a fairly obscure language. If I were a hiring manager, I would assume anyone comfortable with C would be able to pick up the language my team is working on, and if you have other skills the obscure language shop might accept that nobody knows the language so they will have to train anybody they hire.

Learn web development. Coming from C backend web development isn't hard. Feel free to mail me and I can give you more direct tips.

Just checked the Linked-In in your profile - is that you? As it isn't a C/embedded developer :-)

Yes, it is me. I am a gamedev that loves C and been trying to get embedded jobs since I was a teenager but never landed any.

I done a lot of C work, but for example using iPod (I made a check fraud scanner in C for iPod, for a client), or for games. Never figured out how to get my hands even on some hardware so I could tinker with C at home, the few times I found how to buy some, I didn't had the money to do so.

Gamedev pays poorly and is hard to get jobs in first place, thus why I was hoping to get embedded jobs too. Or any C high performance work, for that matter.

You have to decouple “programming in a language I love” from “earning money to support my newborn.” It sounds like you have a strong desire (requirement, even?) that your job has to provide both. It’s a common desire, but in my experience it is very rare that the world configures itself to satisfy that desire.
Seconded. This is a perk not a given. You might get to program in a language you love and you might even get to work on projects you love doing parts of the project you love, but not always.

Every part of software development at big companies is compromise. Working with toolchains and packages that aren't my favourite. Styling code in ways that aren't my preferred way (it better be automatic though). Working on features I'm pretty sure are a waste of time.

You pick your battles. You can improve some of the things most of the time, but very rarely all of the things. Even if you're building a startup/product solo you have to compromise and you have to build the boring features.

Most importantly though, employed and earning $€£, followed up by working on moving more towards working on things I love.

Companies that use newer or niche languages are more forgiving and understand that there's fewer specialists, therefore they are more accepting of people who don't have much experience in the language.

Competition is still high in companies with high hiring standards. I wouldn't say that it's easy to get hired. You just have many more chances to prove that you're good, even if your resume seems lackluster, as companies are more eager to talk to you.

I don't know enough about the market to suggest any specific languages.

> C shops don't want to hire me because I don't have any past industrial embedded jobs.

What were you doing with C professionally that wasn't embedded work?

> lots of jobs and low competition?

You can't have both!

I interpreted the phrase as high demand with low supply. Such conditions can exist, but not indefinitely.
Or there is a high barrier to entry. GP doctors in the US are both High Demand, and Low supply. But they have a very big barrier to entry, namely:

a) It's incredible hard to get into and graduate Medical School in the US

b) Medical schools have a very strict limit on the number of students, thus gating supply.

c) For only a little more work than being a GP, you can be a specialist doctor and make much more money.

Would not see this changing without a law change or something major.

LeetCode or Hackerrank problems are not only relevant at FAANG. Not even close.
I'll second the junior position. Two years of consulting, three short startup stints, and four years away might as well be zero experience.
It might look that way to someone who's just recruiting, but if it got to the point where OP was burnt out, it's probably more than zero. 4 years isn't really that much, especially if they were using a relatively recent framework or something.

If they were building flask applications then, and refresh their memory, they probably already know how to become productive contributors on a team.

The burn-out happened to a major degree at my last place of employment. I was an early employee at an electronics startup and I was working around 17 hours a day migrating an early version of the web application from PHP into Node, programming arduino and raspberry pi boards, adding various payment modes to an android application, and writing server code in Haskell (a language chosen for no good reason other than it sounded cool and nobody except me could even read the code, the person who wrote it initially having left). 10 months of this ultimately took its toll.
Ya you're fine. Seems like you're someone who's been through some trials, I'd be happy to work with you. That's a series of messy problems and you learn a lot, including humility.

My advice as someone with perhaps a less intense but similarly tumultuous history, is that you should learn to tell that story in a concise and useful way to a variety of types of people and on your resume. Practice with any random recruiter call. Anyone would agree with why you left the industry for a bit. Also try to concisely describe what you genuinely want to be doing now, which I can provide some examples for if you like.

It's funny you mention Haskell because it happens to be one of two languages (the other being Python) that I have any significant industry experience in!

The short stints were the result of an unfortunate combination of poor judgement on my part, ill-timing, and outright deceit. There's not much I can do about them at this point though; blot or not, they shall have to remain on my CV.

You're pitching yourself wrong here, and based off your other comment. Those things are not blots. Here are a few counters that pitch better

Every language teaches us new things, haskell might not be my language of choice but it's damn sure taught me things about functional programming and correctness. Those lessons are portable, either to other functional languages (Scala, Elixir) or just to the way you build programs in something like typescript.

Working long hours at a startup and having to do everything makes you a generalist that can pick up obscure codebases quickly. Haskell again is evidence of this.

Watching the startup(s) make bad decisions has given you an appreciation of the importance of selecting appropriate tooling. Working across web and mobile gives you an appreciation of the architectural challenges of the current app and web environment.

Startups fail and make bad decisions, the pitch here is that you've learned from all their mistakes and can help your next employer, big or small to avoid the same ones.

Burnout from 17 hour days, and not wanting to repeat that is evidence of not being as young (or stupid). Work life balance and sustainable pace are vital parts of software development (see also 996[0], for some of the endemic problems in China about this)

Taking a sabbatical, is an opportunity to grow and become a T shaped individual including things beyond tech (In 2021 I learned how to sail, and got licensed, I'm better for it).

Interviewing (and later Performance Reviews) are not exercises in soul searching. They're sales and marketing exercises. Not lying, but presenting everything you've experienced in the best possible way. The reflection and growth should be done with mentors, coaches and therapists.

Always happy to talk about this, my contact details are in my profile (and this applies not just to the OP, but to anyone that wants career advice or mentoring).

[0]: https://996.icu/#/en_US

I was going to write up another reply after seeing the Haskell reference but this comment will suffice.

+1, You're really pitching yourself wrong here. Also you would be unwise to take vertis' offer to talk, please do!

FYI, the pronouns are killing me. 'You' and 'yourself' are referring to OP and not vertis, correct? Sussed that out by the 'you would be unwise to take vertis' offer...'

Also, it appears you meant 'it would be unwise to NOT take vertis' offer'.