I'm sharing my experience of landing a compiler job at Groq in hopes that it useful to others trying to enter the compiler space.

After earning my MSc in Computer Science, with a thesis focused on compilers, I naturally aimed to secure a job working with compilers. Early on, I received a LinkedIn message from a recruiter at Groq about a senior compiler position. It was clearly a mass message, and I knew I wasn’t qualified for the role. Despite my curiosity, I didn’t respond. However, I started browsing their open compiler positions and found that my experience didn’t meet their requirements. I did discover a Haskell Core Libraries Engineer role that didn’t have specific experience prerequisites.

A good friend, Joel, had advised me that cover letters were a waste of time and wouldn't be read, but I chose to ignore his advice. I carefully tailored my cover letter to highlight my expertise in Haskell, C++, and my background in compilers, then sent off my application.

Months later, a recruiter called to say that my cover letter had stood out, particularly due to my compiler experience, making me the only junior applicant not dismissed early on. While the Core Libraries team wasn’t hiring new graduates, the compiler team was open to considering juniors despite the stated job requirements.

Next came a technical screening interview, which I passed. This led to a series of six panel interviews spanning from 9 a.m. to 2:15 p.m. Afterward, I heard nothing for a month until, out of the blue, the recruiter called to offer me the job.

Joel is probably correct that cover letters are often overlooked, but my philosophy was that if writing one improved my chances by even 1%, it was worth the extra effort. Ultimately, ignoring Joel's advice and crafting the cover letter led to the phone interview. I only ended up applying to four positions all of which were compiler-ish, and for each company I adapted the cover letter for the specific role. I had a 3/4 success rate with getting a meeting (or proposed meeting) from the application.

  • OmniSciDB: No Response
  • Neo4j: Meeting with the recruiter. She came back three weeks later and said they wanted some years of Scala experience (I guess they didn't think Haskell was close enough)
  • Wasmer: Scheduled a meeting with the CEO. But he didn't show up. I'm still not sure if we got the timezones wrong. I sent a follow up email and he never responded.
  • Groq: Job Offer

And that was how I landed a compiler job after my studies. I'll share the cover letter here in case it's helpful to anyone looking to write their own.

To whom it may concern,

I am writing to express my interest in the Core Libraries Software Engineering role at Groq. I graduated last month with a M.Sc in Computer Science from the University of Copenhagen. I previously received a B.Sc. from the University of Washington, Seattle in Mathematics with a minor in Applied Mathematics. My graduate coursework and thesis centered around functional programming and compilers, while my undergraduate coursework focused on ML, probability theory, and linear algebra.

In combination with my thesis I contributed to the Futhark programming language. Futhark is a data-parallel, and purely functional array language for generating high performance GPU and multicore CPU code. For my thesis I added WebAssembly and threaded WebAssembly backends to the language.

I was a TA at Copenhagen University for Computational Geometry and Applied Programming, both masters level courses. I previously interned at Cloudian in California, an on-premise object storage company. There I integrated Kafka with their hybrid cloud storage solution.

Furthermore I have a strong background with the Haskell programming language. I have experience working with big code bases in Haskell through development on Futhark, whose open source compiler is primarily implemented in Haskell. I’m a top 10 contributor.

I believe that I am a strong candidate for the Core Libraries Software Engineering role at Groq and can contribute with my experience in programming language and compiler development, and functional programming in Haskell.

Best Regards, Philip