Top 25 Articles Read (In No Particular Order)
- https://almanac.httparchive.org/en/2019/
- https://blog.acolyer.org/2019/11/20/local-first-software/
- https://github.com/ramitsurana/awesome-kubernetes
- https://resilienceroundup.com/issues/73/
- https://www.blameless.com/failover-conf/
- https://discord.statuspage.io/incidents/62gt9cgjwdgf
- https://blog.acolyer.org/2016/10/06/simple-testing-can-prevent-most-critical-failures/
- https://www.honeycomb.io/framework-for-an-observability-maturity-model-using-observability-to-advance-your-engineering-product
- https://www.evanjones.ca/ordered-vs-unordered-indexes.html
- https://tls.ulfheim.net/
- https://gravitational.com/blog/ssh-handshake-explained/
- https://danluu.com/deconstruct-files/
- https://charemza.name/blog/posts/abstractions/http/http-guide-for-developers/
- https://blog.acolyer.org/2020/01/10/ten-challenges-for-automation/
- https://snyk.io/blog/understanding-filesystem-takeover-vulnerabilities-in-npm-javascript-package-manager/
- https://github.com/binhnguyennus/awesome-scalability
- https://blog.acolyer.org/2020/01/24/trade-offs-under-pressure-part-2/
- https://alexpareto.com/scalability/systems/2020/02/03/scaling-100k.html
- https://www.ardanlabs.com/blog/2020/02/docker-images-part1-reducing-image-size.html
- https://utcc.utoronto.ca/~cks/space/blog/sysadmin/RunningServersNotTrivial
- https://jvns.ca/blog/2019/11/18/how-containers-work--overlayfs/
- https://www.learningfromincidents.io/blog/characteristics-of-next-level-incident-reports-in-software
- https://blog.cloudflare.com/the-history-of-the-url/
- https://nordicapis.com/understanding-the-hidden-powers-of-curl/
- https://pythonspeed.com/articles/docker-connection-refused/
Comprehensive: Resources linking to a bunch of other resources
Tooling: Resources More Immediately Useful for Work
Reliability
- https://github.blog/2020-03-26-february-service-disruptions-post-incident-analysis/
- https://resilienceroundup.com/issues/73/
- https://www.firehydrant.io/blog/failover-conf-wrapup/
- https://www.blameless.com/failover-conf/
- https://www.atlassian.com/blog/it-teams/how-to-create-an-incident-response-playbook
- https://speakerdeck.com/jallspaw/incident-analysis-how-star-learning-star-is-different-than-star-fixing-star?slide=26
- http://rachelbythebay.com/w/2020/04/23/rel/
- https://www.youtube.com/watch?v=1HP-dckehqg
- https://www.circonus.com/2018/07/a-guide-to-service-level-objectives/
- https://slack.engineering/deploys-at-slack-cd0d28c61701
- https://engineering.shopify.com/blogs/engineering/refactoring-legacy-code-strangler-fig-pattern
- https://boringrails.com/articles/spring-cleaning/
- https://discord.statuspage.io/incidents/62gt9cgjwdgf
- https://www.fastly.com/blog/network-automation-helps-support-worlds-biggest-live-streaming-moments
- https://blog.acolyer.org/2020/03/13/correlation-x-2/
- https://blog.acolyer.org/2016/10/06/simple-testing-can-prevent-most-critical-failures/
- https://www.learningfromincidents.io/blog/learning-from-incidents-in-software
- https://www.learningfromincidents.io/blog/oops-learning-from-the-incident-you-didnt-have
- https://www.honeycomb.io/framework-for-an-observability-maturity-model-using-observability-to-advance-your-engineering-product
- https://mads-hartmann.com/sre/2019/08/04/journey-into-observability-reading-material.html
- https://www.redhat.com/en/topics/microservices/what-is-jaeger
- https://resilienceroundup.com/issues/61/
- https://pingcap.com/blog/chaos-mesh-your-chaos-engineering-solution-for-system-resiliency-on-kubernetes/
- https://mads-hartmann.com/sre/2020/01/11/journey-into-observability-telemetry.html
- https://github.com/binhnguyennus/awesome-scalability
- https://blog.acolyer.org/2020/01/24/trade-offs-under-pressure-part-2/
- https://alexpareto.com/scalability/systems/2020/02/03/scaling-100k.html
- https://utcc.utoronto.ca/~cks/space/blog/sysadmin/RunningServersNotTrivial
- https://cloud.google.com/blog/products/management-tools/sre-for-single-tiered-software-applications
- https://blog.acolyer.org/2020/02/26/meaningful-availability/
- https://storiesinmypocket.com/articles/refactoring-and-asking-forgiveness/
- https://www.learningfromincidents.io/blog/characteristics-of-next-level-incident-reports-in-software
- https://blog.acolyer.org/2020/02/28/microsoft-gandalf/
- https://searchapparchitecture.techtarget.com/tip/3-microservices-resiliency-patterns-for-better-reliability
- https://engineering.shopify.com/blogs/engineering/circuit-breaker-misconfigured
- https://blog.acolyer.org/2020/03/04/millions-of-tiny-databases/
- https://monitoror.com/
- https://opensource.com/article/19/11/introduction-monitoring-prometheus
- https://www.youtube.com/watch?reload=9&v=rYzmXLhIaHQ
- https://opensource.com/article/19/10/open-source-observability-kubernetes
- https://www.blameless.com/thought-leadership-panel-real-sre/
Front-End
- https://timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-frameworks/
- https://github.com/phuoc-ng/html-dom
- https://codepen.io/ivorjetski/pen/xxGYWQG
- https://www.matestack.org/docs/install
- https://undraw.co/
- https://bossanova.uk/jsuites/
- https://sweetalert2.github.io/
- https://css-tricks.com/why-parcel-has-become-my-go-to-bundler-for-development/
- https://1loc.dev/
- https://enmascript.com/articles/2019/04/22/avoid-recomputing-heavy-tasks-by-leveraging-memoization-in-javascript
- https://bossanova.uk/jsuites/
- https://snyk.io/blog/understanding-filesystem-takeover-vulnerabilities-in-npm-javascript-package-manager/
- https://sweetalert2.github.io/
- https://engineering.instawork.com/when-xml-beats-json-ui-layouts-53c7f1d3fdb7
- https://blog.acolyer.org/2019/09/30/small-world-with-high-risks/
Kubernetes
- https://github.com/ramitsurana/awesome-kubernetes
- https://www.microsoft.com/security/blog/2020/04//02/attack-matrix-kubernetes/
- https://k8slens.dev/
- https://kind.sigs.k8s.io/
- https://learnk8s.io/troubleshooting-deployments
- https://pingcap.com/bl/og/chaos-mesh-your-chaos-engineering-solution-for-system-resiliency-on/-kubernetes/
- https://github.com/ahmetb/kubectl-tree
- https://medium.com/@augmentab/le/looking-at-kubernetes-2k-todo-comments-b2db42dc7fdb
- https://0x65.dev/blog/2019-12-/14/the-architecture-of-a-large-scale-web-search-engine-circa-20/19.html
- https://www.datadoghq.com/blog/monitor-kubernetes-audit-logs/
- https://www.brightbox.com/blog/2020/02//12/rubynetes-kubernetes-config-the-easy-way/
- https://securek8s.dev/exercise/
- https://enterprisersproject.com/article/2019//11/kubernetes-3-ways-get-started
- https://learnk8s.io/production-best-practices
- https://opensource.com/article/19//10/open-source-observability-kubernetes
- https://learnk8s.io/kubernetes-node-size
Security
- https://robertheaton.com/2020/04/27/how-does-a-tcp-reset-attack-work/
- https://blog.reversinglabs.com/blog/mining-for-malicious-ruby-gems
- https://isbgpsafeyet.com/
- https://arxiv.org/pdf/2002.05400v1.pdf
- https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernetes/
- https://opensource.com/article/18/5/cryptography-pki
- https://opensource.com/article/19/11/internet-security-tls-ssl-certificate-authority
- https://smallstep.com/blog/everything-pki/
- https://gravitational.com/blog/ssh-handshake-explained/
- https://www.theregister.co.uk/2019/12/10/linux_kernel_aws/
- https://snyk.io/blog/understanding-filesystem-takeover-vulnerabilities-in-npm-javascript-package-manager/
- https://cacheoutattack.com/CacheOut.pdf
- https://robertheaton.com/2020/02/05/wacom-drawing-tablets-track-name-of-every-application-you-open/
- https://blog.acolyer.org/2020/02/10/watching-you-watch/
- https://labs.ripe.net/Members/bert_hubert/centralised-doh-is-bad-for-privacy-in-2019-and-beyond
- https://robertheaton.com/2020/02/18/dont-let-magic-enhancer-for-youtube-slurp-up-your-browsing-history/
- https://github.com/haccer/subjack
- https://securek8s.dev/exercise/
- https://www.redhat.com/cms/managed-files/ca-ito-security-checklist-f19123cs-201910-en_0.pdf
- https://robertheaton.com/2019/11/21/how-to-man-in-the-middle-your-iot-devices/
- https://github.com/cloudflare/flan
- https://www.redhat.com/sysadmin/basic-security-principles-containers
- https://thenewstack.io/new-cryptojacking-worm-found-in-docker-containers/
- https://unit42.paloaltonetworks.com/graboid-first-ever-cryptojacking-worm-found-in-images-on-docker-hub/
- https://nullsweep.com/http-security-headers-a-complete-guide/
- https://blog.acolyer.org/2019/09/25/50-ways-to-leak-your-data/
- https://blog.acolyer.org/2019/09/30/small-world-with-high-risks/
Networking
- https://robertheaton.com/2020/04/27/how-does-a-tcp-reset-attack-work/
- https://zwischenzugs.com/2018/06/08/anatomy-of-a-linux-dns-lookup-part-i/
- https://isbgpsafeyet.com/
- https://www.fastly.com/blog/network-automation-helps-support-worlds-biggest-live-streaming-moments
- https://smallstep.com/blog/everything-pki/
- https://tls.ulfheim.net/
- https://gravitational.com/blog/ssh-handshake-explained/
- https://charemza.name/blog/posts/abstractions/http/http-guide-for-developers/
- https://blog.deleu.dev/aws-vpc-for-software-engineers/
- https://blog.appsignal.com/2020/03/04/building-a-rails-app-with-multiple-subdomains.html
- https://blog.cloudflare.com/the-history-of-the-url/
- https://www.haproxy.com/user-spotlight-series/inside-the-github-load-balancer/
- https://nordicapis.com/understanding-the-hidden-powers-of-curl/
- https://pythonspeed.com/articles/docker-connection-refused/
- https://blog.acolyer.org/2019/11/15/facebook-taiji/
- https://almanac.httparchive.org/en/2019/
- https://robertheaton.com/2019/11/21/how-to-man-in-the-middle-your-iot-devices/
- https://nullsweep.com/http-security-headers-a-complete-guide/
Devops
- https://slack.engineering/deploys-at-slack-cd0d28c61701
- https://www.redhat.com/en/topics/microservices/what-is-jaeger
- https://github.com/bridgecrewio/checkov
- https://0x65.dev/blog/2019-12-14 the-architecture-of-a-large-scale-web-search-engine-circa-2019.html
- https://superuser.blog/site-wide-memory-leak-on-call-story/
- https://utcc.utoronto.ca/~cks/space/blog/sysadmin/RunningServersNotTrivial
- https://www.haproxy.com/user-spotlight-series/inside-the-github-load-balancer/
- https://opensource.com/article/19/10/kubernetes-complex-business-problem
- https://learnk8s.io/production-best-practices
- https://www.youtube.com/watch?reload=9&v=rYzmXLhIaHQ
- https://hackernoon.com/deploy-on-fridays-or-dont-qg2y32jk
- https://github.com/Tikam02/DevOps-Guide
Databases
- https://daniel-upton.com/articles/introduction-to-cassandra-for-sql-folk/
- http://calpaterson.com/activerecord.html
- https://github.com/gregnavis/active_record_doctor
- https://www.evanjones.ca/ordered-vs-unordered-indexes.html
- https://numeracy.co/blog/life-of-a-sql-query
- https://blog.acolyer.org/2020/01/29/narrowing-the-gap/
- https://blog.acolyer.org/2020/03/04/millions-of-tiny-databases/
- https://blog.acolyer.org/2015/05/01/staring-into-the-abyss-an-evaluation-of-concurrency-control-with-one-thousand-cores/
- https://hakibenita.com/sql-dos-and-donts
- https://engineering.shopify.com/blogs/engineering/five-common-data-stores-usage
- https://mystery.knightlab.com/
Command Line
- https://blog.yossarian.net/2020/01/23/Anybody-can-write-good-bash-with-a-little-effort
- https://github.com/dandavison/delta
- https://github.com/matt-harvey/git_curate
- https://blog.testdouble.com/posts/2020-04-07-favorite-things/
- https://github.com/jesseduffield/lazygit#installation
- https://github.com/imsnif/bandwhich
- https://medium.com/@augmentable/looking-at-kubernetes-2k-todo-comments-b2db42dc7fdb
- https://github.com/cli/cli
- https://preslav.me/2020/03/01/use-the-git-history/
- https://opensource.com/article/19/10/know-about-sudo
- https://www.redhat.com/sysadmin/bash-bang-commands
- https://peteris.rocks/blog/htop/
- https://www.redhat.com/sysadmin/manipulating-text-grep
- https://www.wezm.net/technical/2019/10/useful-command-line-tools/#alt
Programming Tips: More general advice-y type of stuff
- https://advancedbeginners.substack.com/p/pfab-13-when-code-is-too-clever-to
- https://developers.google.com/tech-writing/overview
- https://schneems.com/2020/03/17/lies-damned-lies-and-averages-perc50-perc95-explained-for-programmers/
- https://robertheaton.com/2019/12/21/ppab5-how-to-make-your-programs-shorter/
- https://enmascript.com/articles/2019/04/22/avoid-recomputing-heavy-tasks-by-leveraging-memoization-in-javascript
- https://medium.com/@karen_meep/my-quick-turnaround-habit-db08c3ddb4b8
- https://blog.acolyer.org/2020/01/08/ironies-of-automation/
- https://blog.acolyer.org/2020/01/10/ten-challenges-for-automation/
- https://tersesystems.com/blog/2020/01/22/developing-in-production/
- https://mtlynch.io/status-updates-to-nobody/
- https://alexpareto.com/scalability/systems/2020/02/03/scaling-100k.html
- https://changelog.com/posts/learning-by-example
- https://jvns.ca/blog/2019/11/20/what-makes-a-programming-exercise-good/
- https://robertheaton.com/2019/11/08/programming-feedback-for-advanced-beginners-0/
- https://stackoverflow.blog/2019/09/30/how-to-make-good-code-reviews-better/
- https://robertheaton.com/2019/11/11/pfab1/
- https://blog.regehr.org/archives/199
Rails
- https://github.com/ankane/lockbox
- https://discuss.rubyonrails.org/t/why-is-rails-boot-so-slow-on-macos/74021
- https://fabioperrella.github.io/2020/03/30/an-index-route-without-pagination-can-destroy-your-app.html
- https://www.ombulabs.com/blog/ruby/learning/method-s-arguments-pt-1.html
- https://engineering.shopify.com/blogs/engineering/refactoring-legacy-code-strangler-fig-pattern
- https://blog.appsignal.com/2020/03/18/facade-pattern-in-rails-for-performance-and-maintainability.html
- https://github.com/gregnavis/active_record_doctor
- https://frontdeveloper.pl/2020/03/how-we-migrated-from-timecop-to-built-in-rails-5-2-time-helpers/
Ruby
- https://github.com/ankane/lockbox
- https://blog.arkency.com/practical-use-of-ruby-pstore/
- https://blog.reversinglabs.com/blog/mining-for-malicious-ruby-gems
- https://emmanuelhayford.com/the-difference-between-self-method-name-and-class-self-in-ruby/
- https://prathamesh.tech/2020/03/18/diggin-through-hashes-and-arrays-in-ruby/
Containers
- https://discuss.rubyonrails.org/t/why-is-rails-boot-so-slow-on-macos/74021
- https://github.com/docker-slim/docker-slim
- https://pythonspeed.com/articles/system-packages-docker/
- https://pythonspeed.com/articles/alpine-docker-python/
- https://www.ardanlabs.com/blog/2020/02/docker-images-part1-reducing-image-size.html
- https://jvns.ca/blog/2019/11/18/how-containers-work--overlayfs/
- https://pythonspeed.com/articles/docker-connection-refused/
- https://www.redhat.com/sysadmin/basic-security-principles-containers
Career
- https://developers.google.com/tech-writing/overview
- https://medium.com/better-programming/career-growth-frameworks-in-software-engineering-a-review-4aa6c59a9cf6
- https://www.grahamlea.com/2013/07/why-smart-software-teams-dont-need-senior-developers-tech-leads-or-architects/
- https://labs.spotify.com/2016/02/08/technical-career-path/
- https://medium.com/@karen_meep/my-quick-turnaround-habit-db08c3ddb4b8
- https://danluu.com/wat/
- https://blog.alicegoldfuss.com/work-in-the-time-of-corona/
- https://jvns.ca/blog/brag-documents/
Management
- https://qz.com/work/1836105/20-great-questions-to-ask-instead-of-how-are-you-doing-right-now/
- https://www.blameless.com/thought-leadership-panel-real-sre/
- https://github.com/ksindi/managers-playbook
- https://blog.acolyer.org/2019/12/13/how-do-committees-invent/
- https://medium.com/better-programming/career-growth-frameworks-in-software-engineering-a-review-4aa6c59a9cf6
- https://www.grahamlea.com/2013/07/why-smart-software-teams-dont-need-senior-developers-tech-leads-or-architects/
- https://www.slideshare.net/reed2001/culture-1798664
- https://www.paperplanes.de/2020/1/31/on-drafting-an-engineering-strategy.html
- https://blog.pragmaticengineer.com/a-team-where-everyone-is-a-leader/
Tech Industry
- https://www.vice.com/en_us/article/43zak3/the-internet-was-built-on-the-free-labor-of-open-source-developers-is-that-sustainable
- https://blog.acolyer.org/2020/01/10/ten-challenges-for-automation/
- https://blog.acolyer.org/2019/12/04/declarative-assembly-of-web-applications-from-pre-defined-concepts/
- https://blog.cloudflare.com/the-history-of-the-url/
- https://almanac.httparchive.org/en/2019/
- https://blog.acolyer.org/2019/11/20/local-first-software/
- https://www.gwern.net/Complement
- https://alexdanco.com/2019/10/26/everything-is-amazing-but-nothing-is-ours/
- https://www.nemil.com/musings/hack-an-engineer.html `
Git
Data Structures
Machine Learning
- https://findka.com/blog/rec-sys-in-30-lines/
- https://tryolabs.com/blog/2020/04/02/swift-googles-bet-on-differentiable-programming/
- https://github.com/trekhleb/nano-neuron
- https://blog.acolyer.org/2020/01/13/challenges-of-real-world-rl/
- https://docs.metaflow.org/
- https://github.com/Kayzaks/HackingNeuralNetworks
- https://github.com/chiphuyen/machine-learning-systems-design
- https://blog.acolyer.org/2019/09/23/the-secret-sharer/
Catch All
- https://blog.twitter.com/engineering/en_us/topics/open-source/2020/hunting-a-linux-kernel-bug.html
- https://segment.com/blog/introducing-centrifuge
- https://danluu.com/corp-eng-blogs/
- http://rachelbythebay.com/w/2020/04/23/rel/
- https://www.driftingruby.com/episodes/google-maps-api-with-stimulusjs
- https://blog.rebased.pl/2020/04/07/why-you-probably-dont-need-postgis.html
- https://ljvmiranda921.github.io/notebook/2019/11/08/flask-redis-celery-mcdo/
- https://blcsystems.com/red-hat-free-courses/
- https://wiki.debian.org/WhyTheName
- https://rachelbythebay.com/w/2020/02/07/kdir/
- https://github.com/simplabs/ast-workshop
- https://robertheaton.com/2020/03/18/yourself-happier-iphone-worse/
- https://github.com/jamiebuilds/the-super-tiny-compiler
- http://lists.busybox.net/pipermail/busybox/2010-December/074114.html
- https://reproducible-builds.org/tools/
- https://blog.acolyer.org/2019/12/13/how-do-committees-invent/
- https://www.taniarascia.com/
- https://netflixtechblog.com/python-at-netflix-bba45dae649e
- https://0x65.dev/blog/2019-12-14/the-architecture-of-a-large-scale-web-search-engine-circa-2019.html
- https://danluu.com/wat/
- https://robertheaton.com/2020/02/08/pfab9-batch-vs-stream-processing/
- https://www.petefreitag.com/item/884.cfm
- https://labs.ripe.net/Members/bert_hubert/centralised-doh-is-bad-for-privacy-in-2019-and-beyond
- https://opensource.com/article/20/2/yacy-search-engine-hacks
- https://enterprisersproject.com/article/2019/9/emotional-intelligence-how-handle-criticism
- https://blog.acolyer.org/2019/12/04/declarative-assembly-of-web-applications-from-pre-defined-concepts/
- https://blog.acolyer.org/2020/02/14/programs-life-cycles-laws/
- https://fasterthanli.me/blog/2020/i-want-off-mr-golangs-wild-ride/
- https://www.daolf.com/posts/best-programming-books/
- http://pattle.github.io/simpsons-in-css/
- https://simongray.github.io/essays/spread.html
- https://blog.alicegoldfuss.com/work-in-the-time-of-corona/
- https://report-uri.com/#prices
- https://blog.acolyer.org/2019/11/22/planalyzer/
- https://github.com/omarroth/invidious
- https://sneak.berlin/20191011/stupid-unix-tricks/
- https://blog.acolyer.org/2019/10/28/interpretable-models/
- https://blog.acolyer.org/2019/10/30/corels/
- https://blog.acolyer.org/2019/11/01/optimized-risk-scores/
- https://manybutfinite.com/post/how-computers-boot-up/
- https://blog.acolyer.org/2019/09/25/50-ways-to-leak-your-data/
- https://www.petefreitag.com/item/884.cfm
- https://blog.acolyer.org/2019/11/04/an-analysis-of-performance-evolution-of-linuxs-core-operations/
- https://blog.acolyer.org/2019/07/12/view-centric-performance-optimization/
- http://divio.com/blog/documentation/
- https://findka.com/blog/rec-sys-in-30-lines/
- https://peteris.rocks/blog/htop/
- https://danluu.com/deconstruct-files/
- https://github.com/rotisserie/eris
- https://blog.acolyer.org/2020/01/29/narrowing-the-gap/
- https://blog.acolyer.org/2020/03/04/millions-of-tiny-databases/
- https://blog.acolyer.org/2019/11/18/formal-foundations-of-serverless-computing/
- https://storiesinmypocket.com/articles/refactoring-and-asking-forgiveness/
- https://towardsdatascience.com/the-most-underrated-python-packages-e22bf6049b5e
- https://blog.acolyer.org/2019/11/06/ceph-evolution/
- https://fabioperrella.github.io/2020/03/30/an-index-route-without-pagination-can-destroy-your-app.html
- https://blog.acolyer.org/2019/11/08/the-inflection-point-hypothesis/
- https://blog.regehr.org/archives/199
- https://nebulab.it/blog/testing-decorators-with-super-method/
- https://blog.testdouble.com/posts/2020-02-25-necessary-and-sufficient/
- https://opensource.com/article/19/10/test-automation-without-assertions