How test tasks for junior developers being reviewed in KAPPS

5
(1)
9 min read
1108 views
How test tasks for junior developers being reviewed in KAPPS
Nadia Rakovska
By Pavel Klymentenko
October 30, 2023

If you are a junior developer and you decide to apply to our company, first of all, you will have an interview with our HR Manager and then if you succesfully pass the soft skills interview, we will offer you to complete a test task.

We offer the test task to check the practical skills of a candidate if he doesn’t have commercial experience.

What the test task looks like:

  • The task is formulated clearly, we indicate the main evaluation criterion, i.e. which aspects we will pay more attention to and which ones – less;
  • The requirements for graphics are minimal, but not absent because visuals form a complete picture;
  • We treat the test task as a regular task from the task tracker issued by PM.
  • The task should be completed in less than a working day (up to 8 hours);
  • Please attach a cover letter to the completed test task, in which you indicate and explain the solutions you have chosen.

What exactly  we pay attention to when we check a test task:

  • Cover letter (usually a wiki in the repository).
  • The project in the repository:

The project from the test task should be on any version control service, for example, GitHub.

We pay attention to how the commits are made and signed.

  • Basic review of the Unity project in the editor:

We download and check the project for compilation errors and warnings in the console.

The project should have a basic workflow: start, core feature, win/lose screen, and restart (automatic or manual). We also pay attention to the project structure (folders and files). We review content and its management: scenes, prefabs, and other assets.

  • Code review:

Code style and convention, assembly definitions, namespaces.

Class names, method names, access modifiers, selected abstractions.

Project initialization, dependencies between entities, dependency resolution.

Evaluation of the implementation of scripts which are directly related to the main feature of the technical task.

The concept of a clean code includes the following points:

– The same code style and conventions in the project. There are clear rules that are applied to name of classes, interfaces, methods, fields, properties, the same indents, etc. It’s not so important which these rules are, but what is important is to follow them. Moreover, nowadays any modern IDE has a basic configuration and highlights any inconsistencies.

– Self-documented code, which means that comments are not required everywhere. In general, the company doesn’t mind comments in the code if they are specifically  implemented  (e.g., mathematical models, laws) or important parts of code. But that does not mean that comments should be everywhere because this will only worsen the readability of the code. 

Make sure that your code comments are detailed, technical, and clear enough. And when you name classes, interfaces, and methods, use English to avoid making the code looks like comic text.

– Use principles and popular patterns that are suitable for the project. “Reinvent the wheel” for each task will make it difficult to read the code and maintain it by other developers.

– Clear and understandable entity dependencies. The code is “clean” in terms of its coherence in the project: what patterns were used to resolve dependencies and how.

  • The algorithmic component of the solution. 

For example, how efficiently the candidate forms a sample of objects and processes them.

  • Understanding how the Unity Engine works.

For example, whether the candidate knows about the existence of naming conventions, and understands the basic hierarchies and purposes of the framework classes that should or can be used during the task or not.

  • The presence of an improvement that makes some “sporting” sense (e.g., the implementation has improved performance compared to the basic solution, but does not degrade the way it is used) or has a real-life purpose (e.g., the candidate took care of the possibility of expanding the functionality in advance and made additional decomposition and more flexible distribution of responsibilities in the system) will be an advantage for the candidate.
  • The candidate’s ability to explain his thoughts and to understand the task is a fundamental evaluation criterion.

After all, a junior developer is a specialist with whom other developers in the company will spend a lot of time: communicating with him, helping him develop, learn, making code reviews.

If you are still at a crossroads and don’t know how to start as a developer, we have some tips for you:

  • If you’re starting to learn a new technology or stack, be sure to solve a real-world problem, because it will give you more interesting questions and answers than a ready-made tutorial or course. Better yet, post the solution to this problem in Git.
  • Try to analyze how easily you get along with people and how you react in difficult situations. Try to improve your soft skills so you will be on the same page with the interviewer and it will be easier to build a dialog.
  • Objectively assess your skills to understand your strengths and weaknesses. It is better to know fewer technologies in your stack but be more professional with them than to have a huge stack on your resume and know only the basics.
  • Participate in game and app development jams and competitions. This experience will give you many advantages, interesting knowledge, new useful contacts, and the opportunity to be noticed by successful companies.

 

How helpful was this article?

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

about the author
Pavlo Klymentenko
CBDO, Tech Lead, Co-founder
Pavlo is a Co-founder, CBDO and Tech Lead of KAPPS. Pavel has solid skills and 6+ years of experience in Unity development. He has a passion to making cutting-edge core features, architecture design, Editor Tools for any purposes and optimizing the development process. His team added to the creation of optimization tools for the Ori Will of the Wisps project under cooperation with Moon Studios. He worked on exciting projects with Roomful and cooperated with such a game dev leader as Rogue Sun.

Recent Articles

10 min read
4063 views
webdev01
By Pavel Klymentenko
July 25, 2022

Recruitment during the war

How to successfully recruit IT specialists during wartime: our experience Even in peacetime, IT recruiters had...
6 min read
1095 views
webdev01
By Pavel Klymentenko
June 24, 2022

Nunu Spirits x KAPPS

One of the recent projects we’ve created was in partnership with an amazing team of Nunu Spirits. What challen...
9 min read
1363 views
webdev01
By Stanislav Osipov
April 13, 2022

An amusing story of how we almost killed our product

Unity is one of the most popular game engines in the world. Now our team creates plugins that are used by hund...
17 min read
798 views
webdev01
By Stanislav Osipov
March 28, 2022

War stories

The war took us by surprise: someone heard the first explosions at home, and someone learned the terrible news...
3 min read
1416 views
webdev01
By Pavel Klymentenko
March 15, 2022

We stand with Ukraine

The war has found each of us in different positions and situations. But we’re all united by our willingness to...
16 min read
1612 views
webdev01
By Stanislav Osipov
February 3, 2022

Improving a Unity project: what is ECS and is it worth using it... Improving a Unity project: what is ECS and is it worth using it in development

Today, there is plenty amount of information about how well Unity ECS performs compared to MonoBehaviour. But ...