ARexx Developer Hiring Guide

Hiring Guide for ARexx Engineers

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

ARexx is a computer programming language developed by William S. Hawes in 1987, designed for the Amiga line of computers. It's an implementation of the Rexx language, originally created by IBM, but tailored specifically for the AmigaOS operating system. ARexx provides a way to automate and script tasks, and to communicate between different software applications. Its ease of use and powerful scripting capabilities made it a popular choice for Amiga users and developers. The information about ARexx can be found in various historical documents and articles about the Amiga computer system.

First 20 minutes

General ARexx knowledge and experience

The next 20 minutes of the interview should attempt to focus more specifically on the development questions used, and the level of depth and skill the engineer possesses.

How would you handle errors in ARexx?

Error handling in ARexx can be done using the SIGNAL ON condition_name instruction. When an error occurs, execution jumps to a label specified by the condition_name.

What are the control structures available in ARexx?

ARexx provides several control structures including IF-THEN-ELSE, SELECT, DO WHILE, DO UNTIL, and LOOP.

Describe the difference between a function and a subroutine in ARexx.

A function is a reusable section of code that performs a specific task and returns a value. A subroutine is also a reusable section of code, but it does not return a value. Instead, it performs a task and then control returns to the main program.

How would you comment in ARexx?

In ARexx, you can comment by using /* for multiple lines and -- for single lines.

What are the basic data types supported by ARexx?

ARexx supports only one data type, the string. All data, including numbers, are stored and manipulated as strings.

The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

What youre looking for early-on

Has the candidate demonstrated good communication skills?

These skills are important for understanding project requirements and collaborating with team members.

Does the candidate have experience with other programming languages?

This can be beneficial as it shows the candidate's ability to learn and adapt to different coding languages.

Has the candidate shown the ability to work in a team?

Software development often requires collaboration, so good teamwork skills are important.

Is the candidate familiar with the operating systems that support ARexx, such as AmigaOS?

This knowledge is necessary as ARexx is primarily used on these platforms.

Has the candidate demonstrated problem-solving skills?

These skills are important for a developer to troubleshoot and solve coding issues.

Does the candidate have a strong understanding of ARexx language?

This is crucial as the position requires the candidate to write and debug ARexx scripts.

Next 20 minutes

Specific ARexx development questions

The next 20 minutes of the interview should attempt to focus more specifically on the development questions used, and the level of depth and skill the engineer possesses.

What are the different ways you can pass parameters to a subroutine in ARexx?

Parameters can be passed to a subroutine in ARexx by value or by reference. Passing by value is the default. To pass by reference, the variable name must be preceded by a period.

Describe the difference between INTERPRET and EVAL in ARexx.

INTERPRET executes a string as an ARexx instruction, while EVAL evaluates a string as an ARexx expression.

What is the significance of the ADDRESS instruction in ARexx?

The ADDRESS instruction in ARexx is used to specify the environment in which subsequent commands are to be executed.

How would you perform string manipulation in ARexx?

String manipulation in ARexx can be done using various built-in functions such as substr, pos, strip, translate, and length.

What is the purpose of the PARSE instruction in ARexx?

The PARSE instruction in ARexx is used to split a string into multiple substrings based on a specified pattern.

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 ARexx engineer at this point.

A skilled ARexx engineer should demonstrate a deep understanding of the AmigaDOS operating system, excellent coding abilities in ARexx, and ability to debug and optimize scripts. Red flags would include lack of detail in discussing past projects or inability to explain complex coding concepts.

Digging deeper

Code questions

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

What does the following ARexx code do?

say 'Hello, World!'

This code will print 'Hello, World!' to the standard output.

What will be the output of the following ARexx code?

x = 5
y = 10
say x + y

The output of the code will be 15, which is the sum of the values of x and y.

What does the following ARexx code do?

arr.1 = 'apple'
arr.2 = 'banana'
arr.0 = 2
say arr.1
say arr.2

This code creates an array with two elements 'apple' and 'banana'. It then prints the elements of the array to the standard output.

What will be the output of the following ARexx code?

x = 1
y = 2
do while x < 5
  say x
  x = x + y
end

The output of the code will be a sequence of numbers 1, 3, printed in separate lines. This is the result of a loop that increments the value of x by y while x is less than 5.

What does the following ARexx code do?

class = 'Fruit'
object = 'Apple'
say class object

This code creates two variables, 'class' and 'object', and assigns them the values 'Fruit' and 'Apple' respectively. It then prints the values of these variables to the standard output.

What will be the output of the following ARexx code?

x = 5
if x > 3 then do
  say 'x is greater than 3'
else
  say 'x is not greater than 3'
end

The output of the code will be 'x is greater than 3'. This is the result of an if-else statement that checks whether x is greater than 3.

Wrap-up questions

Final candidate for ARexx role questions

The final few interview questions for a ARexx candidate should typically focus on a combination of technical skills, personal goals, growth potential, team dynamics, and company culture.

What are the best practices for optimizing performance in ARexx?

Some best practices for optimizing performance in ARexx include avoiding unnecessary string manipulations, using the native functions and instructions whenever possible, and minimizing file I/O.

Describe how you would implement recursion in ARexx.

Recursion in ARexx can be implemented by having a function call itself. Care must be taken to ensure that the recursion has a base case to prevent infinite recursion.

How would you handle file I/O in ARexx?

File I/O in ARexx can be done using the OPEN, CLOSE, READLN, and WRITELN instructions.

What are the different ways you can interact with the operating system in ARexx?

In ARexx, you can interact with the operating system using the ADDRESS instruction to send commands, or by using the SYSTEM function to execute a command and return its output.

How would you create and use a stem variable in ARexx?

A stem variable in ARexx is a type of array. You create a stem variable by appending a period to a variable name. You can then use the stem variable by appending an index to it.

The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

ARexx application related

Product Perfect's ARexx development capabilities

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