I applied online for a SWE role, and got Palantir’s HackerRank challenge about two to three hours later. There were three problems in the assessment, with a total time limit of 90 minutes. The difficulty was fairly moderate: one programming problem, one SQL problem, and one API problem.
The first problem was Shape Classes. I had to write classes for a circle, rectangle, and square to compute their areas, and then take the ceiling of the result. For the circle I used π = 3.14159265, computed the area, and applied ceil; the rectangle and square were handled the same way. I deliberately tested several decimal cases (for example radius 1.2, width/height 2.3) to make sure the rounding-up logic was correct.
The SQL problem required computing the total session duration per city. Three tables had to be joined: CITIES, CLIENTS, and SESSIONS. I needed to link city → client → session. The join keys are CITIES.id → CLIENTS.city_id and CLIENTS.id → SESSIONS.client_id. I wrote a query that groups by city and sums duration, then orders the results ascending by total duration and city name. The main point is not to get the table joins wrong, otherwise the data will be wrong.
The last problem was a REST API task: fetch restaurant/store data from an endpoint and handle pagination. I inspected the returned JSON structure, it had fields like page, per_page, and the actual items were in data, then wrote code to loop over pages and concatenate all store entries. You need to check total_pages (or the pagination information) so you don’t request too many pages or miss any.
Overall I finished just in time. Each problem tested a different skill: the Shape Classes tested OOP and numeric computation, the SQL tested joins and aggregation, and the API problem tested HTTP requests and pagination handling. The difficulty was moderate, but every step required care.
I felt that Linkjob.ai was extremely helpful at the time, and I highly recommend it. It can be used during online assessments without being detected by interviewers.
The problems often have a real-world twist, like detecting contractor fraud or optimizing data flows. I found this approach refreshing because it let me show my skills before any interviews.
When I prepared, I noticed a pattern in the types of problems that showed up. The palantir hackerrank challenge often covers:
Arrays and Strings
Linked Lists
Stacks and Queues
Trees and Graphs
Hash Tables
Sorting and Searching
Depth-First Search (DFS) and Breadth-First Search (BFS)
Dynamic Programming
Greedy Algorithms
Recursion and Backtracking
I broke down my practice into topics and spent most of my time on LeetCode and HackerRank, solving medium-level problems.
I also used Linkjob.ai for mock interview practice, as they provide a question bank compiled from real interview experiences. It was extremely helpful for targeted, personalized training, and I consider this a crucial part of my success in this interview. And even better, I could use it during the actual, formal interview, because only I can view the answers it generates.
I built a simple study plan to keep myself on track and set aside an hour each day for coding practice. I reviewed my mistakes every weekend. Here's the table I used to track my progress and spot weak areas:
Week | Focus Area | Progress |
---|---|---|
1 | Arrays & Strings | ✅ |
2 | Trees & Graphs | ✅ |
3 | Dynamic Programming | ✅ |
4 | 2D Lists/Optimization | 🔄 |
During my Palantir HackerRank test this time, I didn’t start writing code right away. Instead, I first read through the problem statements slowly, making sure I understood every detail before attempting to code.
While reading the problems, I also identified key requirements, edge cases, and any potential constraints that might exist.
The next step I took was to ask myself questions, such as: What is the input format? And what should the output look like? After that, I might also draw diagrams or take notes to visualize the problem more clearly, which helped me avoid possible mistakes later on.
This step is highly helpful for interviews, but I find it hard to execute efficiently and perfectly. Since it matters so much for my performance, I turned to LinkJob for help: it broke down the interview questions and outlined the key framework I needed to follow. I chose this tool mainly because it generates answers quickly, its outputs align closely with the questions, and most importantly, it won’t be detected by interviewers, making it a reliable support for me throughout the entire OA process.
After completing the preliminary problem decomposition steps, my next move was to plan out my coding approach. I would first list the most feasible solutions, then select the most efficient one, this was because the entire phase only had a 90-minute time limit, and I needed to ensure I could finish all 3 problems.
After that, I also thought about which data structures would be most effective; if the problem involved optimization, I would look for ways to reduce the time complexity.
This planning step allowed me to focus more on delivering better results and also made my code more concise.
Testing and debugging are crucial in the palantir hackerrank challenge. I never assumed my code worked perfectly after the first try. I tested with sample inputs and tricky edge cases. I used print statements and console logs to track how my data moved through the code. This helped me spot bugs quickly.
Here’s how I approach testing and debugging:
I allocate enough time at the end to test my solution thoroughly.
I use console logs to check variable values and data flow.
I treat debugging as a chance to learn, not just fix errors.
If I get stuck, I talk through my logic out loud or write comments to clarify my thinking.
Note: Top candidates use console logs extensively and treat debugging as a collaborative process. They communicate openly with the interviewer if possible, sharing their thought process and asking clarifying questions.
Testing and debugging helped me catch mistakes before submitting. It also gave me confidence that my solution was solid.
Here are some common mistakes I noticed:
Skipping the problem statement and jumping straight into coding.
Ignoring edge cases or not testing enough.
Overcomplicating the solution when a simple approach works.
Forgetting to check time and space complexity.
Not reading constraints carefully, which led to wrong answers.
It supports most mainstream software engineering languages. Choose your most proficient one, because the assessment focuses on problem-solving logic and code quality, not specific languages.
It balances both. Algorithm logic and practical coding are equally key, aligning with Palantir’s focus on real-world data and engineering tasks.
No detailed question-by-question feedback, only final pass/fail via email. Interviewers may discuss your approach in later rounds for indirect improvement insights.