Hiring guide for ZX81 BASIC Engineers

ZX81 BASIC Developer Hiring Guide

ZX81 BASIC is a programming language that was designed for the Sinclair ZX81, a home computer released in the UK in 1981. This language is an implementation of the Beginner's All-purpose Symbolic Instruction Code (BASIC) and was specifically designed to be simple and easy to learn, making it ideal for beginners and hobbyists. It supported various types of data such as integers, floating point numbers, and strings. The ZX81 BASIC allowed users to create programs using loops, conditional statements, and subroutines. However, due to the limitations of the ZX81 hardware (such as limited memory), it lacked some features found in other versions of BASIC at that time.

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

First 20 minutes

General ZX81 BASIC app knowledge and experience

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

How would you declare a variable in ZX81 BASIC?
You would declare a variable using the LET command, e.g., 'LET A = 10'.
What are two types of loops in ZX81 BASIC and how are they different?
The two types of loops are the FOR...NEXT loop and the GO TO loop. FOR...NEXT is a definite loop with a known number of iterations while GO TO is an indefinite loop that continues until a specific condition is met.
Describe the difference between IF...THEN and IF...THEN...ELSE in ZX81 BASIC.
IF...THEN is a single condition check, if the condition is true the statement is executed. IF...THEN...ELSE checks a condition, if it's true it executes one statement, if it's false it executes a different statement.
How would you handle errors in ZX81 BASIC?
ZX81 BASIC doesn't have a try-catch mechanism. Errors are usually handled using the 'ON ERROR' statement which jumps to a specific line when an error occurs.
What are the uses of the PRINT command in ZX81 BASIC?
The PRINT command in ZX81 BASIC is used for outputting text, numbers, or the value of variables to the screen.
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 solid understanding of ZX81 BASIC programming language?
Has the candidate demonstrated problem-solving skills during the interview?
Is the candidate familiar with the ZX81 hardware and its limitations?
Has the candidate shown an ability to learn new technologies and adapt to changes?

Next 20 minutes

Specific ZX81 BASIC 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 the INKEY$ and INPUT commands in ZX81 BASIC.
INKEY$ is non-blocking and checks if a key has been pressed. INPUT waits for the user to enter a value and press enter.
How would you create a multidimensional array in ZX81 BASIC?
You would create a multidimensional array using the DIM command, e.g., 'DIM A(10,10)'.
What are the different data types supported in ZX81 BASIC?
ZX81 BASIC only supports two data types: numeric (both integer and floating point) and string.
Describe the difference between the RAND and RND functions in ZX81 BASIC.
RAND returns a random integer while RND returns a random floating point number between 0 and 1.
How would you write a subroutine in ZX81 BASIC?
You would write a subroutine using the GOSUB command, which jumps to a line number, and the RETURN command, which comes back to the line after the GOSUB.
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 ZX81 BASIC engineer at this point.

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

What does this simple ZX81 BASIC code do?
10 PRINT "Hello, World!"
20 GOTO 10
This code prints the string 'Hello, World!' indefinitely. It's a simple loop that keeps printing the string.
What will be the output of this ZX81 BASIC code?
10 LET A=5
20 LET B=10
30 PRINT A+B
The output of this code will be 15. The code assigns values to variables A and B, then prints the sum of A and B.
What does this ZX81 BASIC code do?
10 DIM A(5)
20 FOR I=1 TO 5
30 LET A(I)=I*2
40 NEXT I
50 FOR I=1 TO 5
60 PRINT A(I)
70 NEXT I
This code initializes an array of size 5, fills it with multiples of 2, and then prints the elements of the array. The output will be 2, 4, 6, 8, 10.
What does this ZX81 BASIC code do?
10 FOR I=1 TO 1000
20 PRINT I
30 NEXT I
This code prints numbers from 1 to 1000. It's a simple loop that prints the value of I for each iteration.

Wrap-up questions

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

What are the uses of the PEEK and POKE commands in ZX81 BASIC?
PEEK and POKE are used to read and write directly to memory. PEEK returns the value at a specific memory address. POKE sets the value at a specific memory address.
Describe the difference between the STOP and PAUSE commands in ZX81 BASIC.
STOP halts the program immediately. PAUSE halts the program for a specified number of frames (1/50th of a second each).
How would you implement recursion in ZX81 BASIC?
Recursion in ZX81 BASIC can be implemented using GOSUB. However, due to limited memory and the lack of a stack, deep recursion can cause problems.

ZX81 BASIC application related

Product Perfect's ZX81 BASIC development capabilities

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