DRAKON Developer Hiring Guide

Hiring Guide for DRAKON Engineers

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

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.

First 20 minutes

General DRAKON knowledge and experience

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.

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.

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.

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.

What are the key elements of a DRAKON diagram?

The key elements of a DRAKON diagram are: Header, Silhouette, Icons, and Tail.

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.

The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

What youre looking for early-on

Does the candidate show a willingness to learn and adapt?

The field of programming is always evolving. A good DRAKON developer should show a willingness to learn new technologies and adapt to changes.

Can the candidate work effectively in a team?

Most DRAKON developers will need to work as part of a team. The candidate should be able to demonstrate good communication skills and a collaborative approach.

Does the candidate have experience with other programming languages?

While DRAKON is the main focus, having experience with other programming languages can be beneficial as it shows a broader understanding of programming concepts.

Is the candidate familiar with the principles of DRAKON visual programming?

A good DRAKON developer should be comfortable with visual programming and be able to use DRAKON's visual language to create clear and understandable diagrams.

Can the candidate solve complex problems using DRAKON?

The ability to solve complex problems is a key requirement for a DRAKON developer. They should be able to demonstrate this through examples or during a practical test.

Does the candidate have a strong understanding of DRAKON language?

A DRAKON developer should have a deep knowledge of the DRAKON language, its syntax, and how to use it effectively to design and implement algorithms.

Next 20 minutes

Specific DRAKON development questions

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.

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.

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.

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.

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.

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.

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.

A skilled DRAKON engineer should demonstrate proficiency in the DRAKON visual programming language, problem-solving skills, and a strong understanding of software development principles. Red flags include lack of clarity in explanations, inability to provide practical examples of using DRAKON, or unfamiliarity with basic coding concepts.

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.

What does this DRAKON code do?

Action: class Car
  Action: def initialize(make, model)
    Action: @make = make
    Action: @model = model
  End
End
Action: car = Car.new('Toyota', 'Corolla')
Action: Print car

This code defines a Car class with an initializer that takes two parameters, make and model. It then creates a new instance of the Car class with 'Toyota' and 'Corolla' as the make and model. It prints the Car object.

What will be the output of this advanced DRAKON code?

Action: def factorial(n)
  If: n == 0
    Then: Return 1
  Else: Return n * factorial(n - 1)
  End
End
Action: Print factorial(5)

This code defines a recursive function to calculate the factorial of a number. It then calls this function with 5 as the argument and prints the result. So, the output will be 120.

Wrap-up questions

Final candidate for DRAKON role questions

The final few interview questions for a DRAKON candidate should typically focus on a combination of technical skills, personal goals, growth potential, team dynamics, and company culture.

Describe the difference between DRAKON and object-oriented programming.

DRAKON is a visual language for representing program logic, while object-oriented programming is a programming paradigm based on the concept of 'objects', which can contain data and code: data in the form of fields, and code, in the form of procedures.

What are the challenges of using DRAKON in a distributed team?

The main challenges of using DRAKON in a distributed team are ensuring that everyone has access to the DRAKON diagrams, and managing the complexity of large DRAKON diagrams across different time zones and locations.

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.

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.

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.

The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

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.