Life can be very good to individuals sometimes. Other times it gets really tough, damn sinusoids even appear there after electromagnetic theory class. Well, a bit of history from those stories that, even if they don’t repeat themselves, sometimes rhyme.
To read this article in spanish: ¿Qué necesito?
This blog is focused on embedded systems development, covering mostly technical topics. Although I’ve also included several times how the learning or development process goes from the somewhat more human and less machine side.
Contrary to what people might think, Oaxaca can be very harsh. The truth is that in this country, a lot was invested in infrastructure and economic stability in the center of the country, the big cities, and the border. Nothing more. Oaxaca, where I’m originally from, being considered very low priority in production, industrialization, and services, ended up being cataloged as a Tourist Zone. And yes, its landscapes are very beautiful, its food is very tasty, its people are wonderful—they invite you to share everything they have and never skip the warm street greeting as a good custom.
But its main economic engine of yesteryear, agriculture, was abandoned.
After NAFTA, it seemed like Oaxaca became a migrant factory (both domestically and internationally). Agricultural production, although still abundant, can’t be sold at competitive prices, and even among locals, external products are preferred over what’s grown by their neighbors.
How does this connect to my personal story? I’m a descendant of these farmers who had everything and now survive on the little that the land and local market give them. Now my grandmother survives as she can, taking care of a trio of sheep, some chickens, a goat, and a couple of cows. As my readers know, I spent half a year helping her with her lands, in a well-deserved break from the technological world, delivery times, industry demands, and fights with Systems, Hardware, and Project Managers.
So I started thinking it would be a good idea to tell my story of how my developer journey has been. And it also serves as a way to complain and get out the feelings I’ve been carrying around.
Anyway, now I’m trying to get a job again in the “High Tech” world and, as I already anticipated in this sinusoidal thing called life, it has been harder than I thought.
Brief History of How I Became an Embedded Software Engineer
My High School Years
To be honest, I don’t even know where to start, but I’ll try to weave a more or less coherent story. Around 2008, halfway through high school, I reconnected with my friend Diego, a genius in the maximum expression of the word, and I say reconnected because we had an academic friendship-rivalry since we were 11 when we met in 6th grade.
As we say among friends, he was born with biological turbo. To others, it seemed like he could memorize everything he saw, read, or studied, plus he had a superhuman understanding of the world, grasping things that I only managed to assimilate in university.
The fact that in high school we ended up in the same group was a turning point that defined my professional life, because many times, and against your will, when the academic system saw the potential of “advanced kids” in public education, you were almost forced to enter knowledge competitions to “represent” your institution with honor.
In my first semesters, I had stopped making studying a priority in my life. I was in that teenage stage where I listened to gangsta rap, nu metal, and narco ballads, joined the school’s theater club, and barely passed subjects without much effort. But at one point, after gambling my math grade solely on the exam (usually grades were the sum of credits assigned to the semester exam, workbook, class participation, and attendance) since I had skipped several times to go to the arcade, and I was too lazy to do 50 or 60 algebra exercises, I told the professor I’d bet everything on the exam. The professor, perhaps convinced I would fail, agreed, and four other brave souls did the same. Only two of us passed, with over 90% accuracy, which gave us access to the “smart kids” list and privileges I discovered months later.
In the third semester (of six), since desertion was high in my first group—almost disappearing—they integrated us into other groups partly because we were very few and then based on our technical training, computer science in my case. And that’s where I had Diego as a classmate. At the same time, applied mathematics competitions began, where high school students solve problems in combinatorics, number theory, some discrete mathematics, and geometry.
For some reason, I could handle that but didn’t excel too much, although I put in a lot of effort. And at the same time, I had to fulfill my duties in other subjects—if I remember correctly, I was taking about 7 or 9 per semester. That’s when I asked Diego how he did it; we barely saw him in classes, and he had high grades in all subjects.
Then he revealed his secret: he competed in the Mexican Informatics Olympiad, and by then he had already won nationals twice. So he had a deal with the high school—he’d take care of winning that competition, and they’d exempt him from the boring subjects.
In my understanding, I said, “What do I need to do the same?” So he told me we could talk to the professor. That’s how my journey as a developer began.
It turned out that computer science was pure mathematics converted into code. I entered the game, made an effort, and managed to sneak into nationals. It was fun working with Karel the robot and learning some C language to solve those combinatorics and calculation problems that were tedious and tiring when we did them on paper.
And that wasn’t all Diego taught me, because he explained things better than the professor, and he was really the one who gave me all the C language hacks and logic that I still use today. The other thing he showed me in those days was a computer in the computer lab, one of those white boxes you covered with plastic so they wouldn’t get dusty, the ones we were used to seeing with Windows 98 or struggling to run Windows XP (in 2007-2008 they were already obsolete equipment). But the system looked different, and Diego used it with a black screen full of text.
It turned out it was running some type of Linux, either Mandriva or Debian. Since I had a custom-assembled “Pentium 4” because my parents told me they weren’t going to spend so much on a device that would only serve for us to be playing games (my brothers and I)—which was partially true—I took a copy of Mandriva. After understanding very roughly how an operating system works, I spent hours and hours of my life trying other Linux distributions, settling on Fedora. But that’s another story.
So when it came time to choose what I was going to study, I decided on Electronic Engineering. At one point I thought about computer science, but I also like making things physically and not just in imagination, so the career fit me like a glove.
University
In 2010, high school ended and the next stage followed: University, which was truly difficult. Given my economic conditions, I didn’t have many options, there were only two: Instituto Tecnológico de Oaxaca (ITO) (now I don’t know what it’s called, TecNM Oaxaca, something like that. As a note, the day these lines were written, the page was offline and the information came from their Facebook page) and the once glorious Universidad Tecnológica de la Mixteca (UTM).
Actually, the decision was simple, especially seeing how a physics professor had the power to “secure” a place in the ITO for a classmate through a phone call for a “small gratuity,” let’s call it. And for UTM, you only needed to pass an entrance exam, which for some reason had the same classical mechanics exercises I had to solve in genius kid competitions.
Not to extend this part of the story further, university cost me a lot—not in money but in effort, tears, and blood. In fact, at the beginning, about 40 new students entered the preparatory course, 30 of us enrolled in the first semester, plus about 6 or 8 repeaters. After finishing 5 years later, 8 of us graduated, only 4 without failing any grade. Once I conquered that, I thought professional life would be easy, but it wasn’t.
I can only say that university, from my point of view, was quite tough. The demand was very high, the professors mostly teach very well, they master the subjects and content excellently and know how to explain it, although the demand in grading and evaluation was also high, which hits grades and GPA.
So between the demand and the bad times, drinking sessions, watching your friends fail or their economic resources not letting them continue on the path… Those things hit and take their toll both physically and mentally, added to those who were bad professors—the minority, but they exist whether we like it or not.
The truth is that getting out of there, as a song says: it was from hell to glory. But I made it, and along the way I learned about microcontrollers, understood how computers work, and learned enough physics, electronics, and mathematics to be an embedded engineer, one of the good ones… except for one thing: my English was terrible. And I did make an effort to learn—I mean, it’s not like it has improved much, but at least I can now have a technical conversation, greet people, and write some of these lines, as I’ve improved quite a bit.
And that lack of English in my life put a brake on my developer journey for years.
My (Professional) Life in the South (of Mexico)
Network Technician
Upon graduating from university, having made friends from later grades and being one of those who arrive still drunk to exams helped me get a job quickly as a network technician at the University of the Sea, a sister university to my own in a paradisiacal beach in the state of Oaxaca: Puerto Escondido.
So for 2 years, I got to live what for others could be the great dream: living by the sea in a job that didn’t demand too much cognitive load, “only” repairing computers, setting up audio equipment, backing up servers, fixing printers, installing and monitoring video surveillance cameras. And later fixing anything that works with electricity because another of my skills is understanding mechanical, biological, computer, or electronic systems in a short time.
The bad thing about all this was money. Salaries are low (they say you shouldn’t talk about that, but at this point I don’t care anymore. In those days they gave me barely 7,900 Mexican pesos a month, around $420 USD back then), and when I tried to negotiate, I ran into the great southern employer barrier. The answer was: “The salary is a number in some Excel file and it can’t go up” (at one point I thought this was because it was a public institution, but later I realized it’s business culture).
Besides, I was working for an administrative department, and when I wanted to do some research due to the boredom that started hitting me because the tasks were repetitive and didn’t challenge me mentally, I received an official document with many bureaucratic reasons that in summary said: “Don’t get into academic things.”
I ended up resigning to start a company with several of my friends.
Playing Entrepreneur
With the few savings I managed to gather after covering my expenses, I joined some friends to found a small company. Our plan was to commercialize electronic components, gadgets, and 3D printers. At first, we weren’t doing too badly economically, but we didn’t have many resources either. However, between poor administration and environmental conditions, we ended up facing an unexpected setback.
We got involved in a federal program that, broadly speaking, diverted resources through small startups to finance the 2018 presidential campaign of a party that, in the end, didn’t win. I won’t go into more details, but that was the main reason that ended our assets, left us in debt, and almost completely destroyed the project. The project failed, but the learning was immense.
Between 2015 and 2019, we struggled to keep the company afloat with the long-term idea of turning it into a software consultancy with an embedded department. Unfortunately, we didn’t achieve it. This experience, although hard, opened the doors to another technical job that I’ll tell you about later.
Now as an Electromechanical Technician
In May 2018, I began one of the most difficult work experiences of my life. I managed to get into a federal highway administrator in the municipality of San Pablo Villa de Mitla, Oaxaca.
As a parenthesis, for months I unsuccessfully tried to get a position as a junior engineer in embedded systems. I applied to companies like General Electric, Continental, Hella, Capgemini, Bosch, HCL, and several startups, but I always received the same responses: “You don’t have industry experience,” “your experience is only as a technician,” or “your English level is not sufficient.”
In this new job, the reception wasn’t exactly warm. The human resources message was clear: “There’s a line of people wanting to work here. If you don’t like it, you can leave, because nobody is indispensable.” That’s how my stage as an electromechanical technician began.
In the upside-down world that is Oaxaca, I ended up being the one who knew how to do almost all the tasks required by the company’s maintenance plan. Although it sounds arrogant, I even trained who would be my boss. However, in management’s eyes, I was the least productive. How is that possible? My boss, with higher rank, assigned all work orders, even though he didn’t understand what they were about, and I had to execute them. Once again, I became the “expert” in everything that worked with electricity.
The maintenance manual said my job was to clean PCs with a cloth and spray circuits with isopropyl alcohol. In reality, I had to debug processes on data servers to diagnose recurring failures, give corrective maintenance to servers, install an industrial UPS, and repair radio links with pirated licenses that I had to learn to use on my own.
However, I received reports for absurd things, like “doesn’t clean his work area.” They never mentioned the context: for example, when I repaired an emergency plant at 2 AM (my shift was 8 to 16 hours) in the middle of an electrical storm and, exhausted, forgot to put the toolbox back in the correct place.
Those situations overwhelm you, so I decided to focus on improving my situation. I used the office PC to take courses on edX.org and accredit my knowledge in embedded systems. I haven’t mentioned it explicitly, but since I learned to program microcontrollers, I haven’t stopped doing projects. I also began studying English self-taught, like almost everything I’ve learned so far.
Months passed, and in December 2018, after several unfortunate events—like being sent to buy carnitas or serving as a driver for bosses who got drunk at their meetings—I made a decision. I didn’t want to endure more workplace abuse. All this for a salary of barely 9,500 pesos a month(around $420 USD back then), an already low salary in those years.
Fed up with the abuse and with a salary that didn’t justify the effort, I knew I had to get out of there. But the path to my goal of working in embedded systems was still full of curves. What came next taught me that, in this sinusoidal life, each fall prepares you for the next jump.
My First Job as an Embedded Software Developer
In January 2019, with my edX courses finished and my English somewhat improved, I started sending my CV to any vacancy I found. Finally, I made it: a small company in Mexico City, Code Ingeniería (which, as far as I know, has already changed its name), contacted me.
I started working in May, when roses bloom. Traveling to the great capital was an incredible experience; the environment was just as I had dreamed. The work was pleasant, challenging, and full of learning. I got to work with cutting-edge NXP technology, specifically i.MX 8 processors in their Quad Max and Quad X Plus versions.
The challenge was enormous, but exciting. I learned to build embedded Linux images with Yocto Project and to develop applications for the Cortex-M4 MCUs integrated in the same i.MX 8 SoC. I can’t complain at all; the environment was collaborative, with embedded labs sessions where hardware and software teams shared knowledge, presented successes and failures, and enjoyed coffee with bread.
The salary, about 20,000 pesos a month (around $935 USD back then), was good by my standards. But, as in this sinusoidal life, everything changed on March 19, 2020, when COVID-19 began spreading uncontrollably in Mexico. We moved to home office and, shortly after, the dreaded pandemic layoffs arrived. As part of the Research and Development team, a department that doesn’t generate immediate income and is expensive to maintain, I was among the first to be cut. It wasn’t for technical reasons, but for economic analysis. They laid me off in May 2020.
Dextra Technologies
2020 was a tough year, but it allowed me to reconnect with my family after years away (I left home in 2010). After months of uncertainty, with a job market practically stopped by the pandemic and companies demanding “the best of the best” for the new home office model, I managed to get a job in December. Not without first facing more rejections from companies like Bosch, Continental, Capgemini, and Alten, always for the same reasons: experience, English, or simply “you don’t fit.”
At the end of 2020, I joined Dextra Technologies, a company in Monterrey. I worked a few months from Oaxaca in home office before moving. I can’t complain about Dextra: everything was great. I made great friends and faced technical challenges that, although demanding, no longer felt so overwhelming. I participated in a project for a client in Guadalajara, a company known in the automotive industry for its tires (which, ironically, had rejected me in two selection processes for reasons I never understood).
My work consisted of developing for an ECU, the main communications system of a vehicle. It was a very enriching experience, as the project involved multiple departments: hardware, software, systems, mechanics, and testing. I had the opportunity to interact directly with the client, an important automotive conglomerate from Europe and the United States.
At this stage, I applied almost all my knowledge in C language, learned standards for coding clearly and preventing errors, managed requirements, and deepened my understanding of the CAN communications protocol, from circuits to database management. It was a stage of professional maturity: I finally felt I was living up to my dreams.
Dextra was a great place to work. The initial salary was 28,000 gross pesos (about $1037 USD in those days), and by the end I almost doubled it, plus bonuses, incentives, home office, and even tacos on Fridays at the end of the month.
At this company, I went from being a junior developer to being about to reach senior level. My performance was solid, and the client was very satisfied with my team’s work.
I started implementing code under the technical leader’s guidance, then became a software integrator and responsible for developing certain project variants. Eventually, I led new recruits (on the client side), instructing them in the project and training them in the use of tools I had mastered. I even had to confront their bosses when they assigned them useless tasks. I’m proud of my “padawans”: several of them are now technical leaders with their own teams.
Later, I joined a smaller but no less challenging project to develop a brake module. On the team, they called us “the firefighters” because we solved complex problems under pressure. The tasks assigned to me were challenging, but I managed to complete them successfully, although they took time.
However, as the saying goes, history doesn’t repeat itself, but sometimes it rhymes. Dextra grew so much that it was acquired by a much larger company. Apparently, embedded systems weren’t their priority. Little by little, projects decreased, and I joined an internal development team where I programmed STM32 microcontrollers and worked with Raspberry Pi boards. Everything seemed to be going well for a few months, but in the end, the embedded systems department was closed. They laid us all off a little over a year ago.
Life’s Turns
Once again, I’m actively looking for opportunities, but they’re not presenting themselves. Vacancies for embedded systems developers are scarce, and I believe this is due to several factors: the hard blow that the Asian automotive industry is dealing to American and European brands, the intense geopolitical environment we’re living in, and above all, the crisis the technology industry has faced for more than a year.
I’ve applied to several vacancies in my city, since for personal reasons, I can’t move around the country like I could a few years ago. However, the job market is very competitive, and for the few opportunities I’ve applied to, for some reason, I’ve been left out.
Now I have leadership skills, software integration, and decision-making abilities. My technical knowledge is broad: I master C language, Bash, Linux, and knowledge of Autosar, CAN, DOORS, hardware analysis, software debugging, and many other competencies I’ve accumulated in my years as an embedded systems engineer. Even so, I haven’t managed to get interviews; it seems like my resume doesn’t pass the Human Resources filter.
At the time of writing these lines, I’ve only had four interviews with recruiters, and only one seems promising to reach a technical interview. If the situation doesn’t improve, I’m about to return to electromechanical work, something that doesn’t excite me, but that might be necessary.
Trying to answer the question that gives this post its title:
What do I need now?
Apparently, I still have a lot to learn—maybe FreeRTOS, Containers, high-level languages like Java or Python, or maybe change careers altogether.
I write these lines to share my story and explain why I created this blog: to leave a record of the lessons I’ve learned, hoping they’ll serve those facing similar challenges, and as a portfolio of what I’m capable of doing.
That’s all for now, farewell.