Hiring guide for Pure Data Engineers

Pure Data Developer Hiring Guide

Pure Data (Pd) is a visual programming language developed by Miller Puckette in the 1990s for creating interactive computer music and multimedia works. As an open-source software, it is widely used by artists, scientists, and developers for its easy-to-use interface and rich functionality. Pd allows users to create software graphically without writing lines of code, making it accessible to non-programmers. It has been influential in the fields of electronic music and visual arts due to its flexibility and adaptability. The development of Pure Data was initially funded by IRCAM in Paris, France (Institute for Research and Coordination in Acoustics/Music).

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

First 20 minutes

General Pure Data app knowledge and experience

The first 20 minutes of the interview should seek to understand the candidate's general background in Pure Data 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 a Pure Data patch?
A Pure Data patch is composed of objects, messages, and connections. Objects are the basic building blocks of Pure Data and they perform specific functions. Messages are the data that is sent between objects. Connections are the lines that link objects and messages together.
What are the different types of objects in Pure Data?
There are four main types of objects in Pure Data: message objects, GUI objects, signal objects, and abstract objects. Message objects process and pass messages, GUI objects provide a graphical interface, signal objects process and pass audio signals, and abstract objects are user-defined objects.
Describe the difference between a message box and an object box in Pure Data.
A message box in Pure Data is used to store and send messages to other objects, while an object box is used to create new objects. The main difference is that a message box sends data, while an object box performs operations on data.
How would you create a simple oscillator in Pure Data?
To create a simple oscillator in Pure Data, you would use the [osc~] object. You would then connect a [number~] object to the [osc~] object to control the frequency of the oscillator.
What are the different types of messages in Pure Data?
There are several types of messages in Pure Data, including float messages, symbol messages, list messages, and bang messages. Float messages contain a single number, symbol messages contain a single word, list messages contain multiple numbers or words, and bang messages trigger an action.
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

Have they demonstrated a thorough understanding of Pure Data?
Did they show problem-solving skills during the interview?
What is their experience with other programming languages?
Can they work well in a team?

Next 20 minutes

Specific Pure Data 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 float and a symbol in Pure Data.
A float in Pure Data is a type of message that contains a single number, while a symbol is a type of message that contains a single word. The main difference is the type of data they contain.
How would you create a delay effect in Pure Data?
To create a delay effect in Pure Data, you would use the [delread~] and [delwrite~] objects. You would connect an audio signal to the [delwrite~] object, and then connect the [delread~] object to the output. The delay time is controlled by a number connected to the [delread~] object.
What are the different types of audio signals in Pure Data?
There are two main types of audio signals in Pure Data: control signals and audio signals. Control signals are used to control the parameters of audio objects, while audio signals are used to create and process sound.
Describe the difference between control signals and audio signals in Pure Data.
Control signals in Pure Data are used to control the parameters of audio objects, while audio signals are used to create and process sound. The main difference is their purpose: control signals are used for control, while audio signals are used for sound.
How would you create a filter in Pure Data?
To create a filter in Pure Data, you would use the [lop~] object for a low-pass filter, the [hip~] object for a high-pass filter, or the [bp~] object for a band-pass filter. You would then connect an audio signal to the filter object, and connect the filter object to the output.
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 Pure Data engineer at this point.

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

What does the following Pure Data code do?
[loadbang]
|
[print hello]
This code will print the string 'hello' to the console when the patch is loaded. The 'loadbang' object outputs a bang when the patch is loaded, which then triggers the 'print' object to print 'hello'.
What is the output of the following Pure Data code?
[1 2 3(
|
[list length]
The output will be '3'. The 'list length' object calculates the length of the list, which is 3 in this case.
What does the following Pure Data code do?
[1 2 3 4 5(
|
[list split 2]
|
[list append 6 7]
This code splits the list at the second index, creating two lists: '1 2' and '3 4 5'. Then, it appends '6 7' to the end of the second list, resulting in '3 4 5 6 7'.
What does the following Pure Data code do?
[metro 1000]
|
[tgl 1]
|
[print]
This code will print a bang to the console every 1000 milliseconds (or 1 second) as long as the toggle is on. The 'metro' object outputs a bang at regular intervals, the 'tgl' object controls whether this is on or off, and the 'print' object prints the bang to the console.

Wrap-up questions

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

What are the different types of data flow in Pure Data?
There are two main types of data flow in Pure Data: top-down and bottom-up. Top-down data flow is when data flows from the top of the patch to the bottom, while bottom-up data flow is when data flows from the bottom of the patch to the top.
Describe the difference between top-down and bottom-up data flow in Pure Data.
Top-down data flow in Pure Data is when data flows from the top of the patch to the bottom, while bottom-up data flow is when data flows from the bottom of the patch to the top. The main difference is the direction of data flow.
How would you create a complex synthesizer in Pure Data?
To create a complex synthesizer in Pure Data, you would use a combination of oscillators, filters, and envelopes. You would connect the oscillators to the filters to shape the sound, and then connect the filters to the envelopes to control the amplitude of the sound over time.

Pure Data application related

Product Perfect's Pure Data development capabilities

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