Online assessments have become the gatekeepers of the tech hiring process. Before you ever speak with an interviewer, your application likely needs to pass through an automated coding test. Companies like Amazon, Microsoft, Uber, Stripe, and hundreds of others use platforms like HackerRank, CodeSignal, and LeetCode to filter candidates at scale.

The challenge with online assessments is that they test more than just your coding ability. They test your time management, your ability to read problem statements carefully, your debugging skills under pressure, and your familiarity with the specific platform. This guide covers everything you need to know to perform at your best on these assessments.
An online assessment (OA) is a timed coding test that companies send to candidates as an early screening step in the interview process. You receive a link via email, and you complete the assessment remotely on your own computer within a specified time window.
Most OAs share these characteristics:
The stakes are high. A poor OA performance typically results in an automatic rejection, and you may not be able to retake the assessment for six months to a year.
Understanding why companies use OAs helps you approach them with the right mindset:
Different companies structure their OAs differently, but most fall into one of these formats:
This is the most common format. You receive two to three coding problems of increasing difficulty (easy, medium, hard) and must solve as many as possible within the time limit. Partial credit is given for passing some test cases.
Used by: Amazon, Microsoft, Goldman Sachs, many startups.
Some companies prefer a larger number of shorter problems that test a broader range of topics. Each problem is simpler, but the volume requires efficient time management.
Used by: Some HackerRank assessments for mid-size companies.
CodeSignal's General Coding Assessment produces a standardized score (out of 850) that companies use as a threshold. The assessment consists of four tasks of increasing difficulty, and your score is based on correctness, speed, and code quality.
Used by: Companies that accept CodeSignal scores including Uber, Roblox, Databricks, and others.
Some OAs combine coding problems with multiple choice questions on computer science fundamentals, SQL, or system design concepts.
Used by: Some companies for full-stack or data engineering roles.
A newer format where you work in an IDE-like environment to debug existing code, implement features, or refactor a codebase. This tests practical engineering skills rather than algorithm knowledge.
Used by: Select companies using CodeSignal's IDE assessments.
Each platform has its own interface, quirks, and grading system. Familiarity with the platform itself is a legitimate competitive advantage.
HackerRank is one of the oldest and most widely used platforms for technical hiring. Its interface is straightforward but has some specific behaviors you should know about.
Key characteristics:
Tips specific to HackerRank:
CodeSignal has gained significant traction with its General Coding Assessment (GCA). The platform produces a standardized score that multiple companies accept, similar to how the SAT works for college admissions.
Key characteristics:
Tips specific to CodeSignal:
LeetCode is primarily a practice platform, but some companies use LeetCode-style assessments or the LeetCode contest platform for their OAs.
Key characteristics:
Tips specific to LeetCode:
While OA questions vary, certain patterns appear with high frequency:
These are the most frequently tested topics on OAs. Expect problems involving:
Hash-based data structures appear constantly because they provide efficient solutions to many problems:
Graph problems are moderately common and tend to be medium to hard difficulty:
DP problems appear regularly, especially as the harder problems on OAs:
Binary tree problems show up occasionally:
Greedy problems often appear as the easy or medium problems:
Time management is one of the most critical skills for OA success. Here is a proven strategy:
Before writing any code, read all the problems quickly. Identify which ones you are most confident about and estimate the difficulty of each. This information guides your time allocation.
For a 90-minute, 3-problem OA:
If you cannot find the optimal solution, submit a brute-force approach that handles the basic cases. A solution that passes 60% of test cases is far better than an empty submission. Many OAs give partial credit, and the difference between passing 0 test cases and passing 10 out of 15 can determine whether you advance.
Set a hard time limit for each problem. If you have spent more than half of your allocated time on a problem without making progress, move on. You can always return to it later, and solving an easier problem first may give you confidence and ideas.
Check the remaining time every 10 to 15 minutes. It is easy to lose track of time when you are deep in a problem. Some candidates set a timer on their phone as a secondary reminder.
Debugging during an OA is different from debugging in a regular development environment. You have limited time, limited debugging tools, and elevated stress levels. Here are strategies that work:
This sounds obvious, but many candidates panic when they see an error and start making random changes. Stop, read the error message carefully, and identify whether it is a compilation error, a runtime error, or a wrong answer.
When you cannot use a debugger, print statements are your best friend. Print intermediate values to verify that your logic is progressing correctly:
# Add prints to trace your logic
def solve(nums, target):
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
print(f"left={left}, right={right}, mid={mid}, nums[mid]={nums[mid]}")
if nums[mid] == target:
return mid
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1Remember to remove print statements before final submission, as they can cause time limit exceeded errors on some platforms.
When your solution produces a wrong answer, do not test with the complex example from the problem statement. Instead, create the smallest possible input that would exercise the failing logic:
[][1][1, 2][3, 3, 3][-1, -2, 3]Walk through your code line by line, explaining what each line does as if you were explaining it to someone else. This technique catches logical errors that your eyes skip over when scanning code quickly.
Failing to handle edge cases is the single most common reason for losing points on OAs. Before submitting any solution, systematically check these cases:
Your choice of programming language can impact your OA performance. Here are the trade-offs:
Pros: Fastest to write, most readable, built-in data structures are powerful, no need to worry about types.
Cons: Slowest execution speed, which can cause time limit exceeded on problems with tight constraints.
Best for: Most OA scenarios, especially when execution time is not the bottleneck.
Pros: Faster execution than Python, strong standard library, widely accepted.
Cons: More verbose, requires explicit type declarations, boilerplate code takes time.
Best for: Candidates who are already fluent in Java and need the performance.
Pros: Fastest execution, STL provides efficient data structures, best for problems with tight time constraints.
Cons: Most verbose, manual memory management, harder to debug.
Best for: Competitive programmers or candidates facing performance-critical problems.
Pros: Flexible, good for full-stack roles, decent execution speed.
Cons: Less common for DSA-focused OAs, some platforms have limited JS support.
General recommendation: Use Python unless you have a strong reason not to. The time saved in writing code almost always outweighs the slower execution speed, and most OA time limits are generous enough for Python solutions.
Many candidates start coding after skimming the problem statement and miss critical constraints or requirements. Always read the problem statement twice before writing any code. Pay special attention to:
If the problem can be solved with a simple approach, do not add unnecessary complexity. A clean O(n^2) solution that you write in 10 minutes is better than an incomplete O(n log n) solution that you spend 40 minutes on and cannot debug.
The constraints section tells you what time complexity you need:
Always run your code with at least two or three test cases before submitting. Use the provided examples and at least one edge case that you create yourself.
Under time pressure, it is tempting to use single-letter variable names everywhere. This makes debugging much harder. Use descriptive names for your main variables and reserve single letters only for loop indices.
Print statements and debug logging can cause unexpected failures on some platforms. Remove all debug output before your final submission.
A structured study plan is far more effective than random practice:
The best preparation is to practice under conditions that match the real assessment:
Phantom Code is particularly useful for OA preparation because it provides AI-powered guidance while you practice. Instead of being stuck on a problem for an hour, Phantom Code can nudge you toward the right approach, explain why your current solution fails certain test cases, and help you learn the patterns that appear most frequently on OAs. This accelerates your preparation significantly compared to practicing alone.
Keep a spreadsheet or document that records:
Reviewing this log weekly will reveal your weak areas and help you focus your study time where it matters most.
Before your actual OA, spend at least 30 minutes practicing on the specific platform the company uses. Each platform has different:
This preparation eliminates unnecessary friction during the real assessment.
This depends on the company's policy. Some OAs explicitly prohibit external resources, while others allow you to reference documentation. However, most proctored OAs monitor your browser activity. As a general rule, do not Google specific problem solutions during an OA, even if it is technically allowed. You will not have time to understand and adapt a solution you found online.
Most platforms save your progress automatically. If you lose connection, contact the company's recruiting team immediately. Many companies will allow you to continue where you left off or provide a new assessment.
Most platforms calculate partial credit based on the percentage of test cases your solution passes. If a problem has 20 hidden test cases and your solution passes 14, you receive 70% credit for that problem. This is why submitting a brute-force solution is always better than submitting nothing.
This varies by company. Some companies review your code quality alongside your score. Others only look at the numerical score. Write clean, readable code regardless, as it helps you debug faster and makes a positive impression if the code is reviewed.
Most companies allow only one attempt per application cycle. If you fail, you typically need to wait six months to a year before reapplying. Some companies that use CodeSignal's GCA will accept your existing score if it meets their threshold, saving you from retaking the assessment.
Not necessarily. Read all problems first, then start with the one you are most confident about. Solving an easier problem first builds momentum and ensures you collect those points. If you are stuck on problem 2, skip to problem 3 and come back.
Online assessments are a learnable skill. Beyond raw coding ability, they test your ability to manage time, handle pressure, read carefully, and test systematically. By understanding the platform you are using, practicing under realistic conditions, and applying the strategies in this guide, you can significantly improve your OA performance.
Start your preparation with Phantom Code to get AI-powered feedback on your solutions and build the problem-solving speed that OAs demand. Combine platform-specific practice with a structured study plan, and you will approach your next online assessment with confidence.
Remember: the goal is not perfection on every problem. It is to maximize your total score by being strategic about time allocation, securing easy points first, and always submitting something, even if it is not the optimal solution. Consistent practice and a clear strategy will take you further than brilliance under chaos.
Phantom Code provides real-time AI assistance during technical interviews. Solve DSA problems, system design questions, and more with instant AI-generated solutions.
Get StartedA comprehensive guide to Apple's software engineer interview process, covering technical rounds, behavioral interviews, system design, and the most common DSA topics tested at Apple.
Master the behavioral interview with 30 real questions and sample answers tailored for software engineers. Learn the STAR method, company-specific tips for FAANG, and strategies to stand out.
A detailed comparison of the top AI-powered tools for coding interview preparation and assistance in 2026. We evaluate Phantom Code, Interview Coder, Final Round AI, UltraCode AI, Parakeet AI, ShadeCoder, and CodeRank across features, accuracy, pricing, and user experience.