LiveCode Developer Hiring Guide

Hiring Guide for LiveCode Engineers

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

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").

First 20 minutes

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

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.

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 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 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 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'.

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

Does the candidate show a willingness to learn and adapt?

The tech industry is constantly evolving. A good developer should be open to learning new technologies and adapting to changes.

Is the candidate able to work under pressure and meet deadlines?

In a development environment, deadlines are often tight and the pressure can be high. The candidate should be able to manage their time effectively and perform well under pressure.

Does the candidate have experience with similar projects?

Previous experience with similar projects can indicate that the candidate is capable of handling the tasks and challenges that may arise in this position.

Can the candidate communicate effectively?

Good communication skills are essential in a development team. The candidate should be able to explain their thought process, understand instructions, and work well with others.

Has the candidate demonstrated problem-solving skills?

This is crucial as coding often involves troubleshooting and finding solutions to complex problems. A good developer should be able to think critically and solve problems efficiently.

Does the candidate have a strong understanding of LiveCode language?

This is important because LiveCode is the primary language they will be working with. They should be able to demonstrate a deep understanding of its syntax, structure, and capabilities.

Next 20 minutes

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

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.

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.

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

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.

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.

A skilled LiveCode engineer should show proficiency in LiveCode language, problem-solving skills, and a good understanding of user interface design. Red flags could include lack of practical experience, inability to think logically through coding problems, or poor communication skills.

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.

What does the following LiveCode code do?

create button "My Button"
set the name of last button to "New Button"

This code creates a new button with the label 'My Button' and then sets the name of the most recently created button to 'New Button'.

What will be the output of the following LiveCode code?

put the systemVersion into myVariable
answer myVariable

The output will be the version of the operating system. This code gets the system version and puts it into 'myVariable'. Then it displays the value of 'myVariable'.

Wrap-up questions

Final candidate for LiveCode role questions

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

What are the best practices for optimizing performance in LiveCode?

Some best practices for optimizing performance in LiveCode include minimizing the use of global variables, optimizing loops, using native LiveCode functions and commands where possible, and minimizing the use of the 'send' command, which can be slower than directly calling a handler.

How would you implement recursion in a LiveCode function?

In LiveCode, you can implement recursion by having a function call itself. However, you need to ensure that there is a base case that will stop the recursion, otherwise it could lead to an infinite loop.

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.

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.

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.

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

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.