KnowledgeShop

Learn & Share

Interview Preparation

Topics to cover

  • Java
    • GC - serial, parallel, CMS, G1
    • Reference Types - soft, weak, phantom
    • Collections
      • Covariance, invariance, contravariance
      • Latest concurrent collections uses techniques like: copy-on-write, compare-and-swap, Lock interface
      • Iterators: Fail-fast & Fail-safe (snapshot & weakly consistent)
      • Map:
        • general maps use equals(or hashCode)
        • IdentityHashMap use identity
        • SortedMap (TreeMap & ConcurrentSkipListMap) use Comparable or Comparator
      • Comparable vs. Comparator
    • Concurrency
      • Atomicity (check-then-act, read-modify-write), 64-bit read/write is not atomic
      • Visibility (synchronized & volatile force to cross memory barrier)
      • Synchronization models (mutex, read-write locks, condition, semaphore)
      • Monitor (No shared object, No Lock)
      • Volatile (cross memory barrier, prevent reordering, guarantee atomic 64-bit read/writes, arrays)
      • Problems (race condition, lock-ordering deadlock, thread starvation deadlock, starvation, livelocks)
      • Future, Timer, TimerTask, ScheduledThreadPool
      • Synchronizers (FutureTask, Semaphore, Latches, CyclicBarrier, Exchanger)
      • Fork-Join pool (work-stealing)
  • Database
    • PK, FK, PK & Unique key diff
    • Cursors (implicit, explicit, forward, refcursor data type, static, dynamic)
    • Joins (full outer join, exception join)
    • Join Algos
      • nested loop join - when one table is small and other is large with an index on joined columns
      • merge join or sort-merge join - when both tables are large. Faster when data being joined is already sorted by an index
      • hash join - when table is large but data needed is small.
    • Normalization
    • Indexes - types, properties (visibility, usability, unique/non-unique, composite)
    • Views - horizontal, vertical, indexed
    • MDC table
  • Design Patterns - adapter, builder, chain of responsibility, command, decorator, facade, factory, mediator, observer, singleton, strategy, template, visitor
  • SOA
    • Safe operations, Idempotent operations, post-once-exactly-pattern, request-response, request-acknowledge-poll, request-acknowledge-callback, routing expressions, reduce load by service interceptor or reverse proxies
    • REST
      • Principles - addressable resources, uniform & constrained interface, representation-oriented, stateless communication, hateoas
      • async request - client-side api future & callback, server-side api AsyncResponse
      • exception mappers, jaxb, security, versioning
      • scalability - browser & proxy caches, http caching(expires, cache-control), revalidation(last-modified, etag)
    • JMS - MEPs
  • Spring
    • Core - Autowiring, profiles
    • JDBC - JdbcTemplate, RowMapper, RowCallback
    • MVC - lifecycle
  • Transaction -
    • acid, base,
    • txn models(local, programmatic, declarative)
    • txn types (flat, with save point, chained, nested, distributed, long-lived)
    • 4 isolation levels (read uncommitted, read committed, repeatable read, serializable, snapshot)
    • read phenomena - dirty read, non-repeatable read, phantom read
    • 2PC protocol, heuristic exceptions
    • Concurrency control - 2-Phase Locking, MVCC, Optimistic Concurrency Control,
  • Distributed computing - CAP, strong vs weak consistency
  • Data Structures & Algorithms
    • Arrays & Strings
    • Tree - Traversals, BST, 2-3 tree, Red-Black Tree
    • Queue - Queue using stack(s)

Data Structures & Algorithms

  • Algorithm basics and approach (Ref GIB03 ch03)
  • Arrays and Strings - (Ref GIB03 ch06)
  • String - http://tekmarathon.wordpress.com/2013/05/14/algorithm-to-find-substring-in-a-string-kmp-algorithm/
  • Linked List - (Ref GIB03, GIB01 ch03, GIB03 ch04)
  • Trees - (Ref GIB03 ch05, GIB04, )
  • Graphs - (Ref GIB03 ch05,)
  • Recursion - (Ref GIB03 ch07, GIB01 ch04)
  • Sorting - (Ref GIB03 ch08)
  • Bit Manipulation - (Ref GIB02, GIB01 ch04, GIB03 ch13,)
  • Graphical and Spatial puzzles - (Ref GIB03)
  • Counting, Measuring and Ordering puzzles - (Ref GIB03)
  • System Design and Memory Limits - (Ref GIB02)
  • General programs - (Ref GIB01)
    • Base M to N conversion
    • Replace blanks in a string - Ref GIB01 Pg45,
    • Write a generic program to take an nxn array and print

