Live data from Hacker News

Is developer compensation becoming bimodal?

danluu.com

31–40 of 584 posts

Re: Is developer compensation becoming bimodal?

#31
Maybe the whole U.S. is becoming bimodal, geographically.

I also think that the software "productivity" is in fact "multiplicative". That is, more software written means more complexity which takes more SW engineers to maintain. I actually think that there might be too much software. This is similar to lawyers, who can generate more work for other lawyers (supply generates its own demand). Weapons also have this property.

Re: Is developer compensation becoming bimodal?

#32
post #9

IMHO, the title should be fixed to mention that it is only about developer compensation in the USA . I am always surprised at the salaries in the USA. I have two bachelor degrees and two master degrees from two well established universities, and earn about 2k euro a month (before 20% tax deduction), which is considered fairly decent for a starter. Even then, many corporations outsource software development to Eastern…

Europe is far beyond the US (regarding cs saleries, I mean), but in e.g. Germany it's not that bad. I've a masters degree and about 3 years work experience and am at around 6k a month (+ vacation bonus +christmas bonus +personal performance bonus +company retirement plan) which is quite average in southern germany at least for bigger company and engineering/technical roles.

In the US, my salary was about that (6250 USD/month) straight out of university 12 years ago, but of course I only had 2 weeks paid vacation. I did get bonuses, but no pension.

IIRC taxes are slightly lower in Germany too. After putting the maximum amount into a 401(k) (self funded, pre-tax retirement) and paying taxes, I took home around $3500 per month, excluding bonuses.

Re: Is developer compensation becoming bimodal?

#33
There seem to be a couple of major similarities between software development and other jobs with bimodal incomes:

- You do a job that is, in many cases, a company itself. Lawyers, doctors, and developers can all start independent operations since the product of their work, or the service they provide, is monetizable in and of itself.

- There is a very significant skill gap, often driven by enthusiasm at least as much as intelligence, that people rarely transition between.

Compare these fields against something like electrical engineering. There the skill itself is generally a part of a product, rather than a marketable skill in and of itself making independent work difficult. And I don't know that many electrical engineers, but I'm unsure how big of a skill gap there is and, more importantly, what percent of engineers manage to transition upwards in it. If one electrical engineer is, more or less, the same as another - then you're going to see that reflected in income distributions which I would expect look more bell curvy weighted mostly by just years of experience.

Re: Is developer compensation becoming bimodal?

#34
post #28
post #23

Earlier quoted context omitted.

Chemical/electrical/mechanical engineers can't use their field to automate their field. A mechanical engineer designing a new manufacturing technique or robot is most certainly using their field to automate their field. Most of computing exists because electronic engineers used their field to automate their field. Software is not unique in this respect.

Every field is working to automate their field with the help of software . For which you need software developers. The article raises the question of why people are hired as software developers even if they don't have such a degree. Its because companies see it as an automation problem and not as a software engineering problem. That is also why quality or experience of the developer is irrelevant most of the time, th…

Every field is working to automate their field with the help of software. For which you need software developers.

Right, but let's be clear about our terminology here. Automation in mechanical/manufacturing isn't being done by CS grads with skills in RoR employed as software developers. It's being done by MechEng graduates armed with FORTRAN compilers who write a lot of code but don't consider themselves to be developers at all.

Re: Is developer compensation becoming bimodal?

#35
post #18

Earlier quoted context omitted.

I 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…

I 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 migh…

Which 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.

Re: Is developer compensation becoming bimodal?

#36
post #9

IMHO, the title should be fixed to mention that it is only about developer compensation in the USA . I am always surprised at the salaries in the USA. I have two bachelor degrees and two master degrees from two well established universities, and earn about 2k euro a month (before 20% tax deduction), which is considered fairly decent for a starter. Even then, many corporations outsource software development to Eastern…

Most of the developer salaries in EU would be below the scale in the bar chart "Programmers in 2015".

I'm not familiar with the larger EU market, but I would guess that German IT salaries skew low as well - and yet I regularly meet freelancers/contractors who can ask for more compensation than most traditional employees ever could.

Collecting that data and adjusting for the fact that contractors have to deal with more taxes and insurance, but less restrictions about vacations, seems impossible.

Re: Is developer compensation becoming bimodal?

#37
post #18

Earlier quoted context omitted.

I 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…

I 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 migh…

I 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.

Re: Is developer compensation becoming bimodal?

#38

Yes, it is. And the example used in the article of chemical engineering reinforces the point. It ties into computer science quite nicely. To become a chemical engineer, you first have to complete the course work for a degree in chemistry. Chemistry as chemistry is an extremely modular subject matter; you can solve most problems in discrete steps in isolation. In a computer science sense, chemistry is about pure funct…

Tbt, I haven't seen that much evidence that correlates developer ability with salary. For example, developers living in the Silicon Valley are paid the most. Not because they are the best, but because they are living in the Silicon Valley. Geographical factors play a much bigger role in compensation than developer ability.

Re: Is developer compensation becoming bimodal?

#40
post #29

As a manager I’d probably advice against picking programming unless you love it. In our educational system the increase in short-length programming classes at academy level has exploded and I doubt the market will keep up. Really great comp science or engineering students won’t ever have a problem, but I fully expect the short-length, autodidact or mediocre students to be entering a saturated market within the next f…

As a manager I’d probably advice against picking programming unless you love it. That is the dirty little secret of our industry. You need to do your day job AND on your own time, keep your skills up to date, and/or work on open source and/or write a blog or something. There was a post on there the other day on how keeping up to date with k8s is a full-time job in and of itself, well you need to do that - and a bunch…

Yes, the occasional expectation that you should have a blog to make you a decent developer annoys me. I am pretty poor at writing and don't have a lot to say that I want to broadcast to the world. Answering Stak Overflow questions suits me better as a way of demonstrating that I know something.
Post reply on HN