>The only company that gave me any compensation for the interview process was GitPod
>Another thing to note is that I ended up not really preparing for the interviews. I feel like this is a bit of an arrogant move by me
And that's how they get you. You invest into what's essentially a second full time job, without any guaranteed compensation, yet somehow you feel you yourself are the arrogant one for not doing more. That's not even highlighting all the other emotional effects the process had on the author, and the author is by no means "average" in their methodology.
I got the idea for the take-home test from the Remote book by Hansson and Fried and I think what they spelled out made sense:
1) Give them a realistic task to work on - this is what you want them to do if you hire them
2) Give them a reasonable amount of time
3) Pay them for it - why wouldn't you?
We did this for one candidate and although your gut feel as an employer is sometimes, "is this a waste of £1000"? but if you are already quite far on in the process, you probably think they might be good enough and that £1000 is offset against the Recruiter fee that you incur when a hire doesn't work out or the loss of a good person you don't hire because you are not sure.
It also shows good will between employer and applicant. We have done it once so far and didn't take on the person but gave them feedback on the task and because they were paid, they didn't see it as a waste of time.
If it were always paid then one could just game the system taking such take home tests as a second job. Since they're relatively small in scope you'd quickly (if you haven't already) build up a code library containing a cache off pre-solved problems allowing you to punch them out relatively quickly. Heck, you could even do it as a full-time job.
I would love this, but the only reason the bullshit is allowed to happen is because people are ready and willing to put up with it. There are simply too many desperate people, many of them third-worlders [1], who will do anything for a meal ticket.
The world would be better if people developed a "fuck you, pay me" attitude, but so many people are inured to their caste.
[1] "Then, don't. I want to move from my 2000 USD a month (this is a good salary alre... | Hacker News." 8 May. 2022, news.ycombinator.com/item?id=24446562.
> many of them third-worlders [1], who will do anything for a meal ticket.
If your people from 'third world' are your main competition then you fucked up your life by not making something out of your 'first world' privilege and educational opportunities.
> The world would be better if people developed a "fuck you, pay me" attitude, but so many people are inured to their caste.
Even disregarding those weird "third world" and "caste" tangents, there are tons of Westerners too who would literally do anything for a software job at a tech company, especially at a prestigious and well-paying FAANG. And, by anything, I mean suffer through any brutal study regimen, inhumane corporate process and any humiliation. Undergrad and advanced degrees, months of leetcode practice, take-home tests and coding challenges, hundreds of phone screens, a dozen rounds of interviews for a single company, staying half-ghosted on a waitlist for months, sending ping after groveling ping to recruiters for updates. There's nothing that's beneath them, and this willingness to endure pain simply raises the level of pain everyone else has to endure.
I have been trying to find a job for the past 2-3 months, and the psychological toll that it has taken on me is enormous.
I planned on going for a PhD, but eventually got tired of academia and of practically starving. I am finishing my master's in December. I have sent out my CV for review in r/cscareerquestionsEU, I have received good feedback, I have been told that my CV is strong and that I may be suffering from my own successes.
Most of the responses by companies are flat out rejections without any information as to how or why. I have been told that I am overqualified for positions. By others that I was underqualified. I have been given excuses of the form "we are looking for somebody who has more experience with XYZ tech" as if there is some kind of barrier that prevents somebody from learning said tech.
At this point I am practically begging for anything to not starve and pay the bills.
I am really sorry for venting here, but I am at a breaking point.
I too was looking for a job last year and it made me wholly depressed. Rejection after rejection, not knowing whether I'd be ask a leetcode easy, or medium, or whether I'd be grilled on some obscure/gotcha language features (C++ takes the crown in that domain). The randomness of it all, passing the technical tests but failing the interview with the CEO. The wide range of topics on which you might be quizzed on. Frontend, backend, javascript quirks, typescript. You worked with C++ 3 years ago? Then tell me what that piece of code does. Sorry it's undefined behavior according to the page 756 of the C++ standard version 17. You don't know how to answer this question about databases and you call yourself a backend developer? You don't know this very specific feature of SQL? Solve this leetcode problem for me. And then again the next day, and the next day, and the next week. And the week after that. And it's been two months and you've been rejected 10 times. And then you go on HN and you read that the market is hot, the market is white hot! But you, you're ready to snap at the first offer that comes to you because you're emotionally drained. Leetcode in the morning, sending applications in the afternoon, then some leetcode again before going to bed. Repeat everyday, even on weekends.
Hold on and try to resist. Also, try to focus on one language / one position. For example you can chose backend / C#. Or Frontend / React. Or systems programming / C++.
In my opinion, if you already went to a few interviews for the same role, you kind of know what kind of questions you are asked.
Also, I find leet code as a waste of time in preparation for the interviews unless you shoot for a FAANGs.
It took me two year to change job. The expectations are absolutely bonkers right now, the selection process capricious and often even if you jump all the hurdles there's little guarantee that salary on offer comes close to what was in the job listing.
Don't be sorry. If anything, people should be venting more and showcasing the absurdity of the job market. We've normalized the idea of just biting through a really emotionally taxing time for no particular reason and companies are taking advantage of it.
I have previously expressed that I do not mind working more or paying more in taxes if it means that the community around me benefits from it. I see it as a form of mutual aid. It is in everyone's best interest to help our community and make up for each other's bad luck.
You should find a position as a junior developer without much problems. Right now is a big need for developers in many countries.
Try to see what is the best web site for your country / region to find developer work. For me is LinkedIn. Prepare a bit more for the interview. By now you should know the type of questions asked.
You can ask right here on HN for a jobs. Also there are periodical jobs posting on HN, you just have to search and find when.
My skillset is mostly in Machine Learning. I had ML internships, research assistantships, an MLE contract.
I can't get junior dev jobs because they are asking for $tech-du-jour and they told me that, they told me that they don't care that I have a master's from one of the top universities in Europe but they care that I lack experience with a particular tech stack.
Then you have two solutions: apply for ML positions or learn a tech stack needed for other type of position. It shouldn't take more than a few months to learn .NET, Java, Python + frameworks and libraries up to the level needed to be a junior developer.
If you need help identifying a type of position and a learning path to put you on track towards a developer job, taking into consideration what you already know and are comfortable with and also the market, I can help with that.
I'd like to get into backend, it seems that go is the go-to (hah) language for it these days. I have experience with C & C++, and some minor experience with Go so the language is not an issue at all. I am just not sure what the best way to achieve experience with the language is.
> Most of the responses by companies are flat out rejections without any information as to how or why. I have been told that I am overqualified for positions. By others that I was underqualified.
Can't both be true?
You have a part-PhD, hence too qualified for almost all entry-level dev jobs.
You have too little experience, hence underqualified for any non-entry-level dev job.
I was expressing that I am in a situation where I am too specialized for regular SDE roles but at the same time I lack the experience to get anything beyond those.
I don't know what to do at this point to be honest.
The PhD stipend is well above starvation levels and you can go to internships during summer to earn more money and accumulate experience. I have seen many, many people in FAANG with PhDs in SDE/DS roles and they can relatively quickly reach senior levels as well.
I don't know your situation but I while there are certainly ultra-competitive CS programs (e.g., Stanford, MIT, Berkeley, CMU), there are many research-focused universities in the US (R1) that are totally good-enough for doing research and getting a recognized degree. In a lot of less competitive universities, there is no admission committee per se; you just email the faculty you're interested in and if he wants to recruit you, then it's basically done.
There are good research universities in the R2 list as well (RIT, IIT, etc.)
I was right where you are about 18 years ago. Take heart. I still have challenges finding roles even with excellent credentials, patents, open source projects, successful companies, massive successes, and demonstrated excellence. It is always a bit wrenching.
I have a brother in law struggling in a similar position to yours.
Something helpful that I've learned being on both sides of the table many times is how much of a random process it can be. The bulk of the effect has nothing to do with you. I find that infuriating but it also has helped me deal with the petty, arbitrary, and sometimes just evil experiences to be patient for the right fit.
I feel that being trained as a software developer is not enough to find a good job. You have to seriously train in job finding. How to write your CV, where to find listings, to which position to apply, what questions are asked on interviews for the positions you are interested in, what to tell on a interview, what not to tell.
I've changed my job 3 years ago after a long time with a company. I was scared about the process, but after some preparation and a few interviews I began to do well. I kind of knew what I will be asked and replied to interviewers what they wanted to know. After 2 years I changed my job again and it was easy. Now, I am at it again and I doesn't seem too difficult. I do better than many engineers. Probably I am not a better developer than them, but I am better prepared for the interviews. Even the way you talk and how you project your confidence matters. If you "read" the guy doing the interview, tell a joke that he will appreciate, talk about something that you think he will approve, will win you bonus points. Being pleasant, Mr Nice Guy, will help because interviewers are people and they want to have good team mates who they will have a great time working with. This might even be more important than engineering excellence.
I agree that there are factors unrelated to ability to fulfill the role that increase the probability that a person is hired. That is simply a failure that some are more willing and or able to take advantage of. A good process evaluates ability to fill the role.
Compensation for an interview for a job that even poorly compensated would put you in the top 5%? Talk about privilege. I'll happily do the interview on my own time for that potential payout. Push back? I'll be taking your job.
The problem with "letting the market decide" (which is very similar to what you're suggesting - "If you don't want the interview I'll take it!") hides long term (negative) impacts and costs. "Letting the market decide" has made fossil fuels cheap enough that we've got a climate crisis.
"Sure, we destroyed the planet, but for a brief period of time the hand of the market ruled fair!"
That's an awful lot of assumptions. These practices are happening outside the very lucrative tech hubs as well. If this was just the hubs, that'd be something else entirely.
Nor do I believe constantly encouraging more and more competition is in anyway healthy for society as a whole. Companies are already facilitating burnout cultures as is, and it's not at all evident if this benefits them in the long run.
Even if you aren’t in the “very lucrative tech hubs” and you’re making about $140K, a salary you can get in any large metro area in the US within 5-7 years and strategic job hopping, it still puts you in the top 10% of earners
Wouldn't that be more reason to push back against this?
There's an implicit assumption that more sessions -> more security. I've yet to find evidence this session inflation is doing anything beyond making companies feel more secure.
Same goes for a lot of other things related to interviewing. If there's no clear evidence, it should be treated as the bread and circuses it is.
I’ve found that the more people you throw at a candidate the higher the chances that _someone_ is going to find _something_ they don’t like about him/her and burn them in the end, especially when approvals have to be unanimous. I’ve seen engineers give glowing praise for one particular candidate but they got passed on because they made some comment about disliking scrum/agile/jira and that just rubbed the 2nd project manager they interviewed with the wrong way.
I’ve found that the more people you throw at a candidate the higher the chances that _someone_ is going to find _something_ they don’t like about him/her and burn them in the end
I can't emphasize this enough. Successful interviewing is about pattern matching and what this really speaks to is more people means greater risk someone isn't properly calibrated on their pattern matching and their feedback negates someone else who's pattern matching is spot on.
Right on. Never say anything you've not been asked for. You don't need to create traps for yourself.
Interviewing sucks...
The best jobs I had I just started on -trial- or whatever doing good work on their GH and from then i'ts pretty easy to know if we're a match or not.
(Paid) Trialhires should be a more common thing.
Companies should hire and fire more easily. I just don't understand I work mostly as a contractor so they really can fire me with 1, 10, or whatever days in advance...
It's not like I'm an employee with protection to being fired or compensation or whatever...
It's not reasonable to expect a candidate to give up their secure job / salary for a two week trial. It gets more complicated as within the first weeks you're probably mostly ramping up and not very productive yet, so it's both a cost-sink for the company and difficult to judge anyhow.
For fresh graduates this might be more viable, but internships are already a thing.
Once you are in your... 30s 40s 50s etc, maybe family and mortgage... You're not going in for a two week trial hire.
ANd it may not make sense for companies either. A lot of positions I hire for need 3 months to be productive. The level of business and client knowledge, as well as prices and policy understanding required for tech positions is high. That may not be the vocal HN experience which is a lot about interchangeable tech on modern frameworks but I think actually comprises a lot of enterprise IT. Basically we need to invest a lot in you before you are productive and we can truly judge fairly your actual on the job performance.
Heck if you work for public sector, you may not get your laptop and Id in first two weeks at all :-)
>The level of business and client knowledge, as well as prices and policy understanding required for tech positions is high.
Whenever I read this advice, I get "indie game developer" vibes. Indie game developers wear many hats and need a lot of breadth for obvious reasons: they don't have a lot of funds, they don't have a lot of people, they don't have a lot of specialist work you'd need someone for full time, but they do have a lot of different things that need to be done.
Then I compare it to your regular corporate job, and it's the opposite in many ways. Tons of people. Tons of funds. Some people very specialized, some people somewhat generic for flexibility purposes. It makes me question why a developer in a corporate setting would need high levels of "business and client knowledge", or even "prices and policy understanding". Not because they aren't useful in theory, but because there's almost always someone with far more knowledge and decision-making power pulling the strings, to the point having such dedicated knowledge is more a waste than anything. The developer can't get to their level without sacrificing development time, or being with that company for a ridiculous number of years.
And we already know companies in general aren't optimizing around long tenures.
"Prices" was meant to be "process", but too late to edit :(
And "business knowledge" is meant to be at a technical/tactical level, not at a strategic level. For example, an ERP developer implementing a new HR functionality benefits tremendously from being aware of HR law & process; a developer implementing T&L functionality benefits from being aware of T&L processes and business requirements; etc. This makes it a productive conversation of peers between functional and development teams, and they help each other create true and accurate requirements and specs that cover the edge cases.
A developer that ONLY knows the technical aspect, in my world, will virtually forever be a "junior" developer, as I cannot send them to meet with functional teams solo and expect useful requirements to be gathered or correct code to be produced.
The "client knowledge" is for process & procedures. Again, a developer that is junior/new to my project (they may be senior otherwise) will not have sufficient understanding of how our current public sector client needs code created, reviewed, approved, migrated, validated, etc. There's heaps of procedure... I'm not saying that's necessarily a good thing, but it's a fact of life in much of enterprise IT.
Overall point being - 2 weeks trial would not work on any level. Developer would not know process and procedure, and would not have sufficient understanding of client's business and functional requirements and processes, to be productive yet for all but most generic and trivial of tasks.
Finally, to your last point, my project / department / team / org does optimize for long tenures (that is of course empathically not the case in some other business units in same company that I'm aware of have different business plans and methods predicated around fast turnover). Each person is consciously an investment in continued training and support. We are pragmatic about turn over, but we do optimize around and crucially for people sticking around.
>
I think that works great for 1st job.
Once you are in your... 30s 40s 50s etc, maybe family and mortgage... You're not going in for a two week trial hire.
In my country all companies are having a 3 months probation period, when they can fire you without notice or reason, as the laws allow it.
We have a 3 months probation period as well. But we practically never invoke it. Something has to be really truly egregious for that to happen. Again, it's all about investment. On-boarding and off-boarding a full time employee is a major overhead in most companies' business process flow chart. It's far more practical for us to invest another hour or 6 in interviewing, then multiple magnitude of effort more in on-boarding.
I think, to sibling poster's point, there's a massive difference in approach and reality to both company and employee in "hop on, maybe we'll fire you if it doesn't work" (probation), vs "hop on, maybe we'll hire you if it does work" (trial).
I for one am not at a point in my life where I'm even remotely interested in trial hire, either as hiring manager or an employee - FWIW, YMMV :)
Yes, there are often probationary periods with varying degrees of formality. But, in practice, these are mostly reserved for something going really wrong in the hiring process, e.g. someone not being able to do things that they said they knew well.
A trial period could be the same thing but it could also be "We usually extend permanent offers to about a third after the trial period." If it's a formality that may be one thing. If it's an extension of the interview process, that's something else.
In the U.S. that's called at will in most states. They can fire you for no reason as long as it's not one of the limited reason protected by the federal government. It doesn't matter how long you've worked there.
This is contract to hire which is perfectly valid but not something most companies will agree to.
I think it’s due to conflicting goals. The department hiring wants to lock in the employee so they can cross it off their todo list, and fix the cost. They don’t want to train a consultant who’s still lining up other work. Once the consultant has been trained he or she is in a better negotiating position since they haven’t agreed to a salary yet.
Corporate wants to require a probationary period so they can wiggle out of it with least expense in the unlikely event they have to.
Ideally after a probationary period the employee can renegotiate their compensation, but this is seen as bad faith and holding the company for ransom and creates bad feelings.
It’s funny because I literally just a just ran into a friend who owns a restaurant after I posted.
He complained about being short staffed and not being able to handle the cooking work while being sociable with customers (he’s one of those guys who sits down with his customers).
I asked him what happened to his last chef. He said he trained her up and she quit, so now he’s screwed. I asked him if he could have kept her if he paid her more. He looked at me like I was crazy and said she was already being paid too much. I responded, Oh, so you couldn’t afford to pay her more? He said it wasn’t about that, it was just crazy that he should have to pay her more.
I kept my opinions to myself and just said “I hear ya. That’s rough man.” He said “Loyalty is dead”…
A counterpoint to this is that our process generally looks for at least one "Strong Yes" among the interviewers. While they do come up, there aren't _that_ many "No"s in the results, but there are a lot of just "Yes" results.
Not saying it's a perfect process, but just providing a counterpoint that our process actually seems more likely to help someone with the rounded set of interviews we have than we would with fewer.
Depends on the company, but they should. This is a big decision for both the company and the candidate. Both should put a little effort into it to avoid a situation where someone who is hired is unhappy or not a fit for whatever reason.
The secret is to make sure the time invested on both sides is actually increasing signal, and to make it symmetric (ie at any point in the interview process both sides should have invested roughly the same amount of time).
The company is built by investment from VCs from hedge funds from 401k or pensions of real people who not only need to sleep, but on average make less then senior software engineers.
A senior dev role is an income stream of USD n 000 000 dollars a year, that has certain guarantees about payments. In this context it makes sense to dedicate a considerable amount of personal time and effort to capture one.
> … yet somehow you feel you yourself are the arrogant one for not doing more. That's not even highlighting all the other emotional effects the process had on the author, and the author is by no means "average"
Learning techniques for managing one’s emotions and stress levels can pay huge dividends here.
Part of that is stepping back and realizing that the “rules of the game” of resume/interviews/offer were written by employers, for their benefit first. (One technique for addressing this is to beak out of this process, and reach out to hiring managers directly. Professional sales people do this all the time; I’m not sure why selling labor is somehow magically different.)
I suppose that since Jamie is based in Nottingham, U.K. [1] then we should adjust the currency and number of zeros for his particular locale. My understanding is that senior software developer roles in the U.K. are also considered professional-level jobs that pay very well relative to other professional-level jobs in the local labor market, similar to the U.S., and are worth putting in some extra time and effort to get.
I think the same is true about senior software developers in many other countries: They are professional-level jobs that pay well relative to other professional-level jobs in the local market, and they're definitely worth taking some time and effort to get.
Feel free to provide specific examples of countries where this isn't the case.
It's not only that the rate is adjusted for locale but that the disparities in USA are much larger.
In USA a very senior engineer at a FAANG in California will earn 20x times more than a junior engineer at some small midwest company. In UK a very senior engineer in London will earn perhaps 4x that of a junior engineer in Wales.
In USA "pays very well relative to other professional-level jobs in the local labor market" will often mean a compensation that's double or triple of those other jobs; in UK "pays very well relative to other professional-level jobs in the local labor market" would imply a 20% or 30% difference.
>The only company that gave me any compensation for the interview process was GitPod
>Another thing to note is that I ended up not really preparing for the interviews. I feel like this is a bit of an arrogant move by me
And that's how they get you. You invest into what's essentially a second full time job, without any guaranteed compensation, yet somehow you feel you yourself are the arrogant one for not doing more. That's not even highlighting all the other emotional effects the process had on the author, and the author is by no means "average" in their methodology.
Let's push back against this, please.