Blog Infos
As a candidate
Not being prepared
  • Study open-source projects — not every project is perfect but you can still learn lots of useful things from each of them.
  • Study company dev blog — you can learn a lot about their underlying technical stack and think about potential questions they might ask.
  • Conduct mock interviews with your friends — time management is crucial: your goal is to cover as much ground as possible in the shortest amount of time. Having some practice also eases up the stress from the actual interview.
Rushing towards a solution
  • Not gathering system requirements — the interview question may be purposely vague. The candidate is expected to ask more questions to define the task better. For more information see Gathering Requirements.
  • Not asking clarifying questions — it might be useful to get some information about the target market, the size of the audience, and the dev team details.
  • Jumping straight to implementation — it’s generally a bad sign if the candidate immediately starts discussing low-level topics. For example, which view classes to use or what UI-architecture pattern to apply. The interviewer might not be interested in implementation details in the first place.
Being unresponsive
  • Being silent — make sure to talk through your solution.
  • Waiting until the interviewer starts asking questions — it is preferable for the candidate to “drive” the discussion (especially for more senior candidates).
Giving up early
Being chaotic
  • Long introduction — digging deeper into your professional background does not provide much “signal”. The interviewer would most likely form an opinion based on the candidate’s interview performance and not the summary of their professional experience.
  • Ignoring the interviewer — it is better to stop talking if the interviewer interrupts you: do not try “to finish the thought” — it is better to move to another topic and not waste time.
  • Repeating yourself — talking about the same things again: it does not provide any additional information to the interviewer.
  • Jumping from a topic to a topic — frequent context switching might be hard to follow for the interviewer.
  • Going too broad with the answers — covering irrelevant things does not provide meaning full “signal” to the interviewer. Try to stick to the original question.
Treating the interviewer as an adversary
Trying to fit a solution into an existing scheme
Being toxic
  • Being opinionated — holding a strong belief about certain technology and rejecting any alternative approaches.
  • Interrupting the interviewer — the interviewer might provide some useful hints or suggest a direction toward the solution. The candidate should let the interviewer finish their thought before bringing up any kind of disagreement.
  • “Educating” the interviewer — if the candidate believes that the interviewer is wrong/incorrect — it’s better to politely suggest this instead of lecturing them on their ignorance. Spending time on “educating” the interviewer provides no useful “signal” and may raise some red flags.
  • Being a “pleaser” — trying to compliment the interviewer hoping for a positive feedback report in return.
Not explaining decisions or not suggesting alternatives
Not having any structure for the solution

Job Offers

Job Offers

    Information Security Engineer

    London, UK
    • Full Time
    apply now


, ,

Migrating to Jetpack Compose – an interop love story

Most of you are familiar with Jetpack Compose and its benefits. If you’re able to start anew and create a Compose-only app, you’re on the right track. But this talk might not be for you…
Watch Video

Migrating to Jetpack Compose - an interop love story

Simona Milanovic
Android DevRel Engineer for Jetpack Compose

Migrating to Jetpack Compose - an interop love story

Simona Milanovic
Android DevRel Engin ...

Migrating to Jetpack Compose - an interop love story

Simona Milanovic
Android DevRel Engineer f ...


Speaking in terms of specific vendors
Being overly optimistic
Making assumptions
Ignoring the interviewer’s hints
As an interviewer
Not being prepared
Being toxic
  • Being a jerk — treat the candidate with disrespect.
  • Acting “superior” — showing your expertise and trying to belittle the candidate.
  • “Educating” the candidate — some interviewers may ask a question and then answer it themselves when the candidate fails to do so. It does not help to evaluate the candidate and wastes the interview time.
Being unresponsive
  • Not paying full attention — checking the phone, daydreaming, or responding to emails.
  • Eating — no comments.
Being too engaged
  • Suggesting solution to the candidate — pushing a candidate in the “right” direction, giving too many hints.
“Grilling” the candidate
  • Asking narrow sub-domain questions — a type of questions focusing on specific things the candidate does not need to know to be successful at the job.
  • Trying to corner the candidate — asking intentionally tough and tricky questions to make the candidate admit they don’t know the answer.
Asking meaningless questions
  • “Why did you choose a relational database (ORM) to store structured data that requires complex querying?” — there’s little “signal” a candidate can provide here (unless they advocate for text files or user preferences).
  • “Why caching/modularization/testing/etc is necessary?”
  • “Why would you use an industry-standard library instead of a custom implementation?” — this question might make sense when it comes to framework development but could be meaningless when talking about an app. See “Chapter 21. Dependency Management” from the “Software Engineering at Google” book.
Not moving on when the candidate is stuck
Forcing the candidate into a solution they have in mind
Digging too much into details
Looking for more content?



Below is a simple framework for Mobile System Design interviews. As an example, we…
The proposed solution is far from being perfect but it is not the point…

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.