Inform Developer Hiring Guide

Hiring Guide for Inform Engineers

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

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

First 20 minutes

General Inform 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 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.

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.

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.

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 is the primary language used in Inform development?

The primary language used in Inform development is Inform 7, a natural language programming language.

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 asked insightful questions about the role or the company?

This shows that the candidate is engaged in the interview process and is seriously considering the role.

Is the candidate showing enthusiasm for the role and the company?

This could indicate a higher level of motivation and commitment to the job, leading to better performance and lower turnover.

Has the candidate shown problem-solving abilities?

Problem-solving is a critical skill in development as issues and challenges are a regular part of the job.

Is the candidate able to effectively communicate their thoughts and ideas?

Communication is key in any role, but especially in development where clear articulation of complex ideas is often required.

Does the candidate have experience with similar projects or tasks?

Prior experience with similar projects or tasks indicates that the candidate may be able to quickly adapt to the job requirements and perform effectively.

Has the candidate demonstrated a strong understanding of Inform development?

This is important because the candidate needs to have a solid foundation in Inform development to be able to effectively perform in the role.

Next 20 minutes

Specific Inform 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.

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.

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.

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.

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.

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.

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, you want to see a strong understanding of Inform software and ETL (Extract, Transform, Load) processes, excellent problem-solving skills and effective communication abilities. Red flags could include lack of knowledge in database management or inability to explain complex technical concepts clearly.

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.

What does the following JSON code represent?

{ 'students': [ { 'id': 1, 'name': 'John', 'grades': [90, 85, 88] }, { 'id': 2, 'name': 'Anna', 'grades': [92, 80, 88] } ] }

The code represents a JSON object with a property named students. The students property is an array of objects, each with properties id, name, and grades. The grades property is an array of numbers.

What will be the output of the following code snippet?

{ 'company': { 'name': 'Tech Corp', 'employees': [ { 'firstName': 'John', 'lastName': 'Doe', 'role': 'Developer' }, { 'firstName': 'Anna', 'lastName': 'Smith', 'role': 'Designer' } ] } }

The code represents a JSON object with a property named company. The company property is an object with two properties: name and employees. The employees property is an array of objects, each with properties firstName, lastName, and role.

Wrap-up questions

Final candidate for Inform role questions

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

Describe the process of testing and refining an Inform game to ensure it is satisfying and bug-free.

Testing and refining an Inform game involves iterative development, extensive playtesting, use of Inform's debugging tools, and soliciting feedback from players. It's important to test the game from the player's perspective to ensure it is engaging, intuitive, and free of bugs.

How would you design a non-player character (NPC) with its own behaviors and responses in Inform 7?

To design an NPC in Inform 7, you would create a new 'person' and use rules and conditions to define their behaviors and responses. You can also use tables to manage complex NPC interactions.

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.

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.

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.

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

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.