8 ms·
Something I never understood about embedded systems work: why is the pay so bad? Maybe I was just looking at the wrong job listings, but the technical difficul
by ethbr0 4y ago
Something I never understood about embedded systems work: why is the pay so bad?
Maybe I was just looking at the wrong job listings, but the technical difficulty (relatively low-level programming, manual memory management, dealing with janky firmware, antiquated toolchains, and incomplete documentation) seemed much harder than the compensation being offered.
At least in comparison to other types of coding you could be paid to do.
The only answer I could come up with was that unit profit margin * sales volume imposed a much lower cap, relative to pure software products?
- Cthulhu_ 4y agoWhat is the pay like for the "hardware" side of these products, that is, ICB design and the like? I mean as far as I know there's not nearly as much people in that industry now compared to software development so I would assume prices go up... but with tons of international competition, price will go down. (competition as in... people will happily take Chinese designed circuits or whatever, but not so much software.
- kevin_thibedeau 4y agoIt's no better. Part of the low pay, relative to pure software, is the much greater head count for all the tasks involved in designing and manufacturing physical goods.
- polalavik 4y agoI'm an EE, and yeah, I don't get why the pay in the field is so bad. The stakes are higher too. If I mess something up I blow a very very costly PCB or even worse - an ASIC. If a software dev messes up it can cause millions of dollars of damage, but for the most part you can ship half-baked projects and patch them up as you go. You just can't do that in EE.
- cinntaile 4y agoR&D is more expensive, fixing errors is more expensive. It doesn't scale like software does. You want to produce 100x more product? You'll need a big organisation compared to a software company.
- ChuckNorris89 4y ago>I'm an EE, and yeah, I don't get why the pay in the field is so bad. Also EE here. Because in EE you need to invest a lot of funds into equipment, prototyping, manufacturing, RMA, shipping, logistics, customer support, etc. only to make pennies in profit when you actually sell your finished products, while it's the opposite for SW dev work, developing it and selling it costs you next to nothing, you just need a laptop and an internet connection, and once you sunk the cost of developing it you can scale it virtually infinitely and sell it across the globe with low costs and high margins. Long story short, it's a lot more profitable to make apps where you get consumers to click on ads, buy stuff, or invest their savings into meme stocks or crypto, than to build and sell physical products to them (unless you're Apple).
- nikita2206 4y agoCould it be due to competition from China?
- cushychicken 4y agoHaving worked with outsourced Chinese firmware developers: no. Absolutely not. The quality of code I was submitted was atrocious. Any halfway decent Chinese firmware/embedded developer is likely going to work for a bigco where they get paid well, like Tencent or Huawei.
- ChuckNorris89 4y agoTencent and Huawei are still Chinese companies though, just like parent said. They just replaced the likes of Nortel through IP theft and undercutting them on cost. So parent's point still stands that Chinese competitors along with customers in the west who prioritized low cost over everything else, destroyed the embedded dev market in the west.
- cushychicken 4y agoMm, don't agree. You can earn a very handsome amount of money working for Tencent and Huawei. I'd accept "undercutting", but that's a corporate/macro pricing trend, not a trend for salaries among embedded devs in China. I suspect many companies who are undercutting pricing are getting funded by the Chinese government. They're still paying people quite well, just because they need talented engineers just as much as their competitors do.
- ChuckNorris89 4y ago>You can earn a very handsome amount of money working for Tencent and Huawei. Maybe you can but they don't exist where I live in EU and that's the only market I can speak of.
- adave 4y agoOne simple reason, China. Also its not as fancy as some other software dev domains like web. No one wants to pay for pricey hardware and most money is in software/cloud/Saas. Also to get a role you need a seed capital >$1mn unlike software which a single person can do a patreon for.
- Joel_Mckay 4y agoI think the main reason is that untrained EEs end up doing their best to ship product. Since the rise of outsourcing hardware manufacturing, it is simply that domestic demand is now low. Also, most PHBs have zero understanding of low-level systems, and visible areas are easier to quantify value. Basically, the kids with 37000 dependencies in their nodejs steaming pile of awesome… are more impressive than some graybeard’s 4 C library solution that needs updated once every 5 years.
- oreally 4y agoofftopic, but what's a PHB?
- desdiv 4y agoPointy-Haired Boss, Dilbert reference. https://www.wikiwand.com/en/Pointy-haired_Boss https://www.wikiwand.com/en/Pointy-haired_Boss
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- ChuckNorris89 4y ago> I think the main reason is that untrained EEs end up doing their best to ship product. I seriously doubt it. In all my EE gigs, untrained EEs weren't shipping anything but were there learning and helping the graybeard ship. In fact you need a lot of industry experience and learning from the graybeards to ship products that will actually sell for profit and not flop due to some weird edge-case that didn't cross the junior's mind to look for before shipping, since the answers to most difficult issues are had through years of blood, sweat and tears burning the midnight oil with an oscilloscope in hand, not a google search away on stack overflow. If you're into actual product development and not consulting work, getting untrained EEs to ship products will mean the shortest path to your company going bust in notime.
- oreally 4y agoI suspect the answer stems from the commoditization of the hardware - in which the meaningful differences for a particular good are so few between that no one cares much about which brand it is except that it fulfills their needs. And as you said, the reduced profit margins spreads down the chain. I've also wondered how employers see them from the business perspective. It's hard to determine a 'business profit contribution' value attached to the 'quality of work' they produce except that things don't break down, and stuff gets done on time. Furthermore, if the embedded code is the sort where once it's done, it's done, and little to no maintenance is required, the business people might see no need for the guy to be around. Maybe someone could clarify if this is true.
- jore 4y agoI have thought about this myself. I do not think it is directly related to China. I think it is just not trendy to be an embedded developer. And the reason is that it is extremely difficult to start a hardware company (even more with the chip shortages in the last 2 years) because one needs to take care of delivering components that are rare or not available for months, to create the firmware for the board, to manufacture it and deliver it to the customer. Working from home office is often not possible, because soldering stations are needed, oscilloscopes, power supplies etc. The tools are also often not cheap, a debugger can cost 10-15$, but often for bigger projects the debuggers are 100x more expensive, the compiler could also cost a couple of thousand dollars. Then if there are bugs in the SW (there are always bugs) it is again difficult to update the software (this has improved in recent years with all the connected devices/cars etc., but it is still difficult). And as far as I know there are not that many hardware companies that have big exits. On the other side, being a web developer does not require being in an office, buying expensive hardware and tools, nothing is physically delivered and at the end there is a chance to be part of a big tech exit. Big exits -> big salaries
- ChuckNorris89 4y ago> I do not think it is directly related to China. I think it is just not trendy to be an embedded developer Not true at all. Pay has nothing to do with trendiness, but the other way around, being a webdev is trendy because of the high pay, great benefits like WFH and low bar to entry. Meanwhile embedded dev has a higher bar to entry due to the difficulty of the work, low relative pay and low flexibility in terms of WFH, making the jobs untrendy. And no, the outsourcing of most HW related dev work to China has had a big impact in lowering embedded dev wages in the west, coupled with the fall of great electronics giants in the west. When I started uni to become an EE there was Nortel, Blackberry, Siemens, Ericsson, Nokia, Motorola, Sagem, Philips, etc. developing HW and mobile devices in Europe, or the west, and were hiring like crazy. Fast forward 6 years when I finished my Master's and most of those companies have either went bust, or have become just brand names for Chinese OEMs, or have become sweatshops for far east workforce, keeping only some of their sales and senior management in the west. The EE market in the west has went way down in the last 10-15 years in comparison to the web dev market which went way up. The only western HW company making insane profits is Apple and semi titans like ASML, Intel, Nvidia, AMD, Quallcomm, while the Japanese, Korean and Chinese companies fighting for the rest of the scraps, and most of the European ones throwing the towel completely. The commodization of HW and FW dev has meant the commodization of dev wages as well. After graduation, some of my colleagues went into mobile app dev (the iPhone has been out for a few years but were far away from becoming the norm) and are now making several times what I do as an embedded dev at the same level of YoE. Talk about betting on the wrong horse. I still can't stop kicking myself for choosing such a poor career path and wonder if I can still switch as most companies seem reluctant to hire a thirty-someting embedded senior to do junior web dev work usually done by a teen or twenty-something out of bootcamp.
- froj 4y agoIn my experience, the old-school electronics companies believe "if you can't stick a label on it, you can't sell it". In their eyes software is a necessary evil, but it only costs money and doesn't generate any revenue. This is obviously wrong, as the products are worthless without the software and would probably sell better with better software. If they recognized the value of the software then they would probably pay their software engineers better.
- cmroanirgo 4y agoEngineers typically get paid less than developers. I used to joke back in the 90's and 00's (&still kind of do) that I'd quit and become a DBA (typically 2-3x salary). I look around at the 6 figure web dev jobs and it honestly breaks my heart. I look at embedded and engineering roles (ones that interest me anyway) and it's rarely 6 figure. I just don't have the mental fortitude to deal with web dev monotony. The only other time I got bad pay was game development. So, my experience is, the more technical the job, the less you get paid (but more interesting/ demanding). Look at middle management, why do they get paid better? (Btw, I've been CTO too)
- ClumsyPilot 4y ago"I just don't have the mental fortitude to deal with web dev monotony." If you move to be the guy that interfaces between developers and business people, it's not monotonous - each group is retarded in its own unique way. You either stess over it, or you dont take it too seriously and have fun :D
- ChuckNorris89 4y ago>If you move to be the guy that interfaces between developers and business people Any idea how you can do that? I noticed companies are very picky who they put in those spots like need you to have the same experience in the industry or connections in the company.
- ClumsyPilot 4y agoSo in my experience there isn't a single job with a defined remit that does this, instead a range of positions do bits of this Business Analysist, solution architects, presales engineers, product owners, sometimes even project delivery managers and developer team leads have to deal with this. You might stand better luck of getting into one of these positions in a consultancy company, because there each customer has a separate set of requirements and often they don't have enough of these people.
- baybal2 4y ago
- stackbutterflow 4y agoPay has never been correlated to the difficulty of the job. It's simply how much money you can generate for the business. Software is but one part of an embedded system. Whereas it is the whole part of a pure software product.
- Dudeman112 4y ago>It's simply how much money you can generate for the business I find your excessive faith in businesses disturbing. Markets aren't rational [1] and the wage-labour market isn't either. Sometimes there's no good reason for something, only a bunch of chain of consequences that don't necessarily have to make logical sense from an utility perspective. [1] https://www.cnbc.com/2017/12/21/long-island-iced-tea-micro-cap-adds-blockchain-to-name-and-stock-soars.html https://www.cnbc.com/2017/12/21/long-island-iced-tea-micro-c...
- GianFabien 4y agoYou need to look at the business as a whole. Software only business are profitable because the per unit cost approaches zero as your volume increases past the development amortization cost. Say profits in the order of 80%+ Embedded systems are part of tangible products. They have an order of magnitude greater non-recurring engineering costs, then cost of components, manufacture, packaging, inventory, distribution and after-sales service and support. Due to the huge up front costs, volumes are generally limited by capital funds. So the net profits are likely to be 15% - 20% range. When you look at the differences, it becomes clear why tangible product companies are unable / unwilling to pay like software-only companies.
- varjag 4y agoEmbedded is not any different from virtually any other area of software development, outside of certain hot pockets of Web app development.
- OJFord 4y agoI think it's just that fewer are needed, and it competes with 'other types of coding you could be paid to do' as you said - sure domain experience helps a tonne, but basically the 'core competencies' are the same as web/desktop/mobile stuff. Many of us doing the latter trained as EEs even. So, from that huge pool (big supply) there's plenty for the few that are needed (little demand); enough even that will choose that domain over a better-paying one for interest's sake, so it ends up not having to pay as much.
- eschneider 4y agoAs someone who works in embedded systems, the answer is "it's not." Just like every other sort of software development, it depends what you're doing, who you're doing it for, and how good you are.
- ChuckNorris89 4y ago> the answer is "it's not." From your answer I take it you're well compensated. From another embedded dev who is not well companensated, may I ask in what market you are in?
- captaincaveman 4y agoFrom my experience in past doing embedded, then web (and now mostly nothing), I noticed how much more accessible open web devs were. Information travelled fast, so it wouldn't surprise me if in the embedded world today still many don't know where the demand/money is.
- rkangel 4y agoI'm not the person you're asking, but I'm well compensated and I work in Cambridge, UK. Also known as "Silicon Fen". There are a lot of embedded jobs around here and they are pretty well paid. Yes you'll still do a little better if you go to London and work for Amazon (etc.) but it's competitive.
- seidleroni 4y agoNot the parent, but in my experience, working in a regulated field the pay tends to be better since the stakes are higher and there is a larger push for quality rather than "ship it". I work in the Medical Device space doing embedded work and find the compensation to be very good.
- cbsks 4y agoI recently made a change from a small embedded company that focused on high security applications, such as automotive and aerospace, to doing embedded development at one of the large tech companies. I was making about 200k at the first company and almost double that now. It was difficult to find a company that compensated well. A lot of the non-tech companies that rely on embedded developers like automotive and consumer electronics companies pay shit. The large tech companies all have need for embedded developers, for example Apple, Google, Nvidia and Amazon.
- baybal2 4y ago> Something I never understood about embedded systems work: why is the pay so bad? Because there is no demand. Because today, you get all the software along with hardware. And that software is already written somewhere in China, by same people who make the hardware. Google, Facebook, Snapachat, MicroSoft, Amazon all run their hardware R&D in China for obvious reason that the hardware is already being manufactured there. They all copy Apple, and surely think that they can become Apple if they do like them.
- pid-1 4y agoSoftware eng. unsatisfied with $ -> leaves company -> makes dumb clone, steal subset of customers from former co -> iterate, grow, might end up becoming a threat Hardware eng. unsatisfied with $ -> ask their friends in the other 2 cos in the same niche how much they are being paid -> cry Bootstraping a software business is trivial compared to any other eng. business. That, plus the internet's existence, is what makes dev so well paid.
- gaudat 4y ago> Make dumb clone In hardware world that translates to contracting or hiring a Chinese team to clone your competitor and eat the lower-end of the market. This is especially true for development boards, hobbyist and supply chain stuff. Digikey vs LCSC, Sparkfun/Adafruit vs AliExpress/Taobao, Arduino vs clone boards. Sometimes the dumb clone company gets big enough and become a legit player in the Anglosphere. Say Seeedstudio or ALINX (FPGA dev boards).
- RicoElectrico 4y agoPositions requiring specialist, uncommon knowledge or long training are often "penalized" in many sectors. It pays more to be a typical "CRUD writer". And this is not specific to IT - many academic researchers have to make ends meet with almost minimum wage.
- cushychicken 4y agoI suspect it's because much of the field is actually quite junior, relative to the expectations of a senior or principal contributor. It's not until recently that I started to grasp how much breadth you have to have to be functional in embedded systems. To be functional and independent at it, you need: - a very solid grasp of C/C++, - a good understanding of the concept of a state machine, - a decent grasp of digital electronics and communications protocols, and - some comfort in debugging (or at least diagnosing) electronics issues. These skills take years to accumulate. At the same time, I keep hearing the claim online and IRL (particularly among SWEs who try to get into embedded) that "it's just software - you don't need a good understanding of electronics" to be a competent embedded systems engineer. These are also the same people who get hung up on pretty fundamental problems with simple solutions, like: - I2C buses missing pullups - Power supplies not delivering enough current (Hi, everyone who's ever tried to drive a huge NeoPixel panel from a RasPi alone) - IO logic levels not meeting input specs (e.g. driving a 3.3V input with a 1.8V signal) Maybe I'm needlessly cranky but I've seen a non-trivial number of people go from "It's just software" to "OMG what do I do help" in the face of very basic hangups like these. It highlights to me that folks who have the breadth to do all of these things comfortably are extremely valuable, and hiring companies know this.
- gaudat 4y agoJust interviewed for an embedded dev position. The interviewer told me it is rare to find a candidate that can tell why a linked list is a bad data structure choice for embedded systems. I guess it goes down to a fine knowledge gap between CS and EE curriculum. There is a "Computer Engineering" major in my university. C/C++ and state machines are taught in a freshmen year course. However, digital electronics / communication protocols / debugging is never taught in class. Practically everyone who know what SPI or I2C means is either an electronics hobbyist or member of a student competition team.
- shirleyquirk 4y agoI'll bite: why shouldn't you use a linked list for an embedded system? As opposed to a contiguous, dynamically allocated data structure, I mean.
- gumby 4y ago> Something I never understood about embedded systems work: why is the pay so bad? I think it’s because the software is generally simply considered part of the BOM and thus a cost to be reduced. Also, the hardware side typically rule the roost in such projects, and hardware engineers tend to look down on software developers because, after all, how hard is it to just type code in (if you’ve ever looked at code written by EEs…ugh). As supporting evidence: the pay is better at companies that do take software seriously. Examples: at one class, Cisco; at another, FB, Google, Apple…
- ca01an 4y agoI think FB, Google and Apple simply being more profitable than Cisco has more to do with it
- nuomai 4y ago> Something I never understood about embedded systems work: why is the pay so bad? It's about in line with what electrical engineers make on average, slightly higher, at least in my location. The market places more value on people who can write code to give you a nice shopping cart interface over the ability to design digital control systems for engine control units to make sure your car can drive properly. It's just what we as contributors in a market value as truly important to us. To give some more insight: Look at the value of Twitter. A control system for a weapons-grade nuclear centrifuge - a weapon of mass destruction - is valued less than a 280 character limit.
- polishdude20 4y agoIs it because hardware doesn't scale as well as software? For embedded development, you need some kind of hardware that needs to be sold. A computer or a phone is something everyone already has. An embedded microcontroller? Not so much.
- 99_00 4y agoI feel very confident saying that the reason is supply and demand, despite the fact that I know zero about the embedded systems labour market.
- analog31 4y agoNearly half a century after The Mythical Man Month, we still don't know how to manage software development except by throwing money at it. And the scale of software is limitless in the amount of code, complexity, and technical debt that can be added. Management can't guess which parts of software are adding value, rather than collecting rent. The principal-agent problem looms large. In contrast, the scale, and thus the complexity and cost, of embedded tends to be limited by physical constraints.
- scollet 4y agoEven with those limitations, doesn't metal programming optimization compound in later abstractions? Seems worth the investment from a rational standpoint.
- P_I_Staker 4y agoThis has been well answered by others: Embedded Software is adjacent to engineering and are seen as engineers like any other (usually the pay scale is higher since software is in demand). Additionally, I'd add that many embedded developers work for hardware companies that don't understand or care about software; why pay so much more, and they already think they're paying "way more" (it's more than we pay EEs!), for something you don't get. Finally, Embedded Software Engineers do quite well often. We don't pay people based on how challenging their jobs are.
- UncleOxidant 4y agoIndeed, the pay for embedded development is curiously low especially given the wide range of skills you need - both software and hardware knowledge as well as debugging skills that take years to develop. I think there's been a lot of market distortion over the last 15 years or so due to the way money has flowed. VCs haven't been very interested in funding startups making hardware so they tend to be self-funded as in funded on a shoestring. There's not the money sloshing around for these companies.
- shadowpho 4y agoI am going to break with the consensus here and present an alternative: embedded systems are easier than "big software". With much of embedded you don't need to worry about updates, maintenance, logs, security, multiple cores.