Hiring guide for GDL Engineers

GDL Developer Hiring Guide

GDL (Geometric Description Language) is a computer language for describing 3D objects. It was developed in the early 1980s by researchers at the University of Utah. GDL is used in a variety of applications, including computer-aided design (CAD), 3D printing, and virtual reality. Sources: * [GDL on Wikipedia](https://en.wikipedia.org/wiki/GDL_(computer_language)) * [GDL on the University of Utah website](https://graphics.cs.utah.edu/software/gdl/)

Ask the right questions secure the right GDL talent among an increasingly shrinking pool of talent.

First 20 minutes

General GDL app knowledge and experience

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

What are the basic components of GDL?
The basic components of GDL include the GDL Object, GDL Script, and GDL Library Part. The GDL Object is the 3D model or 2D symbol that is created, the GDL Script is the programming code that defines the object, and the GDL Library Part is the file that contains the object and script.
How would you create a custom object in GDL?
To create a custom object in GDL, you would start by defining the object's parameters, then write the GDL script to create the object's geometry, and finally save the object as a library part.
What is the role of parameters in GDL?
Parameters in GDL are used to control the properties and behavior of an object. They can be used to set the size, shape, color, and other attributes of an object, and can also be used to control how the object behaves in different situations.
Describe the difference between global and local variables in GDL.
Global variables in GDL are accessible from anywhere in the script, while local variables are only accessible within the function or subroutine where they are declared. This means that global variables can be used to share data between different parts of the script, while local variables are used to store temporary data that is only needed within a specific function or subroutine.
How would you use arrays in GDL?
Arrays in GDL are used to store multiple values in a single variable. You can use arrays to store a list of values, such as the coordinates of a series of points, and then access these values using an index number. To use an array in GDL, you would declare the array, assign values to the array elements, and then access the elements using their index numbers.
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

Has the candidate demonstrated a deep understanding of GDL programming?
Does the candidate have experience with projects similar to ours?
Has the candidate shown problem-solving skills during the interview?
How well does the candidate communicate?

Next 20 minutes

Specific GDL 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 different data types in GDL?
GDL supports several different data types, including integer, real, string, and boolean. Integer is used for whole numbers, real is used for floating-point numbers, string is used for text, and boolean is used for true/false values.
How would you handle errors in GDL?
Error handling in GDL can be done using the ERROR command, which stops the execution of the script and displays an error message. You can also use the IFERROR function to check for errors and handle them in a specific way, such as by displaying a custom error message or by executing a different part of the script.
Describe the difference between a subroutine and a function in GDL.
A subroutine in GDL is a block of code that performs a specific task and can be called from anywhere in the script. A function, on the other hand, is similar to a subroutine but can also return a value. This means that a function can be used in an expression, while a subroutine cannot.
What are the different control structures in GDL?
GDL supports several different control structures, including IF-THEN-ELSE for conditional execution, FOR-NEXT and WHILE-WEND for loops, and GOSUB-RETURN for subroutines. These control structures can be used to control the flow of the script and to create complex behaviors.
How would you create a parametric object in GDL?
To create a parametric object in GDL, you would first define the parameters that control the object's properties, such as its size, shape, and color. Then, you would write the GDL script to create the object's geometry based on these parameters. Finally, you would save the object as a library part, allowing it to be used in different projects with different parameter values.
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 GDL engineer at this point.

At this point, a skilled GDL engineer should demonstrate strong problem-solving abilities, proficiency in GDL 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 GDL.

What does the following GDL code do?
def x = 5
def y = 10
def z = x + y
println z
This code defines two variables, x and y, assigns them the values 5 and 10 respectively, then adds them together and assigns the result to a third variable, z. It then prints the value of z, which will be 15.
What will be the output of the following GDL code?
def list = [1, 2, 3, 4, 5]
list.each { println it }
This code will print each element of the list on a new line. So the output will be the numbers 1 through 5, each on their own line.
What does the following GDL code do?
def list = [1, 2, 3, 4, 5]
def newList = list.collect { it * 2 }
println newList
This code creates a new list where each element is twice the value of the corresponding element in the original list. It then prints the new list, which will be [2, 4, 6, 8, 10].
What does the following GDL code do?
import groovy.transform.Immutable

@Immutable
class Person {
  String name
  int age
}

def bob = new Person(name: 'Bob', age: 30)
println bob
This code defines an immutable class Person with properties name and age. It then creates an instance of Person with the name 'Bob' and age 30, and prints the instance.

Wrap-up questions

Final candidate for GDL 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 GDL application deployments. Inquire about their experience in handling system failures and their approach to debugging and troubleshooting.

What are the different ways to debug a GDL script?
There are several ways to debug a GDL script, including using the CHECK command to check for errors, using the TRACE command to trace the execution of the script, and using the DEBUGGER command to start the GDL debugger. You can also use the PRINT command to display the values of variables, which can help you understand what the script is doing.
Describe the difference between a 2D and a 3D GDL object.
A 2D GDL object is a symbol that is used in plan views and sections, while a 3D GDL object is a model that is used in 3D views and renderings. A 2D object is defined by a 2D GDL script, while a 3D object is defined by a 3D GDL script. However, a single GDL library part can contain both a 2D and a 3D script, allowing it to be used in both 2D and 3D views.
How would you create a complex GDL object with multiple parts?
To create a complex GDL object with multiple parts, you would use the ADD command to add the parts to the object. Each part would be defined by its own GDL script, and the ADD command would be used to combine these scripts into a single object. The parts could be arranged in a hierarchy, allowing you to control the position and orientation of each part relative to the others.

GDL application related

Product Perfect's GDL development capabilities

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