The growing demand for technical talent has led all companies from startups to traditional businesses to embrace new models for their engineering teams, including a globally distributed workforce.
Africa, which has a pool of talented engineers, is becoming the new continent for setting up distributed engineering teams. And one country, in particular, Morocco, has successfully positioned itself to attract companies looking to build these teams.
In GitHub’s 2019 report, Morocco had the most growth amongst African countries with established developer communities, outpacing Kenya, Nigeria, and Egypt. Another selling point is the ease of doing business in the country. While most African nations fall outside of the World Bank's Doing Business report top 100, Morocco ranks (53), the second-highest in Africa, trailing Rwanda, which came in at (38).
Eutech, a French health tech company, is one of the many foreign companies with an engineering team in Morocco.
I spoke with Naoufal El hassnaoui, Technical Lead at Eutech Maroc, about leading a team of 6 engineers, the differences between a technical lead and senior developer, and how to land a job as a software engineer.
Meet Naoufal El hassnaoui
My journey in tech started in high school. I began trying to teach myself programming and reading the hacking forums. My formal training started at École Nationale des Sciences Appliquées de Tanger, where I studied computer science.
My first professional experience was as a software developer intern at Eutech Maroc. After my six-month internship, they offered me a job to work as a software engineer post-graduation.
After a year and a half, I became the technical lead where I manage the development team of six engineers here in Tangier. I started my new role in June, and it’s been a great opportunity to grow and have more responsibilities.
Describe Eutech and the value it provides to the marketplace?
Eutech specializes in developing digital solutions, web, and mobile, for the health industry. We have many products, but I’ll share our core three.
- MyGHT Télémédecine is used by doctors to communicate with a patient in another location and give consultations.
- MyGHT Agents (MyHRA) is a human resources management platform for hospitals. Employees can communicate with one another, review their monthly paycheck, check their agenda, and more.
- MyGHT EHPAD is a platform for retirement homes/elderly homes. The application allows the elderly to communicate with their family members.
How does Eutech Maroc work with Eutech?
We are one team working on the same products but distributed in two countries. Our products are sold to clients in France, but we are also open to new partnerships in Africa.
In 2016 one of the management team members came to Tangier to start a small team of engineers. The idea was to have a distributed team that could support the team in France. Our team works with the French team daily through collaboration and communication platforms.
There are many French companies with an engineering team in Morocco, some that are bigger than Eutech Maroc. And they are here not just because it’s cheaper, but because we have great human resources. We have smart engineers, new ideas, and a different culture, so we give a different perspective to products.
What are some of the challenges you’ve faced?
Working for a company in the health industry during COVID-19 isn’t easy. During the pandemic MyGHT Télémédecine, our telemedicine application was in high use, so there was constant pressure to ensure that it was very stable and safe at all times.
So when we were developing new features, we had to be sure not to break something and ensure that it was very secure. Over the past seven months, we’ve tried our best to support the team in France and fix all the bugs and issues we had in our software.
It wasn’t easy, but we were happy doing it because we knew we were saving lives when we fixed a problem.
What are your responsibilities as the technical lead?
As a junior technical lead, it’s my first experience managing a team. My daily job is to provide support for my team of software engineers. Sometimes they run into a dead end while executing a tasks. I help them understand the specifications and clear up confusion before they continue coding and development.
Another part of my work is coordinating between team members to achieve the set goal, whether it be to close an issue or develop a new feature. For example, if I have two members, one working on the front-end and another on the back-end, I have to make sure they communicate so we don’t have bugs.
Weekly, I also review all the tasks we did as a team and report to my manager what we produced that week. Here I review their work and compare it to the specifications provided by the client.
I do some production level stuff. I will always be a software engineer, no matter the title, so I have to produce from time to time when my team is not available.
What does it take to be a technical lead?
First, I’ll explain the difference between a technical lead and a senior software developer. A technical lead role is more management than technical compared to a senior developer, so you have to like people.
Those who take the technical lead path want to grow from this software developer role and have various responsibilities. While if you want to go deep into software development, become a senior developer.
When we talk about software development, it’s not just about the framework or the language. It’s about how you write code; no matter the language, code is code. It’s about the ideas and how you solve a problem. When you become a senior engineer, you will have better ideas and better solutions to problems.
As a technical lead, it doesn’t work like that; it’s more about collaboration, communication, and assigning tasks. It’s about knowing your team on a social level to know how they interact with each other and knowing when to give someone a task.
You decide who will work on something and when we will work on something. In contrast, the software developer will work on it. Their role is to finish the task the best way they can. You won’t give them the solution and tell them to write code. That is a very bad practice. You let them use their mind and come up with the solution.
You’ll also communicate with everyone and collaborate with different teams. So you’ll need some experience in different technologies. You may have to work on a mobile, web, or desktop project. You don’t need to know everything, but you will need to have an idea.
You have to know how to start a conversation with the mobile developer. Having different experiences, not long, but small experiences with a variety of technologies will help you become a technical lead.
Also, don’t stop with your company’s tech stack. Do some research and try to work on small open-source projects in other languages or frameworks. Try to build the knowledge now/overtime because one day, you will need it.
You’ll also need to know design thinking because you may have to design the products’ architecture, not the visual stuff but the project’s conceptual parts. When you see the specifications, you will have to create an architecture for the product and present it to the development team.
The development team will help with the architecture details because they have more in-depth knowledge in a specific area. Again, you don’t need to know everything; your job is to ensure that the client’s specifications are met.
Lastly, for people who want to grow into this role, understand that the years of experience required depends on the company and your skills. You can be a technical lead after graduating or after ten years of experience. It depends on the company.
Built In Africa? What does that mean to you?
It means to me that it was built inside Africa and built by Africans. How it makes me feel is a bit different. I feel proud. For example, when I see an open-source project that a lot of people are using, and I discover that it is a project built by someone in Africa, I feel proud.
What are your thoughts on tech in Morocco?
It’s good, but I feel like we need to solve our problems before solving other countries’ problems. This is an issue not unique to Morocco, but in most African countries when it comes to tech.
Often the best talent work for companies in the U.S, Europe, and China. I think the governments in Africa should start encouraging their citizens to solve our problems. For example, there are plenty of problems in the Moroccan administration that can be solved with just a web or mobile application.
We should also be encouraging the younger generation to build companies. It isn’t just good for tech, but also the economy, as it will solve one of the main issues in Africa, which is employment.
Lastly, when our government signs a partnership with a big foreign company to come to Morocco and hire, let’s say, 1000 people. Yes, it’s a great solution to unemployment but only in the short term, not the long run. If you want the long term results, you will need your people to start small businesses and hire their friends, family members and others.
Because you can’t make the foreign company stay in Morocco, if times get difficult and they see Morocco as a bad investment, they will leave the country. While Moroccan startups are likely more interested in the country’s success, so they won’t just leave. The risks are high by taking that approach to growth instead of building your people.
Advice for software engineers and graduating students.
My personal goal is to inspire and help people succeed in their careers and become the best version of themselves. I want to show people that, yes, software engineering is very difficult, it wasn’t easy for me, but this is how I still achieved my goals. I’ve recently been posting a lot on LinkedIn, so in closing, I have one piece of advice for software engineers and another for students.
When you face a difficult problem and are stuck, maybe you have a bug in your code, and you can’t find the source; some people will spend weeks focused on that same problem, and typically they don’t find the solution.
My tip is to give your mind another problem to solve. It’s not just about taking a break to rest, you can take a break when you sleep, and tomorrow you will face the same problem. Instead, take a break from that problem. Give your mind another thing to work on.
A lot of other experienced software engineers resonated with the post and shared how it helps most of the time.
The most useful tip that I posted is about the process of searching for a job or internship. When searching and applying, don’t use the same CV and cover letter or respond to the interview questions the same way.
When you get a no, review each part of these resources. And most importantly, reply to their email. Ask for feedback, how you can improve, and why they didn’t choose you for this offer. After getting some feedback, do the changes and repeat the cycle until you get a yes.
It’s important to realize that the interviewer will never see you the same way as you see yourself. They will never have a complete view of your skills or what value you would bring inside the company. You’ll have to adapt your answers and CV to present the value they need, so you will have to research the company, their employees, what skills they have, and what stuff they post.
When you have these clear ideas about the company, you will go to the interview and present what they need. Sometimes you can find the problems they are facing in an article they posted on their blog. If you read the article, you will come to the interview talking about their problems from the beginning and presenting yourself as someone who can help them develop solutions.
But if you don’t do research, no one will tell you their problems. And so instead, you will be talking about yourself, your background, and what you did for other companies, which won’t make them see how you can help them.
Stay up to date with our newest posts and special happening here at Built In Africa. Your information is safe with us, we hate receiving pointless emails also. :)