Software Internship Advice from Acerta: What We Learned as Interns
Interning is a crucial step in the software engineer’s lifecycle: the chrysalis in which the larval student is digested, liquified and reformed from imaginal discs to emerge as a mature engineer.
(Hey, if you’re going to use a cliched metaphor, you might as well be accurate.)
With the summer drawing to a close, Acerta will soon be bidding farewell to several of our interns as they return to their studies. In appreciation of all their hard work, we celebrated earlier this week with our 3rd annual Acerta Ping Pong Tournament—which they graciously and capably organized.
We’ve had a lot of fun the past months, but Acerta internships aren’t all moving days and ping pong. To get a better sense of their experiences as software interns at Acerta, I sat down with Sofia, Alex, Yifan and Mary to get their perspectives, and to ask for any advice they might have for aspiring software engineers.
How did you all end up interning at Acerta?
Sofia: I didn’t find Acerta; they found me through LinkedIn because I said I was looking for a summer internship in software development on my profile. After they messaged me, I looked into the company and I was really intrigued, because none of the companies I found through my university portal really interested me with what they were doing.
Alex: Greta, JC and Mahmoud have all worked with Professor Sebastian Fischmeister at the University of Waterloo, and I was also one of his students. So, he recommended I take this position because he thought it’d be a good learning experience. It sounded like a good opportunity, so I accepted.
Yifan: I was looking for software engineering jobs, especially at companies working with AI, so that’s how I found Acerta. I had a couple of interviews and it seemed like a good match.
Mary: Like Alex, it was Professor Fischmeister who recommended this internship to me.
What was it about Acerta that appealed to you?
S: I think the vision of the company is a really great idea—applying AI to the automotive industry to make cars safer and more reliable. I realized there’s a lot of potential there.
A: The idea of making manufacturing more efficient by using things like machine learning and big data really appeals to me. It seems like there’s a lot of room for more technical knowledge about those things in manufacturing. I thought it was really cool that we’re bridging those two worlds.
Y: I think what appealed to me most about Acerta was the friendly environment, and the fact that we’re actually building products and solving problems.
M: I’d never worked at a company like this before; my undergrad was in mathematical physics and my master’s is in quantum information theory, so I didn’t have any working industry experience before I came here. This has been my first industrial work experience, and I’ve loved everything about it.
What were your goals during your internship?
S: I had two goals: one was technical—I wanted to gain hands-on experience working with databases because I’m an information systems specialist—and the other was to meet people in the industry and hopefully develop some long-term connections.
A: My goal was to learn more about dev ops and the backend. That’s an area I didn’t really cover during my undergraduate coop terms, so that’s why Sebastian suggested Acerta.
Y: I came to add front-end experience to my tech stack, and I was looking for a chance to build my own stuff and get some experience building a working app on the front end.
M: I wanted to enhance my machine learning coding skills, and also gain a better understanding of machine learning overall. I also wanted to get more software engineering experience through programming and debugging. Before this, I was pure math and physics, so Acerta has really helped me build up my knowledge of coding and machine learning.
What were the biggest challenges you encountered at Acerta?
S: I think the onboarding process was the biggest challenge for me. It was a unique environment, and this was my first internship. It felt like I had to learn everything about the company to be able to add some value to it, so I was kind of overwhelmed by the huge code base, but I realized that the people here want us to succeed and they were willing to help however they could.
A: I’d echo much of that sentiment. Wrapping your head around all the moving parts in the code base—what software components talk to other software components and the kinds of messages they send—that’s definitely intimidating.
Y: For me, it was the configuration of the app. Writing my own code is easy, because I know what I’m doing. Reading someone else’s code is a lot harder, because I don’t know what they heck they’re doing.
M: Code debugging. It really drives me crazy to have to go back through every single line and test every part of the code with every method. Writing that function takes 10-20 minutes but fixing the bugs in it sometimes takes a whole day. After I fix it, I think, “I’m amazing!” but that only lasts until the next bug.
What would you say was your crowning achievement at Acerta?
S: I was working on a large project—a data access service—called Buri and I wrote a very large percentage of the code base for it. Ionut, my manager, provided the architecture, but I built out the APIs by myself and I wrote a live integration test for it, achieving over 80% coverage. It was really fulfilling to be working on such a large project and to see my work actually be useful to the company.
A: It was probably working on ADP [Acerta Distribution Platform] and getting that migrated to Azure, as well as working on the technical debt that accumulated during the previous two iterations of that project.
Y: For me, it’s every time I commit something to the code base. I love the code that we’re writing, and every time I commit, I’m contributing to the code base and the company. I feel like my work is recognized and meaningful, so that’s what I’m most proud of.
M: Finishing the implementation of logistic regression in our “sanity check” package for data sets. I’m pretty amazed that I can actually (with help from JC) do integration on different classes together and then output final results for the sanity of a data set.
What advice would you give to someone who’s either looking for their first internship or about to start one?
S: First, write down all the skills you have and the strengths you can bring to a company, and then look for companies that match that skillset. Know why you want to work at a place and make sure you can explain it. When you start your internship, don’t be afraid to ask questions and don’t be afraid to throw out your code, because sometimes you just need to let go and make something that’s cleaner and more efficient.
A: Review your resume and make sure it’s presentable—proofreading, checking for style, etc. And I think you shouldn’t be afraid to apply outside your comfort zone, whether that’s what the company does or where it’s located. Getting an internship in the first place is the most important part.
Y: If you’re looking for your first internship and you feel like you’re not presenting good skills on your resume, make up some. [Laughs] Don’t think that you’ll just get a manual testing job because it’s your first coop. The first coop is important so you should always look for a better one. University is all about learning on your own—especially in engineering—so you should teach yourself about software development cycles, different languages, know as much as you can in your first term and apply for as many jobs as you can. Target the dev jobs, not the QA jobs.
M: The best thing to do before your first day is to read through the company website and learn about its history and vision. Don’t be afraid to ask questions, whether it’s about the company or the project you’re working on.
So it goes...
While we are not actively seeking applications at this time, Acerta is always on the lookout for eager and talented software engineers. Contact us if you’re interested in working on the cutting edge of Automotive Intelligence.
For More Information...
Check out other blog posts or read our case studies.