Hiring guide for Inform Engineers

Inform Developer Hiring Guide

Computer software programming languages have evolved over time, with new languages emerging to meet the needs of developers. The first programming languages were developed in the 1950s, and they were designed for specific tasks. As computers became more powerful, programming languages became more versatile, and they were able to be used for a wider range of applications. Today, there are hundreds of programming languages available, each with its own strengths and weaknesses. Here are five sentences that describe the history of computer software programming languages: 1. The first programming languages were developed in the 1950s. 2. These languages were designed for specific tasks, such as numerical computing or data processing. 3. As computers became more powerful, programming languages became more versatile. 4. Today, there are hundreds of programming languages available, each with its own strengths and weaknesses. 5. The choice of programming language for a particular project depe

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

First 20 minutes

General Inform app knowledge and experience

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

What is the primary language used in Inform development?
The primary language used in Inform development is Inform 7, a natural language programming language.
How would you debug a problem in an Inform project?
I would use the built-in debugging tools in Inform 7 such as ACTIONS, RULES, or RELATIONS. I'd also use the testing and tracing commands to isolate and identify the issue.
What are the main components of an Inform story?
The main components of an Inform story are rooms, objects, and actions. Rooms define the setting, objects are the items that can be interacted with, and actions are what the player can do.
Describe the difference between a 'thing' and an 'object' in Inform 7.
In Inform 7, 'thing' and 'object' are basically synonyms and used interchangeably. Both refer to entities that can be interacted with in the game.
How would you create a new room in Inform 7?
To create a new room in Inform 7, you simply need to describe it. For example, 'The Kitchen is a room.' is enough to create a room named Kitchen.
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

Has the candidate demonstrated a strong understanding of Inform development?
Does the candidate have experience with similar projects or tasks?
Is the candidate able to effectively communicate their thoughts and ideas?
Has the candidate shown problem-solving abilities?

Next 20 minutes

Specific Inform 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 'Understand' command used for in Inform?
The 'Understand' command in Inform is used to define how player inputs are interpreted by the game. It maps player commands to actions in the game.
How would you create an object that a player can interact with in Inform 7?
To create an interactive object in Inform 7, you would declare it in relation to a room or another object. For example, 'There is a red ball in the Kitchen.' creates a red ball that the player can interact with.
Describe the difference between 'Instead of' and 'After' rules in Inform 7.
'Instead of' rules in Inform 7 are used to override the standard behavior of an action, while 'After' rules are used to add additional effects or consequences after an action has successfully occurred.
What is the purpose of the 'Table' feature in Inform 7?
The 'Table' feature in Inform 7 is used to store and organize data in a structured format. It's useful for managing complex game states or randomizing outcomes.
How would you handle player input that is not recognized by the game in Inform 7?
To handle unrecognized player input, you would use the 'Understand' command to add custom responses or actions for specific inputs that are not covered by the standard rules.
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 Inform engineer at this point.

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

What does the following JSON code represent?
{ 'name': 'John', 'age': 30, 'city': 'New York' }
The code represents a JSON object with three properties: name, age, and city. The values of these properties are 'John', 30, and 'New York' respectively.
What will be the output of the following code snippet?
{ 'employees': ['John', 'Anna', 'Peter'], 'department': 'Marketing' }
The code represents a JSON object with two properties: employees and department. The employees property is an array containing three values 'John', 'Anna', and 'Peter'. The department property has a value of 'Marketing'.
What does the following JSON code do?
{ 'employees': [{ 'firstName':'John', 'lastName':'Doe' }, { 'firstName':'Anna', 'lastName':'Smith' }, { 'firstName':'Peter', 'lastName':'Jones' }] }
The code represents a JSON object with a property named employees. The employees property is an array of objects, each with properties firstName and lastName.
What will be the output of the following code snippet?
{ 'book': { 'name': 'Inferno', 'author': { 'firstName': 'Dan', 'lastName': 'Brown' } } }
The code represents a JSON object with a property named book. The book property is an object with two properties: name and author. The author property is another object with properties firstName and lastName.

Wrap-up questions

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

Describe the difference between 'check', 'carry out', and 'report' rules in Inform 7.
'Check' rules in Inform 7 are used to determine if an action can be performed, 'carry out' rules define what happens when the action is performed, and 'report' rules define what the game tells the player after the action is performed.
How would you implement a puzzle or challenge that requires multiple steps to complete in Inform 7?
To implement a multi-step puzzle in Inform 7, you would use a combination of objects, rules, and conditions that the player must meet in the correct order to complete the puzzle.
What are some techniques for managing complexity in a large Inform project?
Techniques for managing complexity in a large Inform project include modular design, use of 'Include' files, extensive use of tables and relations, and thorough testing and debugging.

Inform application related

Product Perfect's Inform development capabilities

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