• Consolidated my Amazon LP document into the general questions they might ask you, since that has a superset of all the general categories for behavioral interview questions.
    • Conf championships! Gonna be an all-red superbowl, niners v chiefs.
    • Disposed/packed more kitchen/bathroom supplies.
    • Practice problems.
    • Drew a system design diagram for autotest on the whiteboard, now that I’ve gotten much better at scalable system design.
      • Most of the primary nodes are present, there’s just not much redundancy. Lots of single points of failure.
      • Consistency > availability (although it doesn’t really matter at low scale, mostly 1-1 nodes and a couple requests / second).
      • Task manager / gateway = dispatch server. Did have a heartbeat for all downstream nodes, although it was http. Did not really serve as a heavy-burden load balancer, most test cells had a single control node – in use, or not in use.
      • Master-slave for RDB should have been in place years ago so that vehicle/component teams could query their data at will.
      • All the usual frills. Analytics, resource monitor, logs, app monitor, hydra/sync for parallel and rpc sync.
      • Redis cache for control node. Faster read, metadata, hydra state, etc.
      • Took picture on phone.
    • Remember that every db (disk or mem, rdb or nosql, etc) has locks for write.
      • Lowlevel, it’s a message queue with an event loop. It’s called the write ahead log, WAL.
      • Timeouts, so that one can’t deadlock a row.
      • Pessimistic = true, natural lock (“i’m using this”). Optimistic = check if change when writing back, like VCS merge conflicts. Favors smaller faster changes.
    • Behavioral.
      • Wrote a couple examples for each of the 4 LPs Amazon said they’d check during the senior interview.
    • Plugged my ehd into the ubuntu laptop for the first time. It could mount the FAT partition but not the ExFAT, obviously for NT.
      • FAT = file allocation table.
    • Ansible inventory. I had forgotten this word the other day. Playbooks run, inventory is the list of endpoint nodes.
    • Went back over sx-setuptools and autotest.
    • Watched countdown. Ending sucked, and was illogical, but overall the movie was better than I thought it would be.
      • Europix uses a ton of mem. Was basically 4GB of ram and 4GB of swap, yikes. Even compared to other streaming sites, for all (movies, tv, and sports), which are about half that.
    • If you have n + (n-1) + (n-2) + … (1), instead of n * (n-1) * (n-2) * … (1), which is factorial, it’s called the triangular number or the binomial coefficient. It equals (n^2 + n)/2, but you can just take the highest order term and approximate it as n^2. It’s much lower in complexity than n! factorial.