Interview Experience: Palantir

Jun 17, 2022 min read

Palantir is a company that builds tools that are used to make data-driven decisions. Palantir Gotham is an operating system that helps in decision-making in the intelligence domain (most famously at the US Department of Defense). Palantir Foundry is an operating system that helps in decision-making in the business domain (at companies like Airbus and Morgan Stanley).

I first got to know about Palantir from Saksham Sharma (a Y14 IITK alumnus), who told me he’d gone to Palantir’s office in London for an interview. My interest in Palantir was renewed in December 2021, when I found out that Durgesh Agrawal (a Y17 IITK alumnus) had started working there. I researched about the company and found it pretty interesting. Plus, nothing could top working in London.

Application

So in December 2021, I applied for the software engineering roles in Palantir’s London office. I had the option of asking Durgesh for a referral, but it didn’t strike me then, so I directly submitted my application through Palantir’s website without any referral. I guess I didn’t ask for a referral because I was reasonably content with DevRev’s offer and was not trying too hard to go anywhere else.

Palantir, interestingly, has two software engineering roles. One is the usual “Software Engineer” role, wherein people work on the software in Palantir’s office. The other is the “Forward Deployed Software Engineer” role, wherein people travel around and work directly with the customers to build tools for them. Many people hate the Forward Deployed role, while many believe it’s the best thing one could do. It has its pros and cons, but I was mostly neutral towards it. So I applied for both the roles.

Karat Round

5 days later, I received a mail to schedule a screening call with a Karat interviewer. Karat is a company that specializes in doing technical screening for software companies. Normally, companies give out a test for applicants to complete before shortlisting them for the interviews. Karat intends to replace those tests with 1hr “Karat rounds”.

The interviewer spent the first 10 minutes or so asking MCQ-type questions about basic computer science concepts like time complexity, data structures, etc. I think he asked me 5 questions and then said he had 2 more bonus questions that he couldn’t ask because of lack of time for this part.

Next, the interviewer pasted an algorithmic question on the screen and asked me to solve it. He mentioned twice that it was more important to solve and implement the solution than trying to come up with an efficient solution. I found this rather stupid, because it meant one could just brute force everything. We had to compile and run the code on the provided test cases.

I solved the first question quite easily. The second question took me some time. And there were only 10 minutes left for the last question, but I was still able to complete it within time. I’d say the difficulty level was easy, as even though I was trying to come up with the simplest possible brute-forcey solution, I was able to solve all the 3 questions in O(n) time complexity, and I was pretty sure that they couldn’t be solved in time less than that.

Recruiter Call

At that time, all the employees at Palantir were on a 3-week long company-wide holiday, so I didn’t get to the next steps until January. In January, my recruiter set up a call with me. I cannot simply explain how amazing, friendly and helpful he was. Undoubtedly the best recruiter I’ve ever come across. My friends have had worse experiences at Palantir, so I’d say I just got lucky to have him.

The call was to discuss my background and explain the interview process to me. A friend of mine was rejected in this round, so I was quite wary of it. But my recruiter was so awesome, it didn’t feel like an interview at all. He gave me lots of helpful information regarding the upcoming interviews and clarified all my doubts. He told me that since I had applied for both the Software Engineer and the Forward Deployed Software Engineer roles, they’d interview me for both and decide at the end regarding which role they want to give me.

My “Virtual Onsite” rounds were scheduled about 10 days later. I could only curse COVID - for without it, this would have been a real onsite round, and I’d have gone to London for the interviews.

The Virtual Onsite round had 3 1hr interviews scheduled consecutively in a 3-hour window: Decomposition, Coding and Learning.

Decomposition Round

This was the round I was most scared of. According to Palantir’s interview prep resources, I had to take a complex problem, break it down into smaller pieces, and then build a solution. Apparently, it was supposed to be like a system-design round, but different.

The problem that I got was a very vaguely stated real-world problem. I was told to assume I had a database containing certain records (the data was adequately specified). I had to use this data to build something to solve the problem.

I eventually designed an application, and I think I did pretty well in solving the problem. But I guess I didn’t do anything to “break down the problem”. I think what they wanted me to do was:

--> Large problem
    --> Smaller problems
        --> Solutions for the smaller problems
            --> Combined solution for the large problem

What I did instead was:

--> Large problem
    --> Proposed large solution for the large problem
        --> Smaller solutions as pieces of the large solution

(I stumbled upon this insight while writing this blog, I didn’t know it back then.)

So yes, technically, I had solved the problem, but perhaps not in the way they wanted me to.

In a later call, my recruiter told me that this didn’t go as well as they would have wanted, and so they wanted to see me improve in this.

Coding Round

This was like a regular algorithmic round. The questions were about the same level as the Karat round. I solved all the 3 well within time.

