Hiring guide for DRAKON Engineers

DRAKON Developer Hiring Guide

DRAKON is a visual algorithmic programming language developed by the Russian space program for use in their onboard systems. It was designed to be easy to understand and write, even for non-programmers. DRAKON's primary feature is its unique flowchart-based syntax, which emphasizes clear, readable diagrams over traditional text-based code. This makes it particularly suitable for complex systems where clarity and simplicity are paramount. The language supports both procedural and object-oriented programming paradigms, making it versatile enough to handle a wide range of tasks.

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

First 20 minutes

General DRAKON app knowledge and experience

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

How would you describe the main principles of DRAKON?
The main principles of DRAKON are: understanding should be easy, the human brain's limitations are respected, visual syntax is used, and there is no need for a manual.
What are the key elements of a DRAKON diagram?
The key elements of a DRAKON diagram are: Header, Silhouette, Icons, and Tail.
Describe the difference between DRAKON and UML.
DRAKON focuses on clarity and simplicity, making it easier to understand for non-programmers. UML, on the other hand, is more complex and detailed, making it more suitable for large and complex systems.
How would you use DRAKON to improve code readability?
DRAKON can improve code readability by providing a visual representation of the code logic. This can make it easier to understand the flow of the program and spot potential issues.
What are the benefits of using DRAKON over traditional flowcharts?
DRAKON provides a more intuitive and easy-to-understand representation of program logic. It also has a more strict syntax, which can help prevent errors and misunderstandings.
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 DRAKON language?
Can the candidate solve complex problems using DRAKON?
Is the candidate familiar with the principles of DRAKON visual programming?
Does the candidate have experience with other programming languages?

Next 20 minutes

Specific DRAKON 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 DRAKON and BPMN.
DRAKON is designed for clarity and simplicity, making it suitable for both programmers and non-programmers. BPMN, on the other hand, is more detailed and complex, making it more suitable for business process modeling.
How would you use DRAKON to design a complex system?
I would start by breaking down the system into smaller, manageable parts. Then, I would create a DRAKON diagram for each part, showing the flow of logic. Finally, I would combine these diagrams to create a complete picture of the system.
What are the limitations of DRAKON?
DRAKON is not suitable for modeling very complex systems, as its simplicity can become a limitation. It also lacks some of the advanced features found in other modeling languages, such as UML.
Describe the difference between DRAKON and flow-based programming.
DRAKON is a visual language for representing program logic, while flow-based programming is a programming paradigm that defines applications as networks of processes that exchange data across predefined connections.
How would you use DRAKON to communicate with non-technical stakeholders?
DRAKON's simplicity and visual nature make it an excellent tool for communicating with non-technical stakeholders. I would create DRAKON diagrams to represent the logic of the system, and then use these diagrams to explain the system to the stakeholders.
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 DRAKON engineer at this point.

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

What does this basic DRAKON code do?
Action: Print 'Hello, world!'
This code prints the string 'Hello, world!' to the standard output.
What does this DRAKON code do?
Action: x = 10
Action: y = 20
If: x > y
  Then: Print 'x is greater than y'
Else: Print 'x is not greater than y'
This code assigns the values 10 and 20 to variables x and y respectively. It then checks if x is greater than y. If the condition is true, it prints 'x is greater than y'. If the condition is false, it prints 'x is not greater than y'.
What will be the output of this DRAKON code?
Action: arr = [1, 2, 3, 4, 5]
Action: arr = arr.reverse()
Action: Print arr
This code creates an array with elements 1, 2, 3, 4, 5. It then reverses the array and prints the reversed array. So, the output will be [5, 4, 3, 2, 1].
What does this DRAKON code do?
Action: thread1 = Thread.new { Print 'Hello from thread 1!' }
Action: thread2 = Thread.new { Print 'Hello from thread 2!' }
Action: thread1.join
Action: thread2.join
This code creates two new threads. Each thread prints a unique string. The join method is used to ensure that the main program waits for both threads to finish execution before it terminates.

Wrap-up questions

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

What are the challenges of using DRAKON in a large team?
The main challenges of using DRAKON in a large team are ensuring that everyone understands and follows the DRAKON syntax, and managing the complexity of large DRAKON diagrams.
Describe the difference between DRAKON and event-driven programming.
DRAKON is a visual language for representing program logic, while event-driven programming is a programming paradigm in which the flow of the program is determined by events such as user actions, sensor outputs, or messages from other programs.
How would you use DRAKON to debug a complex program?
I would create a DRAKON diagram of the program logic, which would help me understand the flow of the program and identify potential issues. I could then use this diagram to guide my debugging efforts.

DRAKON application related

Product Perfect's DRAKON development capabilities

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