Crossover evaluation process provides two important values to candidates, first is a chance to see how a global software company recruits and second is a chance to develop/align themselves on these engineering methods and learn how they can learn more about these software engineering aspects.
All these carefully planned tests and evaluations are a good chance to remember basic knowledge and learn new technologies which are mandatory especially in the project development stage.
Let’s begin with Chief Architect positions at Crossover which pays $100k a year.
Typical test and evaluation process has 3 steps:
1. Stage: Multiple Selection Test and A Bit Of Coding
Before starting your test you may want to register individually to HackerRank so that you can make some practice and understand how the platform works. Crossover is conducting tests in partnership with HackerRank so you’ll be redirected to this platform right after you click the “Star” button for your first test. But you must know that questions being asked by Crossover are 100% different than what HackerRank has open to the public.
There are about 19-20 questions in this test. At most, 3 of them can be small coding questions which you’ll have to perform in text boxes on the same page. For example, they may give you an empty class and ask you to count words in a sentence with a specific letter in it.
Especially taking a good look at Java 7, Nio 2, Java 8 Streams, Lambda Expressions before taking this test can be a great idea.
Plus, since there’s minor similarity with Oracle Certified Java Developer exams, working on their questions can be a good practice. (For example, Integer in Java caches internally by JVM between -127 and +128).
2. Stage: Project Development
This stage is available to candidates who passed 1st stage and expected to be activated in following 3-7 days by the candidate. Project scenarios usually require between 1-5 days but most probably you’ll receive a 3 days scenario.
There are several scenarios where the system expects you to design and implement a project from scratch or expects you to code review and fix a problematic system.
There can be scenarios like an Airline Reservation System, Single Sign-On Server, Airport Weather Sensor etc. You’re expected to use recent technology with a proper system design for your scenario.
Out of recent technologies you can use micro-service architecture supporting open source libraries like Spring, Spring Boot. The candidate is free to choose.
Here are desired outcomes for this stage;
- Project High-Level Design Document
- Project Diagram in any format (Can be UML)
- Video screencast with your voice in English where you describe your project to hypothetical teammates of yours.
- Source codes of your project.
- Test codes in your project (front-end, junit, mockito etc. frameworks, integration tests)
- Your comments on your project, extension points, uncompleted parts, (which you made design but couldn’t find time to complete implementation or you left for your team.)
Since this step has a time limitation preparing your environment before you begin can save you a ton of time to focus on your actual project.
- By using Spring, Spring Boot you may want to create a sample project based on Maven. You can use an open source project (For example, apache commons)
- By scanning this example project with SonarQube (http://www.sonarqube.org/downloads/) and learning how to measure quality with SonarQube to apply the same methods for your actual project.
- To properly make code coverage measurement of your project you may want to install (SonarQube, JaCoCo Plugin, Clover etc.)
- Preparing an example design document by including UML developing plugins to save more time.
- For projects involving front-end creating a sample project and a template with (AngularJS, ReactJS)
- This is one of the most important subjects, you must re-read all commonly used design patterns and take a second look even if you’re familiar. While you’re coding your project you can use a single pattern or a combination of patterns and describe in documents about why you did so.
The folder structure of your project is explained in the scenario given. So you’ll have to align with it and create your zip archive file accordingly. If there are any red lines you’ll have to align you’ll know since the project will be evaluated first by an auto-scoring software.
3. Stage: Technical Interview
Candidates who passed the project evaluation stage is being invited to this stage which is the final one. You’ll receive questions on both the technical and business side of your profession. The technical part is mostly beginning with you starting to tell your story about software architecture. You’re being measured for English knowledge, stress management skills, self-confidence etc.
Some candidates are being asked to write sample codes on Notepad or a Google Drive document. This is to determine if the candidate has full knowledge and speed on syntax. You can show your experience here. Plus you’ll most probably have a discussion on design patterns and usage of em. Focusing on practicing differences between commonly used design patterns is a good idea.
As a sample work, you may be given a live project design task like twitter.com. In this case, making requirement analysis, addressing high-level design steps and preparing details is a great idea.
If tech side is positive you may receive business questions. In this case, you may receive questions about business plan definition, a sample of it etc.
If you can complete interview and get acceptance with it, you receive offers from software enterprises and start your full-time remote work life in a couple of days.