However, I browse this site and frequently see 6 figures thrown around casually for Jr. Dev positions and it blows my mind. I come from a very poor family and the thought of making "even" $70-80k feels unrealistic. I've applied to job listings in and above that range, but have yet to receive so much as an email back. Skill-wise I would probably put myself a bit above the "average" Jr. Dev and feel I have a lot to offer, but when I every day on HN I see discussions of salaries that are several times what I make for the same job I can't help but wonder what I'm doing wrong to not be receiving offers in these ranges.
Some salaries are in really expensive cities. Some are fake salaries. Some people have landed great salaries by a combination of luck, being at the right place at the right time, plus good networking. Some people fake their way into high paying jobs (as in: managing to pass the interview stage without actually having the skills) and then work their asses off to cover ground.
On the other end, maybe you are not fit enough for such jobs and one would need much more info to give you helpfull feedback. Eg, send a job listing you would like to land and analyze were you lack.
But whatever the answer (other people may help in this comment section) never but never think that what a person is paid is 100% reflective of their value or the value they provide to a company. Many are paid less than what they are worth, many are paid more.
- Get enough experience at a junior level job, around 2 years. This should be enough to pass the resume screen. A lot of people can't get interviews so if that's the case then you need more experience in an in demand field. That field is usually web development these days, a lot of React and NodeJS in my experience.
- Optimize your LinkedIn to get recruiters reaching out. This includes filling out everything LinkedIn asks you to fill out, and you should be getting recruiters in your inbox. Schedule with them to get interviews, they do the initial recruiter screen but they're not necessarily related to the company itself.
- Once you can get interviews at big tech companies, schedule them out a few months in advance and then grind Leetcode. Leetcode is a website that offers coding problems and many big tech companies use these types of questions to screen people out. Google the Blind 75 list for reference.
- Once you can do these questions well enough and fast enough, do the big tech interviews and pass them. If you don't pass, wait 6 months and apply again via your recruiter. Don't apply from the company website as you won't get a call back, they get too many applications to care about cold applications. You always want a warm application to a company.
After 1 to 2 years of experience, you should easily be able to get 6 figure jobs, even remotely. Source, myself who's worked at the mid 6 figure level (400 to 600k) in less than 5 years of employment.
I'd suspect most people getting high-paying Jr. Dev jobs check all or all but one of these boxes; Started programming early, went to a good school, contributed to open source, quick learners, got good grades. Those are the types of people who tend to get Jr. dev positions with FAANGs.
Take a look at this post on HN from ~7 months ago: https://news.ycombinator.com/item?id=27424195
The blogger here was an intern at Repl.it, but if you look at what they created, their overall output on github and their blog, it's impressive. As a dev with 10 years of experience, I wouldn't be able to do a lot of what he did; I'd posit he's just a more accomplished and better dev than me, and that's OK! The bottom of the ladder for him is going to look different than it did for me and than it does for you.
Don't worry about comparing yourself to other people too much at this point in your career (your first job). If you're making enough to pay bills, focus on leveling up your skills and working towards being a better dev, and when you get to a point where you think your comp should be much higher, ask for it (another offer in hand doesn't hurt either)
$20 an hour seems sorta low but, having made it well into the six figure range, a big part of me is no longer interested in making six figures. The more that I make, the more I'm getting paid to endure mental anguish over layer upon layer of engineering and workplace issues. I miss the days where I made less but my job was not only less critical but also had more freedom to it, ironically, as much as my first jobs weren't really spectacular.
I'm not saying that you shouldn't desire to be making more, but try to find a bright side to your current position. Even my worst positions have aspects to them that I miss that I probably won't experience again.
That being said, I do believe you could be making far more than that as a remote software engineer. If I was in your position, I'd work out the next 6 months so that I will have worked at your company for a year, which is kind of a magic number in this industry, and interview at different companies that pay more.
Also, don't take HN too seriously. If someone just listened to HN, they'd think that they must write everything in Rust/Go/Typescript and use Kubernetes for even the smallest of projects. This is a place for people to make themselves sound smart.
If you live in the US already and have very good high school grades and standardized test scores, you should definitely consider it. Being poor is not necessarily a deal-breaker, the elite schools tend to have very generous need-based financial aid.
Please note that I'm not trying to tell you that this system is good for society or even good for the companies themselves, just telling you how it is.
If you are one of the many many people for whom that path is unrealistic, there are a few other options that can get you there. The first is to find any software job you can and work it for 2-5 years, and at the same time study data structures and algorithms. Then follow the process some other people have mentioned to try to get a job at a big tech company. I would think after 2-5 years experience you can probably land a job at a not-big-tech company in the 70-80k range without much trouble. Just 6 months is not going to help much in getting your second job (if a job ends that fast, there's often something seriously wrong with either the person or that person's boss, and if I'm sifting through 200 resumes, why take a chance?), but $20/hour is hilariously low (at least in the US), almost any other programming job is going to pay much much more (again, in the US).
Also, in general with job hunting, you just have to be really persistent. Well paying jobs attract hundreds of applicants, and there's a lot of luck required just to get the first interview.
Finally, I'm hiring, email in profile if you want to send a resume my way.
Second, yes you are underpaid but you’re basically doing intern work which is often free
Third, you are doing a lot wrong but it doesn't matter yet because the above reasons
Fourth, one answer is that at the top compensation ranges (300k/yr++) the interview process can take 2.5 to 6 months easily for all devs of any experience level. It can also be fast, but you would have gone without any payment if you were just waiting or relying on that
Fifth, the studying can take just as long even after having gone through a bootcamp or university
Sixth, how you value money for effort will need to change to convince other people how to value you. and that doesnt happen overnight but you need to understand that the rules in your family and community are not really relevant in this class of society.
So just take your time
It would be a lot easier to answer your initial question, if you have answered these before.
From a pure financial perspective, it seems like more money is always better... but earning more money will probably cost you something. You have to work harder or do something you might not like as much as your current work. Maybe you have to move or can't work remotely, having less "company" benefits or sitting in an ugly office staring at a wall.
Clearly, there are jobs, that offer you everything you want, but you have to find out, what this is.
What I have learned is, that most of the things I mentioned are minor details. Most important to me is who I'm working with (the team) and what I can learn from them. If you work with great people, money does not matter as much.
What I also learned is, that confidence is a big bonus if you are trying to get more money - it's not always about skill. You have to do marketing for yourself and feeling uncomfortable with what you earn is a counterpoint. It can take years to find out, what your work is worth (in your region, at this moment, etc.), because the situation is changing all the time.
Take opportunities, if you can, but if your happy where you are, try to stay. Most of the time the happiness state will change rapidly after 5 or more years in the same company, but not always :-)
Being in the right place [at the right time]. Keep in mind that HN is very Bay Area centric. Sometimes life sticks you in a shitty market, or maybe you lack insight/information to allow you navigate it effectively. Other places like the infamous r/CSCareerQuestions nearly exclusively target FAANGs, and other large tech companies, and if you haven’t been optimizing for that, you probably won’t see those outcomes.
$70k-$80k may seem like something unobtainable now, I’ve been in nearly the exact same situation as you there. In a few years, however once you’ve built up some experience, you may find that a lot easier to achieve, even at a less than desirable company. I had to move to reach that much because at the time, the market I was in was just total shit. The positions I was interviewing for then, versus when I was firdt entering the field were miles apart in terms of pay potential.
Also as much as Hn loves to shit on formal education it does offer some value. University hiring pipelines can be incredibly useful. I had an old friend graduate and then immediately got work in a really cool domain. I was kinda jealous. How did he do it? Well the university provided clubs and programs he worked in and potential employers, partnered with the universities worked to source entry level hires from the school.
And remember whether you’re better or worse than average, skills are not particularly worth anything till the interview at least. It’s more likely you aren’t getting responses due to things like ATS screening.
The other 95% of developers globally never get that experience. Don’t be upset with what you have just because of the skewed crowd on here.
If you’d like to try for that then do some leetcode practice and apply, but I wouldn’t be setting expectations high as it’s very difficult to succeed. Might be worth putting up a portfolio on GitHub or somewhere too.
Lowballing in the beginning may seem like a 'market' proposition... but it may further skew one's own perception of worth and pidgeonhole one on the market.
So, it would make sense to start with assessing your own need, as we all got to pay bills and try to live happy lives. Then compare it with what your intended market could offer, the wider, the better.
If at your present level you see your needs covered and feel fullfilment at your present life stage, then you've got your personal equilibrium. No need to tip it forcefully, life will usually do that organically, as long as you try to occasionally see your life somewhat beyond the immediate now. Like plans for family, health, education, travel, retirement etc.
If your skills are good, you’ll be able to find higher paying jobs as you continue learning and gaining experience.
Software is awesome because it’s super easy to demonstrate your knowledge. You can literally build something by yourself. Imagine being a self taught chemical engineer and trying to work on your own oil refinery pipeline.
Don’t pay attention to folks bragging about salary on the internet. The POV of software from this forum is skewed from reality.
Also, start looking for new work now. If you’ve got skills I promise there’s a job for you out there paying more than 20/hr. Good luck!
What leads you to this belief?
Have you been to SF? If you want to live somewhere that your stuff isn’t stolen from your own property or want to deal with high crime, you need to pay up.
In most cases you will likely notice that salaries compare (roughly) to those of other engineering disciplines, plus a small premium for the fact that IT is in demand.
Andrew Ng (of Stanford, Coursera) is involved. It’s a service that measures your skills across a handful of areas, gives you an informative skill profile, shows you jobs that your skillset matches, and I think also matches you with some employers.
It’s a newish service, I think one of its aims is to solve your problem.
Just applying to quality job listings and getting responses back is largely the domain of people with some prestige on their resume. A university or name brand employer.
Absent that, your network is the thing. Software developers willing to submit you as a candidate internally or to otherwise vouch for your skills. These can be friends, people you work on hobby or open source projects with, people who read a blog or something you write. The most common source will generally be ex coworkers. If you're genuinely performing above expectations, and you're good to work with, then they should be happy to mention your name for openings at whatever better employers they've moved on to or when they hear people within their own network talking about looking for someone who is good at [your skillset].
"Networking" as an intentional activity is making sure you have the kind of relationships with as many coworkers as possible that when they leave, it wont be weird to stay in touch and talk about what you're both up to every now and then. Increasing the amount of people you have out in the world who know what your current skill set is like and who have spoken to you recently enough that you will pop in to mind when they hear someone looking for it.
LinkedIn is both this on easy mode as well as a way for third parties (recruiters) to see that vouching rather than just your ex coworkers network.
-------------
Then separately from that and not something that would have landed you a 6 figure salary in your current role but that is still crucial. Did you negotiate? Coming from a poor background myself there was a very strong "keep your head down, work hard, and people will just give you more money than they need to" sort of mindset around. If you didn't negotiate, that "just over $20/hr" could very likely have been $30/hr if you had. And whatever your first six figure position is, the offer is likely to start around $80k.
Read this and part two to see the impact negotiating can have for your income: https://haseebq.com/farewell-app-academy-hello-airbnb-part-i...
Then this from HN regular Patio11: https://www.kalzumeus.com/2012/01/23/salary-negotiation/
What I would stress is that for a first job search, the coding is the easy part. You don't get a chance to demonstrate whether you can code at all unless you get past the resume submission and to the first tech screen, and as you've noticed, that's a very hard barrier when you don't have any experience. Job searching was brutal for pretty much everybody in my bootcamp cohort, even though a great number of them are very successful now, and this was entirely standard - the second half of the bootcamp was primarily dedicated to training people for job searching, and people generally spent 3-6 months job searching full time afterwards before landing lucrative jobs.
I have lots of things to say about this, but here's a few factors that I think are important off the top of my head:
1. Given that you have limited experience, you really need to focus on presenting it to best effect on your resume. You maybe have something of a leg up because you have actual work experience as a dev, as opposed to me and my bootcamp classmates, but it needs to sound as impressive on paper as you can make it. (And you need to be able to talk about it in the same way.)
2. Cold-applying through general job search websites like Indeed where you fill out a form is incredibly low-value - you're near-certain to get filtered out that way. There are a number of specialized job search sites for developers, some of which aim to skip the resume step in lieu of an up-front coding test (e.g. Triplebyte). Even better is networking, even kind of crappy networking: I got my first job, at an ~80 person startup, by cold-messaging one of the founders on LinkedIn.
3. If your resume isn't very impressive and so you won't get many tech screens or "onsites", you really need to train to pass those. I won't try to get into how to do that, since that's extensively covered elsewhere, but it's a totally artificial screening process that you absolutely need to put effort into.
People have mentioned that salaries are very different in the Bay Area than they are elsewhere, and that was certainly true when I started my SWE career - but given the enormous number of remote roles available, I think it isn't nearly as true any more.
Happy to give more info here, but if you want to email me, check my profile for an address.
work hard, stay curious, deliver great work. spread the word about your work.
the rest will follow!
100%