A few more things to expect:
Plan for a full day: We cover a lot of material, so plan to join us from 9am to 5pm.
- The morning is technically focused: The first half of the day is very technical in nature and is broken up into three, hour-long interviews. You will be asked technical questions covering a range of computer science topics such as data structures, algorithms, and object-oriented design patterns. You will definitely be asked to write code on the desktop and may be asked to take part in a systems-design exercise on the white board. Other CS areas that we may cover could include concepts such as: big O notation, tree/graph traversals, recursion, searching/sorting, hash tables, concurrency, and other similar topics.
- Lunch is to get to know each other: After the morning session, we’ll take a break and you’ll go to lunch with a few Two Sigma employees. During this time, we’ll compile the feedback from your morning interviews and make a recommendation on whether or not you’ll be continuing along in the process.
- If you join us for the afternoon, we’ll cover the rest: Your afternoon will consist of additional interviews that cover a wide variety of topics to further gauge your technical skills, previous experience and interests. These meetings typically last around 60 minutes and you will likely be asked to discuss specific projects and contributions you’ve made in previous roles.
Our interviews are practical: We want the interview experience to give you a sense of the work environment here. Throughout the day, you could be coding on the computer or “whiteboarding” alongside your interviewers. You’ll work together with your interviewer to think through problems and best approaches to solve them. Remember, your interviewer is there to guide and brainstorm with you, so please ask questions when you need clarification and be receptive to hints and feedback. Communicate your thought process as you work through the problems so that your interviewer can better help facilitate the discussion. Collaboration is very important at Two Sigma, and we want to see that you can contribute in this type of environment.
We evaluate you in a few areas: The areas we grade for include: coding ability, computer science knowledge, testing, design/architecture, and general problem solving ability. The reason we test for these things is not to try to prove we are smarter than you or intentionally trip you up on things you may have learned years ago in CS 101- it is because we truly believe in writing clean and scalable code.
How to nail your SE interview:
- Stop and think: Think about and analyze the problem before diving right into coding. Don’t be afraid to ask your interviewer to clarify the question.
- Consider a variety of factors: The brute force solution is not always the best. Think about memory constraints and performance.
- Take hints: Our interviewers want you to do well and are happy to give you hints if you get stuck while developing your solution.
Brush up on the basics:
- Work through a few practical examples: Try looking at or completing sample coding challenges on sites such as HackerRank, CareerCup or TopCoder.
- Do some reading: Check out samples of books such as Elements of Programming Interviews (geared more towards C++) and Cracking the Coding Interview (geared more towards Java) * We’re not affiliated in any way with these authors and please don’t feel compelled to purchase either of these books, but they are written by respected members in the tech world who have conducted many Two-Sigma style interviews. These titles may give you a refresher on concepts we cover in our interview sessions.