17

Attention Software Engineers!

Quit shooting yourselves in the fucking foot! And this ESPECIALLY goes to new grads. I get that you have just finished school. I get that you need a job! But don't fucking settle for a $30-$40k salary because you're "entry level"! The only reason why there are employers who offer that type of salary is because they know that there are enough idiots who will settle for it!

On average, an entry level software engineer's salary is between $50-$60k at the very least! For Senior developers, it is at least $80K/year (although an argument can be made for why they shouldn't settle for less than $100k/year).

Each time a moron low balls his/her salary, that brings down the market value for that talent. And keep this in mind! They don't have a choice but to hire you. They could choose to outsource their work to poorer countries but they don't want to do that due to obvious quality-related reasons so they HAVE TO hire you if they need the work done. And since the ball is in YOUR COURT, demand your fair salary. You went to school for 4 fucking years. You dealt with that stress for 4 fucking years. Why settle for a salary that you could've made without going to school?

Comments
  • 6
    If only I can find a job with that salary
  • 3
    @devTea Make no mistake. I'm in the same boat. But we cannot afford to devalue our talent.
  • 1
    Where should I fly to get that lower salary? What country for that 30k$ yearly?

    And about poorer countries... It's not code quality concern. Its concern about us not giving a single fuck if we hate the job becouse we are greatly underpaid.

    At least my country is on middleground... kindda poor, but not extremly poor... I would say code quality is pretty decent, you can hire here developers for few bucks (10$?) an hour and they will be fucking rich in our standards and will be happy to make best quality stuff they manage :)
  • 1
    @irene Canada & US
  • 1
    I forgot to add:

    This is in the context of US & Canada
  • 2
    @DubbaThony You won't live well in Canada for $30k/yr
  • 1
    @norman70688 they are myth, I hate that role on a project, I’m not hating a fullstack dev, it’s just that you have to pick a role in a project either front or back for that said project, especially if the project is big
  • 3
    Where I live you are lucky if you get a job that pays 9k-10k USD when you are recently out of college.
  • 2
    > Entry level is $50k

    I need to move apparently.
  • 3
    People you may be making 8k or whatever, but remember your cost of living is most likely exponentially cheaper than most parts of us/Canada

    Keep this in mind.

    Don’t directly compare 80k to 8k

    Thanks
  • 1
    @dalastTomCruise Sadly this can be a part of the problem as well. I've met a few engineers who thought because they lived in more rural areas, their salaries should be much lower.
  • 2
    @shivayl yep my point doesn’t go against not accepting lower wages, just warns against comparing salaries from two different country’s where the cost of living differs greatly.
  • 1
  • 1
    In my country (Italy) the average salary of an entry level developer is 20-25k €. Like wtf
  • 1
    @irene They mean a lot to people in US & Canada. I never suggested that these numbers were universal (and tbh I thought that it went without saying).
  • 1
    @DubbaThony In my experience, I've never seen or heard of a "quality developer" from 3rd world who works for $10. No offense but everyone I've seen at that price bracket have been utter shit.
  • 1
    @OnurOz92 depends on where you live and what are your living costs. My total living costs are like... 400$ monthly. max 500$ but thats when its winter and I kick in heating. Counting any reoccuring stuff I could count... Poor countries work a little bit another way apparently.
  • 1
    EDIT (good to know I have 5 minutes to edit):
    Thinking about it, it depends what do you mean by quality developer. Maybe there is a gap, for me its code that works in different enviroments, that you can read easly and has at least some documentation.
    If you think of buissness analysis, and whole shit like that, than nope. Coding in my honest opinion is translating what someone wants to machine that will execute what someone wants. If he wants something silly, sure I will say IMHO its pointless but as long as you pay, your choice.
    Now when you count if you work for 10$ an hour you are monthly above 1500$ and your expenses are 1/3rd of this. You are living your life basically.
  • 1
    I did mention later on that this is in the context of US & Canada.
  • 2
    The reason why entry level software engineers (embedded folks) and software developers (everyone else) (just to clarify) ..... the reason it is so low on entry level... is because in my experience the people out of college is worth that OR actually even less. When I hire I want someone who is motivated and spent a lot of time learning on their own.. experience is what matters to me and decides pay... if you ware right out of college but have 10 years of experience AND can prove it then I’ll pay you what you are worth..

    But 99% of folks right out of college are truly worth only entry or less. But from their prospective they don’t understand why... experience is why.
  • 2
    I started programming when I was 12... had my first job at 16... went to college and dropped out hired full time.. quit bounced around a few times gaining even more “industry” experience. Now making over 120k software engineering. At 25.. no degree.. AND AND... at for my spare time I started my own company. And my day job salary funds my spare time company. Haha..

    Motivation, and passion.

    Don’t think just cuz you have a degree you are with anything in gold.... what you have done with your knowledge is what defines you.. NOT what you are “capable” of...
  • 2
    @QuanticoCEO very similar path for me haha except I’m 26. No degree, just 4 years of grinding. Also trying to do startups on the side. Got to have a passion for sure.
  • 2
    @dalastTomCruise I like your mindset! We need more people like this in the industry.

    What concentration of software do you do? Low level or high level.. or mobile app, and website lol
  • 1
    @QuanticoCEO just started with new company working on a risk assessment platform for commodity trading. When I interviewed I told them I have zero experience with commodities and trading but showed them I’m willing to learn it quickly. The platform is very high level (python) and has a huge caching framework to optimize not having to recalculate things in real-time. Documentation is really well done.
  • 1
    @dalastTomCruise when you said python I went from smiling to frowning... but if that works for you great. My advice for you is to learn C... I don’t see how careers built on python can be sustainable.
  • 2
    @QuanticoCEO learning c now actually haha. Why wouldn’t they? Python is a pretty readable language. This platform is already in the millions of lines of code but would be much much more if done entirely with C. And the complexity would be much greater. Some of the internals leverage C (as they should for speed) but python is great for abstracting higher level architecture. Don’t be one of those guys who only uses one tool for everything haha
  • 1
    @dalastTomCruise I don’t see python being sustainable because it’s scripted thus does not run directly on hardware. I believe as a software engineer you have a toolbox, and in that toolbox you have tools, “the languages”. And you should use the right too for the job.

    To me scripting languages that are not directly for web are more Swiss army knifes used to get something done quick small fixes.. some assembly required stuff.. etc.

    I work a lot in embedded systems.. arm32 and 8bit micros.. I will use Assembly or C ..

    If I’m making a quick debugging tool on windows for my end I’ll use C# (or have the interns make it for me quick lol )

    I’m just not into this hugely abstract languages that don’t need to be abstracted I think software is better when it is as close to the hardware as possible... I don’t care how many lines it takes... just cuz it takes 100lines in C rather than 5 lines in C# or 5 lines in python.... I can promise you the C will out perform the abstractions... AND I thus know everything about the software as I’m not using 3rd party “shit” .. my philosophy on that is.. who ya gonna call when shits not working due to some 3rd party API? ...you are still responsible for the product when released. The excuses of blaming the 3rd party doesn’t cut it.. yes it saves time.. but releasing a good robust product cannot occur with cutting corners by saving time in software design.

    Just my two cents
  • 1
    @dalastTomCruise going back to why I don’t think it’s sustainable is because python WILL never run directly on hardware.. neither will java or c#.. requiring a run time engine, never being efficient or optimized enough compared to native on the metal code.

    The world is physical place... websites and everything in the internet may only need high level stuff for apps and shit.. but when it get down to it, the software boils down to assembly somewhere.. and always will... thus people who can write that code will always have a job or can easily find one.. while the abstracted industries change and come and go and change with the market.
  • 1
    @QuanticoCEO you’re completely ruining out how we are becoming more faster and more faster at a physical level to support abstraction... that’s literally the direction tech has been leading. I’m sorry but interpreted languages are obviously sustainable, looks at Instagram for instance it is made with python and continues to scale with little effort... the future is going to continue to build abstraction whether you like it or not that’s just facts. The best systems uses each tool for what they are meant for. High level languages speed up development and help with maintainability. I bet if you compare the time it takes to get a requirement out to a client with python to c it’ll be no contest.
  • 1
    @dalastTomCruise the day java, c#, or python.. runs directly on hardware will be a very very dark time in our industry.... it is something that literally isn’t needed..... building hardware fast and large enough to support abstract software languages.. something that is completely made up and not physical.. is a completely retarded ... literally something straight out of idiocracy movie and the book 1984....

    The hardware IS SOMETHING PHYSICAL.. we should be writing code to the hardware not building hardware for the software.

    Fuck.. if you ran C or ASM on the made up hardware that would magically run java natively.. we might actually be able to create super intelligent AI.. but if we continue down this path of creating more and more powerful hardware and more more more abstract software, we literally won’t be making any progress.. cuz it will be a constant struggle of the hardware just being enough to support the next abstraction where it could do trillions of stuff in c or ASM.. on that same hardware...

    But we gotta keep making things easier cuz people just keep getting dumber and managers want shit faster... (in startups and mobile apps industries)... car industry, and Tech OEMs .. are never like that... this rush rush rush, get quickly shit done is always in the marketing, mobile app, or website world.

    Companies building physical products are never rush rush rush rush... we have timelines between 6months -2 years... aerospace longer . But in that time there is no reason you can’t write what you need in c and build a robust system. And yes APD departments schedule may be quicker for demos but long term is what builds a great quality product.

    I will say it now, whoever
  • 1
    I will say it now, whoever builds the first true Artificial General Intelligence, one that actual works, the system will be on C maybe C++ .. OR a proprietary subset of C and it won’t be running on windows or Linux or Mac.. it will be running on its own OS.. and on its own hardware specifically designed for it....
  • 1
    @QuanticoCEO nah I think you’re missing the point of the other languages to begin with is all. They aren’t meant to handle memory or run directly on machines and they’re not being altered in anyway to do that. They are used to make developing huge systems easier and they do just that... no reinvention of the wheel just standing on shoulders of giants to focus on the concepts of the system rather than worries about the concepts of lower level implementation. That’s it. Use each language where its best and your system will be fine. That’s what every top tech company is doing and their systems are second to none.
  • 1
    @QuanticoCEO c isn’t even that complex and even it relies on abstraction... so in absence assembly developers will role their eyes and say their language can be used as well and it’ll be even closer to the hardware and even more optimized for the hardwares architecture... get where I’m going...
  • 1
    @Fast-Nop

    Need your help bro.. he don’t understand...
  • 1
    @irene @Nanos @devTea would like y’all’s insight on @QuanticoCEO and My discussion...
  • 1
    Learn programming language just to found how how programming look like from another side, not spamming it for everything, it depends on what you are working on
  • 1
    @dalastTomCruise please understand I agree use the best tool for the job... but that doesn’t mean use abstraction languages just because you can push a feature out a week sooner...

    Web stuff do it in scripting...
    IOS apps do it in Swift or Obj-C
    Android .. JAVA.
    Embedded .. C.. or ASM..
    Desktop programs ... do it in C / C++
    Yeah the GUI might be harder todo.. maybe do the GUI in C#

    But that’s my world... and what I would use each for.

    Use the best tool for the job.. and in my word.. the best tool is for optimization of efficient use of system resources.. if I can shave off microseconds off a routine i dancing around my desk.
  • 1
    @QuanticoCEO I just realized I didn’t give a rebuttal to the abstract languages change whole assembly stays the same... I agree, however if you understand the core concepts of programming then switching to another language isn’t really difficult... it’s architecting, designing algorithms, understand the problem/edge cases and understanding trade offs that make a good engineer... coding is just a small piece. Also look how many assembly jobs exist today... not many so if hypothetically we have AI to replace all abstract languages then then that small demand for assembly developers will become even more saturated with people trying to land those jobs... so in conclusion the bulk amount of jobs will be even higher level requiring universal problem solving skills that’s timeless. Anyone can learn a language, but not everyone has the patient to handle all the other difficult stuff with the job.
  • 1
    @QuanticoCEO and no where did I say that... so I think we agree for the most part. There’s a place for both and the biggest systems in the world use many languages for what they’re best at... I said this point already lol
  • 0
    Every SW developer should understand how computers work on a very fundamental level. Otherwise, it's a bit like a car mechanic who doesn't know how a motor works.

    Yeah scripted languages are slower than C. But they are faster to develop in, and as long as the result is "fast enough"(tm), the customer will not pay for more speed. Instead, he will buy from another company, that's the hard truth.

    Computing power has risen far beyond what the average customer needs, and on desktop, there has been not much progress at all since around 2010. Maybe a doubling in speed, but in the 90s, we had that every year, and it was very noticeable (and buyable!).

    If we had a killer application for speed, then there would be a draw to more efficient programming models. Even on Android, you can develop in C/C++ via the NDK. Then it's just another Linux with all the Linux and POSIX goodies. E.g. chess engines for Android are usually done that way, only the GUI is done in Java.
  • 0
    I'm more concerned about the long term maintainability of ever more complex software stacks, as exemplified in 2016 when large parts of the NPM ecosystem broke because one dev withdrew a trivial string functionality (see here: https://theregister.co.uk/2016/03/... ).

    Btw, building hardware for software: LISP machines did exist - they just failed because LISP sucked. Java support in hardware also existed, see ARM's Jazelle, but fell prey to JIT and faster hardware.

    Modern CPUs are designed with C in mind. That's why you don't see accumulator based CPUs in Z80 style anymore. A Cortex-M instruction like "STR R1, [R0], #4" is a direct translation of C's pointer arithmetic, and conditional but branchless execution mirrors the Elvis operator.
  • 1
    @Nanos

    You know...
    Theoretically, purely theoretically...

    Just 100% in theory, you could even kick in PHP on android ;) :P

    (Yes, there is LAMP stack for droid)
Add Comment