[recurrent] Stuff I am reading
September 20, 2019
This is a list of readings I have found to be extremely useful and hence I am bookmarking them here, for my future self mostly. This is an ever-increasing unordered list, which I am constantly trying to keep up with.
Last update: April 15, 2020.
Conceptual
- Critical Rendering Path https://developers.google.com/web/fundamentals/performance/critical-rendering-path/
- Algebraic Effects for the Rest of Us https://overreacted.io/algebraic-effects-for-the-rest-of-us/
- Cryptographic Attacks: A Guide for the Perplexed https://research.checkpoint.com/cryptographic-attacks-a-guide-for-the-perplexed/
- Introduction to Transaction Isolation Levels http://dbmsmusings.blogspot.com/2019/05/introduction-to-transaction-isolation.html
- Stop using JWT for sessions http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/
- What every computer science major should know http://matt.might.net/articles/what-cs-majors-should-know/
- Introduction to HTTP/2 https://developers.google.com/web/fundamentals/performance/http2
- Latacora - A Child’s Garden of Inter-Service Authentication Schemes https://latacora.micro.blog/a-childs-garden/
- Javascript Object Signing and Encryption is a Bad Standard That Everyone Should Avoid https://paragonie.com/blog/2017/03/jwt-json-web-tokens-is-bad-standard-that-everyone-should-avoid
- Password expiration is dead, long live passwords https://news.ycombinator.com/item?id=20077967
- CPU Clocks and Clock Interrupts, and Their Effects on Schedulers https://accu.org/index.php/journals/2185
- WebSockets - A Conceptual Deep-Dive https://www.ably.io/concepts/websockets
- Sticky Sessions are Evil – Chaos in Computing http://www.chaosincomputing.com/2012/05/sticky-sessions-are-evil/
- Why You Don’t Roll Your Own Crypto https://www.vice.com/en_us/article/wnx8nq/why-you-dont-roll-your-own-crypto
- The Hard Parts of JWT Security Nobody Talks About https://www.pingidentity.com/en/company/blog/posts/2019/jwt-security-nobody-talks-about.html
- Distributed consensus revised – Part I https://blog.acolyer.org/2019/05/07/distributed-consensus-revised-part-i/
- Advanced Data Structures - MIT OpenCourseWare https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-851-advanced-data-structures-spring-2012/lecture-videos/
- A Generalised Solution to Distributed Consensus https://arxiv.org/abs/1902.06776
- Making reliable distributed systems in the presence of software errors http://erlang.org/download/armstrong_thesis_2003.pdf
- Linux Kernel Teaching — The Linux Kernel documentation https://linux-kernel-labs.github.io/refs/heads/master/index.html
- Quantum computing for the very curious https://quantum.country/qcvc
- Overview of Consistency Levels in Database Systems http://dbmsmusings.blogspot.com/2019/07/overview-of-consistency-levels-in.html
- The Wrong Abstraction — Sandi Metz https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstraction
- Christopher Batey - DYNAMO: the paper that changed the database world https://youtu.be/hMt9yFp0JKM
- CQRS https://martinfowler.com/bliki/CQRS.html
Infrastructure
- Vulcanizer: a library for operating Elasticsearch https://github.blog/2019-03-05-vulcanizer-a-library-for-operating-elasticsearch/
- Modern applications at AWS https://www.allthingsdistributed.com/2019/08/modern-applications-at-aws.html
- What comes after Serverless? https://medium.com/@doctor_julz/what-comes-after-serverless-840032dd4ba8
- IPA: invariant-preserving applications for weakly consistent replicated databases https://blog.acolyer.org/2019/09/02/ipa/
- DDSketch: a fast and fully-mergeable quantile sketch with relative-error guarantees https://blog.acolyer.org/2019/09/06/ddsketch/
- Isolating workloads with Systemd slices https://www.scylladb.com/2019/09/25/isolating-workloads-with-systemd-slices/
- Dark emerges from stealth with unique ‘deployless’ software model https://techcrunch.com/2019/07/29/dark-emerges-from-stealth-with-unique-deployless-software-model/
- We had issues with Monzo on 29th July. Here’s what happened, and what we did to fix it. https://monzo.com/blog/2019/09/08/why-monzo-wasnt-working-on-july-29th/
- Using GraphQL to Improve Data Hydration in our Customer Care Platform and Beyond https://eng.uber.com/graphql-data-hydration-customer-care/
- One Misconfig (JIRA) to Leak Them All- Including NASA and Hundreds of Fortune 500 Companies! https://medium.com/@logicbomb_1/one-misconfig-jira-to-leak-them-all-including-nasa-and-hundreds-of-fortune-500-companies-a70957ef03c7
- Netflix: What Happens When You Press Play? - High Scalability - http://highscalability.com/blog/2017/12/11/netflix-what-happens-when-you-press-play.html
- Streaming Cassandra at WePay - Part 1 https://wecode.wepay.com/posts/streaming-cassandra-at-wepay-part-1
- Streaming Cassandra at WePay - Part 2 https://wecode.wepay.com/posts/streaming-cassandra-at-wepay-part-2
- The boring technology behind a one-person Internet company https://broadcast.listennotes.com/the-boring-technology-behind-listen-notes-56697c2e347b
- Zen and the Art of Scaling - A Koan and Epigram Approach - High Scalability - http://highscalability.com/blog/2012/2/27/zen-and-the-art-of-scaling-a-koan-and-epigram-approach.html
- Software/site reliability of distributed systems https://www.youtube.com/watch?v=grEgDJVNIS0&list=PL279M8GbNsesB7sxLO5zNbBHkOVvb7uvy&index=5&t=0s
- Cloud Native DevOps With Kubernetes https://www.nginx.com/resources/library/cloud-native-devops-with-kubernetes/
- Everything You Need To Know About Networking On AWS https://grahamlyons.com/article/everything-you-need-to-know-about-networking-on-aws
- PostgreSQL vs. fsync https://fosdem.org/2019/schedule/event/postgresql_fsync/
- Supercell – Scaling Mobile Games (GAM301) https://www.youtube.com/watch?v=wqz7AunrzcU
- How to Scale WebSockets https://hackernoon.com/scaling-websockets-9a31497af051
- How to scale a distributed system https://bit.ly/2msquzp
- A Brief History of High Availability - Cockroach Labs https://www.cockroachlabs.com/blog/brief-history-high-availability/
- Elastic Scaling in the Streams API in Kafka - Confluent https://www.confluent.io/blog/elastic-scaling-in-kafka-streams/
- Open Distro for Elasticsearch https://opendistro.github.io/for-elasticsearch/
- New – Open Distro for Elasticsearch – AWS https://aws.amazon.com/blogs/aws/new-open-distro-for-elasticsearch/
- Smart sticky sessions using HAProxy for Apache Phoenix https://medium.com/helpshift-engineering/smart-sticky-sessions-using-haproxy-for-apache-phoenix-911bdca7e2c
- How to get HTTPS working on your local development environment in 5 minutes https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/
- Elle: Inferring Isolation Anomalies from Experimental Observations https://arxiv.org/abs/2003.10554
- The Quest for the master algorithm https://www.youtube.com/watch?v=qIZ5PXLVZfo
- What we learnt building BHIM in just 3 weeks - Vimal Kumar https://www.youtube.com/watch?v=uaQ_jNgw6F0
- JVM Anatomy Quarks https://shipilev.net/jvm/anatomy-quarks/
- (A few) Ops Lessons We All Learn The Hard Way https://www.netmeister.org/blog/ops-lessons.html
- Managing the development of large systems http://www-scf.usc.edu/~csci201/lectures/Lecture11/royce1970.pdf
- Load Testing Back to Basics: Avoiding the KeepAliveTimeout Race Condition - Web Performance https://www.webperformance.com/load-testing-tools/blog/2011/01/load-testing-back-to-basics-avoiding-the-keepalivetimeout-race-condition/
- Sharing SQLite databases across containers is surprisingly brilliant https://medium.com/@rbranson/sharing-sqlite-databases-across-containers-is-surprisingly-brilliant-bacb8d753054
- Nubank’s basic Microservice example https://github.com/nubank/basic-microservice-example
- Microservices and the First Law of Distributed Objects https://martinfowler.com/articles/distributed-objects-microservices.html
- What do you mean by “Event-Driven”? https://martinfowler.com/articles/201701-event-driven.html
Architecture
- Why our team cancelled our move to microservices https://medium.com/@steven.lemon182/why-our-team-cancelled-our-move-to-microservices-8fd87898d952
- Architecture of a Database System http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf
- Event Sourcing You are doing it wrong by David Schmitz https://www.youtube.com/watch?v=GzrZworHpIk
- Stateful stream processing with Apache Flink https://www.infoworld.com/article/3267966/stateful-stream-processing-with-apache-flink.html
- Improving key expiration in Redis https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/improving-key-expiration-in-redis.html
- Distributed systems for fun and profit http://book.mixu.net/distsys/intro.html
- Goodbye Microservices: From 100s of problem children to 1 superstar https://segment.com/blog/goodbye-microservices/
- Notes on Distributed Systems for Young Bloods – Something Similar https://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/
- The Software Architects Newsletter https://assets.infoq.com/newsletter/architect/en/newsletter_sample/21Architects_NL-April2019.html
- How to Design a Good API & Why it Matters https://www.infoq.com/presentations/effective-api-design
- Online Event Processing - ACM Queue https://queue.acm.org/detail.cfm?id=3321612
- Mastering Chaos - A Netflix Guide to Microservices https://www.youtube.com/watch?v=CZ3wIuvmHeM
- Data-Driven Storytelling http://learn.stanford.edu/data-driven-storytelling-live-reg-0420.html
- How to Build a Cloud Data Platform Part 1 Architecture https://youtu.be/uhVpLwjEOKU
- Snap: a microkernel approach to host networking https://blog.acolyer.org/2019/11/11/snap-networking/
Programming
- On the Perils of Dynamic Scope https://stuartsierra.com/2013/03/29/perils-of-dynamic-scope
- Secure Programming HOWTO https://dwheeler.com/secure-programs/Secure-Programs-HOWTO/index.html
- Mockers - overcoming testing challenges at Grab https://engineering.grab.com/mockers
- Python at Netflix https://medium.com/netflix-techblog/python-at-netflix-bba45dae649e
- Zen of Python https://en.wikipedia.org/wiki/Zen_of_Python
- Is It Time to Rewrite the Operating System in Rust? https://www.youtube.com/watch?v=HgtRAbE1nBM
- Clojure Compilation: Parenthetical Prose to Bewildering Bytecode https://blog.ndk.io/clojure-compilation.html
- Organizing Functional Code for Parallel Execution; or, foldl and foldr Considered Slightly Harmful https://vimeo.com/6624203
- Software disenchantment http://tonsky.me/blog/disenchantment/
- Lockfree Algorithms - 1024cores http://www.1024cores.net/home/lock-free-algorithms/
- Why Why Functional Programming Matters Matters http://raganwald.com/2014/12/20/why-why-functional-programming-matters-matters.html
- Java at Speed https://www.youtube.com/watch?v=ot3PESmNXhE
- Java SE Lesson: Concurrency https://docs.oracle.com/javase/tutorial/essential/concurrency/
- What Clojure needs to grow — a boring web framework and boring data science https://lispcast.com/clojure-needs-grow-boring-web-framework-boring-data-science/
- Working Effectively with Legacy Code http://ptgmedia.pearsoncmg.com/images/9780131177055/samplepages/0131177052.pdf
- The Best Refactoring You’ve Never Heard Of https://web.archive.org/web/20190719160744/http://www.pathsensitive.com/2019/07/the-best-refactoring-youve-never-heard.html
- Lets make a Binary Search Tree https://medium.com/reasontraining/lets-make-a-reasonable-binary-search-tree-35628b2c78f7
- Clojure Compilation: Parenthetical Prose to Bewildering Bytecode https://blog.ndk.io/clojure-compilation.html
- Refactoring the Worst Code I’ve Ever Written https://dev.to/jnschrag/refactoring-the-worst-code-i-ve-ever-written-42c7
- Clean Coder Blog https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
- Complex Made Bearable - Lucas Cavalcanti https://www.youtube.com/watch?v=ct5aWqhHARs
- Programming Algorithms Book http://lisp-univ-etc.blogspot.com/2019/07/programming-algorithms-book.html
- Building an Effective Test Pipeline in a Service Oriented World https://medium.com/airbnb-engineering/building-an-effective-test-pipeline-in-a-service-oriented-world-6968c513c6bd
- The Missing Semester of Your CS Education https://missing.csail.mit.edu/
- The Practical Test Pyramid https://martinfowler.com/articles/practical-test-pyramid.html
- The Birth & Death of JavaScript https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript
- Unit, Functional, Integration? You are doing it wrong https://blog.7mind.io/constructive-test-taxonomy.html
- The inflection point hypothesis: a principled approach to finding the root cause of a failure https://blog.acolyer.org/2019/11/08/the-inflection-point-hypothesis/
- William Byrd on “The Most Beautiful Program Ever Written” https://www.youtube.com/watch?v=OyfBQmvr2Hc
- Beating C with 80 lines of Haskell: wc https://chrispenner.ca/posts/wc
- Practical Common Lisp http://www.gigamonkeys.com/book/
Miscellaneous
- TextRank for Text Summarization https://nlpforhackers.io/textrank-text-summarization
- It was a really bad month for the internet https://techcrunch.com/2019/07/05/bad-month-for-the-internet/
- 7 absolute truths I unlearned as junior developer https://monicalent.com/blog/2019/06/03/absolute-truths-unlearned-as-junior-developer/ p- Designing Data-Intensive Application and its related books https://anvaka.github.io/greview/ddia/1/
- Get your work recognized: write a brag document https://jvns.ca/blog/brag-documents/
- Human-Centric Machine Learning Infrastructure @Netflix https://www.youtube.com/watch?v=XV5VGddmP24
- Correctness proofs of distributed systems with Isabelle - Strange Loop https://thestrangeloop.com/2019/correctness-proofs-of-distributed-systems-with-isabelle.html
- Feature Toggles (aka Feature Flags) https://martinfowler.com/articles/feature-toggles.html
- Finding the Order in Chaos https://www.usenix.org/conference/srecon16/program/presentation/lueder
- A Note About Git Commit Messages http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
- Michelangelo Palette: A Feature Engineering Platform at Uber https://www.infoq.com/presentations/michelangelo-palette-uber
- Visualizing Systems with Statemaps https://www.slideshare.net/bcantrill/visualizing-systems-with-statemaps
- Numbers Every Programmer Should Know By Year https://people.eecs.berkeley.edu/~rcs/research/interactive_latency.html
- Things I Learnt from a Senior Software Engineer https://neilkakkar.com/things-I-learnt-from-a-senior-dev.html
- The Rise and Fall of Server-Side Sessions http://codematters.tech/the-rise-and-fall-of-server-side-sessions-part-1-when-the-cookie-crumbles/
- The Weird Rules I Set Myself That Got Me a Job https://dev.to/healeycodes/the-weird-rules-i-set-myself-that-got-me-a-job-2g9m?fbclid=IwAR2xKqcEAEKJBE08CFRekWorouNWNN19WKb392qf0urhDjimVWUnqdyV0Rs
- Technical Writing Google Developers https://developers.google.com/tech-writing/
- Conway’s law is real https://goodroot.ca/post/2018/10/13/practicality-metaphysics-conways-law/
- What it’s like to work for Stripe https://blog.alexmaccaw.com/stripes-culture
- Notation as a Tool of Thought http://www.eecg.toronto.edu/~jzhu/csc326/readings/iverson.pdf
- A Large Scale Study of Programming Languages and Code Quality in Github https://web.cs.ucdavis.edu/~filkov/papers/lang_github.pdf
- Why Devs (Should) Like Estimates - Stack Overflow Blog https://stackoverflow.blog/2019/10/23/why-devs-should-like-estimates/