6 ms·
I don’t understand how the market dynamics work here. As a software engineer, I feel like the market is flooded with workers, and that it is an easy job. I have
by christophilus 4y ago
I don’t understand how the market dynamics work here. As a software engineer, I feel like the market is flooded with workers, and that it is an easy job. I have no idea how we’ve managed to sustain these salaries for so long. At some point, I keep expecting a correction in salaries simply due to supply / demand.
I also keep thinking, surely other industries will start paying more and treating folks better, so they can attract top talent, but nope!
Why is this?
- rmbyrro 4y agoYou may find SE an easy job, but it isn't for most people. It requires above average: - Working memory capacity - Tolerance to extreme frustration, persistence - Ability to learn fast - Capacity to deal with particularly high incidence of imposter syndrome - I could keep going all day... SE is not overpaid. I actually think it's underpaid. Above all, the profession pushes for an early retirement.
- ChuckNorris89 4y ago>It requires above average: [...] Literally all those traits you listed are needed as an EE(and in many other white collar and blue collar professions too) plus add even more scary stuff like advanced math (for PID tuning, system signal processing, system modelling and simulation, etc.), but for way less pay that even a kid making iOS apps who hasn't passed highschool math can out-earn you. So how is that fair? My example was a slight exaggeration, though I bet there are plenty of mobile app kiddies making more than EEs. My point is not that SW devs and app kiddies are overpaid, but that in comparison to them, pretty much any other career is massively underpaid, even the related ones like EE, since the barrier of entry is higher and the pay is lower. To wit, there was a highly popular and controversial topic on my country's subreddit where a youngster was asking half snarky, half serious: "What's the point of going to school, when I make 65k/year as a self taught web-dev without needing any of the useless knowledge I had to learn in school, while the people who go into professions where they actually do need that knowledge from school for their career (engineering, medical, farming, chemistry, nursing, etc.) can end up earning less than me, a school dropout and mediocre webdev?"
- moonchrome 4y ago>So how is that fair again? Kid making iOS apps provides value to more people with almost no cost compared to EE working on his niche product and involving a bunch of other high cost components and capital investment to get to market.
- Banana699 4y ago
- noasaservice 4y agoI live in the USA. My highest degree is high school. I had some college, but was a complete waste. I taught myself systems engineering, computer science, electrical engineering, and some chemistry. Most of these, I taught myself with low amount of investment, pirated books, pirated software, and garbage salvage. I now work for the federal govt as a contractor making $150k/yr. The classes I took never even remotely got me here. I got me here.
- stevetesla 4y agoHow did u go about teaching ur self electrical engineering?
- noasaservice 4y agoStart basic. Learn the basics of electricity. Ham radio is great for this. A license to operate is $15 or so. Start looking at what the basic parts are. Look up spec sheets. Figure them out and what they mean. You may know what you want to do, but finding the part is half this battle. Start figuring out what the landscape looks like. Last you want to do is design something with retired status and no NOS (new old stock). Also start getting electronic books on the basic topics. Trawl through college book lists, and then hit up libgen.is or other library genesis sites and get the books. We're trying to do this assuming you have very little money to work with. So piracy it is. And in actuality, the fundamentals don't really change much. Learn analog circuitry. Go study and make your own simple circuits like circuit benders and acoustic effects. Then dig into digital stuff. Lots of things here. You'll want to learn boolean logic, circuit analysis, and the like. There's tons of electronics to fuck around with to l;earn how they work and not work. Past analog and digital stuffs are sensors and actuators. Sensors pick up things from the world, and actuators are things that interact with the real world. Learning and building your own 3d printer can teach you a LOT about this area in a rather quick manner. And working with an open source firmware like Merlin or Klipper can teach you digital handlings, firmware (with no OS), timing, handling analog signals, cleaning up various data, extending the hardware/software, and generally teaching yourself by trial by fire.... and print a whole lot of cool things too. (Helps to also 3d print project boxes.) Learn how to handle power applications. Obviously we're not talking the 10kV circuits... We're talking handling batteries of various chemistries, building charge/discharge circuitry, and safe handling of the more dangerous lithium chemistries so they dont do a boeing or tesla on you. If you mess with lithiums, invest in 2 big metal buckets each half-full with sand. You'll thank me. Get good with an IDE, like KiCAD. You'll eventually start building your own boards and parts and add them as usable things in other designs. If you get a job in industry, you'll likely use Altium. Pirate it if you can to learn it. Use the autorouter, and then do it by hand, and realize how terrible the autorouter is. Board design is just as much as an art as it is hard science. I've also heard for calculating EM prop to use something like http://openems.de/start/index.php http://openems.de/start/index.php but most tools in this realm are stupid expensive. Again, find and pirate. Pick up some cheaper instrumentation. You'll want a good bench power supply, good 2 channel oscilloscope at 50MHz or better, signal generator, good soldering iron, good hot air rework station, fluxes, solders, solder braid, solder sucker, inspection microscope, logic analyzer, and more narrower hardware as your studies and need arise. I also learned reverse engineering, at multiple levels. There's a lot of stuff that this can be used to attack your hardware that protects itself from, well, you. Some of the attacks are pretty simple, and others are crazy complex. Again, you might get really lucky. This usually inst taught in schools 'proper'. "Hacker skills" are usually frowned upon by the academics. If you;re adventurous, you can also get into RF. Just be aware, this will sink your money like nothing else. A single decent SDR can easily cost you $700... And you still need a whole slew of equipment to get it to work. You can start out pretty cheaply, with 2 hackRF clones, 2 tcxo's, 2 RatLSnake antenna kits, and start learning from there. There's a lot to learn from a whole lot of fields, but even small advances are definitely noteworthy, and easily could get you published. I know this misses quite a lot in the EE domain. However you can easily fill in the blanks as your need arises. There's a bit of analytics and mathematics I didn't directly discuss. You'll need to learn calculus. FFTs are definitely super importent and "integral" (haha) to anything regarding signals and information. https://catalog.purdue.edu/preview_program.php?catoid=7&poid=6419 https://catalog.purdue.edu/preview_program.php?catoid=7&poid... has a general listing of what their EE classes look like. You can hit wikipedia and youtube for those topics. There's LOTS of really great videos that explain the math and science online. Use those resources. (I saved this for last, but I would also ask that you consider working on your English and grammar. Some of the worst spelling I've seen has been done by engineers. Try not to continue that trend. Lay-people and managerial/leadership types will take you more seriously.... But engineers... I don't think they'd notice :D )
- JeremyNT 4y ago> SE is not overpaid. I actually think it's underpaid. Above all, the profession pushes for an early retirement. I don't buy this. I think developers are highly paid because so many jobs are subsidized by VC speculation. It's easy to get a software job working on a BS product that solves no real problems and eventually disappears. But the money you get paid is real enough in your bank account. As long as VCs are willing to throw money at any random BS SaaS company that crops up, with the expectation that the losers are going to be outweighed by some unicorn, this will remain the case. If/when the stock market corrects this free ride is going to be over. (Disclaimer: I'm a developer, but I no longer work at a tech company)
- bumby 4y agoThis is an interesting take. I wonder how much the last 20 years of relatively cheap capital contributed to this. A lot of VC money seems to already have dried up as interest rates start to rise.
- infinite8s 4y agoIf you look at the explosion in salaries it's mostly been the last decade, which is coincidentally the decade of near 0 interest rates and capital chasing even more tenuous returns (ie the influx of money into VC funds which went into startups)
- bumby 4y agoIn theory, shouldn’t the cheap capital also caused explosion in salaries outside of tech? That didn’t seem to happen over the same time horizon
- infinite8s 4y agoWell a lot of that capital went into VC funds, and not many VCs are funding things outside of tech.
- throwaway4345 4y ago> As a software engineer, I feel like the market is flooded with workers, and that it is an easy job I think you overestimate the quality of median software engineer. Even at a company like Amazon, I think something like 20% engineers can barely code. Add to that industry expectation to work independently with little guidance and not that many people who will fit the bill. There are lots of junior engineers, who with guidance and mentoring can actually flourish but your average "move fast" startup won't invest in them.
- taneq 4y agoThey didn't say flooded with good workers...
- bennysomething 4y agoGenuine question as I'm surprised by the Amazon comment given their well known interview process, are there really programmers there who can't program very well?
- lanstin 4y agoAnytime I interview I get that impression, but when I work with teams of varying talent levels, there are a lot of people that can write good code it just takes a long time. In the long term these people are more useful than people who write ok code quickly, because they, slowly, reduce the amount of tech debt. One problem is that it is extremely hard for management to tell good devs apart from bad devs. So that puts a huge randomness in as far as who is given authority and interesting projects and so on. Some of the best devs I have worked with, the best bosses I have worked for would not rehire. It is quite odd.
- mercutio2 4y agoIt is not always the case that slow-high-quality is better than fast-low-to-medium quality. Managers tend to want people at both ends of the spectrum. High quality is sometimes not worth paying for (in engineering time) if you don’t know if you’re building the right thing yet.
- dbingham 4y agoTwo things - I don't think it's as easy as you think it is. If you're good at it, it can feel comparatively easy, because when you're good at it and you enjoy it - it's fun. It's flow. You get lost in it and don't realize that you were just working flat out for 12 hours. But there are lots of things that are flow that are not easy. I've been coding since I was 12, I have flow days where it's just an absolute pleasure. But on a bad day where I never hit flow, it's brutal. It's so hard to force myself to focus. And often when I come back the next day, the code I wrote is absolute shit and I spent a good chunk of the next day just debugging it. So yeah, echoing those who say not easy. The other piece of it, is that I actually think a lot of software engineers are massively underpaid. I was at my last job for 7 years. My total compensation, including benefits, options and what have you, was probably less than $1 million (over 7 years mind you). But I can draw a direct line between work I did and the enablement of millions of dollars of ARR. The company probably got anywhere from a 5x or a 10x return from their investment in me. I was paid a little under market, but not so far under market that I'm that different from the norm. I worked on some particularly high impact features in terms of return, so that line is particularly clear for me and not all of my peers there could say the same -- but a lot of them could, and even for the ones where it was less obvious it's still true. As software engineers at a software company, our work is ultimately essentially. The companies don't exist with out us. As a class, given that, we're still underpaid ;)
- papito 4y agoYeah. One thing. I found that if I spend even an hour in the morning on a passion project, before going to work, it really helps me focus on the soul-sucking office task. I don't know why, but that's the case for me.
- blueblisters 4y agoSoftware engineering is not easy but no profession comes close to software engineering when it comes to the sheer number of high-paying jobs it creates. I think much of the "alpha" comes from being truly cross-disciplinary - all jobs can perhaps eventually be abstracted away into code, including software engineering itself.
- kriro 4y agoI think the simplified answer is that software scales really well. So in theory, if I pay one developer really well I can then sell whatever that developer produces a lot of times for virtually no extra cost (and no shipping/logistics). Embedded devices/hardware etc. don't scale nearly that well.
- analog31 4y agoI realize this is a widespread explanation, but it doesn't completely make sense that software is a magic money faucet. The reason is that there's still only so much money that can be spent on software, and at some point the customers run out. I'm not saying it's a zero sum game, but it's not an infinite sum game. Somewhere in between. The greatest software driven economy in the world grows at an average rate of roughly 2% per year. All of this software, and we're living barely above subsistence. What it suggests to me is that for every company that has turned a software program into a magic money faucet, there are as many if not more who will spend money on software and not make a dime. There will also be as many companies that bury themselves in software costs and wreck themselves. Software is clearly empowering us. I use Python instead of doing calculations by hand. But it's also draining us. Talk to virtually any office worker, even programmers, and they will complain about the software that they have to deal with, basically stealing their attention and productivity. Where are the customers' yachts? A better answer is that the money has to be coming from somewhere other than merely customers, and I think the answer is: Investors. What hardware doesn't have is investors going gaa-gaa to spend their money on anything that looks like a hardware project.
- pjc50 4y agoThe market is absolutely not flooded with workers, if you've ever tried to hire people, and that is because it is not an easy job. There's also a bit of a coordination effect: just as you can't replace Ronaldo with 1,000 cheaper footballers, you can't easily replace one good dev with lots of less good devs.
- bradstewart 4y agoI think a large part of it is that software engineering is barely _engineering_, in the traditional sense. And I do not mean that in a derogatory way, I have an EE degree, but write software all day long. There are extremely few EE jobs available to be people with only undergrad degrees, and literally zero available to those without college degrees. This is a huge limit on the number of potential job applicants. So you'd _think_ this would drive salaries up, but... There's also just fewer companies doing EE work, where basically every company on earth does something with software at this point. So there is a supply/demand component, but there just aren't that many places people who want to do EE can actually work. If you're top-of-the-field in EE/low-level CE, you will be paid handsomely.
- deleted 4y ago[deleted]
- jltsiren 4y ago> I also keep thinking, surely other industries will start paying more and treating folks better, so they can attract top talent, but nope! In most industries, the money to pay more does not exist. American companies dominate in software, and they are also highly profitable. Because immigrating to the US is difficult and because many people don't even want to move there, there is a shortage of software engineers in the US. Compensation is primarily driven by the domestic job market, where businesses compete for talent. In other areas of technology, American companies are not so dominant. There is also more competition, driving the profits down. If an American business pays too much, it will get less talent for the same money. Their products will be worse and more expensive, and they will lose to their competitors. As someone from Finland, I've been familiar with this dynamic since childhood. You hear about it in the news all the time. High wages are a grave threat to the economy, because they make our businesses less competitive.
- Panzer04 4y agoIf software use is generating 1% of that growth, it explains why it's so important - whatever is growing productivity the most is going to grow profit and thus ability to pay higher wages. Especially as software can be applied in so many different applications to replace human workers and improve productivity, you can almost always make more money with more devs, hence the almost unceasing demand for devs. I think this is unlikely to stop, as things keep changing and demanding software be rewritten, or more applications found for software.
- rk06 4y agoOnce you make a software, you can copy it a billion times for very very cheap. A single programmer can impact millions of people. An electric engineer is working in physical systems and you can't copy physical systems that cheaply. Unless you are in RnD, you can't have the level of impact a junior software engineer can have.
- layer8 4y agoA single piece of software can have an unlimited number of paying or ad-supported customers. Hardware usually can’t do that, and has significantly higher costs (manufacturing) per customer. Thus software engineers generally can generate significantly more profit than hardware engineers.
- kelnos 4y agoIs it really an easy job? I know a lot of technically-minded people who struggle with programming, especially when thinking about the design of a larger system. I see all these coding bootcamps that supposedly graduate people who can get right to work, but in my experience less than 20% of the bootcamp graduates I've interacted with were even remotely competent, or seemed like they could even be trained up to be competent. Many who I'd kept in passing contact with ended up going into engineering or product management within a year or so (with very entry-level roles). That's not to say you need a 4-year CS (or related) degree to be a successful software developer, but in my experience it's more difficult than you seem to think. I do think it's bonkers that software developers in the US (and especially in northern California) make orders of magnitude more money than software developers in western Europe, in places with more or less comparable costs of living. I think EE/CE-related jobs are mostly harder than software-related jobs, but that doesn't make software easy. Regardless, I think it's just a matter of supply and demand, plus where the easy VC money has been directed. Most companies these days do something with software. Most do not do anything with hardware beyond buying finished products. Add to that the fact that most EE/CE jobs have moved away from the US and Europe, so Western EE/CE types don't have much in the way of employment prospects compared to the number of people who graduate into the field.
- Gareth321 4y agoI see this from the business side. The reason is that growth continues to outpace supply. Software and technology are high growth industries and there aren't enough experienced workers to fill all the new positions opening.