I haven't gotten a raise in probably 10 years. But realistically I make a lot more than most developers where I live (Los Angeles) and there would be no reason for my company to give me a raise when I'm probably the highest paid non-sales person where I work (and often have been). So I'm ok with it.
Just got an extra side gig for 20-25% hours per weeks so it's like getting a 50% raise and feels great.
Although seeing how many $500k jobs exist in Silicon Valley makes me think I should spend more time grinding leetcode.
Edit - I learned about this from a good discussion on Reddit and have nothing to do with the company.
Looks like a broken interview process to me. Or if things are really this bad and companies can get so many applicants for a single job then it might be time to find a new industry fast.
Based on your skills I would highly recommend Python and some JavaScript.
Python being the main language to focus on because it's great for working with data and general scripting needs (working with files, etc). For data everything from basic data access to a lot of math and statistics that you would find in R.
I would recommend some JavaScript so that you have the ability to easily read it and because I feel that when you learn multiple languages it improved your skills overall for each language. Doesn't have to be long - perhaps a few days of focused learning (or even a day or less).
Recently I have been working on something related to using a lot statistics, analytics, etc and have been using Python the most for it and actually some SQL as all major databases now support Percent Rank and other statistical functions. For my project I'm using JavaScript a little for work such as Web Scraping but most work is done in Python and then final reporting is SQL.
Python is also great for Machine Learning. Even for basic API access with TensorFlow I prefer using Python over there JavaScript API.
Personally I like Hacker Rank and consider it a good way to learn about new algorithms but at the same time I do not like the style of interviews that require it and it makes me wish I could leave the industry because it's a waste of time for people with a lot of practical experience and who have a good portfolio of apps/sites they've created.
That said, I would recommend not doing DMCA at all unless it's really serious. Sounds like your company has a lot of problems with this. Think StackOverflow, there are plenty of sites that copy it but I'm not aware of them going after anyone. If anything all the copying of a site makes it more of an authoritative source because a lot of people reference it.
it's fairly simple, at some point you have to evaluate somone technical skills to make sure they are suitble for the job, and well designed tests do that.
There is an abundance of bad tests out there, but blanket statements that you won't use a tool that is used for assessing candiates is just as rediculas as saying you won't give apply to jobs that ask for your cv to apply.
Well no, if a company is happy to pay six figures but lacks the desire to spend an hour or two pair programming or even just creating a tech test, their priorities are all wrong and I don’t want to work for them. Hiring is about people and not robots, so using automated tests like Hacker Rank that almost always have zero bearing on how a problem would be solved in a real environment is a testament to a lazy hiring process and an extremely poor reflection on the company. Don’t try to automate something that should intrinsically involve human interaction.
Comparing it to a CV is a false equivalence because it takes me O(1) effort to make and CV and O(n) to do some stupid timed algorithm test for every company that is interested in the value of my labour.
I understand why you're getting downvoted but I have to say that I agree with the gist of what you're saying. We use HackerRank mostly just to package a problem set and put a timer in place for upload, nothing more clever than that, so if someone pattern matched "HackerRank test" to "disrespectful" I would think of that as a severe red flag and move on to another candidate.
There are many "in good faith" steps that both parties must do in the interview process, wherein if either party drops the ball it really makes sense for both parties to cut their losses and move on; which I believe is what you are getting at.
> it's fairly simple, at some point you have to evaluate somone technical skills to make sure they are suitble for the job, and well designed tests do that.
There is employment contract for a trial period, because you only know how good coder is when they face real problems/code. Writing sort algorithms on white board might look cool, but in real world you will search internet for best algorithms for your case, look up generic one, so you will not make a trivial error writing it from memory, or just use equivalent of std::sort.
StackOverflow contributions are (thankfully!) licensed under the very permissive CC-BY-SA license. I suspect the sites ripping them off are not infringing copyright.
Personally, I like designing and building software and have been doing so for 20+ years but after doing several HakerRank and Leetcode style interviews it makes me wish to do something else.
I’ve had FAANG recruiters tell me “study for hours per day for a few months” and then you can be ready. Even smaller companies focus on leetcode more than actual experience.
I’ve worked with plenty of optimal algorithms in my life but when I do I spend time researching and looking at many examples rather than having to memorize something that shouldn’t be memorized in the first place; but the way the interviews are done it seems like companies just want code monkeys (even the good paying companies).
No other well-paid profession tolerates this style of interview one you have experience. I would never recommend Software Engineering to anyone given the current environment.
It's the result of making IQ tests for jobs illegal. Leetcode and the trick questions asked in finance are just IQ tests in disguise. You can't regulate your way out of the market - if companies want smart people they'll find a way to hire smart people.
IQ tests for employment are not inherently illegal. It’s only illegal if whatever you’re testing has no bearing on the job so as to be used as a proxy for discrimination.
So a job that involves complex problem solving in unique situations would be perfectly reasonable to have an IQ test qualification. But not for something like sweeping the floors or working the assembly line in a meat processing plant.
Difference with trading though is someone is a great trader at one hedge fund they can jump ship pretty easy without hurdles. In fact they compete to get good traders.
For Software Engineering you have to jump through hurdles each time even if you have accomplished a lot at past jobs. I might be wrong but it feels like there are far more Software Engineers compared to jobs than 10 or 20 years ago.
Granted not all software jobs as the last one I got I just had to interview a CEO and show my portfolio. Seems like the algo challenges are really geared toward Silicon Valley but not it's ending up a lot of tech jobs.
Neither HackerRank nor Leetcode invented this style of interview. The questions you're complaining about predate both sites. The sites were created to help you study for those questions, they did not significantly popularize the questions.
Except, there's a difference when you're in a room with somebody who can tell when the shitty site or the vague nature of a question makes it difficult to complete the request. They can also better gauge someone's understanding of subject matter, merely by talking through the question, approach, etc.
The availability of these sites makes it seem like it's a standard, which adds to the problem. Some small company might not have taken that approach. Now, you don't want to fall behind by not making use of a widely-accepted "standard" practice.
I agree with many parts of your comment. I have been in interviews where the interviewers themselves clearly had no fundamental understanding of the problem or solution. To be clear, I didn't either, but asking clarifying questions got me nowhere.
> Now, you don't want to fall behind by not making use of a widely-accepted "standard" practice.
Absolutely. I can understand Google asking you to write a k-way distributed sort off the top of your head, but I've had similar questions from an "enterprise gone unicorn" that were clearly still in the "wtf even is cloud" phase.
Even so, there is either someone available for some clarification, in my experience. Obviously, this varies across companies and at various levels of helpfulness. Your point is valid, though.
The other part there is that it puts the onus on the third-party site(s), exacerbating the problem; whereas, if the interviewers do not understand the question, they are more likely to focus on one of those items to correct going forward.
FAANG Software Engineer pay is not that great when compared to a Surgeon (or many other good jobs) for people who have been doing other good jobs for decades.
How many Software Engineers do you who drive Ferraris? Probably not many, but for Surgeons, Sales People (at good companies) it's not a big deal.
No other industry would anyone tolerate being told to study 4-8 hours a day for months for a chance to pass an interview.
I realize I'm ranting but I've a Software Engineer with over 20 years experience and I've kind of lost interest being in an industry where the only thing that matters for an interview is how good I can cram leetcode, rather than what I've designed and built. Granted it would be hard for me to easily find something that pays more so I'm not quitting my day job (and now extra night job).
There are two ways to prep for interviews. One is to actually learn the principles. The other is to grind and memorize. 4-8 hours a day for months is the latter and is not the intended interview process, though some people go that route. “Review for a weekend” is, in my observation, what people at these companies are hoping that you’ll do.
One problem though (and I've interviewed at FAANG companies and similar process) is now they really expect you to memorize at lot because other developers are doing it as well. On one of my questions
I was supposed to quickly recreate the quick-select algorithm from memory in 10 min. Stuff like this I learned a long time ago but have no need to memorize how to code it by hand quickly.
Brushing up for the weekend is not enough if you haven't touched the stuff in 20 years. When I've spoken with recruiters they recommend studying many hours per day ever day for at least 2 months.
No doctor, lawyer, real estate agent (and many other much higher paying professions) would ever tolerate this type of interview.
Personally the interview prep is so boarding I can't wait for the day to be done with this field (not actually software development) just having to do it for work.
> No doctor, lawyer, real estate agent (and many other much higher paying professions) would ever tolerate this type of interview
Hah. The grass is always greener on the other side I guess.
- The doctor has to pass exams to get their license to practice. And additional exams to be able to practice in a specialty. It often takes YEARS before a doctor passes the requisite exams to be able to practice in their chosen specialty.
- The lawyer situation is somewhat worse. It is significantly challenging to get a job after you get a law degree (which usually is rather expensive and at any rate an additional expense after your first degree), presuming you pass the bar exam. Let's say you did better than average, you'll probably end up becoming a lawyer in a small firm with <100k salary. The big money is in New York city firms (the equivalent of "FAANG" in the legal sector) which is super competitive, and they plainly won't consider any job application from "qualified lawyers" who worked in lesser firms for a couple years.
The FAANG situation is simply a result of lack of gatekeeping in the software industry (you don't even need a CS degree) and general inclusiveness compared with the other professional industries. You don't need have a piece of paper proving you can code -- and that means sometimes candidates really literally can't code.
If the software industry operated like the medical profession, you'd have to pass a leetcode test before you are allowed to use a C++ compiler without supervision. And you'll have to take tests every 5 years to prove that you still know how to write quicksort.
If the software industry operated like the legal profession, FAANG companies would refuse to consider applications unless you had a perfect GPA from the top 20 CS programs or from another FAANG company. And then you'd have the privilege to work 60 hour weeks with them.
If the software industry operated like real estate, you'd get a low base salary and most of your money would be made on how many users your features contributed to revenue for your employer.
Nobody says you _need_ to work for FAANG. Most people don't. Given the competitive situation, obviously some people think the increased chance of getting an offer is worth the time invested in grinding leetcode problems. If you think the grass is really greener on the other side, try studying a law degree and getting a job in a New York city firm and then tell me it's really a better experience.
Disclaimer: I have a law degree (not in USA) and work for a FAANG. When I have choice over interview questions I don't ask leetcode style questions.