Hiring guide for BRL-CAD Engineers

BRL-CAD Developer Hiring Guide

BRL-CAD is a powerful open-source cross-platform solid modeling system that includes interactive geometry editing, high-performance ray-tracing for rendering and geometric analysis, image and signal-processing tools, a system performance analysis benchmark suite, libraries for robust geometric representation, and more. It has been actively developed for over 30 years and has been used in thousands of applications worldwide. BRL-CAD supports a wide variety of geometric representations including an extensive set of traditional CSG primitive implicit solids such as boxes, ellipsoids, cones, and tori, as well as explicit solids made from closed collections of Uniform B-Spline Surfaces, Non-Uniform Rational B-Spline (NURBS) surfaces etc.

Ask the right questions secure the right BRL-CAD talent among an increasingly shrinking pool of talent.

First 20 minutes

General BRL-CAD app knowledge and experience

The first 20 minutes of the interview should seek to understand the candidate's general background in BRL-CAD application development, including their experience with various programming languages, databases, and their approach to designing scalable and maintainable systems.

How would you install BRL-CAD on a Linux system?
You would need to download the source code from the BRL-CAD website, then compile and install it using the 'cmake', 'make', and 'make install' commands.
What are the primary modeling components in BRL-CAD?
The primary modeling components in BRL-CAD are primitives, combinations, and regions.
Describe the difference between a primitive and a combination in BRL-CAD.
A primitive is a basic geometric shape, while a combination is a grouping of primitives and other combinations.
What is the role of MGED in BRL-CAD?
MGED, or Multi-Device Geometry Editor, is the primary user interface for creating and editing geometry in BRL-CAD.
How would you create a sphere using MGED in BRL-CAD?
You would use the 'in' command in MGED, specifying the type of primitive as 'sph', then provide the center coordinates and radius.
The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

What you’re looking for early on

Does the candidate have a strong understanding of BRL-CAD?
Has the candidate demonstrated problem-solving skills?
Is the candidate familiar with the languages used in BRL-CAD, such as C, C++, and Tcl?
Does the candidate have experience with computer-aided design (CAD) systems?

Next 20 minutes

Specific BRL-CAD development questions

The next 20 minutes of the interview should focus on the candidate's expertise with specific backend frameworks, their understanding of RESTful APIs, and their experience in handling data storage and retrieval efficiently.

What are the steps to perform Boolean operations in BRL-CAD?
You would use the 'r' command in MGED to create a region, then specify the Boolean operation and the primitives involved.
Describe the difference between a region and a non-region combination in BRL-CAD.
A region is a special type of combination that is used in ray tracing and other operations, while a non-region combination is simply a grouping of primitives and combinations.
How would you create a 3D model from 2D shapes in BRL-CAD?
You would use extrusion or rotation operations in MGED to create 3D primitives from 2D shapes, then combine them as needed.
What are the steps to perform ray tracing in BRL-CAD?
You would use the 'rt' command in MGED, specifying the view direction, image size, and other parameters.
Describe the difference between the 'rt' and 'rtcheck' commands in BRL-CAD.
'rt' is used for ray tracing, generating a 3D image from a model, while 'rtcheck' is used to check for errors in the model.
The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

The ideal back-end app developer

What you’re looking to see on the BRL-CAD engineer at this point.

At this point, a skilled BRL-CAD engineer should demonstrate strong problem-solving abilities, proficiency in BRL-CAD programming language, and knowledge of software development methodologies. Red flags include lack of hands-on experience, inability to articulate complex concepts, or unfamiliarity with standard coding practices.

Digging deeper

Code questions

These will help you see the candidate's real-world development capabilities with BRL-CAD.

What does the following simple BRL-CAD script do?
in rcc.s rcc 0 0 0 0 0 10 5
The script creates a Right Circular Cylinder (RCC) primitive in BRL-CAD. The cylinder is centered at the origin (0,0,0), has a height of 10 units in the z-direction, and a radius of 5 units.
What does the following BRL-CAD command do?
e region1.s
The 'e' command in BRL-CAD is used to 'edit' a region or an object. In this case, it will open 'region1.s' for editing.
What does the following BRL-CAD command do?
search -name "*.s" -print
This command searches for all the .s (shape) files in the current BRL-CAD database and prints their names.
What will be the result of the following BRL-CAD command?
B 4; ae 35 25; draw shape1.s
This command sets the display size to 4 units, sets the azimuth and elevation angles to 35 and 25 degrees respectively, and then draws the object named 'shape1.s' in the BRL-CAD graphics window.

Wrap-up questions

Final candidate for BRL-CAD Developer role questions

The final few questions should evaluate the candidate's teamwork, communication, and problem-solving skills. Additionally, assess their knowledge of microservices architecture, serverless computing, and how they handle BRL-CAD application deployments. Inquire about their experience in handling system failures and their approach to debugging and troubleshooting.

How would you debug a complex 3D model in BRL-CAD?
You would use tools like 'rtcheck' to find errors, 'g_qa' to analyze geometry, and 'mged' to visually inspect and edit the model.
What are the steps to convert a BRL-CAD model to another format, such as STL?
You would use the 'g-stl' command in BRL-CAD, specifying the model and the output file.
Describe the difference between the 'g-stl' and 'stl-g' commands in BRL-CAD.
'g-stl' is used to convert a BRL-CAD model to STL format, while 'stl-g' is used to convert an STL file to BRL-CAD format.

BRL-CAD application related

Product Perfect's BRL-CAD development capabilities

Beyond hiring for your BRL-CAD engineering team, you may be in the market for additional help. Product Perfect provides seasoned expertise in BRL-CAD projects, and can engage in multiple capacities.