Hiring guide for LiveCode Engineers

LiveCode Developer Hiring Guide

LiveCode is a high-level programming language developed by the Scotland-based company LiveCode Ltd. First released in 2001, it was initially known as Revolution and designed to be user-friendly for novice programmers. The language allows developers to create applications that can run on multiple platforms such as Windows, MacOS, Linux, iOS and Android. Its unique feature is its English-like syntax which simplifies coding process significantly (source: "Livecode.com"). Today, LiveCode remains popular due to its simplicity and cross-platform capabilities (source: "Techopedia.com").

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

First 20 minutes

General LiveCode app knowledge and experience

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

What is the basic structure of a LiveCode script?
A LiveCode script is structured as a series of handlers, which are blocks of code that respond to specific events or messages. Handlers begin with the 'on' or 'function' keyword followed by the name of the handler, and end with 'end'.
How would you create a button in LiveCode?
To create a button in LiveCode, you would use the 'create' command followed by the type of object you want to create, in this case, 'button'. You can then set the button's properties using the 'set' command.
What is the use of the 'put' command in LiveCode?
The 'put' command in LiveCode is used to place a value into a container, such as a variable or a field. It can also be used to append data to a file or to a variable.
How would you handle errors in LiveCode?
In LiveCode, you can handle errors using the 'try' statement. If an error occurs in the code within the 'try' block, execution jumps to the 'catch' block, where you can handle the error.
What are the different types of variables in LiveCode and how do they differ?
LiveCode has three types of variables: global, local, and script-local. Global variables are accessible from all scripts, local variables are only accessible within the handler they are declared in, and script-local variables are accessible from all handlers within the script they are declared in.
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 strong understanding of LiveCode language?
Has the candidate demonstrated problem-solving skills?
Can the candidate communicate effectively?
Does the candidate have experience with similar projects?

Next 20 minutes

Specific LiveCode 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 a function and a command in LiveCode.
In LiveCode, a function returns a value whereas a command does not. Functions are called as part of an expression, while commands are called as part of a statement.
How would you use a repeat loop in LiveCode?
A repeat loop in LiveCode is used to execute a block of code multiple times. The repeat loop can be controlled by a condition or by a count. For example, 'repeat with i = 1 to 10' would repeat the code block 10 times.
What is the use of the 'send' command in LiveCode?
The 'send' command in LiveCode is used to send a message to an object. This message will trigger the corresponding handler in the object's script, if it exists.
How would you store and retrieve data using arrays in LiveCode?
In LiveCode, you can store data in an array using the 'put' command. You can then retrieve this data by referencing the array and the key associated with the data. For example, 'put "Hello" into myArray["greeting"]' would store the string "Hello" in the array, and 'put myArray["greeting"] into field "Output"' would retrieve it.
Describe the difference between the 'hide' and 'delete' commands in LiveCode.
In LiveCode, the 'hide' command makes an object invisible but it still exists in the stack, while the 'delete' command removes the object from the stack entirely.
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 LiveCode engineer at this point.

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

What does the following LiveCode code do?
put "Hello, World!" into field "Output"
This code puts the string 'Hello, World!' into a field named 'Output'.
What will be the output of the following LiveCode code?
put the number of chars in "LiveCode" into myVariable
answer myVariable
The output will be '8'. This code counts the number of characters in the string 'LiveCode' and puts it into 'myVariable'. Then it displays the value of 'myVariable'.
What does the following LiveCode code do?
put the keys of tArray into tKeyList
sort tKeyList
This code gets the keys of an array 'tArray' and puts them into a variable 'tKeyList'. Then it sorts the keys in 'tKeyList'.
What does the following LiveCode code do?
lock messages
put "Hello, World!" into field "Output"
unlock messages
This code temporarily disables the handling of messages in LiveCode, puts the string 'Hello, World!' into a field named 'Output', and then re-enables message handling. This can be useful for performance reasons when making many changes to the user interface in a short period of time.

Wrap-up questions

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

What are the different types of messages in LiveCode and how are they used?
In LiveCode, there are system messages, user messages, and custom messages. System messages are sent by the LiveCode environment in response to user actions or system events. User messages are sent by the user's script in response to user actions. Custom messages are defined by the user and can be sent by the user's script.
How would you create and use a custom property in LiveCode?
In LiveCode, you can create a custom property using the 'set' command, and then reference it using the 'get' command. For example, 'set the myProperty of button "MyButton" to "Hello"' would create a custom property, and 'get the myProperty of button "MyButton"' would retrieve it.
Describe the difference between 'pass' and 'exit' in LiveCode.
In LiveCode, 'pass' allows a message to continue on to the next handler in the message path, while 'exit' stops the current handler and any remaining code in the handler is not executed.

LiveCode application related

Product Perfect's LiveCode development capabilities

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