Hiring guide for LotusScript Engineers

LotusScript Developer Hiring Guide

LotusScript is a proprietary, object-oriented programming language developed by Lotus Development Corporation, now owned by IBM. It was first introduced in 1993 as part of Lotus Notes Release 4 and is primarily used for automating tasks within the Lotus platform. The language shares similar syntax and semantics with Visual Basic, facilitating ease of use for those familiar with VB. Despite its specific application scope, it remains an integral part of the IBM Domino environment due to its robust capabilities in manipulating text files and databases. Today, it continues to be utilized in various business applications that require complex document manipulation or integration with legacy systems.

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

First 20 minutes

General LotusScript app knowledge and experience

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

How would you declare a variable in LotusScript?
In LotusScript, you declare a variable using the 'Dim' keyword. For example, 'Dim x As Integer' declares a variable named x of type Integer.
What are the data types supported in LotusScript?
LotusScript supports several data types including Integer, Long, Single, Double, String, Variant, Date/Time, and user-defined types.
How would you write a conditional statement in LotusScript?
A conditional statement in LotusScript can be written using 'If', 'ElseIf' and 'Else' keywords. For example: 'If x > y Then print "x is greater" Else print "y is greater" End If'.
What is the purpose of the 'Option Declare' statement in LotusScript?
The 'Option Declare' statement forces explicit declaration of all variables. This helps in preventing errors due to misspelled variable names and also improves code readability.
How would you handle errors in LotusScript?
In LotusScript, errors can be handled using 'On Error' statement. For example, 'On Error Goto ErrorHandler' would direct the program control to the ErrorHandler section if an error occurs.
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 solid understanding of LotusScript?
Has the candidate demonstrated problem-solving skills?
Is the candidate able to communicate effectively?
Does the candidate have experience with other relevant technologies such as JavaScript, HTML, or CSS?

Next 20 minutes

Specific LotusScript 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 sub in LotusScript.
In LotusScript, a function is a procedure that returns a value, while a sub is a procedure that does not return a value.
What are the types of loops available in LotusScript?
LotusScript supports several types of loops including 'For', 'While', 'Do While', and 'Do Until'.
How would you create an array in LotusScript?
In LotusScript, an array can be created using the 'Dim' keyword followed by the array name and dimensions. For example, 'Dim arr(5) As Integer' creates an integer array with 6 elements.
What are the ways to access data in a NotesDocument object?
Data in a NotesDocument object can be accessed using the 'GetItemValue' method or by referencing the field directly. For example, 'doc.GetItemValue("FieldName")' or 'doc.FieldName'.
How would you connect to a Domino server in LotusScript?
In LotusScript, you can connect to a Domino server using the 'NotesSession' class. For example, 'Dim session As New NotesSession' creates a new session.
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 LotusScript engineer at this point.

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

What does this simple LotusScript code do?
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Messagebox uidoc.FieldGetText("Subject")
This code gets the current document opened in the user interface, and then displays a message box with the value of the 'Subject' field from that document.
What will be the output of this LotusScript code?
Dim x As Integer
Dim y As Integer
x = 10
y = 20
Print x + y
The output of this code will be 30. It adds the values of x and y, which are 10 and 20 respectively, and then prints the result.
What does this LotusScript code do with an array?
Dim arr(1 To 5) As String
arr(1) = "Apple"
arr(2) = "Banana"
arr(3) = "Cherry"
arr(4) = "Date"
arr(5) = "Elderberry"
Forall fruit In arr
Print fruit
End Forall
This code declares an array of strings, assigns some fruit names to each element, and then prints each fruit name. The Forall loop is used to iterate over all elements in the array.
What does this LotusScript code do related to threading?
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.GetDatabase("", "names.nsf")
Call db.OpenByReplicaID("8525646F:006B2E5C")
This code opens a database by its replica ID on the same server as the current database. LotusScript doesn't support multi-threading, but it can handle multiple database connections in the same script.

Wrap-up questions

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

Describe the difference between 'GetDocumentByUNID' and 'GetDocumentByKey' methods in LotusScript.
'GetDocumentByUNID' retrieves a document by its Universal ID, while 'GetDocumentByKey' retrieves a document based on a key in a view.
How would you manipulate strings in LotusScript?
LotusScript provides several functions for string manipulation including 'Left$', 'Right$', 'Mid$', 'InStr', 'Len', 'Trim', 'Lcase', 'Ucase', etc.
What is the purpose of the 'NotesDatabase' class in LotusScript?
The 'NotesDatabase' class represents a Domino database. It provides methods and properties to create, delete, open, and manipulate databases.

LotusScript application related

Product Perfect's LotusScript development capabilities

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