Here, I had a funny incident. The second problem I was given could be easily solved using topological sort. While discussing, I mentioned the term “topological sort” to the interviewers. And then when I was implementing, I wrote the code in the way that was most natural to me. Then after implementing it, I suddenly recalled that when we were taught toplogical sort in our ESO207A course at IITK, we used something like intime/outtime to do that, while my algorithm was an extremely simple recursive one. So I began doubting my code, and spent a lot of time trying to think of any edge cases where it would fail. I just couldn’t think of why we would be taught the monstrosity of intime/outtime in the class if toposort was just as simple as I had implemented it. After thinking for some time, I gave up, and told the interviewers that my algorithm was correct. And it was :p

So later, when my recruiter called me to give me feedback, he told me that the interviewers thought I was intentionally pretending to be stuck, even though I knew topological sort and had written the correct code. They thankfully didn’t take it negatively.

Learning Round

In this round, I was supposed to be taught something new, and I had to solve problems using the newly learnt concept.

I think my vast development experience helped me here, because even though whatever they taught me was actually new to me, I was able to relate it to something I had previously done in another language, and thus I was easily able to grasp it. I solved all the problems in this round well before time too.

Hiring Manager Round

So I had passed the 3 interviews on the virtual onsite day, and now I had moved to the final interview round. As I had been told that my decomposition round was not as good as they wanted it to be, I was supposed to be given a decomposition problem in the final round too.

The Hiring Manager was a great guy and seemed fun to talk to. He asked general questions about my background, and seemed interested in my online election manager project. In the second half, I again messed up with the decomposition problem. I had solved everything correctly and properly, except that I completely forgot about a tiny aspect of the problem. In the end, the hiring manager pointed out that I didn’t solve this part, so I hurriedly incorporated its solution into my larger solution. The larger solution was quite well designed, so I had no trouble incorporating this small thing into it, and I was successfully able to complete the solution by the end.

Strange situation

The next day after my final round, my recruiter scheduled a call with me. He told me that it was a bit of a “strange situation” because the Hiring Manager strongly wanted Palantir to hire me, but not for the software engineering roles. He was really impressed with my skills and believed that I would easily be able to learn whatever skills I lacked then, but he just wanted me to work with the cybersecurity team because that’s where I would most enjoy working.

However, the cybersecurity team were reluctant to hire a new grad - they only hire experienced people. But due to the special recommendation of the hiring manager, they agreed to interview me. My recruiter told me that it doesn’t ever happen, which is why it was a strange situation for him as well as for me.

And I didn’t know whether to be happy or upset. I had reasons to be upset - they were clear that they didn’t want me for the software engineering roles, and I knew that they wouldn’t hire a new grad in the cybersecurity team, so my chances of getting into Palantir were nil. On the other hand, I had reasons to be happy - have you ever heard of someone who impressed the hiring manager so much to have a special interview conducted for themself? I surely must be something!

Cybersecurity Round

The cybersecurity round was scheduled a few days later. If selected, I would join in the “Application Security Engineer” position. I had checked out this role on Palantir’s website. It mentioned that candidates must have at least 3 years of software development or cybersecurity experience.

As soon as the interview started, the interviewer told me that they don’t usually do this, but the Hiring Manager was quite adamant about getting me interviewed for this role. So I asked him if the requirement of the “3+ years of experience” was a strict one, or if they had anyone with lesser experience in the team. He replied that no one in the team had less than 7 years of experience! And at that moment, I was 100% sure they would not take me.

The actual interview was fun. It was the first time I was interviewed for a cybersecurity role, and I think I did pretty well. He described to me a simple system and just asked me to enumerate all the things I’d do to secure it. Initially, I was quite slow, because I had absolutely no prior idea of what cybersecurity interviews are like, and I was just trying to think of the possible attacks on the system, so that I could defend it. Then about 5 minutes later, I got the hang of it. I started picking up every small component of the system, and started describing how I would secure it. I guess initially, the interviewer was prejudiced and didn’t expect much from me. But once I started doing this, he began asking more questions about my approaches and then used to reply excitedly whenever I correctly answered something tricky.

I couldn’t even cover like half (or even a quarter) of the components of the system by the time the interview ended. (Yes, there are just too many cyber threats - it’s extremely hard to even list all the possible attacks, let alone think of ways to defend against them). But I had correctly answered all his other questions about the technical details. I think I should have avoided describing some smaller security measures for being too trivial, and should have focused more on comprehensively covering the security of the entire system.

Nevertheless, it was a delightful experience. I would love to partake in more cybersecurity interviews in the future.

The end

The very next day, I received the rejection mail from Palantir.

Although it didn’t work out, I’d say Palantir’s interviews were absolutely the best ones I’ve ever participated in. I’m just amazed at the fact that Palantir considered me for a role that doesn’t even hire new grads. It made me feel quite special, and I’m very grateful to Palantir for that.

comments powered by Disqus