Job-applications can be stressful. You need to invest time in a company that you don’t really know and might reject you, or the job turns out not to be as you envisioned it. Also, application-processes are different per company, depending on values and experience – it can be a maze and difficult to understand what is expected.

We’re a relatively small company, but we put more time into our application process than our peers. The feedback we got from past applicants, we used to improve it bit-by-bit. Understand that we want you to successfully walk through the application, and not drown in the process – so if something is not clear on this page, email us via jobs@streamhpc.com. You would be surprised that others ask various questions before starting, and it actually increases the chances of hiring (statistically).

We designed the process such, that the chances you’ll get an offer goes from a few percent in the first step to 90% really quickly. This allows us to spend more time on the people we think make a good chance.

We wrote this tutorial to help you get through the first rounds successfully. This means that by reading this page, you already increase your chances. As a bonus, various tips&tricks are generally applicable, and you can also use them in other job-offers.

Round 1: CV scanning

How to improve your cv

A CV shows an overview of what you can do with experience as proof. So it does not need to state “he is exceptional in…” but just show what you managed to do. If you did a project with a team, mention your role. If you think an unsuccessful project does not give value, you’re wrong – just clearly state your learning points.

We do a quick scan of your CV and letter, which means that we look for keywords like CUDA, OpenCL, SYCL, GLSL, HLSL, Assembly, etc. Second, we try to assess you on seniority in CPU-programming, GPU-programming and overall project-experience. So if you never worked in a team, mostly did C/C++ programming for 15 years and have made your first GPU-software some months ago, we’d assess you as a solo-worker, CPU-senior and GPU-beginner.

Pro-tip: Embrace the idea that companies simply do CV-scanning. But don’t overdo it by summing up every keyword that could ever apply, as you will get questions you cannot answer.

These labels are not good or bad, but just how we think things are. So make sure we can abstract these from your CV and can connect the dots. E.g. if you mention “OpenCL” under skills, but not under any of the experiences, then we might still reject you. It might therefore be good to just mention it under education as “best subjects” instead of skill – just discuss it in your email.

In case you need a sample CV, just use the below one. For the job-descriptions, be specific with what you did. E.g. “Increased x number by y amount”.

Share code

To further support you have experience, recent GPU-code would be very helpful to get through the first filters. Also label it correctly as “university assignment”, “book assignment”, “hobby project”, etc. This helps us to assess your code the right way.

Pro-tip: Clean up your code and add comments. This shows how you would work in a professional environment.

For those who sent GPU-code, we check on coding style, efficiency, applied optimizations, etc. We also check if you used libraries or wrote your own kernels. As the job includes writing those GPU-libraries, we’re not looking for the ones who only use them.

Pro-tip: Split up work on GPU-kernels and usage of libraries. This shows you’re capable of writing GPU-kernels.

Write a motivational email

Last, but not least, always add a motivational letter. Instead of “See my CV attached”, share why you like working with GPUs and HPC. And preferably also what speaks to you about our company. This explains what drives you, and we can quickly find out if we’re a match.

We see templated emails (with sometimes funny mistakes), but it is not really needed to make it that personal. We understand it is time-consuming to do job-applications, so a general text suffices. Think of sentences like:

  • What you seek/need: “Things I value in a job are: ….. I hope I can find them in this job”
  • What you value: “I like working with GPUs, since I did …”
  • What you miss: “I remember a university project ….. I want more of that”

Round 2: short coding test

For those who are left, you do a simple online test. This is to get a grasp of your way of working and thinking, and to prepare you for the longer test. It takes 10 – 25 minutes, depending on your experience with such tests. It is mostly to prepare you for this longer tests, so it’s ok if you complete fail it. It is also a sign, that we do value people who can make puzzles – if you think about the work we do, it simply makes sense.

It does help to get some practice in creative coding tasks, if you are currently have a boring job.

Pro-tip: Do the sample test first, if you’re new to such tests. This will allow you to experiment freely.

Round 3: video call

First real contact! Here we double-check everything we have assumed, and answer all your questions. Make sure you have questions prepared. If you don’t have any questions anymore, just take those questions with you and say these all have been answered.

Pro-tip: With questions prepared, you signal you’re truly interested in the position.

Here we also discuss your salary expectations. We don’t pay salaries as the financial or energy sector does, and we need to have clarity on this.

Round 4: long coding test

After that, you are invited for a longer online test. You show your skills in C++ and algorithms. On average, this takes 2 – 3 hours. Understand we simply test your C++ and puzzle/reading skills, as we need these skills for the projects we run. You actually have feedback enough from the short test on your level – if you did that one well, chances are high that you get passed this one too. People who did not do well on the first test but studied their mistakes, did also good.

If you’re not that good at coding efficient C++ and doing puzzles, be sure you get more experience in C/C++/GPGPU! It would make sense to wait with your application, or pause your application for a few months, and take it serious. Joining an open source project in C/C++/GPGPU helps a lot with getting through this round, if you seek a method to improve.

FYI: if you do this round for the second time, we give a homework test.

Pro-tip: Those who make time for the test within 2 weeks, have a higher chance to get to the last rounds.

Rounds 5+: The rest

From now on, the chances are 90-95% to get the job! The 5-10% is in case of totally unexpected situations.

In these rounds we only double-check things, and focus on getting to know you. Notice it takes more than half of the time that needs to be invested. We do:

  • the technical interview on C, C++ and GPGPU (2 hours)
  • the long interview (3 hours)
  • reference-checks

We try to plan all in one week, which makes it intense but fast.

Pro-tip: Read an applicable book before the technical interview. This helps freshen up your theoretical knowledge.

A last remark: the door versus the room

There are two types of people who apply: door-people and room-people. Door-people want to get through the door and then will prove themselves that they are worth it by working really hard. Room-people focus on the room behind that door, and try to find out how compatible we are with each other. Statistically, we almost only hire room-people. This means that if you focus on self-check compatibility for the job, and ask us question about how it is once you are in, chances increase a lot.

If you have questions not discussed here – just email us at jobs@streamhpc.com

We have provided various texts to help you get the information we think is useful:



Want to know more? Get in contact!

We are the acknowledged experts in OpenCL, CUDA and performance optimization for CPUs and GPUs. We proudly boast a portfolio of satisfied customers worldwide, and can also help you build high performance software. E-mail us today