Escribí este ensayo para un público Mexicano. Sin embargo, no creo que mi español sea lo suficientemente bueno, entonces lo hice en ingles. Espero que lo disfruten y le saquen provecho!
Do you know someone who is living The Mexican Dream? It's not a suburban home in generic culdesac somewhere in the US. It may involve a dog, but it's not the main point. What it does involve is a Silicon Valley salary coming into your bank account with only pesos trickling out.
It's that guy who lives close to family in Colima, but instead of making $27,000 dollars a year at a local company he makes $150,000 working for a US tech startup. He still eats the same 75 peso comida corridas though, if he doesn’t eat at home. He’s living the dream.
Or that developer who moved back from NYC to Mexico City to be able to raise her children around their cousins (and make sure they have good Spanish). But she still buys a trip for the entire extended family to Disneyland every winter. That is the Mexican Dream.
If you are a software engineer you live in an interesting time. Your skills are marketable around the world, and are incredibly well paid in some places. At the same time your job is one of the easiest to work remotely. There is therefore a monumental opportunity to work where the money is, but live where the cost is low.
If you are a Mexican software engineer, you have an additional advantage. You happen to be neighbors with the country that pays software engineers the highest. The United States, for all its flaws, pays software devs 4-5 times more in big cities than in Mexico. A 3 hour flight equates to a 3x jump in salary.
It sounds easy, but there is a catch - you need to go to the US first. Why? Simply put, a US company won’t pay you a US salary if it doesn’t need to. They will most likely try to match a Mexican salary level. Go to the US though, and you can “level up”. Once you have been there for a few years, you can go back to Mexico without worrying about your salary going down.
This essay is a guide to show you how to play your cards right, and multiply your salary by 5 in 3 years or so. This is the dream, as I see it. All I ask is that you invite me to your new beach house in Puerto Escondido :)
Step 1: Getting a job in the US
If you are getting excited now, I don’t want to burst your bubble, but getting a job in the US is not as easy as it seems. For starters, tech companies have a fairly rigorous interview process. But beyond that, the US is a very insular place. Americans have a difficult time putting a value on what is outside of their borders. A case in point is universities. Your CV could have the best university in Mexico, and a US recruiter would not really be able to put a value on that. Same goes for your professional experience.
Recruiters unfortunately are risk averse in the interview process, they need to manage the engineers’ interviewing time, and so they don’t take that many chances. They also spend on average 30 seconds reading a resume. So if you combine a university they have never heard of + companies they have never heard of + Mexico, they often just say “Next”.
Optimize for getting your foot in the door at all costs
The easiest way to counter this is to simply try to get in por las buenas o por las malas (not illegally of course). Don’t worry too much about your title, role, the tech stack, or the salary. All of those can and will change over time.
Take a long term view of your financial compensation. Mark Suster, a VC who blogs at Both Sides of the Table, talks about Time to Learn vs Time to Earn. I encourage you to think of your first years in the US as a time to learn. Focus on that, as long as you make sure your cost of living is covered.
You will be earning once you get a few raises and move back to Mexico. Raises and job switches are in fact the place where your salary increases the most. You probably would want to change jobs a few times within the US. The Muse gives you more details on how to do this here, when is the sweet spot for switching jobs.
You will see, as soon as you change your LinkedIn profile to “San Francisco” and your employer to “Airbnb” - the recruiter InMails will rain down on you like CDMX in summertime.
All in all, It's better to be the potato peeler at Pujol, than the Head Chef at Applebees (or Vips). You will learn a lot more, and you will have way more room to grow. And especially, you will be working with smart and driven people - which is by far the most important criteria when evaluating a new job.
Don’t go to work at a client services company
Many software engineers in Mexico end up working at agencies and client service shops, and it makes sense - labor is cheap and you can fly up to the US for meetings in an afternoon. The temptation would be to work for an equivalent in the US. Beware! Those types of jobs often require you to be on-site or at least close to a client. That means staying in the US, and not being able to work remotely in the future.
Obviously your plan may be to stay in the US - that’s great! Welcome to America! 🇺🇸
Use the power of the TN visa
As a Mexican citizen, you have another advantage not afforded to any other group (except Canadians). When NAFTA was created in 1994, they added a provision for skilled labor from the member countries to be able to work easily within their borders. That means that if you meet the criteria and you get a US job offer, you can easily get a visa to work in the US. Compared to the H1B, which is lengthy and expensive, the TN is an incredible option. Use it.
Make sure you meet the criteria and have the paperwork in order. That means finishing your studies and getting your titulo. You will need to get a degree in Ingenieria en Sistemas or something similar. It also means getting your cedula profesional.
I’m no immigration lawyer, but there are some that post interesting things on the Internet.
The State Department has some basic info.
And here are some more details in Spanish.
Take the time to research these and make sure you have the right documents. If a friend has gotten it before, ask him/her!
Step 2: Becoming a Dependable Employee
Congratulations! You have made it to the US. You are probably living in a large city or smaller tech hub. NYC, SF, perhaps Austin or Chicago. Your salary has drastically increased, but so has your cost of living (don’t worry we will reduce that when you move back). Either way, you have successfully completed the first and arguably hardest step in the process.
It doesn’t end there however, when you are planning on going remote. You need to start thinking ahead and setting yourself up to make it happen.
Be a dependable employee
Put yourself in the shoes of a startup founder or engineering leader in a big city like SF or NYC. It's hard out there. Outside of finding the ever elusive product/market fit and building a product roadmap, they are constantly having to recruit tech talent, and often are worried that their current engineers will jump ship, lured by a hotter company or maybe a giant like Google or Amazon.
How can you really get on his or her good side? Be a dependable employee - aka someone they can count on.
Safegraph CEO Auren Hoffman has a great post titled How do I make over $200k per year? The lessons are straightforward but incredibly useful, and very much applicable to you.
Do what you will say you will do
Manage your bosses
You will go much further following those principles than being a disagreeable genius who disappears for days at a time.
Think of it as employee equity that you are building up over your time in the US company. Every time you do what you say, manage your bosses, and work proactively, you are depositing some value into your “employee equity” bank account. The bigger it is, the more leverage you will have to negotiate remote work. And if you are a nice person to top if off, well then, how will they be able to say no?
Understand the company, the culture, and dysfunctions
Every company is dysfunctional, and you need to find the dysfunctions that work for you.
How does the product team interact with the developers? Who makes the decisions? Who ends up fixing other people’s code? Who never interviews on time, and is disorganized while doing it? Who comes up with loads of ideas in company meetings, but never seems to actually do anything?
Identifying all these people and processes allows you to know what is not being communicated - whether in Slack or in company-wide emails. That is supremely important once you no longer work in the actual office.
Stay on the IC track, don’t aim for management
Being an IC (Individual Contributor) versus moving up the management hierarchy is a decision that all software engineers make at one point in their career. If your goal is to go remote, I’d advise against going for management.
Many companies have not figured out how to integrate remote managers. This is changing, but you’ll still see many managers be on-site while their teams work remotely. Generally you will have more luck as an individual contributor.
Also, most (good) companies have a career track for individual contributors that rivals that of managers in seniority. Basically, you move up to more of an architect role. And you get paid similarly, so $$ is not an issue.
And lastly, did the younger programmer version of yourself dream of doing status updates and 1-1s? Didn’t think so.
Step 3: Negotiating Remote Work
Quick reminder that if you want to stay in the US, by all means do! We need all the intelligent and hard working technologists we can get.
However, for the rest of you - lets tackle how to approach the conversation to move remote and what tools you have at your disposal.
The Secret: Nearly everyone is “open” to remote
When you come across job boards, you’ll often notice signs saying “on-site only” or “we are not considering remote work at this time”. Dig a little deeper and you’ll see employees for an SF based company anywhere from Colombia to Europe.
In fact, once you join a company in the US , you will often hear of an engineer who “lives upstate” or “who is in Germany for the summer”. Why is that? Let’s dive in.
The cost of replacing an engineer is incredibly high
Lets run the numbers. Imagine you leave the company. What are all the costs involved in replacing you? Let's assume you make $150,000/year. Lets also assume that an engineering hour costs $150, whereas a recruiter and HR hour costs $100.
External Recruiter costs (commission, job boards...etc…): 20% of $150,000 salary or $30,000.
Internal Recruiter hours interviewing: 15 hours@ $100/hour = $1500
Engineering hours interviewing: 40 hours @ $150/hour = $6000
Training new engineer: 80 engineering hours @ 150/h + 20 HR hours @ $100 hour = $14,000
The total cost (not including the salary) - is a whopping $51,500, just to replace you.
And that doesn’t include the costs of interrupting the other engineers to interview and train the new person. And it doesn’t factor in the risk that the new person is not as good, or quits early.
(If you are more interested in this calculation, I highly recommend you read a post by Aline Lerner over at interviewing.io - You Probably Don’t Factor in Engineering Time When Calculating Cost Per Hire. Here’s Why You Should.)
Keep these numbers in mind when you are negotiating - you have way more leverage than you might imagine. Any smart company should be calculating these as well.
How to help make it easier
Work from home for a few days, then try a week. This would be a good time to ponerse las pilas and really do good work, both on the coding side, and the communication side. Show how you can be even more productive when working remotely.
Bonus points: bring some of the team down to Mexico for a few days. It's much easier for them to visualize remote work if they have been where you will be living.
When you are ready to have the conversation, I would give the company ample time to adapt to your moving, but also put a specific time horizon so that it doesn’t become a “permanent maybe”. A good example would be asking to move in 6 months.
Once you are ready to chat, muster up your courage and get ready for the 1-1 with your manager!
Here are some arguments you can use
“I’ll only be a few hours away, and can come up at any point for important meetings.”
“I’ll be in Central Time, so there won’t be an issue for standups, interviews, or remote happy hours.”
“Once I set my LinkedIn location to “Los Mochis”, no US company is going to find me anymore, and that’s good for you!”
“I love living in the US and working at this company, but I always wanted to live back in Mexico.”
“My whole family lives in Mexico, and I ultimately want to live close to them.”
“Moving back to Mexico will really allow me to save more money.”
“Instead of buying a parking space in SF, I can buy a mansion in Merida!”
What if they say “no”?
Bummer. If that happens you have basically 3 options.
If it's a “soft no” - aka they are open to it but not just yet, you can wait for another few months and re-visit. The risk is that they keep on postponing a decision indefinitely. That is why you want to get started ahead of time and make sure to put a timeline around your decision. It's very possible that they have been thinking about remote for a while but have simply not gotten around to setting it up.
Otherwise you can quit and try the same thing at another company that is more overtly remote-friendly, or one that is 100% remote. It will be much easier for you to get the initial interview if you are coming from another US tech startup.
Here is a good list from Remote OK.
Good luck on your journey, and let me know if you end up making this dream a reality!