5 ms·
To the puzzle about developer comp outstripping EE or other engineering disciplines pay (ie Civil Engineering god help me), I agree that the student in those fi
by banku_brougham 9y ago
To the puzzle about developer comp outstripping EE or other engineering disciplines pay (ie Civil Engineering god help me), I agree that the student in those fields could apply themselves to become able programmers. So why the huge disparity in pay?
I have two ideas:
1. Lots of technically able people still don’t enjoy plugging their mind into a machine. Its probably hard to believe in the HN community but many people don’t enjoy the work, I’ve met a few. Maybe its too abstract or boring, its a mystery to me.
2. What multiple is the market putting on the ‘tech industry’ vs semiconductors or mineral extraction? We can actually look that up. AMZN 220; MSFT 69; FB 33; SOXX 4.7; XOM 25. Investors are paying more to fund the work of programmers than most other industries.
- xyzzyz 9y agoAMZN 220; MSFT 69; FB 33; SOXX 4.7; XOM 25. Investors are paying more to fund the work of programmers than most other industries. Large compensations enjoyed by engineers in the AMZN, FB, or MSFT is not derived from "investors paying more to fund their work", as these companies haven't been dependent on investors' capital in a long time.
- chrisweekly 9y ago"Investors paying more to fund [developers'] work" strikes me as the wrong perspective for analyzing compensation. As an alternative, consider "revenue generated per developer". Anecdote: I worked on a team where gross revenues per FT software engineer were north of $4 million USD.
- banku_brougham 9y agoInvestors float the stock to levels that alllow the company to pay generous compensation. At amazon for example, salary tops out at $160K. 1/2 or more of comp is in RSUs. Senior Devs are making $300+ in total comp.
- meuk 9y agoI recently started working as a programmer and don't like it. I started coding when I was about twelve, and did a CS bachelor and CE master. I like coding. I don't like, however, my work as a programmer. The tasks are just too mundane. I spend multiple days on a RESTful CRUD controller, just because there are so many (IMO useless and even obfuscating) layers of abstraction. The only challenging aspect is the lack of conventions and documentation.
- clintonb 9y agoI didn't care much for my internships and early work. I felt like a cog in a machine. I always wanted to be the guy designing the machine. After a few years I was that guy. Not all entry work has to be mundane, but you learn a lot doing some of that work. The fact that you are spending multiple days, rather than hours, building a controller hints to me that you haven't really mastered that work. Perhaps the task might feel less mundane if you developed a tool/framework to simplify the task itself.
- GarvielLoken 9y agoWhich you can't use across multiple customers if you work at an IT-consultant company :(. I guess you could make it open source, but then you still would have to convince every team you join to adopt it.
- meuk 9y agoI don't have time to implement a tool for implementing CRUD. Wouldn't it be better to not have so many layers of abstraction that you need a tool in the first place? Let me elaborate on what it took me to implement a CRUD controller. I had to implement a repository interface, a respository a context, a service interface, and a controller. Then I had to understand how to write the swagger documentation. Then there is a convention of wrapping every result and exception in some kind of wrapper, which is not documented so I had to figure this out from looking at other controllers. Then I saw a execution path for another CRUD controller which could throw an error which was not in this wrapper, so I had to discuss this with someone from the team. Sure enough, he is in another country, and takes a while to respond. I was lucky it was still morning, or he would have gone home already (there's a 4 hour time difference). Sure enough, this was a bug in the other controller. Then, there is a logging and a monitoring service I had to understand and implement. Undocumented, of course. The controller I used as a reference was inconsistent in monitoring, so I had to discuss this. Then, the requirements for the controller are not clear. The RESTful way of responding to a GET request for a nonexisting resource would be a 404, but the wrapper does not allow this. The reference controller returns 200 OK, but with a null value. So I had to check if this is indeed what's intended. Then I had to figure out how the unit testing framework works and I had to write tests for each method. OK, good practice, but it feels a bit weird, since the unit tests should not use the database while the entire purpose of the CRUD controller is to use the database. So much of the logic I'm supposed to test is mocked. So, I had to learn how the mocking framework works. Then I wanted to write unit tests for the repository, but entity framework crashes when I use an in-memory database. The other developers had a look, but didn't understand this either. The other repository implementations are not tested anyway, so I skipped this. Additionally, visual studio crashed, corrupted my git repository, and I ended up deleting and cloning the whole repo again. Then, I had to configure the project again before it would build, which involves opening the project in an older version of visual studio, then opening the same project in the latest version (some errors magically disappear), and adjusting the IIS settings (which are a mystery to me). I also had a long meeting to attend, and the person who's supposed to get me started didn't have time to help me. In the end, I'm still not quite happy with the actual logic in the controller (it has inconsistencies similar to the controller I used as a reference), but I refuse to spend more time on it.
- luckydata 9y agoEngineer turned product manager here: there is way too much yak shaving involved in bring a software engineer. Dealing with all the poorly written libraries, unpredictable bugs and shitty APIs made me realize it wasn't something I wanted to do 12 hours per day for the rest of my life. I enjoy the intellectual challenge but I enjoy less figuring out which version of which package crashes my app
- nvarsj 9y agoYou're definitely on to something here. This is probably also why engineers like to 1. rebuild everything from scratch (but better!) 2. can't handle staying at a company more than a few years.
- mattmanser 9y agoI was reflecting on why I'm hating my current client's codebase so much whereas 6 months ago it was tolerable. I think for a while you pretend to yourself it's going to get better, then it never does. Code is a always messy, confusing, etc. There's never time to really fix it. Switching every 2 years helps you pretend that's not the case, at the new place it'll be better and you'll definitely have an impact on this code base this time.
- kamaal 9y agoBut as a programmer wanting to getting into a management role of some sort. Lets be frank here, the true reason most people want to do is because, the pay as a manager is just way too good, the working hours are next to nothing. And there is a default master-slave relation ship between a manager and a programming, despite the skill, output and intellectual value of the programming being many orders of magnitude more superior.
- ryandrake 9y agoI’ll let the parent commenter correct me but being a product manager (or project manager) does not mean you are in a management role. I have had both titles and never had people report me. I probably make much less as a project manager than I could as a software engineer. The real money appears to be in people management which is tougher to break into.
- hocuspocus 9y agoIf I look at the situation in my home country, chemical engineers still make more than any other kind. Why? Because big pharma (and big tobacco!) extract the most profits per engineer. When I was in Germany, mechanical and electrical engineers were typically making more than me. Same reason. A few american software companies are making over a million yearly per developer. 200k for a new grad is nothing to them. You're right that investors probably spend more to fund the work of programmers in VC backed startups, but nobody forces them. They could simply start investing in more companies outside tech hubs (or even outside the country).