Hiring guide for E++ Engineers

E++ Developer Hiring Guide

E++ is a computer programming language that was developed in the late 1990s as an extension of the E programming language. It was designed by Mark S. Miller, Dan Bornstein, and others at Electric Communities to support secure distributed computing and secure mobile code. The language is known for its support of capability-based security, which allows it to control access to objects through unforgeable keys. E++ also features promise pipelining, a technique that reduces the latency of distributed computations. References for this information can be found in "Capability-based Financial Instruments" (Miller et al., 2000) and "Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control" (Miller et al., 2005).

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

First 20 minutes

General E++ app knowledge and experience

The first 20 minutes of the interview should seek to understand the candidate's general background in E++ 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 E++?
In E++, you declare a variable using the 'var' keyword, followed by the variable name and its value. For example, 'var myVariable = 10;'
What are the data types supported in E++?
E++ supports several data types including integer, float, char, string, and boolean.
How would you create a function in E++?
Functions in E++ are created using the 'function' keyword, followed by the function name, parentheses for parameters, and curly braces for the function body. For example, 'function myFunction() { // function body }'
What is the scope of variables in E++?
In E++, variables can have global scope or local scope. Global variables are accessible throughout the program, while local variables are only accessible within the function where they are declared.
How would you perform string concatenation in E++?
In E++, you can concatenate strings using the '+' operator. For example, 'var greeting = 'Hello' + ' ' + 'World';'
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 deep understanding of E++?
Has the candidate demonstrated problem-solving skills?
Is the candidate able to communicate their thought process clearly?
Does the candidate have experience with similar projects?

Next 20 minutes

Specific E++ 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 '==' and '===' in E++.
'==' checks for equality in value, while '===' checks for equality in both value and type. For instance, '5' == 5 will return true, but '5' === 5 will return false.
What are the logical operators in E++?
E++ has three logical operators: '&&' for logical AND, '||' for logical OR, and '!' for logical NOT.
How would you create an object in E++?
Objects in E++ can be created using the 'new' keyword followed by the object constructor. For example, 'var myObject = new Object();'
What is the use of the 'this' keyword in E++?
The 'this' keyword in E++ is used to refer to the current instance of the object within a method or constructor.
How would you handle exceptions in E++?
In E++, exceptions can be handled using try-catch blocks. The 'try' block contains the code that might throw an exception, and the 'catch' block contains the code to handle the exception.
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 E++ engineer at this point.

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

What does the following E++ code do?
def addNums(a, b):
    return a + b
addNums(3, 4)
This code defines a function named 'addNums' that takes two arguments and returns their sum. It then calls the function with the arguments 3 and 4, returning 7.
What is the output of the following E++ code?
var x = 10
if x > 5:
    print('Greater')
else:
    print('Smaller')
The code checks if the variable 'x' is greater than 5. Since 'x' is 10 which is greater than 5, it prints 'Greater'.
What does the following E++ code do?
def reverseArray(arr):
    return arr[::-1]
reverseArray([1, 2, 3, 4, 5])
This code defines a function named 'reverseArray' that takes an array as an argument and returns the reversed array. It then calls the function with an array [1, 2, 3, 4, 5], returning [5, 4, 3, 2, 1].
What does the following E++ code do?
import threading

def printNumbers():
    for i in range(1, 11):
        print(i)

threading.Thread(target=printNumbers).start()
This code imports the threading module and defines a function named 'printNumbers' that prints numbers from 1 to 10. It then creates a new thread that runs the 'printNumbers' function.

Wrap-up questions

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

Describe the difference between a method and a function in E++.
In E++, a method is a function that is associated with an object, while a function is a standalone procedure that is not tied to any object.
What are the different ways to create a thread in E++?
In E++, you can create a thread by extending the Thread class or by implementing the Runnable interface.
How would you synchronize a block of code in E++?
In E++, you can synchronize a block of code using the 'synchronized' keyword. This ensures that only one thread can access the synchronized block at a time.

E++ application related

Product Perfect's E++ development capabilities

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