The Vital Guide to Interviewing Virtual Reality Developers

Wednesday, November 29, 2017

The Vital Guide to Interviewing Virtual Reality Developers


Hiring high-quality virtual reality (VR) developers is critical to the success of your project. Despite the variety of websites offering freelance VR services, there are still challenges that come with getting the right person to fill this role on your team.


You may be a hiring manager at a large corporation, or a small business looking for a passionate VR developer. In any case, your interview process is an important method for evaluating the talent you seek.

Both art and programming are critical to any virtual reality project. Depending on the culture of your company, art and programming roles may be very tightly defined with little overlap, or very fluid with less distinction between them. This article specifically covers programmers, rather than positions such as 3D modelers, texture artists, and animators.

VR developers often work with third-party engines like Unity, Unreal, or CryEngine.

We took it upon ourselves to interview a few industry leaders to discuss the nuances of interviewing and hiring for virtual reality development. The developer that suits your project will be driven by what your VR company does, but there are common characteristics among all our sources for what they want from VR developers and how they choose to interview them.

Roles

Traditional VR engineering (whether game-related or not) is heavily influenced by the game development community. The roles within the team will often reflect this, but the culture of your company will ultimately decide how you delineate engineering roles within your team. In keeping with the language we encountered speaking to VR hiring managers, we’ve used terms such as “gameplay” and “game.” However, these roles are equally applicable to VR applications that have nothing to do with gaming, such as interactive experiences, movies, and consumer spaces. VR engineering roles typically land in one of three categories:


1. Gameplay Engineers

A gameplay engineer is concerned with the ways in which a user interacts with a game and what they experience. They build the world of a game, but not the graphics. In other words, these engineers build the game itself rather than the technology the experience runs on.

Gameplay engineers would be responsible for things such as the how characters within a game experience behave, how the user interacts with the environment in the virtual reality world, and the navigation of the user within the world.

2. Engine Programmers (or “Core Engine Programmers”)

An engine programmer is almost the exact opposite of a gameplay engineer. These programmers work on the low-level technology that the experience runs on, particularly the 3D technology that renders the experience.

They also focus on ensuring that performance is acceptable. This is especially important in VR, as low frame rates can cause nausea.

In modern VR, it’s rare that an engine programmer would be responsible for building the engine that the experience runs on in its entirety. It’s far more likely that they would be responsible for low-level interactions with the third-party engine used to develop the game, such as Unity, Unreal, or CryEngine.


3. High-Level Scripting Engineers

Scripting engineers have a similar role to gameplay engineers. They work at a very high level in languages such Lua or UnrealScript. This is in contrast to gameplay engineers, who work in the the same low-level language in which the game is written, usually C++.

In some VR development environments, particularly Unity, there is less distinction between a high level scripting engineer and a gameplay engineer. This is because gameplay code tends to be written in the higher-level languages supported by Unity, like JavaScript or C#.

In some VR development environments, particularly Unity, there is less distinction between a high level scripting engineer and a gameplay engineer. 
Each of the roles described above have formal training. Unlike other programming specializations, it’s rare nowadays that someone has these specific VR development skills without having gone to school for a programming or computer science degree.

Beyond formal training, there are several traits you should hope to see in your candidates as you interview virtual reality developers. If you choose to give your candidate a technical interview, we suggest taking three to four hours.


Collaborative Potential

Any virtual reality experience has a complex real-time system behind it with many moving parts. The developer who thinks collaboratively will be considerate of other team members and be conscious of the workflow and pipeline.

Communication is critical, whether you are working in a small company or a large distributed team. Collaborative team members work well independently but are also not afraid to ask relevant questions and share insights that move development along efficiently.

Problem Solving


There are several ways to asses problem-solving acumen. As with other technical interviews, posing technical problems during the interview process is a good means to evaluate problem-solving skills. They’re a good tool for drawing out the interviewee’s thoughts on the subject matter. Help when necessary. Ask them to elaborate to glean more details about their thought process.

Some technical problems are universal, applying to any programming role. Others might be more specific to VR worlds such as camera calculations, rendering problems, and character AI techniques. Additionally, you as an interviewer should evaluate how they think about performance as well as the correctness of the solution to the problem.

3D Math Skills

Some level of 3D math is needed for anyone involved in building a VR experience. That said, the exact level will depend on their role within your team.

Core engine programmers will require in-depth, sophisticated knowledge of all aspects of 3D math. This includes vector and matrix mathematics, and the mathematics of rendering, physics, and shaders.

On the other hand, gameplay and scripting engineers only require basic knowledge of how to use 3D vectors and transformations.

This section of your interview should be tailored to challenge their 3D math skills to a level suitable for the role to which they are applying. The questions should attempt to reveal their underlying knowledge of the principles involved, rather than expecting rote knowledge of 3D operations.

One example might be that they should be able to tell the difference between a cross product and a dot product and how to use them, but not necessarily know the exact sequence of operations to perform a cross product.

Speed

Remember, each frame of your virtual reality experience must run in 16.6 milliseconds, or nausea can result.

Virtual reality, like so much of our experience today, is dependent upon efficiency: Does the code run fast?

In addition to solving problems in 3D space using applied 3D math, the solutions must be graceful. Being mathematically correct is not good enough if the solution is inefficient.

virtual reality software developmnent


For example, a brute-force solution to a mathematical search problem is unlikely to be practical, even though it’s mathematically correct. If you are presented with a solution like this in an interview, try to prompt the interviewee to build on the baseline brute-force solution and turn it into a more efficient and elegant solution.

