You open the interview invitation and read something like: “there will be a technical stage.” That’s it. In three seconds, your brain opens about fifteen tabs: “will they ask about algorithms?”, “what if I freeze?”, “do I need to master databases, APIs, testing, architecture, Docker, Kubernetes, and a whole lot of other things that weren’t even clear in the job description by Friday?”

If you are a student, junior developer, or changing careers, that insecurity is very common. Very common indeed.
The good news is that technical interviews do not have to turn into a performance built around memorized answers. In many processes, the company is trying to observe signs of reasoning, communication, fundamentals, practical experience, and willingness to learn. That does not mean interviews are perfect. They vary widely between companies, can contain biases, and sometimes measure a developer’s actual competence poorly.
Even so, you can prepare better. Not by trying to guess every possible question, but by building a body of experience and strategies for dealing with different technical conversation formats.
TL;DR
- A technical interview is not only about getting answers right; it is also about showing reasoning, communication, and clarity.
- Ask about the format of the stage beforehand: conversation, live challenge, project, architecture, fundamentals, or a mix of all of these.
- Study based on the job description, prioritizing what appears as a core responsibility.
- During challenges, think out loud: confirm the problem, ask about constraints, propose a simple solution, and validate different cases.
- Prepare examples from your projects, even if they come from courses, college, volunteer work, freelancing, or self-study.
- After the interview, write down what you learned without turning a rejection into a verdict on your ability.
A technical interview is not a test of memorized answers
It is tempting to think of a technical interview as an oral exam with a secret answer hidden somewhere in the mysterious selection process. But in practice, many interviewers want to understand something simpler and more useful: how you think when faced with a problem.
This includes questions such as:
- can you explain a technical decision in your own words?
- do you know how to recognize when you do not know something?
- can you ask questions before you start coding?
- do you understand the basic principles of the technology you claim to know?
- have you learned anything from previous projects?
- do you respond to feedback during the conversation, or do you ignore every clue?
On the other hand, there is no point in romanticizing the process. Technical interviews have limitations. Someone may perform poorly because of nervousness, because they are unfamiliar with the format, because of a confusing prompt, or because of an unwelcoming dynamic. In addition, different companies evaluate different things. Some place enormous weight on algorithms; others focus on product experience; still others combine a technical conversation, a practical challenge, and a project discussion.
So preparation should not mean “memorizing answers to every question that might come up.” Better preparation means building a body of experience: reviewing fundamentals, practicing problems, explaining decisions out loud, studying the job description, and reflecting on real experiences.
There is a trade-off here. Studying for interviews is not exactly the same as studying for day-to-day work. In a real job, you research, talk to colleagues, read existing code, test hypotheses, and change your mind. In some interviews, you have to solve something within a limited time while someone is watching. There is overlap, of course: fundamentals, clarity, and practice help in both contexts. But some interview formats require specific training, just as practicing soccer is not identical to playing a final while a crowd is shouting.
If you want to explore this view of professional practice with an emphasis on quality, continuous learning, and technical responsibility, it is also worth reading about what Software Craftsmanship is.
Learn about the most common technical interview formats

