IMPORT STD; STD.System.Thorlib.echo('Hello, World!');
Ask the right questions to secure the right ECL (Enterprise Control Language) talent among an increasingly shrinking pool of talent.
ECL (Enterprise Control Language) is a declarative, data-centric programming language developed by LexisNexis Risk Solutions. Introduced in the early 2000s, ECL was created to manage and analyze large volumes of data for enterprise-level applications. The language operates on HPCC Systems platform, an open-source big-data computing system designed by the same company. Its high-level syntax simplifies complex data manipulations and transformations while ensuring efficient execution across massive datasets. Information about ECL's history and functionality can be found on official HPCC Systems' website as well as various academic research publications.
The next 20 minutes of the interview should attempt to focus more specifically on the development questions used, and the level of depth and skill the engineer possesses.
The JOIN function in ECL is used to combine two datasets based on a common key. The syntax involves specifying the two datasets, the join condition, and the transform function to apply to matching records.
A SET in ECL is a collection of like-typed data items, while a DATASET is a collection of records. Each record in a DATASET can have multiple fields of different types.
The OUTPUT action in ECL is used to write the results of an ECL query to a file or to the workunit.
In ECL, a dataset is defined by providing a layout that describes the data, and a method to extract the data. The layout is a record definition and the method could be a file service function.
The basic components of ECL include Datasets, Transform Functions, Actions, and Attributes.
The tech field is constantly evolving, so it's important for developers to be able to learn and adapt to new technologies.
While ECL is the primary language for this role, experience with other languages can be beneficial and demonstrate a broader understanding of programming.
Developers often work as part of a team, so good teamwork skills are important.
ECL is often used for data manipulation and management, so familiarity with these techniques is important.
Problem-solving skills are important for a developer to troubleshoot and resolve issues that may arise during coding.
A strong understanding of ECL is crucial for this role as it is the primary language they will be working with.
The next 20 minutes of the interview should attempt to focus more specifically on the development questions used, and the level of depth and skill the engineer possesses.
The PROJECT function in ECL is used to create a new dataset by applying a transform function to each record in an existing dataset. The TABLE function is similar, but it also allows you to specify a grouping condition to create a grouped dataset.
The DEDUP function in ECL is used to remove duplicate records from a dataset. It can be used with different options to control which records are considered duplicates and which record is kept.
Missing data in ECL can be handled using the DEFAULT function, which provides a default value when a field is missing or NULL.
A SORTED dataset in ECL is one where the records are arranged in a specific order based on one or more fields. A GROUPED dataset is similar, but the records are also divided into groups based on a grouping condition.
ECL supports several types of JOINs including INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER, and CROSS.
At this point, a skilled ECL engineer should demonstrate strong problem-solving abilities, proficiency in ECL and related technologies, and exceptional communication skills. Red flags include lack of practical experience, inability to explain complex concepts clearly, or showing no interest in continuous learning.
IMPORT STD; STD.System.Thorlib.echo('Hello, World!');
SET OF STRING10 Cities := ['New York', 'London', 'Paris']; OUTPUT(Cities);
SET OF INTEGER MyNumbers := [1, 2, 3, 4, 5]; MyNumbers := MyNumbers[2..4]; OUTPUT(MyNumbers);
IMPORT STD; STD.Parallel.ParallelSleep(1, 5);
RECORD Person { STRING10 Name; INTEGER Age; }; Person John := { 'John', 30 }; OUTPUT(John);
SET OF INTEGER MyNumbers := [1, 2, 3, 4, 5]; MyNumbers := MyNumbers[1] + MyNumbers[5]; OUTPUT(MyNumbers);
The final few interview questions for a ECL (Enterprise Control Language) candidate should typically focus on a combination of technical skills, personal goals, growth potential, team dynamics, and company culture.
Best practices for writing maintainable ECL code include using meaningful names for attributes and datasets, commenting your code, organizing code into modules and services, and following a consistent coding style.
Errors in ECL can be handled using the CATCH function, which allows you to specify an action to take when an error occurs. You can also use the FAIL function to raise an error.
A MODULE in ECL is a collection of related ECL definitions, while a SERVICE is a MODULE that is designed to be used by other ECL code. A SERVICE can include actions, which are functions that can be called remotely.
ECL supports two types of indexes: keyed and non-keyed. Keyed indexes are used for fast access to data based on a key, while non-keyed indexes are used for full-text search.
ECL query performance can be optimized by minimizing data movement, using indexes, optimizing joins, and using the CHOOSEN function to limit the number of records processed.
Back-end App Developer
Front-end Web Developer
Full Stack Developer (Java)
Full Stack Developer (.Net)
Full Stack Developer (MEAN)
Full Stack Developer (MERN)
DevOps Engineer
Database Engineer (AzureSQL)
Database Engineer (Oracle)
Database Engineer (General)
Solution Architect (.NET)
Solution Architect (Java)
Solution Architect (Ruby)
Solution Architect (Python)
AI Engineer (Python)
Sr. AI Engineer (Python)
AI Strategist (Python)
Business Intelligence Engineer
Systems Analyst
Mainframe Developer (COBOL)
Mainframe Developer (General)