Hiring guide for IGOR Pro Engineers

IGOR Pro Developer Hiring Guide

IGOR Pro is a programming language and graphical user interface developed by WaveMetrics. Originally released in 1986, it is primarily used for data analysis in the life sciences. The software is known for its ease of use and its ability to handle large datasets. As of 2023, IGOR Pro is still in active development and is used by researchers in over 50 countries.

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

First 20 minutes

General IGOR Pro app knowledge and experience

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

How would you describe the basic structure of an IGOR Pro procedure file?
An IGOR Pro procedure file is composed of function definitions, macro definitions, and global variable declarations. It can also include #include directives to include other procedure files, and #pragma directives to control various aspects of the compilation process.
What are the key features of IGOR Pro that make it suitable for scientific data analysis?
IGOR Pro provides a comprehensive suite of features for scientific data analysis, including powerful graphing and visualization tools, a built-in programming environment for automation and customization, and support for a wide range of data formats. It also offers advanced analysis techniques such as curve fitting, image processing, signal processing, and statistics.
Describe the difference between a wave and a variable in IGOR Pro.
In IGOR Pro, a wave is a one-dimensional array of data, while a variable is a single value. Waves are used to store and manipulate large sets of data, while variables are typically used to store single values that are used in calculations.
How would you create a 2D graph from a wave in IGOR Pro?
To create a 2D graph from a wave in IGOR Pro, you can use the Display command followed by the name of the wave. For example, 'Display wave0' would create a 2D graph of the data in wave0.
What are the steps to perform curve fitting in IGOR Pro?
To perform curve fitting in IGOR Pro, you first need to define a fitting function, then use the CurveFit command to fit the function to your data. You can also use the Curve Fitting dialog, which provides a graphical interface for curve fitting.
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 IGOR Pro?
Has the candidate demonstrated problem-solving skills?
Can the candidate communicate effectively?
Does the candidate have experience with data analysis?

Next 20 minutes

Specific IGOR Pro 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.

Describe the difference between a function and a macro in IGOR Pro.
In IGOR Pro, a function is a named sequence of commands that can take arguments and return a value, while a macro is a named sequence of commands that does not take arguments or return a value. Functions are more flexible and powerful than macros, but also more complex to define and use.
How would you handle errors in an IGOR Pro procedure?
In an IGOR Pro procedure, you can handle errors by using the try/catch construct. This allows you to catch and handle errors that occur during the execution of a block of code. You can also use the Abort command to stop the execution of a procedure if an error occurs.
What are the steps to create a user-defined function in IGOR Pro?
To create a user-defined function in IGOR Pro, you need to use the Function keyword followed by the name of the function, a list of arguments in parentheses, and a block of code in curly braces. You can also specify a return type for the function.
Describe the difference between a global and a local variable in IGOR Pro.
In IGOR Pro, a global variable is a variable that is accessible from all procedures, while a local variable is a variable that is only accessible from the procedure in which it is defined. Global variables are declared at the top level of a procedure file, while local variables are declared inside a function or macro.
How would you import data from a CSV file in IGOR Pro?
To import data from a CSV file in IGOR Pro, you can use the LoadWave command with the /J flag, which tells IGOR to interpret the file as a delimited text file. You also need to specify the delimiter as a comma. For example, 'LoadWave/J/D=','/P=path file.csv' would load a CSV file from the specified path.
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 IGOR Pro engineer at this point.

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

What does the following code do in IGOR Pro?
Make/O/N=1000 wave0 = sin(2*Pi*x/100)
This code creates a new one-dimensional wave called 'wave0' with 1000 points. The values of the wave are filled with the sine of 2*Pi times the index divided by 100.
What will be the output of the following IGOR Pro code?
Variable a = 5
Variable b = 10
Print a+b
This code will print the value 15. It first declares two variables 'a' and 'b', assigns them the values 5 and 10 respectively, and then prints the sum of 'a' and 'b'.
What does the following IGOR Pro code do?
Make/N=(3,3) matrix0 = p
Print matrix0
This code creates a two-dimensional wave (or matrix) called 'matrix0' with 3 rows and 3 columns. The values of the matrix are filled with the index of each point. It then prints the values of 'matrix0'.
What will be the output of the following IGOR Pro code?
Function MyThreadFunc(s)
  Variable s
  Printf "Thread %d\r", s
End
ThreadStart MyThreadFunc, 0
This code will print 'Thread 0'. It defines a function 'MyThreadFunc' that takes a variable 's' and prints a string with 's'. It then starts a new thread that runs 'MyThreadFunc' with the argument 0.

Wrap-up questions

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

What are the steps to create a 3D surface plot in IGOR Pro?
To create a 3D surface plot in IGOR Pro, you need to use the NewDataFolder command to create a new data folder, the Make command to create a wave, and the AppendToGizmo command to add the wave to a Gizmo, which is IGOR's object for 3D and 4D visualization.
Describe the difference between the Display and the Image command in IGOR Pro.
In IGOR Pro, the Display command is used to create a 2D graph of a wave, while the Image command is used to create an image plot of a wave. The Display command plots the data as a line or scatter plot, while the Image command plots the data as a grid of colored squares.
How would you automate a repetitive task in IGOR Pro?
To automate a repetitive task in IGOR Pro, you can write a procedure that performs the task, and then call this procedure as many times as needed. You can also use loops and conditional statements to control the flow of the procedure.

IGOR Pro application related

Product Perfect's IGOR Pro development capabilities

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