Before you start studying just anything, try to find out the format of the stage. You can ask in a simple and professional way:
“Could you tell me what the technical interview will be like? Will there be a conversation about experience, a live challenge, pair programming, an exercise on a platform, or an architecture discussion?”
This is not “asking for the answers.” It is about aligning expectations. The process changes depending on the company, seniority, area, stack, and position. For a junior position, it might be a conversation about fundamentals with a small exercise. For a more experienced role, system design, architecture, decision-making, and trade-off discussions may come up.
Conversation about fundamentals and concepts
This format usually evaluates basic knowledge of the field and of the technologies mentioned in the job description. Topics may include:
- the main language used in the role;
- object-oriented programming or another relevant paradigm;
- APIs;
- databases;
- testing;
- Git;
- HTTP;
- basic notions of architecture;
- software development practices for working on a team.
The point is not to recite a textbook definition. If someone asks, “what is an automated test?”, a memorized answer may start well, but it becomes weak if you do not connect it to real-world use.
A more interesting answer might be something like:
“An automated test is code that checks whether other code behaves as expected. In an API, for example, I could test whether the user-creation endpoint validates required fields. This helps prevent a future change from breaking an important rule without the team noticing.”
Notice that this is not a theatrical answer. It is an explanation in your own words, with context and an example.
Logic, coding, or problem-solving exercises
These exercises may take place in a shared editor, an online platform, on paper, on a whiteboard, or as part of a conversation. The exercise may be simple, such as manipulating lists, strings, and objects, or more elaborate, depending on the role.
A common mistake is to start writing code immediately, as if the keyboard were a lifeboat. Before coding, understand the problem.
Ask questions such as:
- what are the inputs?
- what should the output be?
- are there invalid values?
- can the list be empty?
- are duplicate items allowed?
- does order matter?
- are there any performance constraints?
- can I assume a specific format?
For example, if the problem involves a list of items, you might say:
“Before proposing a solution, I would like to confirm a few rules. Are duplicate items allowed? Can the input be empty? Does the original order need to be preserved?”
This shows care. And, as a bonus, it prevents you from implementing a solution to a problem you only half understood.
Discussion about previous projects and experiences
Not all relevant experience comes from formal employment. For students, junior developers, or people changing careers, college projects, courses, bootcamps, volunteer work, freelance work, guided self-study, and personal projects can all lead to good conversations.
The focus is not on having worked on a “huge system with millions of users.” The focus is on being able to explain:
- what the context was;
- what problem the project was trying to solve;
- what your contribution was;
- what decisions you made;
- what difficulties arose;
- what you learned.
If you have never taken part in a real company project, you can still build relevant experience with projects that are closer to professional practice. The article about diving headfirst into a real project can help you think about more concrete experiences to learn from and later explain in interviews.
Architecture or design discussion
This stage is more common for roles that require some experience, but it may also appear in a simpler version for junior developers. Instead of asking you to “design the perfect architecture for the internet,” the conversation might be something like:
“How would you structure a simple API for creating and querying orders?”
For a junior developer, the goal is generally not to create the most scalable solution on the planet, with distributed caching, queues, and observability for a problem that does not yet call for that level of complexity. The initial goal is to organize your reasoning.
You can start with the basics:
- which users will use the system?
- what are the main operations?
- what data needs to be stored?
- which integrations are necessary?
- which errors need to be handled?
- which parts can remain simple for now?
Here, clarity is extremely valuable. A simple, well-explained solution is usually better than a drawing full of impressive words that you cannot defend.
Preparing for technical interviews based on the job description
Realistic preparation starts with the job description. Before opening several tabs and trying to learn everything at once, read it carefully:
- main stack;
- responsibilities of the role;
- required qualifications;
- preferred qualifications;
- product context, when available;
- expected level for the role;
- how the team works.
Then separate the topics by priority. What appears as a core responsibility should come before what appears as a “plus” or “preferred” qualification.
For example, if the role is for backend development with Node.js, REST APIs, a relational database, and testing, it may make sense to prioritize:
- JavaScript or TypeScript fundamentals;
- creating and consuming APIs;
- HTTP;
- basic data modeling;
- SQL queries;
- automated testing;
- error handling;
- Git and version-control workflows.
On the other hand, if the job description mentions a preferred tool that you have never used, do not try to “learn the entire technology” in a few days. It is more honest to understand the basics, be able to say that you do not yet have deep experience, and explain how you would study or apply it.
This honesty helps for two reasons. First, it prevents you from creating a false expectation about your level of expertise. Second, it shows an important skill for real work: knowing how to define what you know, what you still need to investigate, and how you intend to move forward.
A simple preparation routine
You do not need to turn interview week into a monastic retreat with cold coffee and guilt. A small, consistent routine usually works better.
One possible structure:
-
Review the fundamentals of the requested language and technologies
Focus on what you can actually explain. Types, basic data structures, functions, classes, modules, error handling, asynchronous operations, and common queries, depending on the stack. -
Practice small logic and implementation problems
Choose short exercises. The goal is not to become an Olympic algorithm athlete, but to practice reading prompts, breaking problems down, and implementing solutions calmly. -
Review your own projects and organize stories to tell
List relevant projects and prepare examples. Even small projects can lead to good conversations if you know how to explain your decisions and what you learned. -
Practice explanations out loud
Pick a concept and explain it as if you were talking to someone. Record yourself, talk to yourself, or practice with another person. It may feel strange at first, but it helps a lot. -
Research the company, product, and process format
Gain a basic understanding of what the company does and prepare questions. An interview is also a way for you to evaluate the context.
An adaptable weekly routine could be:
- Two sessions for fundamentals and technical practice: review concepts and solve small exercises.
- One session to review projects: choose stories and structure your answers.
- One session to simulate a conversation: explain things out loud, answer likely questions, and practice clarity.
The trade-off here is depth versus coverage. Covering many subjects superficially can create a sense of progress, but it does not always build confidence. Prioritizing the requirements that recur most often in the job description tends to be more useful, especially when time is short.
Practice thinking out loud during technical challenges