Optimization is the key to a pleasant user experience. Remember, each frame of your virtual reality experience must run in 16.6 milliseconds, or nausea can result. This requires all members of your team to understand performance and optimization.

There are two aspects of this. There is theoretical Big-O notation—which any computer science graduate should understand—whereby you can express the theoretical time and space complexity of an algorithm. But there is also more practical, experiential knowledge that relates code to real-world performance.

The former can be assessed while posing the technical problems discussed in the previous “problem solving” section. Does the interviewee understand the complexity of the solution they present, and how that will impact its theoretical performance?

The latter is particularly important for low-level engine programmers and can be assessed by asking about the low-level performance repercussions of the code they write. Do they understand the performance ramifications of various levels of caching, for example, or the performance characteristics of a CPU versus a GPU?

Related articles

Desire

A person who is desirous of a position in the field will have examples of passion projects. As an interviewer, take the time to look at the quality of the source code they have posted on open source repositories like GitHub or work samples they have provided to you. Are these projects easily compiled and run?

Desire is often illustrated by enthusiasm and the candidate’s willingness to intrinsically sharpen their skills. Ask questions about their passion projects and the code they have written for them in a way that lets them reveal their desire for working in the field of virtual reality.

A demo reel is not necessarily expected from a programmer, but it’s appreciated. If you are presented with a demo reel, ask questions about the technical details of implementing what is shown in the demo reel.

As mentioned above, depending on the culture of your company, you may have less delineation between VR programming and artistic roles. For any roles with artistic components to them, a demo reel is crucial, so expect to have to do an in-depth evaluation of them for your interview process.

Overall Value

Aside from technical skills and passion, there are some other important aspects to consider in assessing a candidate’s likely overall value to your team.

While you are looking for new team members, you can keep this tidbit in mind: During our interviews, the most common role hired for was a game engineer. The most difficult role to fill was that of a core engine programmer. As you interview talent, it’s important to know their value within the wider technology ecosystem. This will affect the number of competing offers they are likely to receive.

However, regardless of the likelihood of competing offers, you should endeavor to make your interview process as swift as possible. Be efficient about expressing the results to both successful and unsuccessful interviewees.

3d design


Existing Skills and Learning Quickly

It might seem obvious that the most attractive candidate is one who has a combination of skills to fill gaps where needed. However, as an interviewer, it might also be helpful to think through whether or not your candidate is teachable. A willingness and demonstrated ability to learn on the job is as important as showing a mastered versatile skillset. Your needs and budget will guide you in this way about the best talent to hire.

Long-Term and Short-Term Approaches

Every team has a budget and schedule including long- and short-term goals. A core engine programmer can be very valuable to your team because they possess a versatile skill set. During the interview process, consider the long- and short-term goals your hire will be able to help shape and sustain.

Some engineers may be excellent at fighting fires, but not necessarily good at re-architecting your technology to meet your long-term goals.

One aim of your interview process should be to establish how the interviewee fits both within your team and schedule. Sometimes your long- and short-term goals may require different hiring decisions. Some engineers may be excellent at fighting fires—i.e., solving immediate problems and bugs that are stopping your virtual reality project from shipping—but not necessarily good at re-architecting your technology to meet your long-term goals.

Likewise, an engineer with a vision for the architecture of your virtual reality technology may not be best suited to jumping in and fixing the high-priority JIRA item that’s currently hindering the completion of a project. Your interviews should aim at distinguishing between these two roles within your project.

Not all developers are going to fit neatly into either category. In fact, some may be able to carry out both roles well. As an interviewer, you should be aware of which of these roles you are trying to fill.

To identify engineers who are good at fighting fires and solving immediate problems talk to them about cases like this in their work history. Drill down into the technical details of difficult problems they have solved in previous jobs. What was the timeline in which those problems were solved? How did they approach solving the problem, and what were their specific contributions to the solution?

For a more visionary, architect role, ask questions to get a feel for their vision for the system as a whole. During prior projects, did they lead the process of producing the system architecture? Are they excited to contribute to the wider design of the software? And finally, are they able to clearly communicate their insights with those working alongside them?

vr creativity

Creative Ability

Creativity” in VR engineering can be defined in two ways with regards to the interview hiring process. One can be visually creative, e.g., with effects; there is also the marrying of math and art. Someone else can be design-wise creative, enhancing gameplay, tuning character movement timing, making jumping mechanics have the correct feel…the list goes on!

To gain insight into your interviewee’s creative ability, you will need to combine the specific areas we covered earlier: Problem solving, 3D math skills, and desire. Do the answers given reflect a creative outlook in the interviewee, or a more linear way of thinking?

Pushing the Envelope

Virtual reality is a cutting-edge media where the rules are still being written, unlike media such as film where many conventions have been established for nearly a century. A creative engineer in the VR field must be prepared to write the rules and conventions that future VR creators will follow.

During your interview, inquire about the engineer’s thoughts toward more accessible virtual reality experiences. Ask about their ideas about the sustainability of the field. Their answers should help you gauge how innovative you can expect them to be.


Levelling Up Your Team in the VR Era

Interviewing VR developers can be challenging, but with the right lens, you can find the talent you need to compliment your team and realize your vision. In order for the field of virtual reality to grow and thrive, we need to create accessible, high-quality experiences that work with affordable hardware.

Hunt for like-minded talent with a thirst for innovation, a heart for teamwork, and the ability to produce with minimal management oversight—there’s no other way to stay on the bleeding edge of the VR revolution!



SOURCE  Originally posted at Toptal (Republished with permission)





0 comments:

Post a Comment