Mostafa Khalil is a Senior Software Engineer at Veriff, and a member of our growing international team, having moved to Estonia in 2019. We chat with Mostafa about what brought him to engineering, how life is in Estonia, and what he enjoys about Veriff.
Mostafa is a Senior Software Engineer at Veriff. He is originally from Egypt and moved to Estonia a few years ago to study Cyber Security Engineering at Tallinn University of Technology. Mostafa joined Veriff in October 2019 to build and maintain our automation platform for machine learning. Before that, he worked with multiple Estonian tech companies as an Engineer and gained valuable experience. Recently, we had a very interesting chat about his international life in Estonia, professional experiences, and hobbies. Enjoy!
I was 8 or 9 years old when my dad brought the PC home. At that time, it only had a command line operating system. This machine really got my attention because of the games I could play on it. After a while, I started wondering how it worked - I wanted to learn more about it and know how the whole system operated in detail. I could see the clear improvements in the game’s quality from time to time, and it was amazing. This is how I chose my path. For me, engineering is a way of thinking - the problem solver mindset always attracted me, and that’s why I knew from those early stages that I wanted to study and become an engineer.
In the final year of my university studies, I had to do research and write a thesis, which was a very interesting project about Embedded Systems and Cryptography. My direct supervisor was working in an engineering company that got interested in that particular project - they needed the same kind of research for their projects, so he offered me the chance to join the company and work with them. In that company, we had to develop cryptography modules such as smart cards that people use to sign documents. It was an exciting experience for me.
After a while, the company started outsourcing their services in Europe, giving me a chance to work with multinational international companies. This helped me gain excellent experience, and I began to understand the specifics of this industry more and more.
Working in that company gave me huge knowledge, which was very useful. But I realized that I wanted to experience something new and decided to continue my university studies in another country as an international student. I went to California for a year, which was an amazing experience, but I decided to leave and finish my Master's degree in Europe.
If you're going to live in California, you need at least one picture with the Hollywood sign
That's how I moved to Estonia and started my academic journey at Tallinn University of Technology.
It was an interesting experience for me to move to Estonia for studies. From the beginning, I wanted to meet new people and be part of an international community. That’s why I joined the ESN Tallinn - the most international student organization in Estonia, which helped me gain cultural experiences and start exploring new things - it was really interesting to connect with international students from all over the world.
After some time, I decided to get more professional experience as well and start searching for a full-time engineering job in one of the tech companies in Estonia. That’s how I started working at Fortumo and stepped into the Estonian startup world.
Working at Fortumo was a totally new experience for me. They needed someone that would take the initiative on different projects and execute various tasks. I liked being in that position a lot because I felt like it was a great challenge for me, which would help me to grow and learn new things. I’m very grateful for the opportunity, and it gave me a lot of useful knowledge about my field. This experience led me to work for another Estonian tech company - Pipedrive. The people were really nice there, and the job itself was interesting as well. They needed a Software Engineer for the DevOps team, which was something that I wanted to explore.
After leaving Pipedrive, I wanted to take on a new challenge and work in a company with massive growth. So, I decided to apply to different tech companies in Estonia. Veriff was one of them - they needed a Software Engineer for their Automation Team, which seemed like an exciting opportunity. After a couple of interview rounds with different companies, I managed to get some job offers. And finally, I went with Veriff.
The main reason I chose Veriff was the interview with the Automation Team Lead at that time - Taivo. He managed to describe the exact technical problems that his team was trying to solve and the challenges that the company was facing. He explained to me how Veriff would benefit from my skill set, and I clearly understood that this was what I wanted to work on. I really liked the vision, and I was ready for a new journey in my career.
Being part of the Veriff team and building our global product is very interesting and challenging at the same time. My daily life at Veriff is full of meetings and collaborations with different departments. We try to organize workshops and training sessions to improve the quality of our services. Working with this diverse team is really exciting for me.
From my understanding, the biggest challenge we have in the company is to make sure that we transform a startup product into a more and more scalable solution properly. We're working on it daily, and this is something that keeps me motivated to give my maximum efforts at work. This transformation means that our product should fit a massive set of users and customers worldwide. It is very interesting to look at it from the technical point of view - our team should make sure that everything works well and customer satisfaction is high.
“Ideas are free, execution is priceless” - this value is heavily connected to the way I work and make decisions. I always try to start executing and implementing ideas daily to see the results and test if it’s working or not. This mindset helps me figure out what solution is working and what needs to be changed in the most efficient way possible.
Other than that, the “Always come with a solution” approach is something that I really like in Veriff. Everyone is trying to come up with solutions for problems, which makes our work easier and more enjoyable.
When I came to Estonia, I really didn’t expect to live here for a long time. But I liked the place and decided to stay because it’s really convenient and comfortable to build my career. The government services are well-built, and the infrastructure is great, making it easy for everyone to work in the tech field. These were the main factors that motivated me to stay in Estonia after finishing my studies.
One that I really like and would recommend to anyone would be "A Brief History of Thoughts" by Luc Ferry. This book is about philosophy - written in the simplest way possible so everyone can understand, even if you don't have any philosophical knowledge.
Another book that I would point out is “Shell Beach”. I read this one recently, and it's about a scientist that works to find the final unified theory for everything in our universe - his challenges during the research, his journey, and the procedure of coming up with these ideas.
Every tool has its purpose. I personally prefer Mac for several reasons - it’s easy to use, and you don’t need to spend time in the configuration of different things there.
It definitely has to be something that involves sorting and organizing things. Maybe being a Chef would be an interesting experience, because in that case, I would be responsible for managing the process in the kitchen and delegating tasks.
Learning and understanding different parts of Engineering takes time and needs focus. Some people want to get results fast and they get discouraged if their level doesn't meet their expectations straight away. My advice to these people would be to take it easy, focus on one thing at a time, and the results will come.
Also, try to understand the logic behind any programming language before you learn it. Language is just a tool, but if you understand the logical side of the solution, then it’s easier for you to learn a new programming language.