I am sharing my experience of interviewing with Atlassian. The whole process is divided into the following sections:
- Online Test:
- The online test was conducted on Hackerrank. The time duration was 90 mins and there were 3 problems.
- Problem 1:
- This was a simple problem(50 pts) but **R **was the only allowed programming language. That’s the reason none of us was able to solve it.
- Problem 2:
- It was a simple **DP on Tree **based problem(75 pts).
- Given a tree (general graph) of n nodes with values of each node being the node number (ie: node x has value x). In each query, we will be given a node and a value of jump. So, we need to calculate the total value when we start at the given node and jump by **jump **amount towards the root of the tree. So, if the **jump **value is 3, we move from initial node to its 3rd ancestor, then 6th ancestor, 9th, and so on until u cannot jump further.
- There were q queries(q <= 10^5) but the key point was the **jump **value for each query was <=10. In other words, in each jump, u cannot move beyond its 10th ancestor.
- Problem 3:
- This was a standard problem(100 pts).
- You are given an array where each element (arr[i]) represents the height of the tower at position i.
- For each i, we need to calculate the nearest index j (j > i or j < i) whose height is less than current tower’s height (arr[j] < arr[i]). If there exist two such towers – one to the right and one to the left – choose the one which is closest to it.
- It can be easily solved using two stacks (one for right & other for left).
- Technical Round 1:
- There were two interviewers and both were really cool and amazing. I felt really comfortable coding with them.
- It was conducted on Zoom. I used my atom editor and shared screen.
- So the question goes as:
- We have to decide the winner amongst the candidates in a voting process. Basically, u have been given a list of strings. Each string represents the name of a candidate. The no of times the string appears in the list gives the no of votes he has got.
- So far very simple. Use a map (ordered or unordered) and count their occurrences. The string(name) having the highest occurrence is the winner.
- But how do we handle if there is a tie? A tie happens when multiple candidates get the same amount of votes.
- We discussed multiple strategies for that. One important strategy was to take the weighted value (so C1(2,2,2,1) will win over C2(2,2,1,1,1)).
- I was using multiple data structures like map, unordered_map etc. The interviewer asked me to arrange these data structures because they looked very complicated.
- Then I created a struct of each Candidate. I put candidate_name, winner (bool), vector votes, totol_votes as its attributes. Finally, I created a vector which greatly simplified the implementation.
- The actual thing they wanted to test was how I approach the problems. How I debug them (Very important). How to handle corner cases? How to keep things simple? All the while, expressing what u are really trying to do rather than being quiet and coding.
- Technical Round 2:
- This round consisted of a single interviewer and was conducted on Zoom.
- It was a code pair round on Hackerrank. It was the longest of all and was very exhaustive.
- It can also be subdivided into multiple phases:
- Phase 1:
- Discussion on projects. I mentioned multiple projects involving REST APIs, AWS services(AWS API Gateway, AWS Lambda, AWS CloudWatch, etc.). GraphQL, golang, MongoDB, NodeJS etc.
- It took more than 0.5 hrs. The focus was on:
- What does it mean? Why u chose this over others?
- What are the advantages and disadvantages? What are the technical challenges u faced?
- Ex: Why REST APIs? Why GraphQL when there is REST? Why go? Why AWS Lambda and not some other AWS service? etc
- Phase 2:
- It was a problem-solving round.
- The interviewer was not being very clear about the requirements of the problem so it took really some time to understand the problem. So, I suggest u to understand the problem by repeatedly asking clarifying questions.
- You are given an initial string. The problem is to find the longest matching prefix for each string in a long list of strings.
- I told him about KMP algorithm and discussed different other algorithms as well. But, he was keen on knowing what **DATA STRUCTURE **I would use.
- Finally, I got it. We need to use a **TRIE **to get prefix for each string. Actually, I asked for a hint and he said that don’t worry about memory, Assume we have lots of memory at our disposal. Trie immediately clicked in my mind.
- He seemed very happy at my answer. He didn’t tell me to implement Trie. (But one should be always ready for that).
- Phase 3:
- After the first 2 phases, he asked me about my favorite subjects.
- I answered: Algorithms, Data structures, and Operating Systems. He told me that we have already tested your algo & ds skills. Let’s move to Operating systems.
- The key point was : I am highly interested in OS and have read Silberschatz from front to back. I guess that’s the reason I didn’t face much difficulty in this phase.
- Questions:
- Which OS does u use as a CS engineer?
- Linux. Ubuntu.
- Why Linux? Tell me about Linux.
- Linux is open-source OS. It is based on Monolithic kernel architecture and uses CFS scheduling algorithm which employs RB trees.
- Multiple follow-up questions on:
- Monolithic VS Microkernel
- Example of microkernel
- Windows vs Linux
- Differences between Process and Thread?
- Kernel space vs Userspace?
- Virtual memory?
- Swapping? How does the virtual memory map to physical memory?
- How do processes communicate? Shared memory & message passing?
- Device drivers?
- The interview was scheduled for 1 hr but it went for 1hr 20 mins or more. But, it was very interesting and I loved discussing concepts with the interviewer.
- HR Round:
- The final round was an HR round.
- I must admit that he was the coolest guy I have ever met with. He introduced himself and asked me to introduce it as well.
- His communication skill was amazing and we had a really good 2-way conversation going along.
- Questions:
- Summarize your Engineering journey.
- What is the thing you would like to change about your college?
- What is the biggest failure in your life? How did u overcome that? Do u regret it?
- How do your personal values align with that of Atlassian?
- What role does u love to play in a team?
- Questions I asked the interviewer:
- How Atlassian differs from other companies?
- The points he talked we really helpful and exciting.
- What are the opportunities I would have at Atlassian?
- There are a hell lot of opportunities.
- It was an amazing experience. The interviewer was very calm and understanding.
This concludes my experience with Atlassian. Hope this article helps to get an understanding of the interview process at Atlassian.
All the best!!
#interview experiences #atlassian #marketing