- How do you work with others?
- How open are you to receiving feedback?
- Tell me about a time where you made a mistake in a previous project/job.
- Describe a situation where you had to complete a task/goal, and you could achieve it.
- Give me an example of a time when you disagreed with a colleague.
- Is there something you would like to ask?
- What have you done in the last 3 jobs?
- What is your experience working for startups?
- What are your expectations in general for your new job?
- Tell me about a time when you had to provide constructive feedback to a team member.
- From the technical perspective:
- How do you want to be managed?
- Which challenges are you expecting to be facing here?
- What are your 3 motivations to join this project?
Prepare sticky notes.
Describe a situation in which you were able to use persuasion to successfully convince someone to see things your way.
- Creating a new template with ASP.NET MVC to work with designers in a better way (Separation of concerns for the win, instead of using server-side controls).
- Use hybrid mobile frameworks (depending of the app) to reduce time to market and helping other teams (Become Ionic partners).
- Creating new native plugins to give a better user experience (Open Source projects).
Describe a time when you were faced with a stressful situation that demonstrated your coping skills.
- Working until the next day for a release to production (BevyUp)
- My cat walking on the balcony (During a demo with the client)
- Situation: I was in a meeting with a client, presenting a demo, when suddenly my wife appeared very scared and asked me for help because something was happening, then I realized that my little cat was walking on the edge of the balcony, I had to pause my presentation because I was so worried.
- Task: Ask for a break and rescue my cat.
- Action: I had to be brave and rescue the cat, then I was able to finish the presentation.
- Result: I was able to face that so stressful situation because I was thinking in the solution instead of the problem, and then I was calm because I had been able to finish the presentation with the help of my team.
- A PoC with a new technology in a short period of time (StartUp Acquisition)
- Working in a project with 1 week sprints (working weekends)
- Excel generation tool migration with a class having more than 30k lines of code and without business formulas.
- Situation: Code refactor of a software with more than 10 years in the market, and having classes of more than 30k lines of code, where the client did not know the formulas of the business with which more than 30 different critical excel files were exported.
- Task: Looking to improve the UX (performance) for generating these files.
- Action: I had to contribute to Open Source and created interfaces to simulate functionalities of a deprecated library. I spent some months working on this migration.
- Result: Using benchmarks I was able to compare these tools, and I found some issues during this migration but with the help of these Open Source contributions (reporting issues, discussing and reviewing the code of the external lib) I was able to solve unforeseen problems.
Give me a specific example of a time when you used good judgment and logic in solving a problem.
- Creating a new Open Source project to improve UX with a native look & feel (React Native InAppBrowser).
- Use memoization and Big O notation to reduce complexity with RxJS subscriptions.
- Found SQL Injection issues concatenating Database queries from a third party system.
- Using hooks to reduce code complexity and increase test coverage.
- Using macros from Assembly lenguage to reduce complexity.
Give me an example of a time when you set a goal and were able to meet or achieve it.
- Using a new strategy to implement a real-time connection.
- Database migration from NoSQL (MongoDB) to SQL & Multi-tenant (PostgreSQL) takes less than 3 months.
Tell me about a time when you had to use your presentation skills to influence someone's opinion.
- Comparison between React Native and NativeScript for cross-platform native UI apps.
- Web Components and compilers instead of a Framework (Be agnostic, it Depends... maybe You don't need it).
- Using promises for HTTP requests from Unity.
- Divide and conquer (Avoid blocking tasks)
- Situation: Implementing new features from a React Native app was giving us some problems, specially because we're using React class components with nested code, having complex local states with large components and repeated code, so it was difficult to maintain unit tests and increase test coverage.
- Task: My goal was to help another Senior developer with a new feature adding a real-time connection from some screens of a chat module and increasing the test coverage of a complex component.
- Action: We had some sessions of pair programming but I was stuck waiting for my partner to finish the dependent task assigned to him, so I decided to investigate on my own how to reduce the complexity of the current code and avoid adding nested code to the chat component. I learned about a new way to reuse code, extend behaviors easily and have components as small functions using functional programming and React hooks, while also implementing the real-time connection. As my colleague did not agree to do it in a different way, I proceeded to speak with the PM about the advantages that this new utility offered us and I made a presentation to share the knowledge gained about this new React feature with the rest of the team.
- Result: We agreed with the team to use this new strategy for this implementation and thanks to this we were able to finish the feature 2 weeks ahead of schedule and increase test coverage by 20% by having small features that were much easier to maintain and test. Also, a few months later I made a talk about these topics for the rest of the company and it was shared on YouTube.
Give me a specific example of a time when you had to conform to a policy with which you did not agree.
- Using fingerprint to register arrival and departure time at work
Please discuss an important written document you were required to complete.
- Documenting multi-tenant architecture
- Situation: Architecture documentation was required by the client.
- Task: Create architecture documentation of the project about purpose, scope, business and technical architecture, data migration and deployment strategies, version management and environment set-up.
- Action: I designed the first version of the document about architectural overview of the solution, to capture and convey the significant architectural decisions which have been made on the system.
- Result: The documentation created was a good guide for new developers to understand the scope of the project, listing all definitions, references and human operations involved to support business processes which are triggered and generate business events. With this guide I defined each business process, design patterns and principles used in the project, coding conventions, describing frameworks, services and dependencies involved in the execution, defining the tiers where the software components are deployed and executed, listing functional and non-functional requirements and about technical architecture I generated component, deployment, package, use case and entity relationship diagrams to illustrate the logical structure and organization of the project. I identified opportunities for improvement about deployment strategies to automate the process publishing new releases to Production environment and avoiding risks to access to the database externally due to default configurations.
Tell me about a time when you had to go above and beyond the call of duty in order to get a job done.
- Use personal time to update deprecated templates and avoid code refactors of the project in the future.
- Create a fully working prototype instead of a PoC to make a good impression with a partner.
- Committed working in a PoC until early the next day.
- Attending a meeting with the client while I was in a recreational activity of the company (playing bowling with coworkers).
- Working in a presentation during weekends for all-hands meeting.
Tell me about a time when you had too many things to do and you were required to prioritize your tasks.
- Daily meetings to prioritize tasks.
- Stoping/Delegating my tasks to help coworkers and other teams of the project (Releases to production, Hotfixes).
Give me an example of a time when you had to make a split second decision.
- Reverting deployment testing on production (CodePush not working with a hotfix to log native exceptions).
- Stop a presentation with the client to rescue my cat while he was walking on the balcony outdoor.
What is your typical way of dealing with conflict? Give me an example.
- Take the decision with the rest of the team.
- Analyze other perspectives, but review what we did and let's see what to do for improvement (Flexible).
- Keep a cool head because it's just work (New PMs, coworkers getting frustration, etc).
Tell me about a time you were able to successfully deal with another person even when that individual may not have personally liked you (or vice versa).
- It's work, never mix business with personal matters (Loss of professionalism, maintain a balance between personal and professional lives).
- PM taking bad decisions with the client, so taking decisions with the rest of the team and the software architect.
Tell me about a difficult decision you've made in the last year.
- Study for this interview, remember concepts that I'd not reviewed since college (Practice algorithms and many other things in a short time)
- Situation: Many other professionals prepare months and even years to present themselves to a FAANG company, this is my first time and the recruiter contacted me because of my contributions, I was not prepared, It has really been a lot of work these days, preparing for these meetings, a lot to do in a short time.
- Taking a remote job with only 4 months working as a Software Architect in another company
Give me an example of a time when something you tried to accomplish and failed.
- A big refactor took longer than estimated
Give me an example of when you showed initiative and took the lead.
- Help the company to be a trusted partner of a technology by sharing my own side projects
Tell me about a recent situation in which you had to deal with a very upset customer or coworker.
- Perfect is the enemy of good having strict deadlines (Done is better than perfect)
Give me an example of a time when you motivated others.
- Being speaker in local communities like CodeYourFuture
- Helping another developer to get a new role (Being a mentor)
Tell me about a time when you delegated a project effectively.
- Delegating leadership while helping to develop her confidence (nobody is indispensable, avoid comfort zones, upgrade her skills, adopt a proactive approach)
Give me an example of a time when you used your fact-finding skills to solve a problem.
- Stranger things with the code (Strange behaviors, code not working as expected)
- Creating templates and fixing issues learning new technologies with Open Source projects
Tell me about a time when you missed an obvious solution to a problem.
- Ignoring brute force solutions thinking about Big O Notation and Cyclomatic complexity
Describe a time when you anticipated potential problems and developed preventive measures.
- Sharing with the team about semantic versioning and the correct way to use that with CodePush from production
Tell me about a time when you were forced to make an unpopular decision.
- Not using Redux (Popular State management). I'll never know. I got the outcome I wanted, but I might have gotten a better result by handling it differently.
Please tell me about a time you had to fire a friend.
- Informed but they didn't take me into account
Describe a time when you set your sights too high (or too low).
- Being a perfectionist and trying to do everything on my own (not settling for what already exists and works, but trying to improve it)
Let's say one of your peers on your team is underperforming. What would you do (if anything)?
- Divide complex tasks and help my partner by having peer programming sessions to share knowledge or 1-1 meetings to discuss what I can do to help him/her improve in his/her career, I could help him/her with a mentoring process to define some KPOs (Key Performance Objectives) to continue growing and looking for him/her to take on new challenges in the project by delegating.
What work have you found most technically challenging in your career and why?
What work have you done that you were particularly proud of and why?
When have you been happiest in your professional career and why?
When have you been unhappiest in your professional career and why?
- Be yourself; mention where I have been wrong, I have failed (Everyone makes mistakes) and express the initiatives that I have taken.
- Talk more about what I did, instead of talking so much about what we did as a team; e.g: I disccused with the manager, I shared a technical presentation with the team and together we managed to decide this. Talk with your team
- There have been several situations where I failed, did I communicate it in time? it is important to mention it
- Be honest, express if I made bad decisions, if it took me longer, and that I learned from the process.
- How do you interact with the team?
- How do I react to failure? Show what I learned from the experience to avoid repeating the same mistakes.
- Give numbers, coverage improved, how much percentage? improved sales, how much? Did the decisions I made help make life easier for users?
- Focused more about the product and business than technology, its important to ask yourself what are we doing? what is the goal of what we are building? to align the vision with the product team.
- Show them you take responsibility for mistakes.
- Keep it brief and concise. Try to tell the story in chronological order, too, without having to go back and forward in time repeatedly.