Hiring guide for ObjectScript Engineers

ObjectScript Developer Hiring Guide

ObjectScript is a proprietary, object-oriented programming language used primarily in InterSystems' data platforms. Developed by InterSystems Corporation, it was first introduced in 1997 as part of the company's Caché DBMS. The language is heavily influenced by MUMPS, a programming language created in the late 1960s for handling and managing databases. ObjectScript is designed to facilitate rapid development and high performance for transactional systems, with particular strengths in handling multidimensional arrays. Its unique capabilities have made it a preferred choice for healthcare applications worldwide.

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

First 20 minutes

General ObjectScript app knowledge and experience

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

What are the basic data types in ObjectScript?
The basic data types in ObjectScript are String, Number, Boolean, List, Object, and Null.
How would you declare a variable in ObjectScript?
You can declare a variable in ObjectScript using the 'set' command. For example, 'set variable = value'.
Describe the difference between a global and a local variable in ObjectScript.
Global variables are available throughout the entire program, while local variables are only available within the routine or method where they are declared.
What is the purpose of the 'do' command in ObjectScript?
The 'do' command is used to call a routine or method.
How would you handle errors in ObjectScript?
Errors in ObjectScript can be handled using the 'try/catch' block.
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 ObjectScript?
Has the candidate demonstrated problem-solving skills?
Is the candidate familiar with database management?
Can the candidate work well in a team?

Next 20 minutes

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

What is the purpose of the 'kill' command in ObjectScript?
The 'kill' command is used to delete variables or arrays.
How would you write a conditional statement in ObjectScript?
Conditional statements in ObjectScript are written using the 'if', 'else', and 'elseif' commands.
What are the looping constructs in ObjectScript?
The looping constructs in ObjectScript are 'for', 'while', and 'do-while'.
Describe the difference between 'quit' and 'return' in ObjectScript.
'Quit' is used to exit a routine or method, while 'return' is used to send a value back to the caller.
How would you create a multidimensional array in ObjectScript?
Multidimensional arrays in ObjectScript can be created using the 'set' command with multiple subscripts. For example, 'set array(sub1,sub2) = value'.
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 ObjectScript engineer at this point.

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

What does this simple ObjectScript code do?
SET x = 5
SET y = 10
WRITE x + y
This code declares two variables x and y, assigns them the values 5 and 10 respectively, and then prints out the sum of x and y, which is 15.
What will be the output of this ObjectScript code?
SET str = "Hello, World!"
WRITE $LENGTH(str)
This code prints the length of the string 'Hello, World!', which is 13.
What does this ObjectScript code do with an array?
SET arr = $LISTBUILD("Apple", "Banana", "Cherry")
WRITE $LISTGET(arr, 2)
This code creates a list with three elements 'Apple', 'Banana', and 'Cherry'. It then retrieves and prints the second element of the list, which is 'Banana'.
What does this ObjectScript code do related to threading?
JOB ^MyRoutine
WRITE "Job started"
This code starts a new job (or thread) that runs the routine named 'MyRoutine'. After starting the job, it prints 'Job started'.

Wrap-up questions

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

What is the purpose of the 'merge' command in ObjectScript?
The 'merge' command is used to copy the contents of one array to another.
How would you use the 'lock' command in ObjectScript?
The 'lock' command is used to prevent simultaneous access to a variable or resource by multiple processes.
Describe the difference between 'zwrite' and 'write' in ObjectScript.
'Zwrite' displays both the name and value of a variable or array, while 'write' only displays the value.

ObjectScript application related

Product Perfect's ObjectScript development capabilities

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