
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. I needed to check total_pages (or the pagination information) so I didn’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 Palantir HackerRank OA didn’t just test my coding skills—it went deeper to assess my engineering mindset and problem-solving abilities. I noticed the test focused on several key areas:
Algorithm and Data Structure Application
Each problem required me to quickly design efficient solutions within a limited time. I had to flexibly use arrays, hash maps, queues, and other fundamental structures while keeping time and space complexity in mind.
Logical Analysis and Problem Decomposition
Many questions included multiple layers of constraints. I had to break problems down into independent parts and solve them step by step, which helped me avoid getting stuck on complex problems.
Edge Case Handling and Robustness
The OA placed strong emphasis on handling boundary inputs, such as empty arrays, duplicate values, or extreme numbers. Thinking through edge cases beforehand allowed me to write more reliable code.
Performance and Efficiency Awareness
Beyond correctness, the test evaluated whether my solutions could handle large-scale data efficiently. I had to ensure my algorithms not only produced correct results but also passed performance checkpoints.
Engineering Mindset
Even in an online assessment, I tried to write modular, readable code, with clear naming and well-structured logic. This made debugging and testing more efficient and aligned with Palantir’s standards for engineering practices.
Overall, these skill assessments not only validated my foundational abilities but also reflected Palantir’s expectations for a well-rounded engineering candidate. Focusing on these areas in advance made me more confident during the test.
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 focused on arrays, strings, hash maps, and dynamic programming, since these patterns appeared frequently in past Palantir OAs. For each topic, I first reviewed the fundamental concepts and then practiced multiple variations of problems to ensure I could handle different twists. This approach helped me build confidence and speed, and it also made it easier to recognize which techniques to apply during the actual test.
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.
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.
What I Learned From My Palantir Decomposition Interview Mistakes and Fixes
How I Passed My Palantir New Grad SWE Interview in 2025
My Step-by-Step Palantir Interview Process and Actual Questions in 2025