Usually nobody wants to talk about it. But, the truth is, at the end of the day we all got to pay bills. This is why the question always stays relevant. HOW MUCH 💵 does a Go Software Engineer really makes in 2021.
I’ll make a clear statement, for which I may be punished or criticised, but I got to say: regardless of your geography, if you’re not making at least $3-4k monthly (NET), then you’re probably in the wrong business, or simply did not negotiate your salary properly.
Before we dive into the topic, I wanted to let you know that I’m more active on YouTube @ SteveHook where I create videos on many more other topics. If you’re more of a video person who learns better from visuals, I made a video on YouTube about How MUCH does a Go Developer Make (2021), so feel free to check it out.
Now back to our question. How Much do we as Go Engineers Make? That’s a very interesting question, and there is really no clear answer on that, because it just depends on so many factors. Even though a Software Engineer’s salary should not depend on the technology used, trust me a lot of the times it does. And here statically typed languages including Go have an advantage. But just to make it clear from the very beginning these factors apply in pretty much any language/ecosystem and they are more or less the same.
Right off the bat, depending on your employment status/type, you will get a smaller or considerably bigger pay. By employment types I really mean being hired as a Contractor or just regular Employee of your country.
Now, of course there are benefits and downsides of both types of employment. As we all know already, there are market limitations everywhere including Software Engineering or IT field, and by market limitations I mean financial limitations/ceiling.
You don’t really feel that when you’re just beginning or start on growing in your career. However once you start asking for more, switch more companies, you start reaching the financial limits, where a certain company/employer may start rejecting you, not because you’re not good enough, but simply because you’ll cost them much more than hiring a bunch of juniors.
One way we can get hired, is by finding a job as a Software Engineer in our local market. That being said, you’ll get a lot of benefits, while being an employee of your country. Just to name a few, you’ll get: medical insurance, decent salary, paid holidays, paid PTOs, paid sick leaves and regular unpaid days. On top of that, most companies will provide you with all the necessary equipment, software licenses, self development environment and tools and a bunch of company specific perks, not to mention amazing offices with amazing facilities. I kind of forgot what vacation really is, ever since I went the contractor route, because every day I took off meant I lost a certain amount of money.
Now of course, there are downsides when it comes to working as an employee. The biggest disadvantage for a lot of us is the fact that we have to pay high taxes, resulting in a lower salary, again this is country specific, but in a lot of the cases this means about 20% off of your gross salary. To mention a few others: because most companies out there have offices, some of them still require individuals to always make it to the office, some of which even have clocking & tracking mechanisms in place, which I personally don’t like.
Bottom line, for people that safety & comfort inside a company matters more than just a lot money, this type of employment is perfect. But when you feel like you’re not making enough, consider switching routes if you’ve reached the financial ceiling.
Speaking of local market limits, some people may ask how is it possible that while the best people struggle on the local markets, others working as contractors make double or even triple the pay. The best way companies get the work done, while staying low on taxes is by hiring contractors. What that really means for companies and both contractors is everybody wins. Companies will negotiate a higher salary with the contractor, and they’ll also pay little to no taxes (country specific).
Obviously people may say, working as a contractor is obviously much better. Well it comes with its downsides. First off, yes, you make a much higher pay in many cases, but that being said, most countries out there have special taxes for freelancers, which means you’ll have to declare your income and responsibly pay taxes on your own. To name a few other disadvantages of working as a contractor, here are just a few I don’t like:
- You have a daily/hourly pay, most of the times, which means any day off taken means less salary at the end of the month, not to mention if you get sick or something happened to you.
- You have to do all the paper work, invoicing, billing, and anything which means paper work. Hiring a company to do that for you will of course cost you.
- Most of the times you’re expected to have your own hardware and software necessary to get your job done (including paid software licences).
- Deadlines & terms are usually tougher, also meaning sometimes you’ll be pushed to deliver things faster, also resulting in more than 8h/day.
- Not every month has 31 days, if you pick February for example, you can throw away 3 days, plus whatever you’re planning to take off and do the math and see how much you’re left with.
Overall the best part I love about being a contractor, is the fact that you can work from anywhere in the world at a high pay and really be in charge of your time and wallet.
We all know, no matter how good of a Software Engineer you are, working for giant companies, companies that have been for longer period on the market and are just more stable will give you a higher pay and higher developer satisfaction. Usually though, there are 2 types of companies out there: Outsource & Product companies.
Most of the times you’ll hear the term outsource, this means only 1 thing. Usually the company works with a bunch of different clients and they make their income from simply being a 3rd party coordinating work between you and the clients. Quite frankly a lot of the times you’ll probably interact way more than you thought with the clients, having to answer really stupid questions. Outsource also means not all the clients the 3rd company works with, have the same budget and the same kind of requirements in terms of money, which means different people working on different projects for the same company having more or less the same engineering experience may have different salaries.
An outsource company is really a lot of the times like a bank. They don’t produce anything, they simply arrange relationships with foreign or local companies and provide consultancy services. The heavy lifting is really done by simple developers.
While the company is supposed to take care of all the paper work and client bureaucracy, from my previous experience, a lot of the times the developers will get quite involved from company to company this varies but it happens a lot of the times.
Bottom line: not to bash too much on outsource companies, their biggest downside in my opinion is less money, tougher and stricter deadlines, less focus on quality, more focus on delivery and a bunch of other reasons which really result in software engineering burn out.
There is nothing better than working on a real world product which actually solves real world problems. I’ve mostly had the experience to work for product companies. A product company is a company which have their own products and they make their own work, deadlines, roadmap, goals, budget strategies and so on.
From my experience again, the more successful a product company is, the bigger is the developer satisfaction in that kind of company and the environment it creates.
That’s why at least from my own experience, successful product companies tend to have a higher budget, which also means you as an engineer have the possibility to negotiate a good salary, without worrying if you asked for too much.
Besides getting a higher pay, also as mentioned, you get to work on real world projects, where software quality matters more than deadlines and quantitative delivery.
Another factor your salary will depend on, is the type of projects you’ll be working on. There are projects out there that just have a much bigger initial budget, not to mention the income, if it’s a successful business.
This is why, it’s so important that you ask at the interview, what kind of projects you’ll be involved in. Depending on that, things can go smoother financially.
I personally haven’t had the opportunity to work for these types of projects, but usually when you hear the term banking, fin tech, salaries are a lot of the times crazy, meaning you can get a bigger slice of the pizza when negotiating.
As software engineers, we should not be influenced by the type of projects we work on, but just so you know, the odds are much higher to ask for a higher salary in these specific financial industries. There are bunch of other industries that have crazy incomes, just make sure to ask the right questions at the interview process. One question I found very helpful is to ask the interviewer to tell me about their income and how does the company does financially? You’ll see not everyone wants to answer that question, but who cares? Go get your money.
Level of Experience & Negotiation
Undoubtedly the level of experience/expertise an individual has, during and after the interview process will of course influence the salary. Having good tech skills & knowing how much you are worth is the best combo. The problem is, rarely there are developers that properly negotiate their salary. They either go too low (most of the cases) or sometimes too high. I personally know a lot of very good Software Engineers, that just did not have the guts to tell the interviewer I want this much. And guess what the company is never going to say: “Hey, you kinda asked for a too low pay, why don’t we just bump it up a little bit”. Quite contrary, you must expect the interviewers to try and bring the numbers a little bit down, so that they win the negotiation process.
Knowing your game, and also asking for what you deserve will make a big impact in what kind of a salary you can have as a Software Engineer. A lot of the times interviews are subjective in my opinion, nevertheless you must be prepared for everything.
The way I see it with interviews is, they are really a test you must give yourself once in a while. There are many ways to nail an interview, however that does not mean you have a very good expertise.
Bottom line: Make sure to know your game as best as you can, and don’t hesitate to ask for a little more than you deserve.
As you all know already, getting hired in a company, with years of experience and loyalty to the company, your responsibilities will grow, which also explains higher salaries.
This is why salary is also role dependent, the more you move up in your career. You’ll probably no longer be a regular Software Engineer, meaning your responsibilities will be different over time, resulting also in a higher pay.
There’s really nothing new when it comes to promotions inside the company. People come & go, but if you stay, your rank in the company may go higher with time, which usually means your salary goes higher as well, not to mention your responsibilities.
In most cases, this takes time, so I don’t really recommend this as a method to boost your salary, I’m just letting you know, this is just another decisive factor, however the financial bump is usually not that big, not to mention you have to go ahead and ask for it & prove why you deserve it.
Yearly Salary Stats
Finally let’s talk some numbers. These are the stats which show how much does a Go Software Engineer make at the moment (2021):
60–127k/year => 5–10k/month (NET)
These are not just numbers invented by me, people out there have crazy salaries compared to many other developers in the industry. Why not just check that for yourself, here are couple of websites that show pretty much the same numbers:
Again keep in mind, this article does not cover country specific taxes, just an approximation.
At the end of the day, you have to understand salary is not something fixed. It’s not a black & white situation. It depends on so many factors and most importantly on your ability to negotiate your own salary. You’ll find few companies out there that will tell you a fixed price, like you were buying something. Most companies will give you the opportunity to negotiate and prove you can ask for more, this is why learn how to master that skill as well.
Another super important detail that is part of negotiation is asking the right questions at the interview process. I usually stick with only 2 simple questions:
- What type of projects I’ll be working on?
- How does the company do financially?
You’ll see a lot of employers struggling to answer these questions, meaning you don’t necessarily have to settle for that job. As I said before, the most amazing part of an interview, is the fact that it’s a conversation where you learn so much about negotiation, so learn how to master that.
I’ve recently gave up my job and I made YouTube and online content creation my full time job. If you like what I do and find any value and want to be part of my dream feel free to support me on Patreon or with a small Paypal donation.