Last updated: 23 October 2026
Between December 2023 and July 2025 I interviewed for several internships across frontend, web, Flutter and software development roles, before joining ONYX full-time as a Junior DevOps Engineer and Android Developer. This guide combines what I saw in those rounds with how interviews are changing now that AI can write code.
Not long ago, a strong interview meant knowing your algorithms cold. Today an AI assistant can solve most textbook interview problems in seconds, and hiring teams have noticed. Many are changing what they ask and how they judge the answers.
Formats differ widely from one company to the next, so treat this guide as a map of current trends rather than a fixed rulebook. Always confirm the exact process with your recruiter. By the end you will have a clear picture of what is changing, six areas to practise, and a weekly plan you can start this week.
Why Interviews Are Changing
The old signals have become less reliable. A take-home project or an automated coding test only shows the finished result, and AI can produce a polished result for almost anyone. Interviewers therefore want to see the thinking behind the answer. Depending on the company, you may meet some of these formats:
- Live sessions instead of long take-homes. The interviewer watches you reason, debug and explain in real time.
- AI-permitted rounds. Some companies let you use an assistant and judge how clearly you prompt it and how well you catch its mistakes.
- Reading and fixing existing code. This is closer to real work than starting from a blank editor.
- Deep questions about your own projects. Interviewers ask why you made each decision, and whether you truly understand your own code.
Data structures and algorithms still matter. They are just no longer the whole test.
1. Understand Your Fundamentals, Don't Just Pattern-Match
Memorising templates works until the interviewer changes one detail. Real understanding means you can adapt a solution when the problem shifts.
- Explain out loud. Describe why your approach works as if you were teaching a classmate. If you cannot explain it simply, you do not own it yet.
- Change the constraints. After solving a problem, ask yourself: what if the input is a stream that does not fit in memory? What if it is already sorted? What if I only get O(1) extra space? Then solve it again.
- Read other people's code. Open an unfamiliar repository, find a function, and work out what it does and where it could break.
2. Practise Coding With AI, Not Just Without It
If a company allows AI tools in the interview, showing up never having used one puts you at a disadvantage. Build three habits:
- Give context. "Write a function to remove duplicates" gets a generic answer. "Write a Python function that removes duplicate user IDs, keeps the original order, and ignores None values" gets a useful one.
- Review the output like a pull request. Check empty inputs, null values, very large inputs and unstated assumptions. Treat the answer as a draft, not a fact.
- Say what you would change. Spotting a flaw and explaining the fix often impresses more than a perfect first attempt.
Quick exercise: ask an assistant for a small function, then try to break it with five awkward inputs. Write down what failed and how you would fix it. Do this a few times a week.
Worked example: reviewing an AI answer
Ask for "a Python function that removes duplicate user IDs and keeps the original order" and you will often get something like this:
def unique_ids(ids):
return list(set(ids))
It looks fine and passes a quick test, but in an interview you should catch three problems:
- Order is lost. A
sethas no guaranteed order, so[3, 1, 3, 2]may come back as[1, 2, 3]. The requirement said keep the original order. - None values aren't handled. If missing IDs arrive as
None, they end up in the result. - Edge cases aren't stated. What should an empty list or
Noneinstead of a list return?
A better version, and what you would say while writing it:
def unique_ids(ids):
"""Return IDs in first-seen order, without duplicates or None values."""
if not ids:
return []
seen = set()
result = []
for user_id in ids:
if user_id is None or user_id in seen:
continue
seen.add(user_id)
result.append(user_id)
return result
assert unique_ids([3, 1, 3, None, 2]) == [3, 1, 2]
assert unique_ids([]) == []
assert unique_ids(None) == []
It's still O(n) time. The set is only used for fast lookups, while the list keeps the order. Explaining why you changed the code is the part interviewers are listening for. (In Python 3.7+, list(dict.fromkeys(ids)) also keeps order; mention it, then say it doesn't remove None.)
3. Build Debugging and System Thinking
Some interviews give you a log, an error message or a vague bug report and ask what you would check first. This looks more like on-call work than a whiteboard puzzle.
- Read stack traces from open-source issues and state your hypothesis before looking at the answer.
- Learn the basics of system design, even for junior roles: caching, databases versus queues, latency, bottlenecks and what happens when a component fails.
- Read public incident write-ups and practise describing the path to the cause, not just the fix.
4. Know Your Own Projects Inside Out
Interviewers often start from a line on your resume and keep asking "why?" Choose two or three projects and prepare honest answers to these questions:
- What was the hardest trade-off, and what did you give up?
- What would you do differently if you rebuilt it today?
- Which part did you not fully understand at the time, and do you understand it now?
If any part of a project used AI-generated code, be ready to explain every line of it.
5. Prepare for the Behavioural Round
Behavioural questions are increasingly mixed with technical ones. Instead of reciting a scripted story, you may be asked to walk through a real engineering decision. Prepare a few genuine stories:
- A time you disagreed with a technical decision, and what happened.
- A time you were wrong and changed course.
- A time you shipped something imperfect because of a deadline, and how you handled it.
Specific, honest stories are more convincing than polished ones.
6. Plan for a Slow, Unpredictable Process
Many candidates report long processes and silence after interviews. This is common and usually says nothing about your performance. Some ways to protect yourself:
- Apply to several companies in parallel rather than waiting on one.
- Ask each recruiter what every round involves, and whether AI tools are allowed.
- Follow up politely after a week or two, then move on mentally.
- Treat every interview, even a failed one, as practice at explaining your thinking.
Role-Specific Preparation
On top of the general skills above, expect questions specific to the role. These are the topics to expect for the kinds of roles I've worked in:
- Android: the Activity and Fragment lifecycle, what survives a screen rotation and why (ViewModel), coroutines basics, and how you'd structure an app (UI, ViewModel, repository). Have a published app or a GitHub project ready to show. My Android developer roadmap covers each topic.
- Frontend and web: how the browser renders a page, JavaScript closures and
this, promises andasync/await, React state anduseEffect, and calling an API with loading and error states. See React with Axios. - DevOps: Linux commands and permissions, how a request reaches your app (DNS, load balancer, reverse proxy such as Nginx), Git branching and merge conflicts, what a CI/CD pipeline does step by step, Docker images versus containers, and how you'd debug a failed deployment.
Campus Placements and Online Assessments
If you're a student in India, your first round is often an online assessment on a platform such as HackerRank or HackerEarth, usually timed aptitude plus two or three coding problems, with webcam proctoring.
- Practise in the same conditions: a plain editor, a timer, and no autocomplete.
- Read the input format carefully. Many failed submissions come from reading input wrongly, not wrong logic.
- Write a simple correct solution first, then optimise if time remains. Partial test cases often still count.
- Keep aptitude and basic SQL fresh; many service-company tests still include them.
A Sample Weekly Prep Plan
- Monday and Tuesday: two coding problems a day, each followed by a changed constraint.
- Wednesday: debug unfamiliar code or work through a bug report.
- Thursday: one system design topic, for example designing a URL shortener or a rate limiter.
- Friday: practise with an AI assistant and try to break its output.
- Weekend: a mock interview with a friend, then rehearse your project and behavioural stories.
Common Mistakes to Avoid
- Staying silent while thinking. Narrate your reasoning, even when you are stuck.
- Jumping straight into code without clarifying the problem and the edge cases.
- Trusting AI output without testing it.
- Listing technologies on your resume that you cannot discuss in depth.
- Skipping the human rounds because you are focused on coding.
Frequently Asked Questions
Do I still need to practise LeetCode-style problems?
Yes, but use them to build understanding rather than memorise answers. Quality and explanation matter more than the number of problems solved.
Will I be allowed to use AI in my interview?
It depends on the company. Never assume. Ask your recruiter, and do not use AI tools in a round where they are not permitted.
How long should I prepare?
This varies by background. Many people spend several weeks of steady practice on fundamentals and mock interviews before they feel ready.
What if I freeze in a live round?
Say what you know, state your assumptions, and talk through a simpler version of the problem first. Interviewers usually value clear thinking over a perfect answer.
Final Thoughts
Interviews are increasingly about judgement: knowing what to build, why, and what could go wrong. Learn your fundamentals well enough to explain them, get comfortable using AI tools critically, and practise thinking out loud. Those habits will serve you in any interview format.
Interview processes differ between companies and change quickly. Check the current format with each employer before you prepare.
Related: Top 7 Certifications that Boost Your Tech Career · Top 10 AI Tools for Students & Developers. If you're building Android projects for your portfolio, my free Android UI Kit app (my own) has ready-made layouts to practise with.