Hiring guide for LSL Engineers

LSL Developer Hiring Guide

LSL (Linden Scripting Language) is a Turing-complete, high-level, imperative programming language designed for use with the Second Life virtual world platform. Developed by Linden Lab in 2003, LSL is used to create and modify in-world content such as scripts, animations, and 3D models. LSL is open source and freely available for use by anyone. Sources: * [Linden Scripting Language Documentation](https://wiki.secondlife.com/wiki/Linden_Scripting_Language) * [Linden Scripting Language on Wikipedia](https://en.wikipedia.org/wiki/Linden_Scripting_Language)

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

First 20 minutes

General LSL app knowledge and experience

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

How would you define the Linden Scripting Language (LSL)?
LSL is a scripting language that is used in Second Life, an online virtual world. It allows developers to create interactive and dynamic content such as games, simulations, and virtual goods.
What are the basic data types in LSL?
The basic data types in LSL are integer, float, string, key, vector, rotation, and list.
How would you create a script in LSL?
To create a script in LSL, you would first need to create a new script in the inventory, then open it and write the code in the script editor.
Describe the difference between a state and an event in LSL.
A state in LSL is a section of the script that contains event handlers, while an event is a function that is called when a certain action occurs.
What are the different types of events in LSL?
There are many types of events in LSL, including touch events, collision events, timer events, sensor events, and control events, among others.
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 Linden Scripting Language (LSL)?
Does the candidate have experience with virtual world platforms like Second Life?
Can the candidate solve complex problems?
Does the candidate show good communication skills?

Next 20 minutes

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

How would you use the llSay function in LSL?
The llSay function is used to make an object say something. The syntax is llSay(integer channel, string message), where channel is the communication channel and message is the text to be said.
What are the different types of loops in LSL?
LSL supports three types of loops: for loops, while loops, and do-while loops.
Describe the difference between a global variable and a local variable in LSL.
A global variable in LSL is declared outside any state or function and can be accessed from anywhere in the script, while a local variable is declared inside a function and can only be accessed within that function.
How would you handle errors in LSL?
Error handling in LSL is typically done using the llOwnerSay function to output error messages to the owner of the script.
What are the different types of operators in LSL?
LSL supports several types of operators, including arithmetic operators, comparison operators, logical operators, bitwise operators, and assignment operators.
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 LSL engineer at this point.

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

What does this simple LSL script do?
default { touch_start(integer total_number) { llSay(0, "Hello, Avatar!"); } }
This script says 'Hello, Avatar!' when the object it's attached to is touched.
What is the output of this LSL code snippet?
integer x = 10; integer y = 20; default { state_entry() { llSay(0, (string)x + (string)y); } }
The output will be '1020'. The script concatenates the string representations of the integers x and y.
What does this LSL script do with the list?
list myList = ["apple", "banana", "cherry"]; default { state_entry() { integer len = llGetListLength(myList); llSay(0, (string)len); } }
This script counts the number of elements in the list 'myList' and says the count. The output will be '3'.
What does this LSL script do related to concurrency?
default { touch_start(integer total_number) { llSetTimerEvent(5.0); } timer() { llSay(0, "5 seconds have passed!"); llSetTimerEvent(0.0); } }
This script sets a timer to trigger every 5 seconds when the object is touched. When the timer triggers, it says '5 seconds have passed!' and then stops the timer.

Wrap-up questions

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

Describe the difference between the llSensor and llSensorRepeat functions in LSL.
The llSensor function in LSL triggers a sensor event once, while the llSensorRepeat function triggers a sensor event repeatedly at specified intervals.
How would you use the llSetPos function in LSL?
The llSetPos function is used to set the position of an object. The syntax is llSetPos(vector position), where position is the new position of the object.
What are the different types of control events in LSL?
Control events in LSL include forward, backward, left, right, up, down, left rotate, right rotate, jump, crouch, and others.

LSL application related

Product Perfect's LSL development capabilities

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