About 8 years ago I started studying computer science. About 7 years ago I got my first student job where I earned about 8.50 Euros per hour in a high-intensity web app agency. Back then I didn't care much about what was possible in terms of engineering teams or working conditions. I just wanted to do the thing and see if I could actually do it.
4 student engineering jobs, 2 full-time engineering jobs/contracts and 5-6 years forward I had a slightly better understanding of the software engineering business and the world economy. A question manifested itself:
Is it possible to have a top-notch working conditions as a European???
I threw this question at a lot of very successful and experienced people in the industry, even at a lot of employers and hiring professionals. Surprisingly, I rarely got clear or motivating answers. Devs usually are on the "dunno" side of things, even if they are for 20 years in business. Probably, no one really cares about the formal situations of remote colleagues. From others, like hiring folks, it's usually a long-winded "blah blah". It's targeted to be not too specific, hide that they would actually love to hire locally most of the time and keep all options open.
By now, an answer that I would have liked hearing shaped itself up after all the years of thinking about the topic, working on wildly different terms in tons of different teams and talking with mentees and mentors about their specific situations.
The preliminary answer is below. First, it explores what "top-notch" working conditions are and where to find them. Then, it concludes by looking into the challenges and facilitators of getting them.
An objectively top-notch contract
The top-notch contract is the opposite of a "horrific contract". If you signed up for a horrific contract, you work in the worst team in the world. It's full of aggressive and incompetent -10x developers. You guys are trying to build the world's most irrelevant software, something like a fart pillow app. Still, each of your movements and commits are reviewed thoroughly by the most meticulous engineering managers. And they count: If you don't ship, you die.
Your personal contract is most probably somewhere in the middle. It's the "average contract". It approximately fits the average salary of your home country, your level of experience, the value you can provide and your sales skills.
On the exact opposite spectrum of the "horrific contract" and way above the "average contract", there's the "top-notch contract": You are building the world's most important software that impacts every living soul in a good way with a bunch of great engineers and business unicorns. Additionally, to all the impact that your software provides, every merged commit makes a newborn baby rich. On top, you get to manage most of your time and the economy's best over-average salary with a fat bonus on the religion's important holidays (like Christmas).
Most probably, if you have read that far (👏), you want your contract to be between "mediocre" and "top-notch" with as much tendency towards top-notch as possible. But if there's something like a top-notch contract, where is it?
Where to look
Evidently, there are people who have been spotted to work for international, and hell, maybe even for local companies to objectively incredible working conditions as far as the world economy and software engineering industry goes.
So basically, the answer is theoretically everywhere. But here's one personal ballpark opinion and one fact that will direct your search to:
- Meaningful work: The biggest amount of great engineering teams and impactful projects are to be found in the US.
- Conditions: The most high-average salaries are to be found in the US and Switzerland. You might miss on the benefits, but as a European working remotely for those countries, you can probably make up for it by using the salary to even things out with extra services and days off yourself.
It's not that you can't come close to your top-notch contract in Europe with a European company. It's just that there are way more opportunities like this in those one or two markets.
So, knowing where to look should make it easy, right?
Now that you know the 1-2 interesting job markets for yourself, it's still a journey because there are different barriers to entry.
The market is made narrow by the hiring preferences and restrictions of the available companies so that you are left with a small percentage of companies to even speak or apply to.
Let's get the hard restrictions out of the way first.
Some companies don't consider non-local talent at all. This can be because they prefer to work with people closer to their culture and to their headquarters. This makes communication easy-peasy and facilitates non-remote work for the employees.
Other companies, mostly tech giants are local globally. Amazon has its engineering offices in many, many European cities. However, if they spend the dough, they will want some return back instead of hiring you to US conditions. Same for some smaller but still successful companies that might also have an office in Europe as a way to outsource.
Obviously, this is a big time waster, applying there, talking to all those folks, maybe passing some interview rounds, just to learn that you will be working with a quickly thrown-together team to some lame below-average conditions.
Finally, great companies with great conditions want great talent. For example, 37Signals probably hires everywhere in the world under the same conditions. But they won't hire you unless you have shown your work in practice, either at other top-notch companies or with great contributions to Ruby or Rails.
And they have a lot of great talent applying to them.
It's most probably another time waster to apply there if you really don't have a great story to tell and results to show yet.
But no great things ever happened without show-stoppers that got solved.
You'll alleviate the above challenges you take some deep breaths, have patience, chip at it, stand out and target the right places. The first three are kinda clear. So let's take a closer look at the latter two.
Everything will become easier if you have a way to stand out.
I'd start with niching down into a topic and having a story about what you are specializing in, why and how this went for you so far. Big plus points for some roles and companies if you still can showcase some kind of a generalist self.
Specialization can happen on different levels. For example, you can go all in on the most human-friendly technologies and communities, like Ruby and Rails.
Or you can go a level higher into the kinds of things that you build like mobile apps or web APIs. It can also be a mix like APIs in the Ruby on Rails world.
You could mistakenly try going too niche with a topic like mobile games in Ruby on Rails (which isn’t a thing really at the moment, as of my knowledge cut off in October 2023).
With your niche pinned down, you will also have an easier time working on your engineering game and stand out on a skill level. Once you know where you are going, it's easier to connect with the right peers and educators, pick the right books, dive into the right courses and enjoy the right communities.
Finally, now that you have a niche and are doing active work to become your best self in it, being public about your work is invaluable for going from being perceived as a faceless application number to being seen as a hot asset running around. I'd say the top two ways of being public are to participate in major open-source projects or share what you learn. Sharing what you learn can be a lot of things, like helping others in tech communities. If you want a speed boost: combine both in your niche.
Extra pro tip: Just physically (even if it’s online pixels) getting to places where many of your peers and potential employers are like conferences, workshops, and meetups can shorten your time to goal by 10 and 100 times.
Target the right places
You already know that you need to get more specific than just clicking "Apply now" on all LinkedIn company profiles that seem to be cool.
Firstly, targeting successful, mid-sized companies that hire around the globe is key. Again, you don't want to waste your time writing and sending applications to companies that don't hire far-away aliens like you. You also want to avoid doing 16 interview rounds with companies that have an outsourcing office in your hometown just to learn at the offer stage that, actually, you'll get outsource-ready conditions. What you want is a company that is obviously successful enough to hire abroad but busy enough not to get into the ins and outs of investing in having outsourcing offices in Europe. Most of the time, these companies hire contractors that can do work on their own. This might also mean that a lot of times you won't send out applications, but instead, a couple of sentences asking to clarify the terms and company's inclinations if a job description does not explicitly explain the possible terms but seems like a good thing in general.
Secondly, well-funded VC-backed start-ups (like Y-Combinator-well) often have great people to work with and are hiring globally to get their potentially awesome products going. Here you will sometimes want to show more of your generalist self.
Lastly, the companies, individuals and businesses that you think of as a potential business partner (i.e., your employer or client) are hopefully interested in your specific niche services. Actually, they really need what your core offering is. That's why you niched down to something in the first place. I have worked in at least five different tech stacks professionally at this point in different industries. Business partners will always point out how cool it is that I have a wide experience. But it's the vertical stick of the "T" in the T-shaped skill collection that they are most passionate about. They'll greatly appreciate it if I'm solving their problems on a regular basis already, ideally with the tech stack that creates those problems in the first place on their end in their industry.
Find a way to formulate your work condition goals in a way for the interviewees and potential partners to understand early on the conditions that you plan to work for (big time saver) and be open about it in the very first conversations.
With all of the above, I took some minutes of your time but I hopefully saved you some hours in the long term and set you up for having a mid-term plan for tackling your personal top-notch contract.