There were three phases of interview process. The first interview was a phone call with HR manager. They were friendly and polite. HR told about company, asked typical questions regarding my CV, my past experience, my future plans, salary expectations etc. It was a bit formal but OK. Then it was 15 minutes Java online questionnaire with some junior/middle questions, e.g. what happens if we run this code, how would you review this pull request, how to make class immutable etc. Second phase consists of receiving a 'homework': the technical task for implementing the project within 4-5 days. Build a crypto recommendation service. Initially, we will build something simple and through iterations we are going to transform it to a gold miner. In the CRYPTO_NAME_values.csv (e.g. BTC_values.csv) you can find one month’s prices for one crypto in USD. The file has the following format: timestamp symbol price 1641009600000 BTC 46813.21 There are separate files for each crypto. Requirements for the recommendation service: ● Reads all the prices from the csv files ● Calculates oldest/newest/min/max for each crypto for the whole month ● Exposes an endpoint that will return a descending sorted list of all the cryptos, comparing the normalized range (i.e. (max-min)/min) ● Exposes an endpoint that will return the oldest/newest/min/max values for a requested crypto ● Exposes an endpoint that will return the crypto with the highest normalized range for a specific day Things to consider: ● Documentation is our best friend, so it will be good to share one for the endpoints ● Initially the cryptos are only five, but what if we want to include more? Will the recommendation service be able to scale? ● New cryptos pop up every day, so we might need to safeguard recommendations service endpoints from not currently supported cryptos ● For some cryptos it might be safe to invest, by just checking only one month's time frame. However, for some of them it might be more accurate to check six months or even a year. Will the recommendation service be able to handle this? Extra mile for recommendation service (optional): ● In XM we run everything on Kubernetes, so containerizing the recommendation service will add great value ● Malicious users will always exist, so it will be really beneficial if at least we can rate limit them (based on IP) Actually I don't like such an approach because it is usually a wasting of my spare time. I have implemented it in time and accomplished all extra requirements. If you are done with the technical task and it passed the review you are invited to a live technical interview with lead engineers. They asked about my past experience, duties, asked some questions regarding given technical task project. I described my project, the limitations, trade-offs, the further steps for expanding the modules. The interviewers were friendly and calm. I felt comfortable during the whole process. There was no arrogance or criticism from their side. After few days I received reject outcome email.