Crossover Assignments

This is not strictly an answer to the question of the OP, so I apologize in advance for that. I'm going to tell my personal experience since I think it can be helpful for the rest of the community. I applied for an engineering position in Crossover.

The first phase was a test on Hackerrank. Nothing difficult to pass, although I wouldn't say the quality of the questions was specially high. The second phase was an assignment with a time limit of 3 days. That was difficult, but I managed to make it work quite decently. After that, they called me couple of times to set a personal interview where we would review the assignment, and I was supposed to receive an offer after that.

During all the process I received absolutely zero information about the company, work, salary conditions... However, they indeed called me several times to rush me to take the second phase, and after that to do the interview as soon as possible. I can say it was my bad, because I went through the selection process without a proper research of the company.

If you read their webpage everything gets a bit clearer. You don't know if you would work for them or for some other company (although you will be paid by them), they claim to pay you by transfer every month (paying taxes and paperwork is on you) and I was not even sure whether I would need to sign a contract with them.

When I read that I was totally sure I would not work like this, even though working remotely and with the technologies they worked seemed appealing. In the end, I found another job 40 minutes drive from home where my salary is almost double of what they offered, so I just politely refused to go through the personal interview.

In abstract, they seem to be a company that sells workers to other companies. They hire people from poor countries and sell them to American companies (I guess). The working conditions, I prefer not to imagine how they are. My personal piece of advice, unless your country is really f***** and you enjoy playing the Russian roulette, don't even think about applying there.

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.

This entry was posted in Uncategorized on by sinanata.

0 thoughts on “Crossover Assignments

Leave a Reply

Your email address will not be published. Required fields are marked *