General Tech Questions

  • What are some of the challenges you faced in your project?
    • Multi-instance model for scalability, risk management. Managing s/w versions across those instances.
    • Reverse engineer business logic from mainframe statements working closing with business
    • Global team presence in 5 different time zones.
  • Why are you leaving the current job?
  • What are your strengths and weaknesses?
    • Strengths: Technical knowledge, Communication and presentation skills, Well-organized

Behavioral Questions

  • What do you enjoy about going to work?
  • What do you dislike about being a developer?
  • Why are you leaving your current job?
  • If you could change one thing about your current team what would it be?
  • What does a good team good like?
  • What makes a good developer?
  • Tell me about a time you had a conflict at work. How did you deal with it?
    • War on naming conventions, checked vs. unchecked exceptions
  • Tell me about the biggest mistake you made at work?
  • What are your strenths and weaknesses?
  • What motivates you?
  • What makes you the ideal candidate for this job?
  • Demonstrate your leadership, teamwork, ability to overcome obstacles and challenges
  • What bothers you most about other people?
    • No response to emails. Lack of accountability
    • Email communication - lack of punctuations
  • Tell me about a day when everything went wrong
  • Tell me about a colleague you really got along with and why you think you did
    • (Don’t make it too formal. Keep it humorous)
  • What’s something that you can teach me?
  • (Test for patience, body language, communication skills)
  • Tell me about someone you admire and why you do
  • (Tests if interviewee is a people person) Kal & Nik - vision, tech savviness
  • What’s one thing you’re really proud of and why? What is your biggest accomplishment to date?
  • (Give credit to others like family, friends, colleagues) Perseverance and consistency
  • What project or task have you recently completed that you are proud of?
  • If you ran your own company, what kinds of people would you hire and why?
  • 2 qualities I look - strength and trustworthy
  • Test for personal fashion - Can you tell me a goal that you have outside of work and family? What do you do for fun?
  • Test for initiative hunger - Tell me about something you’ve started?
  • Book club within and outside of work
  • Test for honesty - Tell me about time you’ve bent the rules?
  • Test for motivation and priority - who in your life would you least want to disappoint?
  • Test for drive and passion - Where do you want to see yourself in 5 yrs?
  • What’s the last awesome thing you learned?
  • What did you not like about your last job?
  • What is your biggest pet peeve?
  • What is the best mistake that you have ever made?
  • What did you want to be when you were a kid? Why?
  • What event in your life has taught you the most about yourself?
  • Have you ever had a job that you hated? What did you hate about it?
  • Describe a challenge you have faced and how you overcame that?
  • In hindsight, what steps would you have taken to avoid that challenge?
  • If given a new project that you were unfamiliar with, what would be your strategy to kick-start the project?
  • About the company
    • What is the vision of the company
    • What do you know about the culture of our company
    • Company’s stock price last time you checked

Questions to the interviewer

  • Please can you tell me a bit more about the team? What size is it? What experience levels?
  • Is the team based in one region or geographically split?
  • How does the team work? Do you use agile?
  • What’s your biggest frustration in your current job?
  • What’s your favorite part of working at the company and in the team?
  • What does an average day look like?
  • How hard is it to use new technologies in your company?
  • What training exists?

Useful links

Recruiters

  • Tech Company Recruiters
    • Google - Technical Lead/Manager - https://www.google.com/about/careers/search#!t=jo&jid=34165&
    • https://underdog.io - Start up recruiters
    • Bamboo Talent
    • Clutch Talent
    • NACE Partners
    • http://www.msearchllc.com
    • ingenium.agency
  • FinTech Recruiters

References

  • [GIB01] Coding Interviews
  • [GIB02] Cracking the coding interview
  • [GIB03] Programming Interview Exposed, Algorithms (Robert Sedgewick)
  • [GIB04] An Introduction to the Analysis of Algorithms
  • [GIB05] 101 Great Answers to the Toughest Interview Questions