# Software Engineer
**Role:** Software Engineer · **Level:** L3
**Company:** [Jane Street](https://scaleengineer.com/companies/jane-street)
**Difficulty:** Medium
**Salary:** US$90000 - US$120000
**Experience:** 1 - 3
**Timeline:** ~14 days
The Software Engineer L3 interview at Jane Street is designed to assess a candidate's foundational knowledge in computer science, problem-solving abilities, and coding proficiency. It typically involves a mix of technical and behavioral questions to evaluate a candidate's fit for the role and the company culture.
Canonical: https://scaleengineer.com/interviews/jane-street/l3-software-engineer
---
## Overall evaluation

- Technical Skills
- Core Computer Science Fundamentals
- Communication
- Behavioral and Cultural Fit

## Questions asked

- Given an array of integers, find the contiguous subarray with the largest sum.
- Implement a function to reverse a linked list.
- Explain the time and space complexity of quicksort.
- Describe a challenging technical problem you faced and how you solved it.
- How would you design a URL shortener service?
- What is polymorphism? Provide an example.
- Write a function to find the kth smallest element in an unsorted array.

## Preparation tips

### lists

- Review fundamental data structures (arrays, linked lists, trees, hash maps) and algorithms (sorting, searching, graph traversal).
- Practice coding problems on platforms like LeetCode, HackerRank, or AlgoExpert, focusing on medium-difficulty problems.
- Brush up on your chosen programming language's syntax, standard library, and common idioms.
- Understand basic operating system concepts (processes, threads, memory management).
- Prepare to discuss your past projects and experiences in detail, highlighting your contributions and learnings.
- Research Jane Street's business and culture to understand their focus on quantitative trading and technology.
- Practice explaining your thought process out loud as you solve problems.

### studyPlan

- {"title":"Data Structures","longDescription":"Weeks 1-2: Focus on Data Structures. Deep dive into arrays, linked lists, stacks, queues, trees (binary trees, BSTs, heaps), and hash tables. Understand their time and space complexities for common operations. Practice implementing them from scratch.","shortDescription":"Weeks 1-2: Data Structures (Arrays, Lists, Trees, Hash Maps). Practice implementations."}
- {"title":"Algorithms","longDescription":"Weeks 3-4: Focus on Algorithms. Cover sorting algorithms (quicksort, mergesort), searching algorithms (binary search), graph algorithms (BFS, DFS, Dijkstra's), dynamic programming, and recursion. Practice solving problems involving these algorithms.","shortDescription":"Weeks 3-4: Algorithms (Sorting, Searching, Graphs, DP, Recursion). Solve related problems."}
- {"title":"System Design & Behavioral","longDescription":"Week 5: System Design Fundamentals and Behavioral Preparation. Understand basic system design principles like scalability, availability, and reliability. Prepare answers for common behavioral questions using the STAR method (Situation, Task, Action, Result).","shortDescription":"Week 5: System Design Basics & Behavioral Prep (STAR method)."}
- {"title":"Practice & Refinement","longDescription":"Week 6: Mock Interviews and Language Proficiency. Conduct mock interviews focusing on coding and problem-solving. Ensure you are comfortable with the syntax and standard libraries of your primary programming language. Review any specific technologies mentioned in the job description.","shortDescription":"Week 6: Mock Interviews & Language Proficiency. Review specific tech."}

## Location differences

- {"location":"New York","differences":{"tips":["For New York: Be prepared for questions related to financial markets and trading systems.","For Hong Kong: Expect questions that might touch upon Asian market specifics or high-frequency trading concepts.","For London: Familiarize yourself with European market structures and regulatory aspects if applicable."],"interviewFocus":["Problem-solving skills","Coding efficiency","Understanding of core CS concepts","Communication skills"],"commonQuestions":["Explain the difference between a process and a thread.","Describe a situation where you had to debug a complex issue. How did you approach it?","What are your favorite data structures and why?","How would you design a system to handle real-time stock price updates?"]}}
- {"location":"Hong Kong","differences":{"tips":["For New York: Be prepared for questions related to financial markets and trading systems.","For Hong Kong: Expect questions that might touch upon Asian market specifics or high-frequency trading concepts.","For London: Familiarize yourself with European market structures and regulatory aspects if applicable."],"interviewFocus":["Problem-solving skills","Coding efficiency","Understanding of core CS concepts","Communication skills"],"commonQuestions":["Explain the difference between a process and a thread.","Describe a situation where you had to debug a complex issue. How did you approach it?","What are your favorite data structures and why?","How would you design a system to handle real-time stock price updates?"]}}
- {"location":"London","differences":{"tips":["For New York: Be prepared for questions related to financial markets and trading systems.","For Hong Kong: Expect questions that might touch upon Asian market specifics or high-frequency trading concepts.","For London: Familiarize yourself with European market structures and regulatory aspects if applicable."],"interviewFocus":["Problem-solving skills","Coding efficiency","Understanding of core CS concepts","Communication skills"],"commonQuestions":["Explain the difference between a process and a thread.","Describe a situation where you had to debug a complex issue. How did you approach it?","What are your favorite data structures and why?","How would you design a system to handle real-time stock price updates?"]}}

## Round 1: Coding Challenge
**Type:** Technical Interview - Coding · **Difficulty:** Medium · **Duration:** 45 min
Solve coding problems, demonstrate algorithmic thinking and clean code.
This round focuses on your ability to solve algorithmic problems and write clean, efficient code. You will be given one or two coding problems and asked to solve them on a shared coding platform or whiteboard. The interviewer will assess your approach, your understanding of data structures and algorithms, and your ability to communicate your thought process effectively.
**Interviewers look for:** Logical thinking; Ability to translate requirements into code; Understanding of data structures and algorithms; Clean and readable code
**Evaluation criteria:** Correctness of the solution; Efficiency (time and space complexity); Clarity and style of the code; Problem-solving approach; Communication of the solution
**Common rejection reasons:** Inability to solve coding problems within the given time.; Incorrect or inefficient solutions.; Poor explanation of thought process.; Lack of fundamental CS knowledge.
## Questions

- Given a binary tree, find its inorder traversal.
- Implement a function to check if a string is a palindrome.

## Preparation tips

- Practice coding problems regularly.
- Think out loud while solving problems.
- Consider edge cases and test your code thoroughly.
- Be prepared to discuss the time and space complexity of your solutions.

## Round 2: Computer Science Fundamentals
**Type:** Technical Interview - Concepts · **Difficulty:** Medium · **Duration:** 45 min
Assess understanding of core CS concepts and problem-solving.
This round delves deeper into your understanding of core computer science principles. Expect questions on operating systems, databases, networking, and potentially some system design concepts. The interviewer will assess your ability to apply these concepts to solve problems and explain them clearly.
**Interviewers look for:** Solid grasp of computer science fundamentals.; Ability to think critically and analytically.; Clear and concise communication.
**Evaluation criteria:** Understanding of fundamental CS concepts (OS, databases, networking).; Problem-solving abilities.; Ability to explain technical concepts.; Communication skills.
**Common rejection reasons:** Lack of understanding of core CS concepts.; Inability to explain technical concepts clearly.; Weak problem-solving skills.; Poor communication.
## Questions

- Explain the difference between TCP and UDP.
- What is a deadlock? How can it be prevented?
- Describe the process of handling a web request from start to finish.

## Preparation tips

- Review fundamental concepts of operating systems (processes, threads, memory management).
- Brush up on database concepts (SQL, ACID properties).
- Understand basic networking protocols (TCP/IP, HTTP).
- Practice explaining technical concepts in a clear and concise manner.

## Round 3: Behavioral and Fit
**Type:** Behavioral Interview · **Difficulty:** Easy · **Duration:** 30 min
Assess cultural fit, teamwork, and motivation.
This round is focused on understanding your personality, work style, and how you would fit into the team and company culture. You'll be asked behavioral questions about your past experiences, teamwork, and how you handle challenges. Be prepared to share examples using the STAR method.
**Interviewers look for:** Positive attitude; Good communication skills; Enthusiasm for the role; Cultural fit
**Evaluation criteria:** Teamwork and collaboration skills.; Adaptability and learning attitude.; Motivation and passion for software engineering.; Alignment with company values.
**Common rejection reasons:** Poor cultural fit.; Lack of enthusiasm or interest in the role/company.; Inability to articulate past experiences effectively.; Negative attitude.
## Questions

- Tell me about a time you had a conflict with a teammate. How did you resolve it?
- Why are you interested in working at Jane Street?
- Describe a project you are particularly proud of and your role in it.

## Preparation tips

- Prepare examples for common behavioral questions (teamwork, conflict resolution, challenges).
- Research Jane Street's values and culture.
- Be enthusiastic and genuine in your responses.
- Ask thoughtful questions about the team and role.
