# IC1
**Role:** Software Engineer · **Level:** Associate Software Engineer
**Company:** [Yahoo](https://scaleengineer.com/companies/yahoo)
**Difficulty:** Medium
**Salary:** US$85000 - US$110000
**Experience:** 0 - 2
**Timeline:** ~7 days
The Associate Software Engineer (IC1) interview at Yahoo is designed to assess foundational technical skills, problem-solving abilities, and cultural fit. Candidates are evaluated on their understanding of core computer science concepts, coding proficiency, and ability to collaborate effectively.
Canonical: https://scaleengineer.com/interviews/yahoo/associate-software-engineer-software-engineer
---
## Overall evaluation

- Technical Skills
- Communication
- Behavioral and Cultural Fit

## Questions asked

- Given an array of integers, find two numbers such that they add up to a specific target number.
- Reverse a linked list.
- Implement a binary search tree.
- Explain the difference between TCP and UDP.
- Describe a situation where you had to deal with ambiguity.
- How do you approach learning a new technology?
- Design a system to count the number of clicks on a webpage.
- What are your strengths and weaknesses?

## Preparation tips

### lists

- Master fundamental data structures (arrays, linked lists, trees, graphs, hash maps) and algorithms (sorting, searching, graph traversal).
- Practice coding problems focusing on time and space complexity.
- Understand core programming language concepts (e.g., OOP, memory management).
- Review basic system design principles.
- Prepare to discuss your resume projects in detail, highlighting your contributions and challenges.
- Practice behavioral questions using the STAR method (Situation, Task, Action, Result).
- Research Yahoo's products, values, and recent news.
- Prepare thoughtful questions to ask the interviewer.

### studyPlan

- {"title":"Data Structures","longDescription":"Weeks 1-2: Focus on Data Structures. Cover arrays, linked lists, stacks, queues, hash tables, trees (binary trees, BSTs, AVL trees), and heaps. Understand their operations, time/space complexity, and common use cases. Practice implementing them and solving problems related to them.","shortDescription":"Weeks 1-2: Data Structures (Arrays, Lists, Trees, Hash Maps). Practice implementations and problems."}
- {"title":"Algorithms","longDescription":"Weeks 3-4: Focus on Algorithms. Cover sorting algorithms (bubble, insertion, merge, quick), searching algorithms (binary search), graph algorithms (BFS, DFS, Dijkstra's), dynamic programming, and greedy algorithms. Understand their complexity and when to apply them. Solve problems requiring algorithmic thinking.","shortDescription":"Weeks 3-4: Algorithms (Sorting, Searching, Graph Traversal, DP). Focus on complexity and application."}
- {"title":"Core Programming","longDescription":"Week 5: Review core programming concepts and language specifics. If C++, review pointers and memory management. If Java, review JVM and garbage collection. If Python, review GIL and data types. Practice coding problems that test these fundamentals.","shortDescription":"Week 5: Core Programming Concepts & Language Specifics. Practice coding."}
- {"title":"System Design Basics","longDescription":"Week 6: Introduction to System Design. Understand concepts like scalability, availability, load balancing, databases (SQL vs NoSQL), caching, and APIs. Practice designing simple systems like a URL shortener or a Twitter feed.","shortDescription":"Week 6: Basic System Design. Understand scalability, databases, caching."}
- {"title":"Behavioral and Mock Interviews","longDescription":"Week 7: Behavioral preparation and mock interviews. Prepare STAR stories for common behavioral questions. Practice articulating your thought process for technical problems. Research Yahoo and prepare questions for the interviewers.","shortDescription":"Week 7: Behavioral Prep & Mock Interviews. Practice STAR method and research Yahoo."}

## Location differences

- {"location":"USA","differences":{"tips":["Be prepared to whiteboard solutions for coding problems.","Clearly articulate your thought process.","Research Yahoo's products and recent news.","Prepare specific examples for behavioral questions."],"interviewFocus":["Strong emphasis on data structures and algorithms.","Problem-solving and analytical thinking.","Basic understanding of system design principles.","Behavioral aspects related to teamwork and learning."],"commonQuestions":["Explain the difference between a process and a thread.","Describe the principles of object-oriented programming.","How would you design a URL shortener?","Tell me about a challenging project you worked on and how you overcame it."]}}
- {"location":"India","differences":{"tips":["Practice coding problems on platforms like LeetCode or HackerRank.","Understand time and space complexity (Big O notation).","Be ready to discuss your resume and projects in detail.","Show enthusiasm for Yahoo's mission and values."],"interviewFocus":["Core programming concepts and syntax.","Ability to write clean and efficient code.","Understanding of basic data structures like arrays, linked lists, and trees.","Adaptability and willingness to learn new technologies."],"commonQuestions":["What are the advantages of using a hash map?","Explain the concept of recursion with an example.","How do you handle errors in your code?","Describe a time you had to work with a difficult teammate."]}}

## Round 1: Coding and Algorithms Round
**Type:** Technical Interview (Coding) · **Difficulty:** Medium · **Duration:** 45 min
Coding challenge focused on data structures and algorithms.
This round focuses on assessing your core coding skills and problem-solving abilities. You will be presented with one or two coding problems, typically involving data structures and algorithms. The interviewer will expect you to write code, explain your approach, discuss time and space complexity, and consider edge cases. Whiteboarding or using an online collaborative editor is common.
**Interviewers look for:** A systematic approach to problem-solving.; Clean and efficient code.; Understanding of Big O notation.; Ability to communicate the solution effectively.
**Evaluation criteria:** Correctness of the solution; Efficiency of the solution (time and space complexity); Code clarity and readability; Ability to handle edge cases; Problem-solving approach
**Common rejection reasons:** Inability to solve coding problems within the given time.; Poor understanding of fundamental data structures and algorithms.; Inability to explain the thought process clearly.; Lack of attention to edge cases and constraints.
## Questions

- Given an array of integers, find the contiguous subarray with the largest sum.
- Implement a function to check if a binary tree is a valid Binary Search Tree.

## Preparation tips

- Practice coding problems on platforms like LeetCode, HackerRank, or GeeksforGeeks.
- Focus on understanding the underlying data structures and algorithms.
- Practice explaining your thought process out loud.
- Pay attention to code style and best practices.

## Round 2: System Design Round
**Type:** Technical Interview (System Design) · **Difficulty:** Medium · **Duration:** 45 min
High-level system design problem.
This round evaluates your ability to think about system design, even at an associate level. You'll be asked to design a high-level system (e.g., a URL shortener, a simple social media feed). The focus is on understanding requirements, identifying core components, discussing data models, and considering scalability and potential bottlenecks. You don't need to provide a fully detailed implementation, but rather a well-reasoned approach.
**Interviewers look for:** A structured approach to designing systems.; Understanding of common design patterns.; Ability to think about scale and reliability.; Clear communication of design choices.
**Evaluation criteria:** Ability to understand requirements.; System design approach.; Identification of key components.; Consideration of scalability and performance.; Trade-off analysis.
**Common rejection reasons:** Lack of understanding of basic system design principles.; Inability to break down a complex problem into smaller components.; Poor consideration of scalability and trade-offs.; Not asking clarifying questions.
## Questions

- Design a URL shortening service like bit.ly.
- How would you design a system to show trending topics on a social media platform?

## Preparation tips

- Study common system design concepts (load balancing, caching, databases, APIs).
- Practice designing simple systems.
- Understand trade-offs between different design choices.
- Ask clarifying questions to define the scope of the problem.

## Round 3: Behavioral and Managerial Round
**Type:** Behavioral Interview · **Difficulty:** Easy · **Duration:** 30 min
Assesses behavioral fit, teamwork, and motivation.
This round, often conducted by the hiring manager or a recruiter, focuses on your behavioral aspects and overall fit within Yahoo. You'll be asked questions about your past experiences, how you handle challenges, your strengths and weaknesses, and your career aspirations. The goal is to understand your personality, work ethic, and how you might contribute to the team and company culture.
**Interviewers look for:** Alignment with Yahoo's values.; Ability to work effectively in a team.; Self-awareness and reflection.; Passion for technology and Yahoo's mission.
**Evaluation criteria:** Teamwork and collaboration skills; Problem-solving approach in past experiences; Motivation and career goals; Cultural fit with Yahoo's values; Communication clarity
**Common rejection reasons:** Lack of enthusiasm or interest in Yahoo.; Poor communication skills.; Inability to provide specific examples for behavioral questions.; Negative attitude or lack of teamwork potential.; Mismatch with company culture.
## Questions

- Tell me about a time you faced a conflict within a team and how you resolved it.
- Describe a challenging technical problem you encountered and how you solved it.
- Why are you interested in Yahoo?

## Preparation tips

- Prepare specific examples using the STAR method.
- Be ready to discuss your resume and projects in detail.
- Research Yahoo's mission, values, and culture.
- Think about why you want to work at Yahoo.
- Prepare questions to ask the interviewer about the team, role, and company.
