What would a recession mean for developers?
blog.boot.dev
blog.boot.dev
That said, none of them are targeting FAANG jobs and neither am I, so if you are, this may be wildly wrong
Sure, it comes with experience and lessons learnt. But, I don't think a junior dev would straight talk to finance guys for money. They would have support from his own tribe in some form (PM/Manager/Director). Nonetheless, you are making a good point. In sprint demos, I make sure my team members do not bring up any tech jargon.
> In sprint demos, I make sure my team members do not bring up any tech jargon
thats exactly what i mean. the audience does not care about the tech, they care that their problems are solved and money is made.
Do the suits at Boeing get upset that the engineer they hired keeps talking about things like thrust, lift and control surfaces instead of what EBITDA will be this quarter? Actually maybe... That might be the reason airplanes are throwing themselves at the ground and why all your personal information is now public knowledge.
But ultimately it seems very divorced from reality of what I do, which is TestOps (building out CI pipelines, reporting, test infra, etc...).
I don't see a need for outrage here.
Interpersonal skills and confidence are deciding factors after you've filtered out the candidates with low technical skill, as determined by leetcode, whiteboard, online coding exercises, etc.
Once again, I've seen enough candidates talk the talk, and then get caught typing in answers verbatim from Google or SO, to know that eliminating coding exercises in the interview process is folly -- it's opening the door for bad hires who can't code and who waste everyone's time.
On a super short timescale with no testing feedback loop, 99% of "algorithms" questions are "Have you encountered this thing before" shit tests in practice, rather than meaningful tests of problem-solving skills, and do not effectively test whether someone will be effective. This is to me a classic Goodhart's Law + policy problem: One can easily assess the answer to an algorithm problem, so it's popular as an assessment and becomes pervasive. Goodhart's Law predicts the next part
Good.
Whiteboard coding is probably one of the least useful methods I have ever seen to evaluate candidates. It tells me nothing about the persons actual qualification and can be gamed.
My warm-up questions are usually something like "reverse a singly-linked-list" or "check if a string is a palindrome", and you would be surprised at how many people have just no clue on how to do it, even with a lot of help (and I work in a FAANG so we should be getting decent candidates).
I could probably work these problems out, but I might not seem too confident about it.
> It’s just basic usage of objects in the case of a JavaScript implementation.
Just because you would make a linked list via objects doesn't mean that anyone would actually do it.
Probably many times a day actually, whenever you use an ArrayList or the equivalent in the language of your choice.
So you'd be great for a job whose task is doing coding interviews then!
I don’t know how to do it. I would need dictionary.com to find out what a palindrome means and stackoverflow for the rest, but I’ve used and evaluated five different JavaScript frameworks in building full scale web apps. Would you hire me?
Needing stackoverflow to check for palindrome-ness would probably be a bigger problem though. Of course during your day-to-day you'll be allowed to google all sorts of things, but checking if something is a palindrome is so basic that all google could possibly provide you is the exact answer to the question.
And if you need stackoverflow to reverse a linked list, no, I would not hire you.
Many people have used many technologies. I started programming when I was 12, and I had no idea of what I was doing beyond copy-pasting code from tutorials and putting them together, but if "how many technologies did this dude work with" is your criteria, you would have hired 12 years old me.
I've written sites, apps, ORMs, enterprise tools, code generators, FAAS platforms from scratch, exporters for DOCX and EPUB, etc etc for decades. I've been junior, mid, senior, lead of two teams. I've transitioned companies to cloud, created data warehouses, built BI universes. All sorts of stuff over the years.
Sounds like your hiring techniques would pass on me, as those whiteboard exercises would have me saying no thanks and ending the interview. Utterly pointless.
(and FYI that's from experience on both sides of the table as I've also been the recruiter interviewing from junior devs to team leads)
They're not guaranteeing that an applicant is necessarily right for the job, but they do separate the chaff from the wheat proverbially speaking.
This is where we differ. What they separate isn’t chaff from wheat, but those who can do a specific type of interview from those who can’t. The latter aren’t chaff and the former aren’t wheat.
The only time these kinds of questions/tasks are suitable is if they genuinely represent the work being hired for.
Our opinions on this differ, and that’s fine, so whatever works for you.
But then you work with these idiots that can reverse a linked list in other companies and they can't organize code to save their lives. They use patterns and shit they used in facebook everywhere, even when they shouldn't because they always so smart and right.
(yes, after cleaning up code for shitty ex facebookers and ex netflixers, my opinion of the 'wheat' boils down to they may be wheat, but they infested with parasites and bugs and rotten at the core, but hey, what do I know, just been doing sw development for 25+ years, published author and worked on stuff that most here use daily, I'm just chaf because I don't want to work for FANGs)
Then I saved 45 minutes of my life, great. The point is, if you want to join the company I work for (and many people want to), you have to jump through the hoops of this company.
You should re-read the start of my comment, because I don't think those whiteboard questions are a great way to hire people. I just don't think there's a way that's more respectful of the candidate while being time efficient and providing good data points.
The truth is that the achievements that you claim can have been done by others. I'm in a top 1% company, and yet I see many people that are just utterly shit at being software engineers. There are parasites like this everywhere and they can just coast and claim the achievements of others for themselves (especially when applying to another company that has no way to verify their claims), so whiteboarding exercises and others crap is 100% necessary, no matter your level.
But fair enough, if it works for you it works for you.
On the other hand, usage of linked lists in the wild can be rather limited outside c/c++. Only languages I’ve used them a lot and then only when I was teaching algorithms and data structures.
I think I used a linked list for a MRU list in a menu someplace ages ago in c# winforms app.
You use linked lists in pretty much all languages, they're just hidden behind the flavor that you prefer, List in C#, LinkedList or ArrayList in Java, etc.
It CAN show that.
Problem is; even a terrible candidate can prepare, knowing the kinds of things that will likely be tested, by memorizing the solutions to these very specific problems.
I've seen this used as justification for implementation of shiny third-party things that were both a fundamentally unfit solution and permitted those pushing it to avoid understanding the root cause of their current problems.
A lot of people are just really scared of what they don’t know, and don’t even give themselves a chance to self-teach or expand their skills
Maybe it's everyone else who should be worrying that their lowly mere human productivity is going to badly suffer in a tightening job market. Just like in 2008 the meatspace employment was hit hard and never recovered, maybe we can expect a doubling down of investment in productivity multipliers and increasingly replacing jobs with software and ML. I mean how can any heartless MBA look at the output of DALL-E 2 and Imagen and not immediately start scheming to fire 90% of their creative staff?
That other thing is networking.
Connect with recruiters on LinkedIn and hit them up for referrals to jobs. I have a quite long list of recruiters in the quant trading niche who contact me from time to time. When they ping me I find out who is hiring and what they're after, and if it's not for me I might know someone for the role. When it's my turn to look, I reach out and there's a firehose of interviews.
With a little bit of effort you end up feeling quite comfortable that if you need a new role, there will be one. It contributes substantially to my tranquility.
As for balance it depends a heck of a lot on the particular shop you're joining.
My career has been an interesting journey. I've worked in sales, taught high school mathematic and computer science, and led technical SEO for multiple successful startups.
I left all that in January to pursue my dream of becoming a full-time frontend developer. My wife and I have two daughters and this is my opportunity to show them some risks are worth taking.
I'm not fooling myself into thinking my first developer job is going to fall into my lap, but I'm confident it's out there and I'm going to keep writing code and challenging myself all day, every day until I find it.
…a LOT more.
I'm more interested in the comments than the posts.
It won't be given to you (unless you're extremely lucky) but if you bust your ass like you're trying to impress the hell out of someone, people will notice and eventually, good things will happen. Always bust your ass like you're trying to impress the hell out of someone, it will take you far.
In most industries, most of the time hard work no longer pays off. It is not rewarded, it is exploited. The people who would notice are increasingly sociopathic and short-highted, because that's how you make it these days.
Hard work can still open doors, but you have to be smart about who you work for.
Agree. Notice in my little story, the good thing didn't happen until I got a job offer at another company, leaving the shit-hole I was working for. Also had I not busted my ass at the shit-hole, I never would have been noticed/recommended as a good performer for a better company. Point is, people notice when you work hard and notice when you don't. Just because you work in a dump, slacking off might actually hurt you, or at least exclude you from further opportunities, internal or external. My baseline is if you aren't seeing improvement in your prospects after a couple of years at a company, consider leaving.
It sucks that inexperienced people get exploited, but to do the best of it you have to learn as much as you can and then get out rather quickly.
(Of course, who am I to talk? I'm happily married to my first girlfriend. Sometimes you get lucky.)
At that time I was junior, but I'd made and published 3 flash games, hacked on the UI of my WP blog quite a bit and made some basic tools with Node.js. I could definitely fizzbuzz, discuss time and space complexity, solve the equivalent of today's easy leetcode questions and more. And yet I saw my savings dwindle towards zero while reading on HN about how easy it was to get a job as a dev.
My feeling is that there's always been a considerable demand for great devs and very little demand for juniors. I've seen companies advertise positions for interns but I honestly can't recall a single time they were advertising roles for junior or entry level devs.
It's a weird market where the difference between 0 and 1 year of experience can be so dramatically reflected in salaries and opportunities.
All of that changed one night when I showed a demo of a browser game I'd made at a meetup some Groupon devs happened to be at. That lead to a phone screen, an onsite, a job and then never another time when I couldn't get a decent tech job. Of course my skills improved over time, but the biggest delta was just getting a single name on my resume that hiring recruiters respected.
I sometimes wonder how many people are out there are like me a decade ago—able to do well in whiteboard interviews, capable enough to contribute, eager... and consistently denied a chance to even try.
Years and companies later, I've brought it up in those diversity hiring meetings, but that's not the sort of changes that are being sought at most places.
I agree though, at 3 years I was still fairly junior in the scheme of things. I was doing full stack work and building money-making applications from scratch, but it wasn’t great work. It wasn’t going to scale well, the front end was based on an ad-hoc framework because I was afraid of learning and implementing new tools like backbone.js, there were very few tests, not great internal tooling to aid workflows, I wasn’t a great mentor, etc. A lot of what I did was because it worked once before, and not because I knew exactly how and why. My fourth year was when I got my first senior title, though.
I like when companies distinguish engineering levels by capability. E1 through E7 for example, where E5+ would be approximately what people imagine when they hear the term senior. Unfortunately everyone uses different leveling, so it’s hard to adhere to that. Our industry would benefit from standards.
Every time I've done it I've been inundated with candidates. You pretty much have the pick of the litter.
Personally I'd prefer to hire a lot more juniors. I think most senior front-end developers are pretty rubbish at their jobs and have spent most of an easy career on autopilot learning bad habits and bad development practices. I much prefer to work with juniors, before those "senior" (mostly enterprise and consulting) devs have got to them.
The problem is it's just not possible to train juniors the right way fast enough. I'm confident I can train almost anyone with basic programming aptitude to be a 95th percentile front-end dev, but it'll take a year or two, and my already average productivity will tank during it.
Most managers won't understand or accept that. They would, except that there's always someone else selling them the "get people productive in 2 weeks!" bullshit, which you can't compete with. Big companies (the ones with the budget to train juniors) pay a huge amount of lip service to training, but are pretty much universally bad places to actually train great devs. They're good at turning them into average consultants that get flustered with their tools and stuck all the time, because they overengineer everything and never bothered to learn from first principles. (Then they give up and pretend to work while spending 8 hours a day whinging on HN about how bad the JS ecosystem is).
And if you're doing your own thing without managers to mess it up, then you probably live and die by your productivity. Unless someone wants to throw a stack of money at you just to create great devs without accomplishing much else, then it's not gonna happen naturally.
There's other impediments too. I love working in person with juniors, but not as much as I hate commuting. And I think training juniors is one of the few things that's much harder to do remotely.
This is why there's so much demand for great devs. There's just so few of them. The industry isn't set up to train juniors, and the places that can waste the resources to do it are the ones that have environments which turn them into idiots.
Nobody taught me anything, apart my teachers at University. Nobody hand holded me. I was able to learn and grow by myself, by reading, applying, trying to find solutions, applying those solutions. Which I continue to this day.
Why should be juniors hand holded? You show them the application, you explain it to them, you give them time to look into it, you reply to their questions about the application and you give them tasks. If they are any good, they should be capable to learn without hand holding.
> You show them the application, you explain it to them, you give them time to look into it, you reply to their questions about the application and you give them tasks.
Exactly; this is the training. Choosing tasks that match the other person's level, and being available to give good guidance, takes time, effort, and some skill.
You don't know I graduated at all.
I'm not saying either way, but if I did, it had zero utility in my software career. Credentialism on degree subject matter for people making mid-career moves is misguided at best.
What you hear of big hiring is select schools in select places.
Corps want experienced devs, they do not want to create experienced devs. They get away with this because there's no standards like any other field of engineering. We don't band together and create avenues for education, employment and advancement. This is largely the fault of existing devs knowing the above to be true, and they want it for themselves despite harming the market overall.
Degrees have largely become meaningless. Uni's have become democratic political battlegrounds that push activism above academics. There isn't anything learned in a 4 year degree that you couldn't get with a healthy appetite for YouTube. But they're just adult daycares for parents that think the system will work for their kids. I say that as someone whom unfortunately has to work at such a place.
Maybe it's another story in SV/US, but capacity to learn seems to be about as useful to hiring managers as knowing how to bake eggs.
Would you rather go to a surgery with a doctor who "learned" by watching YouTube or with one spent his time in University and residency?
The state of political activism eating from the inside and destroying the higher learning in US is pretty sad. But the reaction to that shouldn't stopping learning but kicking political activism out from schools.
I know at least nominally they'll have some passing familiarity with simulations, discrete mathematics, linear algebra, data structures and algorithms. You can learn all of this information on your own but it's more difficult for me to verify.
While this is not as true if I'm looking to hire a senior engineer, it is significantly more important for entry level positions.
The unfortunate difference this time is that today's juniors might have spent their last couple of years reading stories on sites like HN and levels.fyi about starting on six-figure salaries at big name companies and maybe doubling that with the other perks. They might have also been exposed to some of the most mercenary attitudes to career development I can ever recall seeing where loyalty is a dirty word and jumping ship every few months for a pay bump is the norm.
At the same time they still have the usual conceit of most new grads in this industry and don't understand that at best they will probably contribute little real value to begin with while taking up a lot of time from other people who could. In other words juniors almost always have negative immediate value to their employer.
In the boom times we have enjoyed in tech for the past few years a lot of newbies could get away with that and make a lot of money but really that has been the exception and it's not normal. Now the reality is setting in that you can't reasonably expect an employer to invest a huge amount of money to pay you to cost them even more money and then leave before you get better and make them enough money to become a net contributor. In a world without the weird employment market dynamics of the recent boom times that just doesn't make any sense.
I'm not the kind of person who would job hop every 2 years like what seems to be common in the industry. If a company is willing to take me on and help train me and bring me up to speed, I'd stay with them for 4+ years. I'd think that would be very valuable to a company, but at least what I read on the internet...companies have come to expect a high turnover for developers and thus are unwilling to put in any effort into a new employee.
Do you know the basics of like CS, algorithms, data structures?
Do you know a programming language at a decent level?
For the field you are trying to get in, do you know some common used frameworks, libraries and tools?
If the answer is yes to all, you shouldn't have trouble to find a job. If one of the answers is a no, then you have to solve that problem.
The only credential I have is a Full Stack Web development cert from a bootcamp at a big name university. The DSA stuff I self-taught because it's pretty essential to game dev, and the bootcamp taught me the MERN stack.
You can test yourself by seeing if you can answer typical interview questions which can be found online.
You can see if you can solve the stuff from Codility, Leetcode, Hackerranck in a reasonable amount of time.
Frequently it is a wildly unrealistic wish list. I have NEVER seen all of those requirements fulfilled.
...you haven't even started. If you were regularly getting offers with 50%, 100%, or 200% more than you currently earn you'd rethink that position pretty quick.
One bit of advice I might suggest though is to consider the industry you end up working in: for instance those of us in companies targeting regulated industries tend to weather financial storms a bit better than others because the need to follow regulations doesn't fall away in fact if the behaviour of an industry is seen as a cause of a crash (here's looking at you, sub-prime lending) then regulation will increase and non-tech companies will want some way of implementing/monitoring/automating compliance with it.
It might not be sexy work, but it is relatively recession-safe work.
Though as others point out: networking, and just being good at working, and good at adapting to change, are important too. Even in a relatively safe position the cost cutting axe may fall (due to a slump in sales, or post-merger, etc.) and how well you work with the rest of the company or how key your experience & flexibility are seen as being, can be far more important than pure technical skill when it comes to keeping a safe distance from that blade.
I'm honestly concerned that my entire team, after having received low percentage pay increases in the past year, is going to end up leaving within the next 4-6 months, and I'm not sure the product is capable of surviving that sort of brain drain.
I've tried to warn my manager multiple times about the situation, but he's not the kind of guy to attempt to swim against the stream with upper management.
Shrug and move on. They’ll learn eventually.
Almost without exception the responses were a good rate, being fully remote and being outside IR35 (an infamous government regulation here in the UK that makes some types of gig very unattractive). The next most popular was having a simple application process with anything more than one discussion widely considered excessive for a short contract.
Obviously the rate is a money thing. You can only escape IR35 based on what your working arrangements are so if you're caught then you just have to accept that some people won't work with you. But for almost all software development gigs there is no sensible reason to exclude good people because they often prefer fully remote work and in the world of contracting you're just shooting yourself in the foot if you expect anyone good to go through "only" three or four stages of your application process.
A lot of companies just can't afford to match big tech Silicon Valley salaries in general. They may make exceptions for specific individuals but my impression is there's a fairly widespread attitude, however resigned, that if you can get a job with Facebook and you're fine with that, we're not going to try to outbid them.
But having found permanent employment on there, and also having hired people on there, sorry to be biased, but if you sound like a native speaker and can hold your own in a Zoom meeting, that's half the yardstick met for me when it comes to hiring.
The number of foreign devs whose English is so bad that you just have to communicate in writing is high. Business people like to communicate verbally, so if you aren't confident, practice.
Hmm, I wonder if there is a startup out there that does English training to help non-native English speakers sound like native speakers? My wife's first language is German, but she really put time into becoming a native-level English speaker, so it is possible.
There are many vocal coaches. Search Google or Youtube - you'll find a lot of them. It's hard to sound like a native speaker especially when your current state is not understandable. It's an iterative process, so who knows that person might get to native level.
I believe it's much easier for women compared to men - to sound like native English speakers, because they have much crisp voice compared to most men.
https://techcrunch.com/2021/07/27/boldvoice-y-combinator-pre...
They're an outfit which offers (online) coding-cum-cs courses. Which is perfectly legit, but they have a bias when giving advice.
Part of my issue is I'm also looking in Ireland, where I'll require a visa, even if it's a critical needs job so they're easier to get. Does hurt, but I haven't had any luck with my applications in America either.
Having teams collaborating over borders, time zones, languages and accents does not work very good. Outsourcing to another company does not yield good results.
But big corporations can open subsidiaries in other countries, if they do not already have and move whole products there.
If that happens, the massive lay offs will push the wages down aggressively.
> For the same reason, the Fed is raising inflation rates
Whether the same happens this time around is certainly debatable. Perhaps, cuting IT to investing in sales and marketing will be in fashion this time around.
If FED prints a lot of cash and lends it to banks for 0% = stocks are up, if FED stops printing & lends at 0.5% banks panic. Wtf?
Just got hired to one for a fat paycheck, ppl skill is way below the market average yet noone seems to care or even notice.