Hiring guide for INTERCAL Engineers

INTERCAL Developer Hiring Guide

INTERCAL is a unique esoteric computer programming language, first developed in 1972 by Don Woods and James M. Lyon at Princeton University. Its name is a parody, derived from "Compiler Language With No Pronounceable Acronym". Unlike conventional languages, INTERCAL's syntax is intentionally obfuscated and counter-intuitive, designed to be as different from traditional languages as possible. This unusual approach has made it a cult favorite among certain programmers, despite its impracticality for everyday coding. The original reference manual and source code can be found in the book "The INTERCAL Programming Language Revised Reference Manual" by Woods and Lyon.

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

First 20 minutes

General INTERCAL app knowledge and experience

The first 20 minutes of the interview should seek to understand the candidate's general background in INTERCAL 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 INTERCAL?
In INTERCAL, you declare a variable using the PLEASE DO ,1 <- #10 statement, where ,1 is the variable and #10 is the value assigned to it.
What are the basic data types supported by INTERCAL?
INTERCAL supports two basic data types: 16-bit integers and 32-bit integers. These are represented as 'spots' and 'tails' respectively.
Describe the difference between 'spots' and 'tails' in INTERCAL.
In INTERCAL, 'spots' represent 16-bit integers while 'tails' represent 32-bit integers. The difference lies in the size of the integer value that they can store.
How would you perform arithmetic operations in INTERCAL?
INTERCAL uses a unique way to perform arithmetic operations. For example, addition is done using the operation 'Mingle' and multiplication is done using 'Select'.
What is the purpose of the 'PLEASE' statement in INTERCAL?
The 'PLEASE' statement is used in INTERCAL to denote politeness. If the code is not polite enough, it may not compile. However, if it's too polite, it may also not compile.
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 INTERCAL language?
Has the candidate demonstrated problem-solving skills?
Is the candidate able to write clean and efficient INTERCAL code?
Has the candidate shown an ability to learn and adapt?

Next 20 minutes

Specific INTERCAL 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 is the use of the 'DO READ OUT' statement in INTERCAL?
The 'DO READ OUT' statement is used in INTERCAL for output operations. It reads values from the variables and prints them.
How would you implement loops in INTERCAL?
INTERCAL doesn't have traditional loop structures. Instead, you use the 'COME FROM' statement which jumps execution back to a previous point in the code, essentially creating a loop.
What is the use of the 'STASH' and 'RETRIEVE' statements in INTERCAL?
The 'STASH' statement is used to push the value of a variable onto a stack, and the 'RETRIEVE' statement is used to pop a value off the stack and into a variable.
How would you handle errors in INTERCAL?
INTERCAL does not have traditional error handling methods. If an error occurs, the program either crashes or produces incorrect output.
What are some unique features of INTERCAL?
INTERCAL has several unique features like its politeness concept, unusual arithmetic operations, and unconventional control structures like 'COME FROM'.
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 INTERCAL engineer at this point.

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

What does this INTERCAL code do?
DO READ OUT #1
DO WRITE IN #1
This code reads a number from the input and then writes it to the output.
What will be the output of the following INTERCAL code?
PLEASE DO ,1 <- #10
DO READ OUT ,1
The code assigns the value 10 to the variable ,1 and then outputs the value of ,1. So, the output will be '10'.
What does this INTERCAL code do?
DO ,1 SUB #1 <- #10
DO ,1 SUB #2 <- #20
DO ,1 SUB #3 <- #30
PLEASE READ OUT ,1
PLEASE READ OUT ,2
PLEASE READ OUT ,3
This code assigns the values 10, 20 and 30 to the variables ,1, ,2 and ,3 respectively. Then it outputs the values of these variables.
What will be the output of the following INTERCAL code?
DO ,1 SUB #1 <- #10
DO ,2 SUB #1 <- #20
DO STASH ,1
DO STASH ,2
DO RETRIEVE ,1
DO READ OUT ,1
DO RETRIEVE ,2
DO READ OUT ,2
The code assigns values to two variables, stashes them away, retrieves them in reverse order, and then prints them. So, the output will be '20' and then '10'.

Wrap-up questions

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

Describe the difference between 'Mingle' and 'Select' operations in INTERCAL.
'Mingle' is an operation in INTERCAL that combines two 16-bit numbers into one 32-bit number. 'Select' on the other hand, is used for multiplication operations.
How would you write a function in INTERCAL?
INTERCAL does not have a conventional function structure. Instead, you can simulate a function by using a combination of 'PLEASE DO', 'COME FROM', and 'RESUME' statements.
What is the importance of the 'ABSTAIN' statement in INTERCAL?
The 'ABSTAIN' statement in INTERCAL is used to disable certain statements in the program. It's a unique feature that allows for dynamic code modification.

INTERCAL application related

Product Perfect's INTERCAL development capabilities

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