List of Interview Questions
Here is a list of questions and skills I've been asked about as a senior backend developer during 2017, these questions come from big companies and startups in Silicon Valley, Seattle and Europe.
Topics
- Optimization
- Failure Recovery
- Compression (ex. Parquet)
- Robustness
- Load balancing
- What’s new in Java 9. What was new in Java 8
- Scala
- Traits
- Tuples and limits and why
- Hashing
- Strategies, cost
- Probing, chaining, rehashing
- Byte, bits, chars, (sizes)
- Recursion, recursion, recursion, memoization
- OLTP, OLAP
- What is an INDEX in RDBMS, materialized view
- Memcache
- TCP Stack
- Permutations and combinations
- Certificates and HTTPS
- p90, p95, p99, p99.9
- Cassandra
- Origins, advantages
- MEMTABLES
- Gossip protocol
- Consistent hashing
- Erasure coding
- CAP Theorem, ACID
- JVM
- Garbage collecting strategies (ex. Parallel GC, Concurrent Mark Sweep, Serial GC)
- Architecture (ex. Class loader, runtime data areas, execution engine)
- Generations (ex. young, old, tenured)
- Difference minor and major GC
- Sharding
- DB Normalization, 2nd normal form, 3rd normal form
- Reflection
- Exceptions
- Checked vs Unchecked, runtime, Error class
Skills
- How to use git biset and why it is useful
- Unit testing and Mockito
- jmap -> jhat && jinfo, jstat
Programming tasks
- Work in Scala with Option, None, Some, Any
- Build post order string from in and pre order
- Implement K-means in scala
Design tasks
- Design a system so that users can upload XLS files with inventory and display items in browser
Questions
- How does UTF-8 encoding work?
- What is the most complex tree you have used and how does it work and copare to others (ex. B+ tree)
- Explain happens before relationship
- In terms of compilers, what is the cost of accessing an array?
- How does the Internet work?
- What is 60 factorial?
- How does short circuit work in condition JAVA?
- Difference between TreeMap and HashMap? Advantage of a TreeMap
- Sinchronize in JAVA
- Do we have a guarantee to use an INDEX in RDBMS?
- What is serialVersionUID and why to use in JAVA?
- Cost of accessing an array and a linked list?
- How is a primary and secondary index implemented in RDBMS.
- How is ipV6 different than ipV4?
- Breadh first serch is used for what?
- Bellman Ford algorithm
- Why is String final?
- Difference Dataframe & DataSet (Spark)?
- writeStream method in DataFrame?
- Who talks to workers and driver and master?
- What are clustering modes available?
- Window operation on dataframe? What are args?
The best recommendation I have gotten is to make it your habbit to keep learning and questioning everything you do each day. Make your mini hackathons on the weekend to learn new things. Don’t just study to find a new job, study to develop your own skills and be a ninja programmer :)