On the other hand, fail to pass the algorithms interview, you are essentially stuck at 140-170k, not growing, not seeing a path forward. Every job feels the same, pays the same, and really doesnt need you, you are a cog.
It all comes down to a test.
And willingness to relocate, possibly across the world.
And feasibility of getting an US visa.
Or facing much, much stiffer odds if you want to be paid that well as a remote worker, since the number of remote spots with that kind of pay is incredibly small compared to the amount of people fighting over them.
Sometimes good opportunities are at times when you're not ready for them. We all get some sort of a "shot" but it's very difficult to see sometimes, or to make the risky move of accepting it.
> And feasibility of getting an US visa.
Or Switzerland, which is relatively easy for most Europeans, and easier than US for virtually everyone, I think.
And the big tech cos have been constantly hiring and are mostly accepting full remote. Even during covid I readily had interviews lined up with FB/Google/Amazon.
> It all comes down to a test.
Well, that's more informed than a lottery ticket, but it still sounds like a gamble compared to nearly every other professional industry.
I find this provides me with a certain freedom. If I’m tired, I can just not do something. I am freed from pressure and high expectations as the worst possible outcome is I get fired and end up in the exact same type of place.
Is this amount of pay considered being "stuck" now?
And are willing/able to move anywhere in the country.
The first thing I tell anybody starting out who asks me for advice is to study algorithms. Not because I think it will be inherently useful to programming, but because I think it will do more to help them interview for high-paying jobs than actual coding skills.
Has developing software really gotten worse in the last 10 years, have expectations gotten higher, or what? I’ve been around 20 years and (anecdotally) for me it’s better than it ever has been. I’m a mobile developer and not a web dev though, how much does language matter in job satisfaction?
Now a days, being a web developer means you run a Jenkins job to webpack your 1,000 JS libraries and deploy your React Docker container to multiple clouds.
Edit: Not to mention the legal team has to sign off on your cookie compliance strategy
I totally see the article's point about being alienated from your labor.
My IDE would do the publish step for me but I see your point about the 'olden days'.
I would really hate to be getting into the web dev job market right now because the amount of things that it is assumed you should be able to do is incredible.
A: A large pizza can feed a family of four.
First heard that joke around 2001.
I just started with a US company at $130k CAD + stock (they are saving a bundle vs if I was in the states, and I'm making $10k cad more than any Canadian company was offering, plus stock), two rounds of easy interviews, etc. People that want to make a ton of money get poached into the states all the time, because Canadian companies just aren't willing to play the game...
My last Vancouver position was $80k cad for mid level dev, no raise after 18 months, shitty equipment, etc... My first junior dev job ever was $75k USD in a low COL city in the states plus stock, bonuses, etc.
Being an American that has worked in tech on both sides of the border, there is definitely a culture difference. I haven't figured out exactly what it is, but it feels like Canadian tech culture is a little too conservative, cautious. I can't quite figure it out, there is capital, talent, access to markets
I think it depends. I hate JavaScript and Python. My coworkers don't care about language. They are working on the product, the goal is a fully functional service with a huge DAU. I can't complete product-specific tasks. I had been writing low-level software for networks, Linux kernel patches, eBPF helpers/tracers and now I'm working on hardware virtualization. In my free time, I'm prototyping devices on my FPGAs. It's really interesting. I can't imagine that I will drop my current job and will start cooking or guiding.
I'll also argue that after 10 years as a software engineer, if you're still just putting buttons on a page or waiting for next feature to show up on your queue, you're doing it wrong. Software engineering contains a large range of disciplines. You don't need to pick tech stacks, write code all day, or specialize in radar wheels.
Sometimes the job market doesn't provide people with fulfilling jobs and roles. They might not have any choice in doing it 'right' and just have 'wrong' as an option.
However, I have to agree somewhat with the assertion that software is getting more specialized. When I started out, the advice I repeatedly got was not to worry about what programming language you knew, because every job you would work with would expect you to learn whatever their tech stack was.
Given the author's interest in language and technical projects, I think they should add Sales Engineer & Solutions Engineer to the list.
Both are client facing sales / application setup roles... and Tech Evangelist roles as well.
Unless the author just wants to get away from IT in general, which is understandable.
splitting up frontend and backend development,
loading a dependency for every problem at hand,
microservices and the explosion of frontend frameworks
It is not as if you have to do that.I write a lot of software and I do the full stack, have zero dependencies, don't use microservices or frameworks.
I enjoy doing it and getting happy emails from users every day.
My suggestion if you love coding: Create your own world which is exactly as you like it.
I love this concept but I think we all need to keep in mind that not everyone has the same options. I have been quite lucky in my life that I have had the option to do things my own way but I know a lot of people that don't
EDIT: https://archive.md/m8T5i
“we are creating extra barriers to communication”…
I mean, there are a ton of good reasons not to work at an early-stage company (not the least of which is pay), but:
- You want to be connected to the end product? At a 5-10 person company, you'll be seeing customers (and customer complains) pretty frequently.
- You want to own more of the stack? The "ops team" will be your left arm. Everyone will wear a ton of hats and you can be as full-stack as you want, up to and including non-coding roles like Product or Project Manager if you want to.
- You want to avoid bureaucracy? Hard to have much of that when there's only 1 or 2 other engineers.
I agree with other commenters here - it sounds like the real fix is to just work for a company that fits his preferences better. And given the recent surge in remote work, that's never been easier.
Of course, if you've been smart and wise, you can afford not to care after 10 years of software development
I think working for any large company is a horrible thing regardless of your role.
We're still early enough in the data world that it's easy to find that sense of ownership over the whole "data product." You probably won't get paid as well, although it's possible, but the pay won't be bad either.
As a side note, I question the author's appeal to Marx as an authority.
Natural reference to make if you're writing about alienation from the product of one's labor.
For me, I didn't have any choice in the matter, but that's water under the bridge. I'm actually glad it happened.
> This time it will just not be on a payroll anymore, but on my own time, on my own terms, and for fun!
I'm having a blast. The only really annoying thing, is that lots of folks seem to equate "having fun coding," with "writing bad software."
Nothing could be farther from the truth (at least, in my case).
It's funny because, in my current job (senior designer at a European unicorn) I check all the boxes the author is looking for in his new career:
- My routine covers talking to customers, designing the UI, doing alignment sessions with the C-Level, and many other things. I am as generalist as I could be; - I also see the direct impact of my work on the product.
For me, being less a specialist and having a direct impact on the product sucks. It's a lot of responsibility and quite often very stressful.
As someone who does it only for the paycheck at the end of the month, I would be happy to earn the same amount of money I make today as a useless cog of a larger company.
Those are indeed thorny issues that many people deal with and if he can find a way to still code outside of that environment then it seems like a good plan for them. I know I couldn't work in an environment like that.
There is one issue that they mention
> It comes down to a simple observation. Everything is chopped up into tiny parts making us into experts of radar wheels instead of a whole car.
I see this in a lot of environments like Vue, React etc. They all seem to me to be built by and for large organizations/groups and not a solution for single developers or small groups.
There are a lot of tools and libraries that I would love to try but they seem to be 'out of scope' for me.
https://scribe.rip/@jamesrainbows/why-i-am-getting-out-of-so...
The author's idea of completely abandoning software development seems a bit extreme. Software Development encompasses a huge variety of niches and disciplines, and ten years doing the same kind of work can get wearying. The remedy is to change it up and experience different paradigms. This of course will threaten the upward slope of compensation that one begins to expect (and frankly, needs, because of rising costs of one's commitments, such as raising children). The challenge is to make one's peace with the prospect of staying flat or going down in wages, really.