Solutions for the code assessment and technical interview
See docs/demo.md
.
Overview
- You will have 105 minutes to complete 2 coding challenges and coding approach.
- There will be 2 surveys following the assessment; a work style survey (15 min) and feedback survey (5 min).
- You will have the option of coding in C, C++, C++14, C#, Go, Java7, Java8, Javascript, Kotlin, Objective-C, PyPy2, PyPy3, Python 2, Python 3, Ruby, Scala, and Swift.
- Efficiency and optimization, as opposed to brute force solutions, earn more points.
- Your code must compile for all code questions in order to move forward in the interview process.
- Be sure to test your code and ensure it runs before you submit your code or before time runs out.
- Ensure your solutions consider all edge cases and handle large inputs effectively. This is key to doing well in the assessment.
Data Structures
- Understand the inner workings of common data structures and be able to compare and contrast their usage in various applications. Know the runtimes for common operations as well as how they use memory.
Algorithms
- Basic implementation strategies of different classes of algorithms is more important than memorizing the specific details of any given algorithm.
- Consider reviewing traversals and divide and conquer algorithms.
- Consider knowing how and when to use a breadth-first search vs. a depth-first search, and what the trade-offs are.
Coding
- Be comfortable coding by hand.
Object-Oriented Design
- Have a working knowledge of a few common and useful design patterns.
- Know the appropriate use of inheritance and aggregation.
Databases
- The more you know about how relational and non-relational databases work and what trade-offs exist between them, the better prepared you will be.
See the following: