Taro Logo

Java Engineer Interview Experience - Remote, Oregon

July 1, 2017
Negative ExperienceNo Offer

Process

First interview

1-hour talk at 9:30 AM CEST, talent acquisition lady in Amsterdam. Nice informative talk without ceremony.

Second interview

~1-hour talk at 10:00 AM CEST, software engineer in France. The interview was carried out very nicely.

After a short introduction, he asked me for ~15 minutes about Java concurrency, data structures, and a sorting algorithm of my liking.

The topic for the next ~15 minutes was to implement a method "public int[] merge(int [] a, int [] b)" in a Google Docs document.

Afterwards, there was some discussion about how I would unit test a method like this.

The last 10 minutes were dedicated to questions I had in mind. He seemed to be very passionate about what he is doing. I enjoyed the interview.

Third interview

~1-hour talk at 10:00 AM CEST, software engineer in Luxembourg. The interview was carried out very nicely.

The interview began with questions about volatile. We discussed AtomicIntegers, lock stripping, contention, and solutions for weakly consistent aggregations.

In the next ~20 minutes, I had to implement a solution to find the number of occurrences of a given digit in a sorted array. For example, 5 in [ 1, 2, 5, 5, 5, 7] would return 3. The solution should run in logarithmic time.

Finally, 15 minutes for questions. His beloved topic was replication, and he told me about the ins and outs, different approaches, etc. I was again absolutely astonished (in a positive way).

Email from the acquisition lady (gist)

The interview went really well (...). Spoke with the team (...). You have great chances on a role as a 'java generalist' and to specialize later on (...). Your next interview will be with xxx, specializing on the topic of distributed systems.

My reply (gist)

Very happy to hear, a bit concerned about the distributed system topic as I am no expert on this topic (...), looking forward to speaking with xxx.

Email from the acquisition lady (gist)

Don't worry (...), we really appreciate that you know and openly communicate your strengths and weaknesses (...). Investing time in reading/learning about Elastic distributed topics and distributed systems in general is well spent though.

Preparation for the interview

After that email, I basically used every free minute to dig into the ElasticSearch Definitive Guide, read about distributed systems, Paxos, Raft, linearizability, single-leader replication, clock skew, vector locks, you name it. I just wanted to do everything I could in order to succeed as I was really motivated after the previous interviews.

Fourth interview

~45-min talk at 10:30 PM CEST, software engineer in California. I find it weird to schedule a technical interview at this time, given there are dozens of excellent engineers in closer timezones. I was bone-tired when the interview started.

This engineer was absolutely not prepared. His first statement: "Uuhhm, let me open your CV first". He began to skim through my CV while I should tell him something about big system architecture. I did not have the impression that he really cared/listened.

Afterwards, I had to program "finding anagrams" and explain complexity in detail. No single distributed systems question by the end of the interview.

Finally, I had 5 minutes to ask some questions. Yet again, he did not really care and just answered my questions in a shallow-brained manner.

I did not perform too well in this interview, mainly due to my condition. The questions were not that hard, but I was simply too tired.

Further proceedings

I was rather frustrated about the last interview and my performance. I planned to contact the talent acquisition lady again, explain to her why I did not perform well yesterday, and ask for another interview.

I implemented two more anagram solutions (prime number multiplication, int array) which are optimized in terms of space-complexity in order to show that I am really passionate about the role.

After some more thoughts, I decided to let it rest though, as the previous interview left a quite bad impression after all.

Last email the acquisition lady

3 days later, I received the last email from the talent acquisition lady, using one of these standard templates, explaining that there was some other candidate who just performed a little bit better.

Given that she mentioned a concrete position in the previous email, I found this immediate drop out without any further explanation rather disrespectful/annoying.

It would have been very helpful to learn in more detail why another candidate was chosen at the end. Some companies even mention some books/blogs etc. in order to help the applicant to progress.

Questions

When does a deadlock occur?

Is i++ an atomic operation?

Given a field private volatile int count = 0, two threads increment this field at the same time by count++ (once). Which possible values can the field have afterwards?

What is a ReadWriteLock?

What does amortized O(1) mean?

In case a field has high contention (many threads accessing it in parallel), what could you do about it?

What are the Java concurrency primitives?

How does a hash map internally work?

How does volatile work?

When would you use merge sort, and what are its characteristics?

Was this helpful?

Interview Statistics

The following metrics were computed from 1 interview experience for the Elastic Java Engineer role in Remote, Oregon.

Success Rate

0%
Pass Rate

Elastic's interview process for their Java Engineer roles in Remote, Oregon is extremely selective, failing the vast majority of engineers.

Experience Rating

Positive0%
Neutral0%
Negative100%

Candidates reported having very negative feelings for Elastic's Java Engineer interview process in Remote, Oregon.

Elastic Work Experiences