Guillermo

List of Interview Questions

October 17, 2017 | 2 Minute Read

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

  1. Optimization
  2. Failure Recovery
  3. Compression (ex. Parquet)
  4. Robustness
  5. Load balancing
  6. What’s new in Java 9. What was new in Java 8
  7. Scala
    1. Traits
    2. Tuples and limits and why
  8. Hashing
    • Strategies, cost
    • Probing, chaining, rehashing
  9. Byte, bits, chars, (sizes)
  10. Recursion, recursion, recursion, memoization
  11. OLTP, OLAP
  12. What is an INDEX in RDBMS, materialized view
  13. Memcache
  14. TCP Stack
  15. Permutations and combinations
  16. Certificates and HTTPS
  17. p90, p95, p99, p99.9
  18. Cassandra
    • Origins, advantages
    • MEMTABLES
    • Gossip protocol
    • Consistent hashing
  19. Erasure coding
  20. CAP Theorem, ACID
  21. 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
  22. Sharding
  23. DB Normalization, 2nd normal form, 3rd normal form
  24. Reflection
  25. Exceptions
    • Checked vs Unchecked, runtime, Error class

Skills

  1. How to use git biset and why it is useful
  2. Unit testing and Mockito
  3. jmap -> jhat && jinfo, jstat

Programming tasks

  1. Work in Scala with Option, None, Some, Any
  2. Build post order string from in and pre order
  3. Implement K-means in scala

Design tasks

  1. Design a system so that users can upload XLS files with inventory and display items in browser

Questions

  1. How does UTF-8 encoding work?
  2. What is the most complex tree you have used and how does it work and copare to others (ex. B+ tree)
  3. Explain happens before relationship
  4. In terms of compilers, what is the cost of accessing an array?
  5. How does the Internet work?
  6. What is 60 factorial?
  7. How does short circuit work in condition JAVA?
  8. Difference between TreeMap and HashMap? Advantage of a TreeMap
  9. Sinchronize in JAVA
  10. Do we have a guarantee to use an INDEX in RDBMS?
  11. What is serialVersionUID and why to use in JAVA?
  12. Cost of accessing an array and a linked list?
  13. How is a primary and secondary index implemented in RDBMS.
  14. How is ipV6 different than ipV4?
  15. Breadh first serch is used for what?
  16. Bellman Ford algorithm
  17. Why is String final?
  18. Difference Dataframe & DataSet (Spark)?
  19. writeStream method in DataFrame?
  20. Who talks to workers and driver and master?
  21. What are clustering modes available?
  22. 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 :)