Hiring guide for Magik Engineers

Magik Developer Hiring Guide

Magik is a high-level, object-oriented, dynamic programming language developed by Smallworld Systems Ltd., now owned by GE Energy. Introduced in 1989, it was specifically designed for the development of Geographical Information Systems (GIS) applications. The language is known for its unique features such as dynamic typing, multiple inheritance, and garbage collection. It is primarily used in Smallworld products, including Smallworld Core Spatial Technology. Sources of information include GE Energy's official documentation and various programming language history resources.

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

First 20 minutes

General Magik app knowledge and experience

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

What is the main use of Magik programming language?
Magik is primarily used for developing GIS (Geographical Information System) applications.
How would you define a method in Magik?
In Magik, a method is defined using the '_method' keyword followed by the method name, parameters, and the method body enclosed in 'endmethod' keyword.
What are the basic data types in Magik?
The basic data types in Magik are integer, float, boolean, character, string, symbol, and object.
How would you handle exceptions in Magik?
In Magik, exceptions are handled using 'try' and 'catch' blocks. The 'try' block contains the code that might throw an exception, and the 'catch' block contains the code to handle the exception.
Describe the difference between global and local variables in Magik.
Global variables in Magik are accessible throughout the program, whereas local variables are only accessible within the method or block where they are defined.
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 Magik programming language?
Has the candidate demonstrated problem-solving skills?
Is the candidate able to communicate effectively?
Does the candidate have experience with other relevant technologies?

Next 20 minutes

Specific Magik 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 are the different types of loops in Magik?
Magik supports several types of loops including 'for', 'while', and 'repeat' loops.
How would you define a class in Magik?
In Magik, a class is defined using the '_class' keyword followed by the class name and the class body enclosed in 'endclass' keyword.
What is the purpose of the '_super' keyword in Magik?
The '_super' keyword in Magik is used to call a method in the superclass of the current class.
How would you create an instance of a class in Magik?
In Magik, an instance of a class is created using the 'new' keyword followed by the class name and any necessary parameters.
Describe the difference between '_private' and '_public' methods in Magik.
_private methods in Magik are only accessible within the class where they are defined, whereas _public methods are accessible from any class.
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 Magik engineer at this point.

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

What does this simple Magik code do?
a << 5
This code assigns the value 5 to the variable 'a'.
What does this Magik code do?
_if a = 5 _then _return 'five' _else _return 'not five' _endif
This code checks if the value of variable 'a' is 5. If 'a' is 5, it returns the string 'five'. Otherwise, it returns the string 'not five'.
What does this Magik code do?
a << _vector.new_with(1,2,3,4,5)
a[3]
This code creates a new vector with the elements 1, 2, 3, 4, 5 and assigns it to the variable 'a'. Then it accesses the third element of the vector.
What does this Magik code do?
_lock a _with _if a = 5 _then _return 'five' _else _return 'not five' _endif _endlock
This code locks the variable 'a' to ensure thread safety while checking its value. If 'a' is 5, it returns the string 'five'. Otherwise, it returns the string 'not five'.

Wrap-up questions

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

What is the purpose of the '_abstract' keyword in Magik?
The '_abstract' keyword in Magik is used to declare a class or method that cannot be instantiated or implemented, and must be overridden in a subclass.
How would you implement inheritance in Magik?
In Magik, inheritance is implemented by defining a new class with the '_class' keyword followed by the class name, the '_inherits' keyword, and the superclass name.
What are the different types of collections in Magik?
Magik supports several types of collections including lists, sets, and hash tables.

Magik application related

Product Perfect's Magik development capabilities

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