Interview Portfolio
My profiles
Preparation plan
C/C++ Programming
- Topics
- C programming books
Data structures
Study STL constructs and APIs, how is it implemented, what does compiler do when called specific API, complexities, limitations, how could sloppy code break it, how to use efficiently
- arrays
- Contiguous memory
- vector vs array
- uses in other data structs
- stride length
- linked lists
- Dynamic memory and applications
- Ways to improve efficiency
- stacks
- Implementation with array vs list
- Common uses
- queues
- Implementation with array vs list
- Common uses
- priority queues
- heap with array vs tree
- heapify
- heapsort
- comparators
- binary tree
- binary search tree
- hash table
- map, unordered_map
- hash functions
- buckets
- collisions and complexity
Algorithms
- Big-o notation
- Master theorem
- Recursion
- Backtracking
- Sorting
- Searching
- Dynamic programming
- Graph Algorithms
Operating systems
- Process
- Threads
- Multithreading and concurrancy
- Memory management
- I/O management
Networking
- Network stack
- Layer 2 networks
- Switching and forwarding
- Collision, Broadcast domains, VLANS
- Loops, Spanning Tree Protocol
- Link aggregation
- MPLS
- Lossless ethernet
- Layer 2 networks
- IP header
- IP addressing
- Routing tables, longest prefix match
- Routing protocols
- OSPF
- BGP
Resources
- Google Interview University
Has a lot of links and resources for general coding interview preparation. - Lost art of C structure packing Explains data structure padding
- Linux IP networking Linux networking stack in detail
- Introduction to distributed systems ETH Zurich course. Also covers very basic details.
- Concurrent Programming for scalable web architectures Gives an overview of issues in large scalable systems you should care about
- CS 417 Rutgers Distributed systems course at Rutgers. Pretty much covers everything.
- 100 most influential books
- OS Development (https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf) (http://wiki.osdev.org/Getting_Started) (http://www.brokenthorn.com/Resources/OSDevIndex.html) (http://www.osdever.net/bkerndev/Docs/intro.htm)
- Beej's guide to network programming
Guide to networking APIs in C - Lets Build a webserver
- Programming in C UNIX system calls Everything related to c and UNIX in one place
- Linux Insides
Linux insides for dummies - FlingOS
DIY OS with tutorials and lectures - System design course Preparing for system design interview.
- System design interview resources Elaborate list of useful resources.
- Google site reliabilty engineer interview
- SYS admin casts
- Linux performance analysis tools
- Balthazars notes for preparing SRE interview
Papers/articles about architectural hows and whys