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 is mandatory especially in 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 “Star” button for your first test. But you must know that questions being asked by Crossover is 100% different than what HackerRank has open to public.
There’s 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 at 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 requires between 1-5 days but most probably you’ll receive a 3 days scenario.
There are several scenarios where 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. Candidate is free to choose.
Here’s 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 team mates 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 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.
Folder structure of your project is explained in scenario given. So you’ll have to align with it and create your zip archive file accordingly. If there’s 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 project evaluation stage is being invited to this stage which is the final one. You’ll receive questions on both technical and business side of your profession. Technical part is mostly beginning with you starting to tell your story on 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 couple of days.