Hiring guide for COBOL Engineers

COBOL Developer Hiring Guide

COBOL, an acronym for Common Business-Oriented Language, is a high-level programming language developed in the late 1950s by CODASYL (Conference on Data Systems Languages). It was primarily designed for business data processing needs and has been widely used in finance and administrative systems. The U.S Department of Defense played a significant role in its creation to ensure computer compatibility across different manufacturers. Despite being one of the oldest programming languages, COBOL remains relevant today due to its robustness and efficiency in handling large-scale batch and transaction processing jobs. Its enduring legacy is testament to its design principles of readability, portability, scalability and interoperability.

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

First 20 minutes

General COBOL app knowledge and experience

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

How would you define COBOL?
COBOL stands for Common Business-Oriented Language. It is a high-level programming language designed for business data processing needs.
What are the divisions in a COBOL program?
A COBOL program is divided into four divisions: Identification Division, Environment Division, Data Division, and Procedure Division.
Describe the difference between 'STOP RUN' and 'EXIT PROGRAM' in COBOL.
'STOP RUN' is used to terminate the program completely, whereas 'EXIT PROGRAM' is used to return control to the calling program.
How would you handle errors in COBOL?
Errors in COBOL can be handled using the 'ON EXCEPTION' or 'NOT ON EXCEPTION' clauses in the procedure division.
What is the use of 'EVALUATE' statement in COBOL?
The 'EVALUATE' statement is used to select one set of statements out of several sets based on the value of a condition or arithmetic expression.
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 strong understanding of COBOL programming?
Has the candidate demonstrated problem-solving skills?
Does the candidate have experience with other relevant technologies?
How well does the candidate communicate?

Next 20 minutes

Specific COBOL 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 data items in COBOL?
There are three types of data items in COBOL: Elementary, Group, and Table data items.
Describe the difference between 'CALL BY CONTENT' and 'CALL BY REFERENCE' in COBOL.
'CALL BY CONTENT' passes a copy of the data, while 'CALL BY REFERENCE' passes the original data. Changes made in 'CALL BY CONTENT' do not affect the original data, while changes made in 'CALL BY REFERENCE' do.
How would you use the 'REDEFINES' clause in COBOL?
The 'REDEFINES' clause is used to allow the same storage space to be referenced by different data items. It is used for memory optimization.
What is the purpose of the 'INSPECT' statement in COBOL?
The 'INSPECT' statement is used for string handling operations such as counting, replacing, and converting characters within a string.
What are the different types of 'PERFORM' statements in COBOL?
There are four types of 'PERFORM' statements in COBOL: 'PERFORM', 'PERFORM THRU', 'PERFORM UNTIL', and 'PERFORM VARYING'.
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 COBOL engineer at this point.

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

What does this simple COBOL program do?
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Hello, World!'.
STOP RUN.
This COBOL program prints 'Hello, World!' to the console.
What does this COBOL code snippet do?
01 WS-DATE.
05 WS-YEAR PIC 9(4).
05 WS-MONTH PIC 9(2).
05 WS-DAY PIC 9(2).
This code defines a data structure WS-DATE consisting of three parts: WS-YEAR, WS-MONTH, and WS-DAY. It is used to store a date.
What does this COBOL code snippet do?
01 WS-NUMBERS PIC 9(3) OCCURS 10 TIMES.
This COBOL code defines an array WS-NUMBERS that can store up to 10 three-digit numbers.
What does this COBOL code snippet do?
IDENTIFICATION DIVISION.
PROGRAM-ID. THREAD.
PROCEDURE DIVISION.
PERFORM VARYING WS-COUNTER FROM 1 BY 1 UNTIL WS-COUNTER > 10
DISPLAY 'Thread ' WS-COUNTER.
END-PERFORM.
STOP RUN.
This COBOL program prints 'Thread ' followed by a number from 1 to 10. It simulates a simple threading concept by using a loop.

Wrap-up questions

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

Describe the difference between 'SEQUENTIAL' and 'INDEXED' files in COBOL.
'SEQUENTIAL' files are accessed in the order they were stored, while 'INDEXED' files are accessed using an index, allowing for faster data retrieval.
How would you handle dynamic tables in COBOL?
Dynamic tables in COBOL can be handled using the 'OCCURS DEPENDING ON' clause, which allows the table size to change dynamically during program execution.
What is the use of 'SYNC' clause in COBOL?
The 'SYNC' clause is used to align the data item on natural boundaries, which can improve data access speed on some systems.

COBOL application related

Product Perfect's COBOL development capabilities

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