In technical challenges, communication matters because the interviewer is generally not looking only at the final result. They want to understand how you got there.
Imagine two situations:
- Person A remains silent for a long time and writes an almost-correct solution, but no one understands the path they took.
- Person B explains the problem, asks about constraints, proposes a simple solution, implements part of it, notices an edge case, and adjusts the approach.
Even if Person B’s solution is not perfect, the conversation generated better signals about reasoning, collaboration, and the ability to respond to feedback.
This is a point where behavioral skills enter in a very concrete way. In a technical interview, “soft skills” do not mean speaking eloquently to compensate for a lack of technical ability. They mean listening to the problem, confirming your understanding, explaining decisions, recognizing limitations, and collaborating with the interviewer while solving the problem. The video Master soft skills, from the community’s channel, complements this discussion about communication and professional conduct.
A practical exercise script:
-
Repeat the problem in your own words
“So, if I understood correctly, I need to receive a list of items and return only the unique items while preserving their original order. Is that right?” -
Ask about rules and constraints
“Can the list be empty?”
“Are the items always strings?”
“Does the difference between uppercase and lowercase matter?” -
Mention a simple initial solution
“One initial approach would be to iterate over the list and keep track of the items we have already seen.” -
Implement or detail the approach
Go step by step. If you are coding, explain important decisions without narrating every keystroke. -
Mentally test common and edge cases
“With an empty list, the result should be empty.”
“With duplicate items, only the first occurrence should be returned.”
“With a single item, that item should be returned.” -
Evaluate improvements, if there is time
“This solution works well for small inputs. If the list were very large, I would be concerned about…”
This script also helps when you freeze. And freezing happens. No one gains superpowers just because they opened a shared editor.
When you do not know something, try to act like this:
- be honest about what you do not know;
- connect it to something similar that you have already used;
- explain how you would investigate or validate the answer;
- ask for a small clarification if the question is ambiguous.
For example:
“I have not used this specific library in a project yet, so I do not want to pretend I have expertise. But I have worked with a similar tool for data validation. I would start by looking at the main API documentation, build a small example, and write a test to confirm its behavior.”
That is much better than inventing a confident answer and hoping no one notices.
Two important points to keep in mind:
- do not remain silent for too long because you are afraid of appearing uncertain;
- do not defend a solution as if it were a medieval castle when the interviewer has offered feedback, clues, or new information.
A technical interview also evaluates collaboration. Sometimes, the hint given along the way is part of the exercise. If you ignore the hint to “prove” that you can do everything alone, you lose the opportunity to show something closer to real work: building a solution with other people.
Turn your experience into clear examples
Many junior developers think they have “no experience” because they have not yet worked formally as developers. But relevant experience can come from many places.
You can talk about:
- a college project;
- a thesis or capstone project;
- a course project;
- a bootcamp challenge;
- a system built for someone you know;
- a contribution to a volunteer project;
- a small freelance project;
- a personal project;
- guided study in which you implemented something from scratch.
The key is to move beyond “I made a little project” and give an explanation with context.
A simple model:
- Context: what was the situation?
- Objective: what did the project need to solve?
- Action: what did you do?
- Result: what worked, even if on a small scale?
- Learning: what would you do differently today?
What to review in each project
Before the interview, choose a few projects and answer these questions:
- What problem did the project solve?
- What was your specific contribution?
- Which technologies were used?
- Which technical decisions did you make?
- What difficulty came up?
- How did you investigate or solve it?
- What would you do differently today?
- Which parts do you understand well enough to explain?
For example, imagine a study project with a book-catalog API. A vague answer would be:
“We built an API with a database.”
A better answer:
“I took part in a book-catalog API as part of a course project. My part was creating the create and list endpoints. One decision we discussed was separating data validation from the persistence step because incomplete records were reaching the database. We also had an integration error in which the frontend sent a field with a different name than the one expected by the API. To investigate it, we used simple logs and tested the request in isolation. Today, I would add tests to cover this kind of input-and-output contract.”
Notice that the project does not need to be huge. The explanation shows contribution, decision-making, a problem, investigation, and learning.
When working on group projects, be careful with saying “we did” all the time. Projects are, of course, collaborative, but the interview needs to understand your contribution. You can say:
“The project was a group effort. The part I worked on most directly was…”
This prevents exaggeration while also keeping you from erasing your contribution.
There is also a trade-off between confidence and honesty. You should clearly show what you know, without inflating your expertise in tools or decisions that you are still learning about. Saying “I have some familiarity and have implemented a simple case” is different from saying “I have complete command of it” after a one-afternoon tutorial.
Before, during, and after: behaviors that help throughout the process
Technical preparation matters, but the process does not begin when the first question appears. Some actions before, during, and after the interview can help considerably.
Before the interview
Confirm practical information:
- stage format;
- duration;
- tool being used;
- whether there will be live coding;
- whether you may consult documentation;
- language of the conversation;
- who will participate, if the company provides that information;
- next steps in the process.
For remote interviews, prepare your environment:
- internet connection;
- microphone;
- camera, if you will use one;
- editor or IDE;
- browser;
- platform permissions;
- a place with fewer interruptions.
You do not need to build a movie studio. But opening the tool shortly beforehand and discovering that it will not load is an unnecessary kind of excitement.
Also prepare questions for the company. For example:
- What is the team’s routine like?
- How does a junior developer receive support and mentoring?
- How are code reviews conducted?
- What are the product’s main technical challenges today?
- What would be expected from the person hired during the first few months?
- How does the team approach learning and feedback?
An interview is a two-way street. You are also evaluating whether that context fits your current situation.
During the interview
During the conversation:
- ask for clarification when necessary;
- manage your time;
- explain what you are thinking;
- acknowledge your limitations;
- accept feedback;
- confirm your understanding;
- avoid pretending to know something you do not know.
If you realize that you are going down the wrong path, say:
“I think my initial approach is making this more complicated than it needs to be. Can I take a step back and try a simpler solution?”
This can be positive. It shows that you are able to review your approach.
If nervousness kicks in, try to return to the basics: understand the problem, break it into smaller parts, and communicate the next step. You do not need to seem like a walking encyclopedia. You need to take part in the conversation with honesty and clarity.
After the interview
After the interview, quickly write down:
- which topics came up;
- where you had difficulty;
- which questions felt easy;
- which examples of your experience worked well;
- what topic to study next;
- which questions about the company remained unanswered.
This record helps turn each process into a learning opportunity. But be careful not to turn every result into a definitive judgment about your ability.
A difficult interview or a rejection does not prove that you are “not cut out for the field.” It may indicate a mismatch with the role, a poor format, nervousness, different expectations, a lack of preparation in a specific area, or simply competition. When feedback exists, use it as information—not as a verdict.
It also makes sense to thank the company and follow the return instructions it provided. If the company did not give you a timeline, you can ask objectively about the next steps. No aggressive demands, no disappearing in despair, and no sending one parchment a day.
Next Steps

If you are preparing for technical interviews now, a practical path would be:
- Choose a real job opening or a description similar to your goal.
- List the main requirements and separate the topics by priority.
- Review the fundamentals of the most important stack.
- Solve small exercises while explaining your reasoning out loud.
- Choose two or three of your projects and organize stories with context, action, result, and learning.
- Simulate a technical conversation with someone or record your answers.
- After each interview, write down what you learned without attacking yourself.
In the end, consistent preparation does not eliminate the imperfections of hiring processes. There will still be strange interviews, poorly worded questions, and days when nervousness shows up. However, studying with direction, practicing communication, and organizing your experience can improve your clarity and expand your body of experience.
And that is very different from memorizing ready-made answers.
Join the SCCB community to follow discussions and events focused on professional software practice.


