Ferdinand's Compiler Engineering Internship
Ferdinand completed an internship as Compiler Development Intern with us from March to December 2020 – find out what his typical day looked like and what he loves about working at Silexica.
WHO I AM:
I am Ferdinand, 22, a student from a computer engineering school in France. In this short blog post, I’ll try to present to you how I spent my last months as a compiler engineer intern at Silexica.
Why Silexica? Why Cologne? The answer probably isn’t as deep as one would expect. I was seeking experience abroad. USA, Germany, Finland, Australia, Poland, Japan… I’ve been in contact with many companies, but only few actually struck me as having really interesting technical topics. One of those that had nice things to offer, however, was Silexica. I did not really care about the location, and the company had everything to attract me:
- Technical topics: The main fields of Silexica that attracted me are compilers and low-level development. Compilers are a passion to me since I wrote one a long time ago, and embedded systems have been my main topic at school for a reason… So finding a job where I could do a bit of both was perfect!
- International culture: It was really important for me to find a company used to having foreigners, as leaving for a country you don’t even speak the language of can be pretty scary.
- The size: Smaller companies tend to have a better team spirit. Being in a foreign environment, feeling directly integrated into the company was also important to me. Also, it is often easier to jump from one topic to another in smaller companies, and I saw it as a great opportunity to learn as much as possible from my internship.
WORKING AT SILEXICA
Let’s start with a disclaimer: As you probably know if you have been living outside of a cave 4000 meters deep in the Mariana Trench, the period from March 2020 was a period where the coronavirus hit heavily and a lot of measures have been taken. I kept working from the office but was one of the only employees to make this choice. Why? Because I prefer to work from the office, and, because my home was close to the office, it was not much of a risk to come by bike every morning.
Moreover, this situation started at the very moment of my arrival at Silexica. The first consequence was that I ended up alone in the office at a point where I had very little knowledge about the company. Crisis situations are always extremely hard to handle, for the individual and also for the organization, and I feel like Silexica handled it extremely well. Everything was made in order to have a lot of communication between every member of the engineering team, and the direct effect was that I ended up being welcomed into the team even though I haven’t met most of it in person. (To this day, there still are people I only know through their webcams!)
WHAT A TYPICAL DAY LOOKS LIKE
A typical day generally starts with biking to the office. I realized quickly that Cologne was a great city to use bikes instead of cars or public transport – another great opportunity to revitalize my passion for biking (moreover, it’s quite easy to find a second-hand cheap bike here). Then, arrive at the office, start the day with a tea (sorry to the beloved coffee machine of the office, but I prefer tea), and a daily meeting to synchronize with the rest of the team on ongoing tasks. Then everyone works on their tasks for the sprint, often staying in contact with other members of the team through calls or code reviews. After that, lunchtime with the survivors of the office! On Thursdays in the summer, we even had (socially distanced) team lunches where everyone eats a meal ordered by the company together, followed by a lightning talk by an employee on a subject they choose. We had talks from feminism to copper mines to high-frequency trading! I had the occasion to make my own talk and talked about weird gimmicks in heavy metal music. Then after lunch, work time again, until 3:00 P.M. where I usually have a call with my internship supervisor to talk about the ongoing work. It’s a nice time for a break and another tea, in order to work until the end of the day.
During my internship, I had the occasion to work on many different areas from optimizing the code analysis to writing an LLVM pass. It is one thing I love about Silexica: I never got stuck on one particular topic and had the opportunity to see a lot of different things. LLVM in particular was something I really wanted to dig into but couldn’t find the right angle to do it on my own. Having some tasks relying on it and some colleagues always ready to help was a chance to learn step by step.
One particularly great thing I have been able to work on was a research project separated from the main product of the company that aimed to create an optimization plugin. On one hand, it was great to work on a project from ground zero, to be able to make my own choices and to learn a lot along the way; on the other hand, it was also proof that the company trusted me to do some work that could have a huge impact. I spent more than half of my internship on it and loved it. In the end, the project was a success and is still the subject of a lot of discussions!
I’ve also worked on a topic called Affine Loop Expression that served as my introduction to the project. We use those in order to compute loop trip counts and reduce some analysis time… among other things. Quite a complex one for a first topic, but a great introduction to the project and the company in general!
FROM INTERN TO FULL TIME
The title of the section spoiled it, I’ve been offered a full-time position after my internship, which I accepted. From the very beginning of my internship, I’ve been fully integrated into the team, and always considered as a “normal” employee by my colleagues, and as such, the transition from intern to full time was absolutely invisible to me (except for the payslip, I guess). I don’t really have a lot more to add on this part except that it’s a great thing being considered from day one as someone who can bring something to the company.
ANY TIPS FOR INTERNS?
Contact me so I get the referral bonus… Hmmm I mean, if you have questions about this blog post or if you want more details on a particular point of my internship. On a more general note, if you like compiler development, C++ and/or FPGA and embedded systems, Silexica probably is a good company for you to experience what it is to work in this market.
The hardest part of being an intern and a foreigner here probably was (and still is, in my case), finding accommodations. I strongly advise looking for a flat-share (or WG, on German websites), as they are cheaper and easier to get for a “short” period of time (a semester usually). Moreover, if you’re a foreigner, you probably want to meet people here, so a flat-share can be two birds with one stone!