aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Hiar <cody@hiar.ca>2023-03-13 10:44:49 -0600
committerCody Hiar <cody@hiar.ca>2023-03-13 10:44:49 -0600
commitf69fe236e09bd3d34975335b091142804001b4ab (patch)
tree389271d4cc1f6ac169a6a53a5924c4c1c8fc4fc5
Initial commit
-rw-r--r--Makefile6
-rw-r--r--README.md2217
-rw-r--r--check_links.py41
-rw-r--r--flake.lock25
-rw-r--r--flake.nix19
5 files changed, 2308 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..3f84548
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,6 @@
+
+help:
+ @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
+
+check_dups: ## Check for bad bookmarks
+ perl -wln -e '/\[\d+\]/ and print $$&;' README.md | sort | uniq -c | sort -n
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..8bffab0
--- /dev/null
+++ b/README.md
@@ -0,0 +1,2217 @@
+Many moons ago, I used Xmarks for all my bookmarking. Then they shut down. I
+thought about maybe migrating to a new service but thought, naw. Now I keep all
+my links in this repo and call it a day. I do have some small scripts to help
+with maintenance so things should be up to date.
+
+### Tech Articles/Reading
+
+- [Hacker News][405]
+- [Lobste.rs][404]
+- [Discover Dev][406]
+
+### Interviews
+
+- [Technical Interview Questions Julia Evans][1]
+- [Lessons from a year's worth of hiring data][3]
+- [Google Interview, lessons learned][4]
+- [50+ Interviews With Facebook, Twitter, Amazon & Others][5]
+- [Coding Interview University][9]
+- [Exactly what to say when recruiters ask you to name the first number][484]
+- [Google Interview Problems: Ratio Finder][660]
+- [The Interview Study Guide For Software Engineers][677]
+- [What I Learned from Doing 60+ Technical Interviews in 30 Days][771]
+- [Facebook senior software engineer interview: the only post you'll need to read][805]
+
+### Job Boards
+
+- [Awesome Remote job: A curated list of awesome remote jobs and resources][8]
+- [RemoteMore: Remote jobs][664]
+
+### Career
+
+- [Four Steps to Google][6]
+- [Hiring and the market for lemons][7]
+- [The Software Engineering Job Ladder][10]
+- [How engineers can stand out from applicant pool][11]
+- [Basecamp Employee Handbook][12]
+- [On Being A Senior Engineer][395]
+- [How to pretend you have social skills][470]
+- [How to Become a Better Software Developer: A Handbook on Personal Performance][520]
+- [Don't Call Yourself A Programmer, And Other Career Advice][638]
+- [Education of a Programmer][640]
+- [5 Things I've Learned in 20 Years of Programming][680]
+- [What skills do founders find most crucial for running their businesses?][681]
+- [You don't need to work on hard problems][696]
+- [The Death of a Craftsman][728]
+- [How to be a Successful Software Engineer][574]
+- [Lessons from Six Years as a Solo Consultant][701]
+- [What distinguishes great software engineers][800]
+- [What Silicon Valley "Gets" about Software Engineers that Traditional Companies Do Not][808]
+- [Making is Show Business now][823]
+- [The Engineer's Guide to Career Growth][840]
+- [Awesome CTO: Collection of CTO resources][844]
+- [On Writing Tech Specs][848]
+- [Salary Negotiotion][858]
+- [An incomplete list of skills senior engineers need, beyond coding][870]
+- [10 Rules For Negotiating a Job Offer][874]
+- [How to tactfully negotiate your salary][885]
+- [The SaaS Org Chart][894]
+- [Evil tip: avoid "easy" things][908]
+- [H1B Salary Database][917]
+- [Equity in your tech job offer][1026]
+- [Staff Engineering at Carta][1032]
+- [Job Seekers: Aggregated Links Notion Board][1047]
+- [Reading a Profit & Loss statement][1056]
+- [Downturn Career Decisions][1057]
+
+### Productivity
+
+- [Productivity - Sam Altman][13]
+- [10,000 Hours With Claude Shannon: How A Genius Thinks, Works, and Lives][15]
+- [The importance of Deep Work][417]
+- [9 tips for eliminating distractions and getting things done][422]
+- [In Pursuit of Production Minimalism][451]
+- [Be Nice and write Stable Code][463]
+- [Slack as a Hive mind][464]
+- [TED talks for life long learners][468]
+- [Manifesto for Minimalist Software Engineers][474]
+- [How-to-make-a-big-decision][478]
+- [Reading with a Pencil][490]
+- [Run Less Software][492]
+- [How to be an open source gardener][513]
+- [How to get things done when you don't feel like it][522]
+- [Stop Learning Frameworks][554]
+- [Against Librarization][571]
+- [Programmer as wizard, programmer as engineer][576]
+- [Write tests. Not too many. Mostly integration.][583]
+- [Everyone watching this is fired][603]
+- [The Duct Tape Programmer][625]
+- [Advice on Getting Better from and Accomplished Piano Player][636]
+- [How to Be Great? Just Be Good, Repeatably][639]
+- [All the best engineering advice I stole from non-technical people][644]
+- [Rabbit Holes: The Secret to Technical Expertise][653]
+- [Just Build the Product][691]
+- [Old Code Gets Younger Every Year][739]
+- [How Understanding the Marginal Utility of Money Will Make you Happier][740]
+- [On Coding, Ego and Attention][758]
+- [How Developers Stop Learning: Rise of the Expert Beginner][761]
+- [What is Mind-Wandering and How To Use it To Your Advantage?][833]
+- [If Your Boss Could Do Your Job, You're More Likely to Be Happy at Work][851]
+- [Don't Feed The Thought Leaders][879]
+- [How to do less][962]
+- [Why Tacit Knowledge is More Important Than Deliberate Practice][965]
+- [Optimal quitting][974]
+- [When Everything is Important But Nothing is Getting Done][985]
+- [Stepping Stones not Milestones][1004]
+- [Delivering on an architecture strategy][1005]
+- [Developers spend most of their time figuring the system out][1006]
+- [Talk Like A Systems Engineer: Yaks All The Way Down][1010]
+- [How finishing what you start makes teams more productive and predictable][1048]
+- [Why We Estimate][1050]
+- [How To Write Awesome Tech Specs][1051]
+- [Rich Hickey: Simple Made Easy][1054]
+- [Rich Hickey: Hammock Driven Development][1055]
+
+### Management/Culture
+
+- [Old School Project Management Techniques That Still Matter][14]
+- [Rework: Google Managers][16]
+- [12 Manager READMEs][407]
+- [Building and Inclusive Code Review Culture][448]
+- [You don't need a standup][450]
+- [Post Agile: Embracing Asynchronous Processes][487]
+- [Why Software Development Requires servant Leaders][483]
+- [What Nobody tell you about Documentation][531]
+- [More Speed, lower volecity][540]
+- [7 reasons not to skip the tests][545]
+- [Antifragility and Software Development][547]
+- [The Broken Window to the Developers Soul][582]
+- [Classic Mistakes][614]
+- [The Friendship That Made Google Huge][631]
+- [The computer is a machine, but a codebase is an organism.][655]
+- [Stevey's Google Platforms Rant][662]
+- [Software developers should avoid traumatic changes][674]
+- [The Single Most Important Internal Email in the History of Amazon][678]
+- [Work is Work][692]
+- [Resources for Staff-plus engineers][700]
+- [Spotify's failed squad goals][723]
+- [They write the right stuff][757]
+- [Essays on programming I think about a lot][772]
+- [Why is This Idiot Running My Engineering Org?][778]
+- [The Architecture Playbook][792]
+- [How management by metrics leads us astray][813]
+- [How to hire senior developers: Give them more autonomy][816]
+- [Maximizing Developer Effectiveness][827]
+- [The 25 Micro-Habits of High-Impact Managers][869]
+- [The Four Levels of Product Managers ][881]
+- [How Big Tech Runs Tech Projects and the Curious Absence of Scrum][901]
+- [What's Your Shape? A Product Manager's Guide to Growing Yourself and Your Team][980]
+- [The Curse of Systems Thinkers (Part 1)][982]
+- [Staying on the path to high performing teams][992]
+- [What TPMs Do and What Software Engineers Can Learn From Them][993]
+- [The collapse of complex software][994]
+- [The Wetware Crisis: the Dead Sea effect][997]
+- [From the Archives: Xerox Parc's Engineers on How They Invented the Future][998]
+- [Founding Uber SRE][1009]
+- [Companies Using RFCs or Design Docs (Tech Specs) and Examples of These][1016]
+- [Small Actions Make Great Leaders][1017]
+- [What we learned in studying the most effective founders][1019]
+- [Spotify doesn't use "the Spotify model" and neither should you][1035]
+- [Scaling Developer Effectiveness at Twitter][1049]
+- [Why your IT organization should prioritize developer experience][1053]
+
+### Psycology/Philosophy
+
+- [Mental Models I Find Repeatedly Useful][566]
+- [How to Remember Anything Forever-ish][573]
+- [The three-page paper that shook philosophy: Gettiers in software engineering][586]
+- [Rage Against the Codebase: Programmers and Negativity][600]
+- [Why being bored is good][628]
+- [Clause Shannon and the Art of Choosing a Problem][730]
+- [How will you measure your life][759]
+- ['Success Addicts' Choose Being Special Over Being Happy][764]
+- [Derek Sivers & The Art of Enough][765]
+- [50 Ideas That Changed My Life][773]
+- [The High Price of Mistrust][824]
+- [Tools for better thinking][903]
+- [First Principles][956]
+- [Peter Bevelin on Seeking Wisdom, Mental Models, Learning, and a Lot More][1013]
+
+### Dev/Tools
+
+- [ngrok - secure introspectable tunnels to localhost][17]
+- [wagoodman/bridgy: cloud inventory + ssh + tmux + sshfs][18]
+- [The Homely Mutt / Steve Losh][19]
+- [Boilerplate Projects][20]
+- [Cheat Sheets for Everything][21]
+- [Cookie cutter - Using Pre/Post-Generate Hooks][22]
+- [Use a Linode for Web Development on Remote Devices][415]
+- [Certificates for localhost][434]
+- [Extended Validation Certificates are Dead][502]
+- [Online Character Map Viewer][552]
+- [Hexyl: Simple hex viewer][578]
+- [Hacker Tools: Lectures][587]
+- [Build your own X][597]
+- [SOPS: Secrets OPerationS encrypted files][760]
+- [Charles Web Debugging Proxy • HTTP Monitor / HTTP Proxy / HTTPS &amp; SSL Proxy / Reverse Proxy][199]
+- [Official user guide · ranger/ranger Wiki][200]
+- [Gnu Guix][542]
+- [gitea-release Tool Changelog][743]
+- [Pants Build: Build System For Monorepos][871]
+- [Termpair: Remote Terminal Sharing][875]
+- [Teller: Secrets Management Tool][877]
+- [Building for the 99% Developers][978]
+
+### Python
+
+- [Repository Structure and Python][23]
+- [Idiomatic Python][25]
+- [Python Method Resolution Order][26]
+- [Dreamhost install custom Python][27]
+- [The Django Book][28]
+- [Getting Started with Django][29]
+- [Learn Python The Hard Way][30]
+- [Automate the Boring Stuff with Python][31]
+- [Python Class Attributes&#58; Examples of Namespace, Variables, Properties &amp; More][32]
+- [Optimize Python with Closures][33]
+- [Let’s Build A Web Server. Part 2. - Ruslan's Blog][34]
+- [Looking up words in a Dictionary using Python][35]
+- [Flask - Full Stack Python][36]
+- [Kickstarting Flask on Ubuntu - setup and deployment][37]
+- [How We Deploy Python Code][38]
+- [Intermediate Python — Python Tips 0.1 documentation][39]
+- [Understanding Python Decorators in 12 Easy Steps!][40]
+- [Working with Binary Data in Python | DevDungeon][41]
+- [amontalenti/elements-of-python-style · GitHub][42]
+- [Comprehensions in Python the Jedi way · GitHub][43]
+- [Python Virtual Environments - a primer][44]
+- [My Transition to Python 3 and Pyenv, goodbye Virtualenvwrapper][45]
+- [Building Large Flask Apps In The Real World][47]
+- [Python and Elixir][48]
+- [Scientific Python ][50]
+- [gdb Debugging Full Example][51]
+- [Python command line programs][52]
+- [Machine Learning Exercises In Python, Part 1][53]
+- [Good logging practices][54]
+- [Generators in Python 3][55]
+- [Easy CLI Apps][56]
+- [Decorator Uses][57]
+- [Python Cheatsheet][58]
+- [Regex Multiple languages][59]
+- [You Should Be Using Nginx + UWSGI][60]
+- [Pynd - Search Python source code.][61]
+- [Awesome Wagtail&#58; A curated list of awesome packages, articles, and other cool resources from the Wagtail community.][62]
+- [Getting Started with Mocking in Python][63]
+- [Python Data Structure and Algorithms][64]
+- [Django Packages &#58; Grids][65]
+- [Classy Django Rest Framework Documentation][66]
+- [Django in depth video][67]
+- [CCBV - Classy Class based views.][68]
+- [UWSGI Docs Fork][69]
+- [Packaging Python][70]
+- [Deni Bertovic &#58;&#58; Celery - Best Practices][71]
+- [Django Python Styleguide Octoenergy][72]
+- [Django project optimization guide (part 1)][73]
+- [Text to speech – Python][74]
+- [Run Django Python 2 and Python 3 apps with uWSGI and nginx on same server?][75]
+- [Dockerizing Django, uWSGI and Postgres the serious way][76]
+- [Abstract Base Classes in Python – Technology@Nineleaps – Medium][77]
+- [Pandas in a nutshell – Kanoki][78]
+- [How the heck does async/await work in Python 3.5?][79]
+- [Django vs Flask][80]
+- [Python coding challenges][81]
+- [Porting an historic Python2 module into Python3 · lucasg.github.io][82]
+- [Python Entry Points Explained][83]
+- [Python Recipes][84]
+- [Understanding Python's logging module][85]
+- [Python decorators, the right way&#58; the 4 audiences of programming languages][86]
+- [The tragic tale of the deadlocking Python queue][87]
+- [Python Data Science Handbook | Python Data Science Handbook][88]
+- [metachris/logzero&#58; Robust and effective logging for Python 2 and 3.][89]
+- [Python strftime date print][90]
+- [How to Generate FiveThirtyEight Graphs in Python Matplotlib][91]
+- [Python Format Printing][92]
+- [Python for Finance, Part 3&#58; A Moving Average Trading Strategy][93]
+- [Python Programming Tutorials Zipline Quantopian][94]
+- [Django 1.11 -- Classy Django Forms][95]
+- [kennethreitz/setup.py&#58; 📦 A Human's Ultimate Guide to setup.py.][96]
+- [Django Service Objects][97]
+- [Python Exercises][98]
+- [Python Test and Code][99]
+- [Wrapping Subprocesses in Asyncio][100]
+- [Learn Blockchains by Building One – Hacker Noon][101]
+- [Django Middlewares and the Request/Response Cycle][102]
+- [Python Google SpreadSheet API][103]
+- [Python Design Patterns][104]
+- [Design Patterns - Python Pattern References][105]
+- [Problem Solving with Algorithms and Data Structures using Python][106]
+- [Pipenv&#58; Holy Grail For Python Environments][107]
+- [A tutorial on packaging up your Python code for PyPI][108]
+- [Learning Concurrency in Python - YouTube - YouTube][109]
+- [norvig/pytudes&#58; Python programs to practice or demonstrate skills.][110]
+- [Using Python’s Pathlib Module][111]
+- [Implementing a Neural Network from Scratch in Python][112]
+- [Flake8 Rules][113]
+- [Python Application Deployment with Native Packages][114]
+- [git-based fabric deploys are awesome][115]
+- [Python Bytecode&#58; Fun with dis - Allison Kaptur][116]
+- [Full-Text Search in Django with PostgreSQL][117]
+- [The Perils of Packaging in Python][118]
+- [Write your own miniature Redis with Python][119]
+- [How does pickle work in Python?][120]
+- [Python Patterns][121]
+- [9 Django Tips for Working with Databases][122]
+- [How to Implement Dependent/Chained Dropdown List with Django][123]
+- [Django Admin Cookbook 2.0 documentation][124]
+- [Django, ELB health checks and continuous delivery][125]
+- [Sharing Your Labor of Love&#58; PyPI Quick and Dirty][126]
+- [Asyncio basics in python][127]
+- [When pypi goes down][128]
+- [Attrs: The library you should use everywhere][129]
+- [Lessons learned migrating to python 3][130]
+- [Python Modules and Packages - An Introduction][131]
+- [Let's talk about packages][132]
+- [Visualizin Panda's Pivoting and Reshaping Functions][133]
+- [Developing an Asynchronous Task Queue in Python][134]
+- [Python Exceptions: An Introduction][135]
+- [Apache Libcloud: Python Library for cloud providers][136]
+- [Announcing glom: Restructured Data for Python][402]
+- [Python Performance Tips][409]
+- [Parallel tasks in Python: concurrent.futures][411]
+- [How to build your own AlphaZero AI using Python and Keras][413]
+- [The Ultimate Guide to Data Classes in Python 3.7][419]
+- [Python's NotImplemented Type][421]
+- [Clean Architectures in Python][423]
+- [Getting Started with Apache Kafka in Python][429]
+- [Idiomatic Python: EAFP vs LBYL][430]
+- [10 common security gotchas in Python][431]
+- [State of type hints in Python][432]
+- [Python Youtube Channels Guide][433]
+- [The Art of Avoiding Nested Code][440]
+- [How to Structure Django Projects][442]
+- [How virtual environments libraries work][443]
+- [Django ORM Cookbook][444]
+- [Building High Quality Django Apps at Scale][449]
+- [Django Newbie Mistakes][453]
+- [Making a low level debugger][455]
+- [Working with Asynchronous Celery Tasks: lessons learned][469]
+- [Setting up Django with S3][472]
+- [Stab yourself witha fork in multiprocessing.Pool][481]
+- [Standalone Django Scripts][493]
+- [Running a standalone Django Python script][494]
+- [Console Logging to STDOUT in Django][495]
+- [Django Logging, The Right Way][496]
+- [Django Deferred logging file handler][497]
+- [18 Python programming books for beginners and veterans][500]
+- [Pythons New Package Landscapr][505]
+- [Mocking Cookbook Article][506]
+- [Python Multithreading and Multiprocessing Tutorial][508]
+- [Paralellism in One Line][509]
+- [Python Algorithms][515]
+- [Python 3 Patterns, Recipes and Idioms][517]
+- [PyQt5 Tutorial: Build a python gui in 2018][519]
+- [Guide to Date Mining][523]
+- [How to Deploy Django Channels][524]
+- [Various Python Module's imports visualized][525]
+- [Python and QT: 3000 Hours of Developer Insight][527]
+- [A quick dive into Python's slots][535]
+- [Test Django with Pytest and Selenium][537]
+- [wemake Django Template for Projects][538]
+- [A multi-value syntax tree filtering in Python][546]
+- [Writing Perfect Python Command Line Interfaces][553]
+- [Free Hotel Wifi with Python and Selenium][557]
+- [Incrementally improving the performance of a python script, until nothing makes sense anymore][560]
+- [Awesome Python Applications][562]
+- [Linux Containers, what even are they?][563]
+- [Notes on how systemd's Job engine is structured][564]
+- [My one-liner Linux Dropbox client][565]
+- [Learn Python for Data Science from Scratch for Beginners][572]
+- [Creating an Undetectable Custom SSH Backdoor in Python][577]
+- [Comprehensive Python Cheatsheet][588]
+- [Ports and Adapters with Command Handler Pattern][589]
+- [Write yourself a git in Python][591]
+- [Python for Reverse Engineering][592]
+- [Endlessh: An SSH Tarpit (asyncio example)][593]
+- [Hands-on Python 3 Concurrency With the asyncio Module][605]
+- [How to Work With a PDF in Python][606]
+- [from dynaconf import settings][607]
+- [Django: An Unofficial Opinionated FAQ][608]
+- [What Is Dynamic Programming With Python Examples][618]
+- [pytz: The Fastest Footgun in the West][619]
+- [Interfaces are Forever][624]
+- [Refactoring a Python codebase using the Single Responsibility Principle][632]
+- [Typchecking Django and DRF][648]
+- [Multithreading VS Multiprocessing in Python][673]
+- [When your data doesn't fit in memory: the basic techniques][683]
+- [Easy Concurrency in Python][684]
+- [Framework Patterns][689]
+- [I'm not feeling the async pressure][690]
+- [Python Type Hints Intro][707]
+- [We have to talk about this Python, Gunicorn, Gevent thing][710]
+- [Hypermodern Python][717]
+- [Against service layers in Django][721]
+- [Structuring large/complex Django projects][722]
+- [Filling in PDF forms with Python][732]
+- [The many ways to pass code to Python from the terminal][744]
+- [Guide to Concurrency in Python with Asyncio][749]
+- [Python for Finance: Algorithmic Trading][753]
+- [Async Python is not faster][756]
+- [Surviving Django (If you care about database)][776]
+- [Django Views - The Right Way][777]
+- [Options for packaging your Python code: Wheels, Conda, Docker, and more][780]
+- [The Composition Over Inheritance Principle][790]
+- [How to Combine Two Python Decorators][791]
+- [Django Migrations without downtimes][809]
+- [Django database constraints][815]
+- [Moving to Django 3.0 Field.choices Enumeration Types][836]
+- [Five Common Django Mistakes][838]
+- [Abstract Syntax Tree for Patching Code and Assessing Code Quality][872]
+- [70+ Python Projects for all levels][873]
+- [3 Uses For Functools Partial in Django][876]
+- [Understanding all of Python, through its builtins][912]
+- [Python behind the scenes #11: how the Python import system works][913]
+- [Python Project Setup: Virtual Environments and Package Management][975]
+- [Threading in Python][981]
+- [Running Python in WebAssembly][1001]
+- [Logging in Python like a PRO][1023]
+- [Multiprocessing Pool in Python: The Complete Guide][1046]
+
+### Ops
+
+- [Proper Server Naming DNS][388]
+- [Gitlab&#58; Clone / Pull all projects in a group][137]
+- [Automate pushing of ssh-copy-id to multiple servers][138]
+- [Jenkins Job Builder][139]
+- [JobConfigHistory Plugin][140]
+- [Linux server monitoring tools][141]
+- [Linux System Administration PDF Course][142]
+- [Ops School Curriculum][143]
+- [Why we use Terraform and not Chef, Puppet, Ansible, SaltStack, or CloudFormation][144]
+- [AWS in Plain English][145]
+- [A workshop on Linux containers&#58; Rebuild Docker from Scratch][146]
+- [Comprehensive guide to terraform][147]
+- [Blue Green Deployment][408]
+- [SystemD Services Are Easy][435]
+- [Archlinux Guide to Writing Unit Files][436]
+- [You don't need that bastion host][459]
+- [Security Training for Engineers][462]
+- [Open Guide to AWS][471]
+- [Test yout Sysadmin Skills][488]
+- [5 Lessons Learned From Writing Over 300,000 Lines of Infrastructure Code][536]
+- [Ops School][594]
+- [Free for dev: SaaS, PaaS, and IaaS free tiers][695]
+- [(A few) Ops Lessons We All Learn The Hard Way][703]
+- [Monitoring your own infrastructure using Grafana, InfluxDB, and CollectD][770]
+- [The Architecture Behind A One-Person Tech Startup][866]
+- [Screw it, I'll host it myself][839]
+- [Parler's epic fail: A crash course on running your own servers on a shoestring budget][841]
+- [Running Nomad for home Server][843]
+- [Why you should take a look at Nomad before jumping on Kubernetes][845]
+- [Talk write-up: "How to build a PaaS for 1500 engineers"][850]
+- [Linux Hypervisor Setup (libvirt/qemu/kvm)][853]
+- [Trunk Based Development][930]
+- [Continuous Integration On a Dollar a Day][932]
+- [Khuedoan: My Devops Homelab][934]
+- [Thoughts on systems management methods][945]
+- [Outsourcing Everyday Jobs to Thousands of Transient Functional Containers][946]
+- [Lyft: Optimizing for fast local development][947]
+- [How a Brilliant Platform Engineer Saved Twilio From Absolute Disaster][964]
+- [The Three Pillars of Reproducible Builds][969]
+- [The End of Localhost][996]
+- [Using Ansible & Nomad for a homelab (part 2)][999]
+- [Metrics For Your Web Application's Dashboards][1000]
+- [How to run end-to-end tests 10x faster with firecracker][1007]
+- [Save by using Anything Other than a NAT Gateway][1022]
+- [The practical guide to incident management][1024]
+- [Monorepo Tools][1028]
+- [Say hello to Devboxes][1030]
+- [Notes on an Observability Team][1031]
+- [Practical Observability][1061]
+
+### C
+
+- [Implementing a Virtual Machine in C][148]
+- [Write Good C code][149]
+- [How to C (as of 2016)][150]
+- [Write a Shell in C][151]
+- [Write a simple memory allocator][152]
+- [Write a (toy) strace and gdb][153]
+- [Beej's Guide to C Programming][154]
+- [Essential C][155]
+- [OCLint C Linting][156]
+- [Explain C code][157]
+- [C Primer][158]
+- [Frequently Asked C questions][159]
+- [Minimalist C Libraries][424]
+- [Build your own Lisp][457]
+- [Teaching C (2016)][514]
+- [Spawn() of Satan][518]
+- [How I ended up writing opensnoop in pure C using eBPF][521]
+- [How to write a bootloader from scratch][645]
+- [The Ten Commandments for C Programmers (Annotated Edition)][657]
+- [cdecl: Explain C code][658]
+- [An Introduction to Modern CMake][708]
+- [Parsing command line arguments from C][709]
+- [Linux Kernel Development and Writing a Simple Kernel Module][715]
+- [Concurrent programming, with examples][725]
+- [Static Analysis in GCC 10][726]
+- [Sol - a sunny little virtual machine][741]
+- [Beginner's Guide to Linkers][971]
+
+### CMPE/CS
+
+- [8-bit computer from scratch - Ben Eater][389]
+- [Always Be Coding Blurb][160]
+- [Software Carpentry Tutorials][161]
+- [Big-O Algorithm Complexity Cheat Sheet][162]
+- [Falsehoods about Addresses for Programmers][163]
+- [Recommended Reading | The Homepage of @attrc][165]
+- [What every computer science major should know][166]
+- [Code Review Best Practices][167]
+- [Algorithmist][169]
+- [ferd.ca -&gt; The Little Printf][170]
+- [Build Technical Wealth][171]
+- [Systems We Love][172]
+- [Why Messaging Queues Suck | ProgrammableWeb][174]
+- [kdeldycke/awesome-falsehood&#58; Curated list of falsehoods programmers believe in.][175]
+- [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets][176]
+- [Learn how to design large-scale systems. Prep for the system design interview.][177]
+- [The Twelve-Factor App][178]
+- [Effective Engineer][179]
+- [VisuAlgo - visualising data structures and algorithms through animation][187]
+- [Design Patterns for Humans][390]
+- [Modern Microprocessors][396]
+- [zeeshanu/learn-regex&#58; Learn regex the easy way][387]
+- [Determining if Two Date Ranges Overlap][412]
+- [Startup School Course Library][447]
+- [Choose Boring Technology][485]
+- [An Intensive Introduction to Cryptography][489]
+- [Introduction to Networking: How the Internet Works][516]
+- [Integrated Tests are a Scam][528]
+- [Unit Testing? Do as I say, Don't do as I do][529]
+- [Systems, not Programs][534]
+- [The faster you unlearn OOP, the better for you and your software][550]
+- [Network Protocols for anyone who knows a programming language][579]
+- [Professional Software Development][581]
+- [The philosophies of software languages, from Go to Elixir][599]
+- [Classes vs. Data Structures][611]
+- [Hacker Laws: Laws, Theories, Principles and Patterns that developers will find useful.][616]
+- [Object-Oriented Programming: The Trillion Dollar Disaster][633]
+- [CS360 Lecture notes -- Memory][661]
+- [Understanding Parser Combinators][712]
+- [CP-SAT Solver: Google Nurse Scheduling][713]
+- [Crash course in Compilers][727]
+- [Distill: Why do we need Flask, Celery, and Redis? (McDonalds inbetween)][735]
+- [Should I use threads][751]
+- [What every developer should know about TCP][752]
+- [What's the deal with message passing, anway][783]
+- [How NAT Traversal Works][787]
+- [I was wrong. CRDTs are the future][802]
+- [What event sourcing is not about][849]
+- [Out of this world lessons from the Apollo Lunar landings][878]
+- [The pedantic checklist for changing your data model in a web application][882]
+- [SerenityOS Videos][888]
+- [Direct I/O writes: the best way to improve your credit score][889]
+- [Scalability is Quantifiable: The Universal Scalability Law][954]
+- [Video: A Philosophy of Software Design | John Ousterhout][955]
+- [On the criteria to be used in decomposing systems into modules][957]
+- [Bottlenecks of Scaleups: How did you get into the bottleneck?][961]
+- [So you want to scrape like the big boys][963]
+- [The Code Review Pyramid][966]
+- [What is Software Engineering][972]
+- [Design: #noFramework][973]
+- [Pay attention to WebAssembly][976]
+- [At the boundaries, applications aren't functional][1029]
+- [Superficial Simplicity][1038]
+- [The Grug Brained Developer][1039]
+- [Shapp Sharp Tools][1045]
+- [12 Factor App Revisited][1059]
+
+### Books/Reading
+
+- [Free Programming Books][164]
+- [The Hacker Shelf | Community-curated collection of free books for the intellectually curious.][168]
+- [My top 100 programming books][182]
+- [OS concepts book][173]
+- [Game Programming Patterns][185]
+- [DevOps README.md Recommended Books Readings][211]
+- [Obey the Testing Goat][452]
+- [Really Friendly Command Line Intro Book][458]
+- [Goal Kicker Free Programming Books][501]
+- [Jordan Peterson Book List][533]
+- [Language-oriented software engineering (sort of) a book review of Clean Architecture][567]
+- [An Elegant Puzzle Book Review: an Overdue Read for Software Engineering Leads][637]
+- [The First Non-Bullshit Book About Culture I've Read][687]
+- [EbookFoundation Github: Free Programming Books][694]
+- [The 25 most recommended programming books of all time][697]
+- [Six Totally Worthwhile Personal Finance Books][698]
+- [The Psychology Of Computer Programming][729]
+- [Google SRE Books][731]
+- [Practical Python Repo][738]
+- [Papers we Love][746]
+- [Into the Tar Pit][747]
+- [The Mediocre Programmer][748]
+- [The OS Classics][762]
+- [Paul Graham: Recommended Books][779]
+- [Machine Learning from Scratch][781]
+- [Goalkicker: Free Programming Books][806]
+- [My Staff Software Engineering Reading List][821]
+- [10 Papers Every Developer Should Read][914]
+- [Software Architecture Books List][925]
+- [PragmaticEngineer: Holiday Tech Book Recommendations][948]
+- [Charlie Munger: 19 More Book Recommendations][1014]
+- [Papers for Software Engineers][1034]
+
+### Databases
+
+- [How does a relational database work - Coding Geek][186]
+- [NoSQL Databases&#58; a Survey and Decision Guidance][188]
+- [The Internals of PostgreSQL &#58; Introduction][189]
+- [Tuning PostgreSQL with pgbench Benchmarks][190]
+- [Postgresql Examples][398]
+- [PostgreSQL Exercises][399]
+- [Postgres Replication Cheat-Sheet][401]
+- [How to Fake a database design][503]
+- [Death by Database][504]
+- [Modeling a Universe by Curtis Poe][532]
+- [Mastery with SQL Course][617]
+- [pg_insights: scripts for postrgres health][620]
+- [There's a Relational Database in Your Unix CLI][621]
+- [A Simple Guide to Five Normal Forms in Relational Database Theory][622]
+- [Postgres Is Underrated - It Handles More than You Think][668]
+- [Postgres when it's not your job][669]
+- [Drawsql: Database schemas of opensource projects][745]
+- [PostgreSQL Explain][768]
+- [Some SQL Tricks of an Application DBA][775]
+- [The Art of PostgreSQL][785]
+- [Postgres advisory locks for python developers][788]
+- [Make Invalid States Unrepresentable][803]
+- [Postgres Permissions: Read only user][807]
+- [Simple Anomaly Detection Using Plain SQL][829]
+- [Minimal Modeling Series][837]
+- [Sqlite is not a toy database][856]
+- [Prisma Data Guid: Choosing and Using the right Database][857]
+- [Using Postgresql as a Data Warehouse][865]
+- [Do You Really Need Redis? How to Get Away with Just PostgreSQL][868]
+- [Indexes and Multicolumn Indexes Visualized][893]
+- [Mitigating Risk While Transitioning Databases][958]
+- [Essential elements of high performance applications: SQL indexes][995]
+- [Things You Should Know About Databases][1015]
+
+### Machine Learning
+
+- [A Course in Machine Learning][191]
+
+### Distributed Systems
+
+- [Notes on Distributed Systems for Beginners][192]
+- [Distributed Transactions&#58; The Icebergs of Microservices][193]
+- [4 reads for distributed systems][183]
+- [Class materials for a distributed systems lecture series][194]
+- [Distributed systems theory for the distributed systems engineer ][195]
+- [Distributed Architecture Concepts][196]
+- [Considering Strategies For Idempotency Without Distributed Locking With Ben Darfler ][654]
+- [A list for Distributed Systems Reading][656]
+- [Distributed systems learnings in 2019][706]
+- [Raft Is So Fetch: The Raft Consensus Algorithm Explained Through Mean Girls][711]
+- [How do you reason about a probabilistic distributed system?][794]
+- [Patterns of Distributed Systems][835]
+- [Foundational Distributed Systems Papers][846]
+- [Building Distributed Systems With Stateright][883]
+- [Testing Distributed Systems][935]
+- [Distributed Tracing: The Why, What, and How?][986]
+- [Principles of Distributed Computing Lectures][988]
+
+### Security
+
+- [Cipherli.st - Strong Ciphers for Apache, nginx and Lighttpd][197]
+- [Shared thoughts after 6+ years in Pentesting][198]
+- [Hacking with Python: 6 best online courses for ethical hackers][671]
+- [Manage passwords with openssl(1) and oathtool(1)][716]
+
+
+### Docker/Containers
+
+- [Docker orchestration | chrisbarra.me][201]
+- [Docker for Beginners][202]
+- [Docker for your users - Introducing user namespace][203]
+- [GitHub - hobby-kube/guide&#58; Kubernetes clusters for the hobbyist.][204]
+- [Teaching Kubernetes - Slashdeploy Blog][205]
+- [Kubernetes Playground][206]
+- [Kubernetes By Example][207]
+- [Docker and Node][208]
+- [Docker ARG, ENV and .env - a Complete Guide][209]
+- [Bootstrap Kubernetes the hard way on Google Cloud Platform. No scripts.][210]
+- [Kubernetes&#58; Getting Started][400]
+- [Docker for Python Apps][414]
+- [Revisting using Docker][420]
+- [Docker Containers on Desktop - Jessie Frazelle][477]
+- [One-shot Containers on Docker Swarm][479]
+- [Getting Started with Docker Secrets][480]
+- [My Love Hate Relationship with Docker and Container Orchestration Systems][491]
+- [Log Management for Docker Swarm with ELK Stack][498]
+- [Monitoring Docker Swarm with cAdvisor, InfluxDB and Grafana][499]
+- [Multi-Stage Dockerfiles and Python Virtualenvs][595]
+- [A review of the official Dockerfile best practices: good, bad, and insecure][627]
+- [From 30 to 230 Docker containers per host][643]
+- [Kubernetes Academy][650]
+- [How to deploy on remote Docker hosts with docker-compose][699]
+- [Building containers without Docker][705]
+- [You don't need an image to run a container][755]
+- [Learning K8S: Keep it simple][767]
+- ["Cloud-like" Infrastructure at Home - Part 1: LoadBalancers on the Metal][784]
+- [Container networking is simple][810]
+- [How are docker images built? A look into the Linux overlay file-systems and the OCI specification ][814]
+- [Use Node.js with Docker and Docker Compose to improve DX][828]
+- [Best Practices Around Production Ready Web Apps with Docker Compose][884]
+- [File Permissions: the painful side of Docker][886]
+- [Katacontainers: The Speed of Containers, the Security of VMs][887]
+- [Run multiple services in a container][899]
+- [Podman in Linux][900]
+- [Migrating from Docker to Podman][905]
+- [Everything useful I know about kubectl][916]
+- [Docker Mastery for Node.js][931]
+- [Skopeo: CLI for image operations and image repositories][940]
+- [How to mount Docker volume along with subfolders on the host?][951]
+- [LXC vs Docker: Which Container Platform Is Right for You?][977]
+
+### Elixir/Erlang
+
+- [How Supervisors Work][212]
+- [Stuff Goes Bad: Erlang in Anger][213]
+- [How Discord Scaled Elixir to 5,000,000 Concurrent Users][214]
+- [Learn You Some Erlang for Great Good!][215]
+- [Elixir School][216]
+- [Joy of Elixir][217]
+- [ElixirCasts - Elixir and Phoenix Screencasts][218]
+
+### Git
+
+- [Learn Git Branching Interactive][219]
+- [Build Git Learn Git][220]
+- [Multiple SSH for Git][221]
+
+### Javascript
+
+- [A re-introduction to JavaScript (JS tutorial)][222]
+- [Prototypes are Objects (and why that matters)][223]
+- [plainJS - The Vanilla JavaScript Repository][224]
+- [Javascript The Right Way][225]
+- [Siema - Lightweight and simple carousel with no dependencies][226]
+- [You might not need jQuery][227]
+- [Modern Javascript: Everything you missed over the last 10 years][890]
+
+### Raspberry Pi
+
+- [Raspberry Pi WiFi Configuration][231]
+- [Raspberry Pi Wifi Configure WPA1 with wpa_supplicant][232]
+- [Raspberry Pi Pinouts][233]
+- [Mmm... Pi-hole...][623]
+
+### Linux
+
+- [.htaccess Tutorial][234]
+- [Filesystem Hierarchy Standard][235]
+- [Linux Filesystem Tour][236]
+- [DNS Tools and Bind Tricks][237]
+- [USE Method&#58; Linux Performance Checklist][238]
+- [NGINX Tutorial&#58; Developing Modules][239]
+- [The TTY demystified][240]
+- [htaccess snippets][241]
+- [Basics of the Unix Philosophy][242]
+- [Linux Insides][243]
+- [Unix Toolbox][244]
+- [MIT PGP Key Server][245]
+- [Makefile Tutorial by Example][246]
+- [Operating Systems&#58; Three Easy Pieces][247]
+- [Unix as IDE Archives - Arabesque][248]
+- [HAproxy in the era of Microservices][249]
+- [Multimedia on Linux Command Line][250]
+- [Linux Performance Analysis Netflix][251]
+- [Top 10 DTrace scripts for Mac OS X][252]
+- [Linux Performance][253]
+- [Linux Journey (Linux Fu)][254]
+- [Writing my first shellcode][255]
+- [Reverse Engineering for beginners][256]
+- [Understanding Consensus and Paxos][257]
+- [Nginx Caching][258]
+- [Understanding Nginx HTTP Proxying, Load Balancing, Buffering, and Caching][259]
+- [Things to learn about Linux][260]
+- [Learn from your attackers][261]
+- [htop explained][262]
+- [systemd Sucks, Long Live systemd][263]
+- [How to build your own CDN for $25 in 1 Hour on DigitalOcean][264]
+- [Make files not war&#58; makefiles on my own terms][265]
+- [The Collapse of the UNIX Philosophy][266]
+- [SSL on nginx][267]
+- [SSL Nginx/apache Generator][268]
+- [SSL Server Test (Powered by Qualys SSL Labs)][269]
+- [SPDYCheck&#58; Testing Websites for SPDY Support][270]
+- [Linux tracing systems &amp; how they fit together - Julia Evans][271]
+- [Give me 15 minutes and I'll change your view of Linux tracing][272]
+- [Command Line Fu. Best linux commands][273]
+- [GPG/PGP Basics][274]
+- [Jessie Frazelle's Blog&#58; Home Lab is the Dopest Lab][275]
+- [Search the RPM repository on rpmfind.net][276]
+- [RPM Fusion - RPM Fusion][277]
+- [Package Manager CheatSheet][278]
+- [Pacman comands vs apt and DNF][279]
+- [How to Install Arch Linux complete steps][280]
+- [Configuring GRUB to boot the right kernel after an upgrade update][281]
+- [unixorn/awesome-zsh-plugins&#58; A collection of ZSH frameworks, plugins &amp; themes inspired by the various awesome list collections out there.][282]
+- [Kernel newbies][283]
+- [FreeBSD Handbook][394]
+- [packetlife.net/media/library/13/Wireshark_Display_Filters.pdf][228]
+- [Squid Transparent Proxy][229]
+- [How to install Kali Linux 1 0 7 on Virtual Box properly][230]
+- [Hints for writing unix tools][441]
+- [More hints for writing unix tools][437]
+- [Daemonizing a Process in Linux][438]
+- [Process Groups and Sessions][439]
+- [Linux Server Hardening][445]
+- [Lynis: Server Hardening Audit Tool][446]
+- [Reverse Engineering for Beginners][454]
+- [Anatomy of Linux DNS lookup Part III][456]
+- [Idiots guide to installing Arch on Lenovo Carbon][461]
+- [Where vim came from][466]
+- [The pfSense Book][467]
+- [Ripping audio cds to flac and mp3 with abcde][475]
+- [TCP Dump 101][476]
+- [Systemd: Rethinking PID 1][482]
+- [Video: Launchd: One Program to Rule them all][486]
+- [How Linux Creates Sockets][507]
+- [Moving from Gnome Desktop to i3 window manager on Arch Linux][530]
+- [Making the best of MacBook Air touchpad on Ubuntu][548]
+- [Operating Systems Development for Dummies][555]
+- [Everyday Use of GNU GUIX][556]
+- [Write your own Virtual Machine][559]
+- [RE guide for beginners: Methodology and tools][568]
+- [Adding Glue to a Desktop Environment][575]
+- [Learn Linux performance by reading nmon code][580]
+- [Makefiles, Best Practices ][584]
+- [Dotfile Madness][585]
+- [Linux Performance: Why You Should Almost Always Add Swap Space][604]
+- [The 101 of ELF files on Linux: Understanding and Analysis][610]
+- [Killing a process and all of its descendants][641]
+- [Sampler. Visualization for any shell command.][642]
+- [Syslog : The Complete System Administrator Guide][646]
+- [A deep dive into Linux Namespaces][647]
+- [My i3 Window Manager Setup][649]
+- [Linux Pressure Stall Information (PSI) by Example][659]
+- [Xplain: Explanations for the X11 window system][665]
+- [Varnish Authentication Telnet][667]
+- [Remapping mouse buttons to keyboard keys][670]
+- [A Surprisingly Underappreciated Unix Automation Tool][679]
+- [How Unix Works: Become a Better Software Engineer][685]
+- [Creating Sockets on Linux][688]
+- [PulseAudio under the hood][704]
+- [Nightmare: Intro to binary exploitation / reverse engineering course][714]
+- [Manage Contacts the Unix Way][718]
+- [Linux Kernel Teaching][719]
+- [Automating the Creation of QEMU Archlinux Images from Scratch][742]
+- [Crontab Guru][804]
+- [Introduction to Linux Control Groups (cgroups) (Video)][811]
+- [Getting Better at Linux with 10 mini-projects][817]
+- [Making Sense of The Audio Stack on Unix][818]
+- [Software Distrobutions And Their Roles Today][825]
+- [My Homelab Build][880]
+- [Unix Syscalls][906]
+- [Avoiding complexity with systemd][918]
+- [I introduced my 5-year-old and 2-year-old to startx and xmonad. They're DELIGHTED!][921]
+- [How X Window Managers Work, And How To Write One (Part I)][922]
+- [Auto-restart a crashed service in systemd][928]
+- [Systemd Playground][929]
+- [2022: My High End Linux PC][939]
+- [Make Systemd Spawn N number of processes][941]
+- [Implementing Serverless with rootless Podman and Systemd][942]
+- [Systemd for Developers: Socket Activation][943]
+- [Systemd: 10 Years Later][944]
+- [Nested KVM / QEMU / libvirt Virtualization on Ubuntu][952]
+- [Configuring default applications for xdg-open][970]
+- [Encrypted Cloud Backup: BorgBackup, Rclone, and Backblaze B2][979]
+- [An opinionated guide on how to reverse engineer software, part 1][920]
+
+### Shell
+
+- [Explainshell][284]
+- [Shell Programming Example][285]
+- [Shell Command Examples][286]
+- [Bash Styling][287]
+- [Defensive BASH programming][288]
+- [Awk in 20 Minutes][289]
+- [Correctly using Filenames and Pathnames][290]
+- [The Bash Academy][291]
+- [Command Line Styles][292]
+- [Software for a command line world][293]
+- [sshuttle: VPN meets SSH][294]
+- [TCPDump Tutorial][295]
+- [Writing systemd Units][296]
+- [Terminals Quirks][297]
+- [Advancing in the Bash Shell][298]
+- [UnixTextProcessing.pdf][299]
+- [Named pipes, process substitution and tee][300]
+- [Use the Unofficial Bash Strict Mode][301]
+- [Testing Bash applications][302]
+- [Bash scripting quirks &amp; safety tips][303]
+- [How &quot;Exit Traps&quot; Can Make Your Bash Scripts Way More Robust And Reliable][304]
+- [30 interesting commands for the Linux shell – Víctor López Ferrando][305]
+- [OfflineIMAP for MUTT][306]
+- [Zsh Configuration From the Ground Up][307]
+- [Bash scripting cheatsheet][308]
+- [Art of the Command Line][309]
+- [GitHub - sharkdp/shell-functools&#58; Functional programming tools for the shell][392]
+- [Convert values between RGB hex codes and xterm-256 color codes.][393]
+- [Google Style Guide][418]
+- [Advanced Bash-Scripting Guide][425]
+- [Bash One Lines][426]
+- [SSH Agent Forwarding considered Harmful][460]
+- [Save Scripts with set -euxo pipefail][526]
+- [Six ways to level up your nmap game][539]
+- [Comparing two 5GB JSON with JQ][544]
+- [Simple, Fast, Easy Parallelism in Shell Pipelines][549]
+- [Your terminal is not a terminal: An Introduction to Streams][601]
+- [Seven Surprising Bash Variables][613]
+- [The Tar Pipe][615]
+- [How to write idempotent Bash scripts][626]
+- [DIY ncurses: everything you ever wanted to know about terminals][652]
+- [Pure Bash Bible][663]
+- [A quick primer on dig][672]
+- [Testing Dolt using Bats][724]
+- [Mastering ZSH][766]
+- [Bash Pitfalls][793]
+- [How To User Bash Paramete Substition Like A Pro][796]
+- [Sockets in your shell][797]
+- [Command Line Interface Guidelines][798]
+- [Shell Startup Scripts][801]
+- [How to Set Environment Variables in Linux and Mac][826]
+- [fzf - the basics part 1 - layout][834]
+- [Better BASHing Through Technology][842]
+- [An Opinionated Guide to xargs][907]
+- [Useful sed][910]
+- [Anatomy of a Terminal Emulator][923]
+- [Shell Script Mistakes][927]
+- [Data Science At The Command Line][933]
+- [Bash Guide][936]
+- [Modern Bash (Zsh) Scripting][937]
+- [BASH Programming for Workflow Management][949]
+- [Bash Best Practices: Cheatsheet][950]
+- [ANSI Escape Sequences][990]
+- [Write a TUI in Bash][991]
+- [Introduction to the Taskfile format][1002]
+- [How fast are Linux pipes anyway?][1011]
+- [Plumber: CLI tool for Kafka, RabbitMQ and others][1058]
+
+### Go
+
+- [How to use interfaces in Go][635]
+- [Clean Go Code][666]
+- [Go Tools][675]
+- [The value in Go's Simplicity][682]
+- [Building a BitTorrent client from the ground up][702]
+- [Writing a SQL database form scratch in Go][737]
+- [Learn Go with Tests][1036]
+
+### SSH
+
+- [SSH Tricks | Servers for Hackers][310]
+- [Practical Tmux][311]
+- [Read The Tao of tmux | Leanpub][312]
+- [SSH Examples, Tips & Tunnels][570]
+
+### Architecture
+
+- [Nginx HTTP server boilerplate configs][313]
+- [High Scalability][314]
+- [eduCBA | System Admin Courses][315]
+- [Reading List For Designing High Scalability, High Availability, High Stability Back-End Systems Distributed Systems][386]
+- [What's in a production web application][473]
+- [Thundering Herds and Promises][598]
+- [How is software developed at Amazon? ][602]
+- [The Architecture of Open Source Applications][634]
+- [Organizing architectural katas][789]
+- [Segment: Introducing Centrifuge][859]
+- [What is Grafana? Why Use It?][860]
+- [How production engineers support global events on Facebook][861]
+- [Istio as an Example of When Not to Do Microservices][862]
+- [A step-by-step guide to single-spa][863]
+- [A Sketch of the Biggest Idea in Software Architecture: Narrow Waists][959]
+- [An In-Depth Introduction To Idempotency][960]
+- [Some benefits of simple software architectures][967]
+- [The Four Innovation Phases of Netflix's Trillions Scale Real-time Data Infrastructure][968]
+- [Why billing systems are a nightmare for engineers][983]
+- [Twelve-factor app anno 2022][987]
+- [That time we unplugged a data center to test our disaster readiness][989]
+- [From the Monolith to Microservices - Lessons from Google and eBay][1003]
+- [Building Self-driving Kafka clusters using open source components][1021]
+- [System Design Course on Github][1037]
+- [Webhooks.fyi][1040]
+- [Redis Explained - An Indepth Tutorial][1052]
+
+### NixOS/Nix
+
+- [Using Nixos as a router][812]
+- [Site to Site WireGuard Series][819]
+- [My Automagic NixOS WireGuard setup][820]
+- [Nix Flakes Series][822]
+- [nix.dev Opinionated guide for developers using Nix][830]
+- [A Gentle Introduction to the Nix Family][831]
+- [So, tell me about Nix][832]
+- [nix-script][847]
+- [Using Morph for deploying to Nixos][852]
+- [Practical Nix Flakes][854]
+- [Flakes are an obviously good thing][855]
+- [Understanding Nix's String Context][891]
+- [Ditch your version manager][898]
+- [Migrating to Nix Flakes][902]
+- [Paranoid NixOS Setup][904]
+- [Python on Nix][909]
+- [Devos: NixOS Template][915]
+- [How to learn Nix series][919]
+- [NixOS in the Cloud][924]
+- [NixOS: Headless Home Assistant][926]
+- [NixOS: The Ultimate Dev Environment][938]
+- [Lightning-fast CI with nixbuild.net][984]
+- [Nixos: Confederation][1020]
+- [Converting to Flakes][1027]
+- [Nix build No Chroot hack][1033]
+- [How do Nix Builds Work?][1060]
+
+### OSX/Mac
+
+- [Prompt Color/Customization][316]
+- [Eight Terminal Utilities Every OS X Command Line User Should Know][317]
+- [Install OS X 10.10 Yosemite in VirtualBox][318]
+
+### PHP
+
+- [tpunt/PHP7-Reference · GitHub][319]
+- [The 2018 Guide to Building Secure PHP Software - Paragon Initiative Enterprises Blog][320]
+- [PHP was never meant to die: PHP and Golang][541]
+
+### Vim
+
+- [Learn Vimscript the Hard Way][321]
+- [Vim Revisited][322]
+- [Productive Vim Shortcuts][323]
+- [Vim Croquet][324]
+- [Vim as PHP IDE][325]
+- [install macvim with lua support in homebrew][326]
+- [A Simpler Vim Statusline - Blaenk Denum][327]
+- [jez/vim-as-an-ide][328]
+- [Vim screencasts - YouTube][329]
+- [How to Do 90% of What Plugins Do (With Just Vim) - YouTube][330]
+- [Bugsnag Blog - Tmux and Vim - even better together][331]
+- [Tips and tricks][332]
+- [Literate Vimrc - Tyler Cipriani][333]
+- [12 Vim Tips][334]
+- [Vim-Galore: Everything you need to know about vim][335]
+- [Vim After 15 Years | Ian Langworth’s Things of Variable Interest][336]
+- [Using Vim as C/C++ IDE][416]
+- [How I revamped my Vim setup][596]
+- [History and effective use of Vim][651]
+- [Vim as a Go IDE][676]
+
+### Website Testing
+
+- [W3C Link Checker][337]
+- [W3C CSS Validation][338]
+- [W3C HTML Validation][339]
+- [MX Lookup Tool][340]
+- [intoDNS][341]
+
+### Frontend/Website Design
+
+- [Butterick’s Practical Typography][342]
+- [Frontend Development Huge List Resources][343]
+- [Become a Designer without school][344]
+- [Scalable and Modular Architecture for CSS][345]
+- [Frontend Development Performance Tips][346]
+- [Advanced HTML &amp; CSS][347]
+- [Can I use (Browser Support)][348]
+- [HTML5, CSS3, Javascript Tutorials][349]
+- [20 Browser Apps For Designers][350]
+- [Breezi - Web Design Remixer][351]
+- [Subtle Patterns][352]
+- [Bento - Web Development Tutorials][353]
+- [Flat UI - Free User Interface Kit][354]
+- [UI Patterns][355]
+- [HTTP and Rest Tutorial][356]
+- [Web Excel Example][357]
+- [Free Bootstrap Themes][358]
+- [Learning Resources For Web Designers][359]
+- [Stock Photos that don't suck][360]
+- [Expert JavaScript and Front-End Web Development Training Videos][361]
+- [Flexbox Froggy - A game for learning CSS flexbox][362]
+- [CSS Ruler][363]
+- [Free Learn Grid Layout video series][364]
+- [A Complete Guide to Grid | CSS-Tricks][365]
+- [SassMeister | The Sass Playground!][366]
+- [Foundation for Emails][367]
+- [webpack-contrib/awesome-webpack&#58; A curated list of awesome Webpack resources, libraries and tools][368]
+- [A Detailed Introduction To Webpack – Smashing Magazine][369]
+- [Master JavaScript Programming with 18 Open-Source Books - OSS Blog][370]
+- [GRID LAYOUT - a Collection by Gabi on CodePen][371]
+- [Practical Color Theory for People Who Code][372]
+- [ECMAScript 6 compatibility table ES6][373]
+- [JavaScripting.com - The Database of JavaScript Libraries][374]
+- [JavaScript End to End Testing Framework | Cypress.io alternative to Selenium][391]
+- [To www or not to www][551]
+
+### Windows
+
+- [Developer Tool List for Windows][375]
+- [Ninite - Install Multiple Applications][376]
+
+### Cryptocurrency
+
+- [How Blockchain Works][397]
+- [Unconfirmed Bitcoin Transactions][377]
+- [Coin Market Capitalizations][378]
+- [24 Hour Volume Rankings (Exchange)][379]
+- [Creating Safe Smart Contracts][427]
+- [Build Your First Ethereum Smart Contract][428]
+- [Build Ethereum DApps by Building Zombie Game][465]
+- [Everything you should know about certificates and PKI but are too afraid to ask][558]
+- [Crypto 101, introductory course on cryptography][569]
+- [Complete Guide to Fullstack Ethereum Development][897]
+
+### Privacy
+
+- [Prism Break: List of Secure apps][510]
+- [Panopticlick: Browser Privacy Test][511]
+- [Privacy Analyzer][763]
+- [Browser Fingerprinting: What Is It and What Should You Do About It?][693]
+- [DNS Leak Test][512]
+- [Alternatives to Google Products: the Complete List][612]
+
+### Writing
+
+- [A blogging style guide][543]
+- [Why does writing matter in remote work?][736]
+- [Writing a Book with Pandoc, Make, and Vim][733]
+- [How to write a programming book][750]
+- [Writing for Software Developers][754]
+- [How to write in plain English][782]
+- [Writing for Engineers][1008]
+- [How to Write Better with The Why, What, How Framework][1012]
+- [Short stories: How much do you make? How do you sell one? How long does it take to write?][1025]
+- [Good Managers Write Good][1041]
+
+### Finance
+
+- [Saving Money on International Payments as a Freelancer][734]
+
+### Misc
+
+- [PC Buying Guide][380]
+- [littleBits][381]
+- [Mathigon][382]
+- [NSA Proofed Email | 27 months][383]
+- [MTA, SPF, DKIM, PTR, WTF&#58; a quick checklist on how to send e-mail from your self hosted domain][385]
+- [Everything I've learned in 10 years of Blogging][561]
+- [How to earn your Macroeconomics and Finance white belt (as a software developer)][590]
+- [Advanced Investing: The Barbell Strategy for Bastards][609]
+- [Per-project Postgres][630]
+- [How to run live coding stream on twitch][774]
+- [Massive List of 65+ Open Source Music Production Tools][769]
+- [Taking my home work setup seriously][786]
+- [Hopkins Poker Course][795]
+- [Post-Retirement Calculator: Will My Money Survive Early Retirement?][799]
+- [Up for Grabs: Explore Open Source Projects][867]
+- [How To Use Your DSLR As A Webcam In Linux][892]
+- [Math Problems for children from 5 ro 15][895]
+- [What I Know About Cleaning and Seasoning Cast-Iron Skillets][896]
+- [12ft.io Paywall remover][911]
+- [Learn Accounting for Free][953]
+- [WebAssembly Everywhere][1018]
+- [Blue Zones: Areas where people reach age 100 at 10 times greater rates than in the United States][1042]
+- [Shannon's Demon & How Returns Can Be Created Out Of Thin Air][1043]
+- [Inflation Adjusted Total Returns][1044]
+
+[1]: http://jvns.ca/blog/2013/12/30/questions-im-asking-in-interviews/
+[3]: http://blog.alinelerner.com/lessons-from-a-years-worth-of-hiring-data/
+[4]: https://medium.com/@tomgoldenberg/my-google-interview-and-lessons-learned-43109881c521#.i0fwgdldh
+[5]: http://blog.robertelder.org/50-interviews-with-facebook-twitter-amazon-others/
+[6]: https://medium.com/this-happened-to-me/8f381aa6bd5e
+[7]: http://danluu.com/hiring-lemons/
+[8]: https://github.com/lukasz-madon/awesome-remote-job/
+[9]: https://github.com/jwasham/coding-interview-university
+[10]: https://blog.usejournal.com/the-software-engineering-job-ladder-4bf70b4c24f3
+[11]: https://www.keyvalues.com/blog/how-engineers-can-stand-out-from-the-applicant-pool
+[12]: https://github.com/basecamp/handbook
+[13]: https://blog.samaltman.com/productivity
+[14]: https://archive.ph/Bbqne
+[15]: https://medium.com/the-mission/10-000-hours-with-claude-shannon-12-lessons-on-life-and-learning-from-a-genius-e8b9297bee8f
+[16]: https://rework.withgoogle.com/subjects/managers/
+[17]: https://ngrok.com/
+[18]: https://github.com/wagoodman/bridgy
+[19]: https://archive.ph/PeHAw
+[20]: http://www.boilrplate.com/
+[21]: http://overapi.com/
+[22]: https://cookiecutter.readthedocs.io/en/latest/advanced/hooks.html
+[23]: https://www.kennethreitz.org/essays/repository-structure-and-python
+[25]: http://samyzaf.com/braude/PYTHON/tutorials/Python_coding_style.pdf
+[26]: http://python-history.blogspot.ca/2010/06/method-resolution-order.html
+[27]: https://help.dreamhost.com/hc/en-us/articles/115000702772-Installing-a-custom-version-of-Python-3
+[28]: http://www.djangobook.com
+[29]: http://www.gettingstartedwithdjango.com/
+[30]: http://learnpythonthehardway.org/
+[31]: http://automatetheboringstuff.com/
+[32]: http://www.toptal.com/python/python-class-attributes-an-overly-thorough-guide
+[33]: http://tech.magnetic.com/2015/05/optimize-python-with-closures.html
+[34]: http://ruslanspivak.com/lsbaws-part2/
+[35]: http://www.velvetcache.org/2010/03/01/looking-up-words-in-a-dictionary-using-python
+[36]: http://www.fullstackpython.com/flask.html
+[37]: https://realpython.com/blog/python/kickstarting-flask-on-ubuntu-setup-and-deployment/
+[38]: https://nylas.com/blog/packaging-deploying-python
+[39]: http://book.pythontips.com/en/latest/
+[40]: http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/
+[41]: http://www.devdungeon.com/content/working-binary-data-python
+[42]: https://github.com/amontalenti/elements-of-python-style
+[43]: https://gist.github.com/bearfrieze/a746c6f12d8bada03589
+[44]: https://realpython.com/blog/python/python-virtual-environments-a-primer/#.Vvk_XbD-AWw.hackernews
+[45]: http://blog.froehlichundfrei.de/2014/11/30/my-transition-to-python3-and-pyenv-goodby-virtualenvwrapper.html
+[47]: https://etscrivner.github.io/posts/2014/10/building-large-flask-apps-in-the-real-world/
+[48]: https://klibert.pl/statics/python-and-elixir/#/
+[50]: http://www.scipy-lectures.org/
+[51]: http://www.brendangregg.com/blog/2016-08-09/gdb-example-ncurses.html
+[52]: https://github.com/jonathanslenders/python-prompt-toolkit
+[53]: http://www.johnwittenauer.net/machine-learning-exercises-in-python-part-1/
+[54]: https://fangpenlin.com/posts/2012/08/26/good-logging-practice-in-python/
+[55]: http://www.discoversdk.com/blog/generators-in-python-3
+[56]: https://medium.com/@trstringer/the-easy-and-nice-way-to-do-cli-apps-in-python-5d9964dc950d#.ljorjv3ku
+[57]: https://wiki.python.org/moin/PythonDecoratorLibrary#Logging_decorator_with_specified_logger_.28or_default.29
+[58]: https://www.pythonsheets.com/
+[59]: https://regex101.com/
+[60]: http://cramer.io/2013/06/27/serving-python-web-applications
+[61]: https://d0ugal.github.io/pynd/
+[62]: https://github.com/springload/awesome-wagtail
+[63]: https://semaphoreci.com/community/tutorials/getting-started-with-mocking-in-python
+[64]: https://github.com/keon/algorithms
+[65]: https://djangopackages.org/grids/
+[66]: http://www.cdrf.co/
+[67]: https://www.youtube.com/watch?v=tkwZ1jG3XgA
+[68]: https://ccbv.co.uk/
+[69]: http://uwsgi-docs-additions.readthedocs.io/en/latest/
+[70]: http://sedimental.org/the_packaging_gradient.html
+[71]: https://denibertovic.com/posts/celery-best-practices/
+[72]: https://github.com/octoenergy/styleguide/blob/master/python.md
+[73]: http://dizballanze.com/django-project-optimization-part-1/
+[74]: https://pythonprogramminglanguage.com/text-to-speech/
+[75]: https://www.digitalocean.com/community/questions/run-django-python-2-and-python-3-apps-with-uwsgi-and-nginx-on-same-server
+[76]: http://www.eidel.io/2017/07/10/dockerizing-django-uwsgi-postgres/
+[77]: https://medium.com/technology-nineleaps/abstract-base-classes-in-python-2f8366c140a2
+[78]: http://kanoki.org/2017/07/16/pandas-in-a-nutshell/
+[79]: https://snarky.ca/how-the-heck-does-async-await-work-in-python-3-5/
+[80]: https://www.git-pull.com/code_explorer/django-vs-flask.html
+[81]: https://github.com/donnemartin/interactive-coding-challenges
+[82]: http://lucasg.github.io/2017/07/21/Porting-an-historic-Python2-module-into-Python3/
+[83]: http://amir.rachum.com/blog/2017/07/28/python-entry-points/
+[84]: https://github.com/ActiveState/code/tree/master/recipes/Python
+[85]: https://www.electricmonk.nl/log/2017/08/06/understanding-pythons-logging-module/
+[86]: https://codewithoutrules.com/2017/08/10/python-decorators/
+[87]: https://codewithoutrules.com/2017/08/16/concurrency-python/
+[88]: https://jakevdp.github.io/PythonDataScienceHandbook/
+[89]: https://github.com/metachris/logzero
+[90]: http://strftime.org/
+[91]: https://www.dataquest.io/blog/making-538-plots/
+[92]: https://pyformat.info/
+[93]: http://www.learndatasci.com/python-finance-part-3-moving-average-trading-strategy/
+[94]: https://pythonprogramming.net/finance-programming-python-zipline-quantopian-intro/
+[95]: http://cdf.9vo.lt/
+[96]: https://github.com/kennethreitz/setup.py
+[97]: http://mitchel.me/2017/django-service-objects/
+[98]: https://www.ynonperek.com/2017/09/21/python-exercises/
+[99]: http://testandcode.com/
+[100]: http://journalpanic.com/post/wrapping-subprocesses-in-asyncio/
+[101]: https://hackernoon.com/learn-blockchains-by-building-one-117428612f46
+[102]: https://medium.com/zeitcode/django-middlewares-and-the-request-response-cycle-fcbf8efb903f
+[103]: http://tinaja.computer/2017/10/27/gspread.html
+[104]: https://github.com/faif/python-patterns
+[105]: https://fkromer.github.io/python-pattern-references/design/
+[106]: https://archive.ph/BnW9I
+[107]: https://devel.tech/tips/n/pIpEnvNh/pipenv/
+[108]: https://snarky.ca/a-tutorial-on-python-package-building/
+[109]: https://www.youtube.com/playlist?list=PLzUGFf4GhXBLEQsoOfLzhH6JKybt8I5Ec
+[110]: https://github.com/norvig/pytudes
+[111]: http://pbpython.com/pathlib-intro.html
+[112]: https://www.datasciencecentral.com/profiles/blogs/implementing-a-neural-network-from-scratch-in-python-an
+[113]: https://lintlyci.github.io/Flake8Rules/
+[114]: https://hynek.me/articles/python-app-deployment-with-native-packages/
+[115]: http://dan.bravender.net/2012/5/11/git-based_fabric_deploys_are_awesome.html
+[116]: http://akaptur.com/blog/2013/08/14/python-bytecode-fun-with-dis/
+[117]: http://www.paulox.net/2017/12/22/full-text-search-in-django-with-postgresql/
+[118]: https://malramsay.com/post/perils-of-packaging/
+[119]: http://charlesleifer.com/blog/building-a-simple-redis-server-with-python/
+[120]: https://rushter.com/blog/pickle-serialization-internals/
+[121]: http://python-patterns.guide/
+[122]: https://medium.com/@hakibenita/9-django-tips-for-working-with-databases-beba787ed7d3
+[123]: https://simpleisbetterthancomplex.com/tutorial/2018/01/29/how-to-implement-dependent-or-chained-dropdown-list-with-django.html
+[124]: https://books.agiliq.com/projects/django-admin-cookbook/en/latest/
+[125]: http://tech.octopus.energy/news/2016/05/05/django-elb-health-checks.html
+[126]: https://hynek.me/articles/sharing-your-labor-of-love-pypi-quick-and-dirty/
+[127]: https://medium.com/@alairock/asyncio-basics-in-python-29bf30cf254f
+[128]: https://jacobian.org/writing/when-pypi-goes-down/
+[129]: https://glyph.twistedmatrix.com/2016/08/attrs.html
+[130]: https://able.bio/rhett/lessons-learned-from-migrating-to-python-3--27jsj82
+[131]: https://realpython.com/python-modules-packages/
+[132]: https://www.b-list.org/weblog/2018/apr/25/lets-talk-about-packages/
+[133]: https://jalammar.github.io/visualizing-pandas-pivoting-and-reshaping/
+[134]: https://testdriven.io/developing-an-asynchronous-task-queue-in-python
+[135]: https://realpython.com/python-exceptions/
+[136]: https://libcloud.apache.org/
+[137]: https://gist.github.com/JonasGroeger/1b5155e461036b557d0fb4b3307e1e75
+[138]: https://linuxcluster.wordpress.com/2012/06/11/automate-pushing-of-ssh-copy-id-to-multiple-servers/
+[139]: http://docs.openstack.org/infra/system-config/jjb.html
+[140]: https://wiki.jenkins-ci.org/display/JENKINS/JobConfigHistory+Plugin
+[141]: http://aarvik.dk/linux-monitoring-tools-suggestions-from-hacker-news/
+[142]: http://www.linuxtraining.co.uk/download/new_linux_course_modules.pdf
+[143]: http://www.opsschool.org/en/latest/
+[144]: https://blog.gruntwork.io/why-we-use-terraform-and-not-chef-puppet-ansible-saltstack-or-cloudformation-7989dad2865c
+[145]: https://www.expeditedssl.com/aws-in-plain-english
+[146]: https://github.com/Fewbytes/rubber-docker
+[147]: https://blog.gruntwork.io/a-comprehensive-guide-to-terraform-b3d32832baca
+[148]: https://felixangell.com/blog/virtual-machine-in-c
+[149]: https://github.com/btrask/stronglink/blob/master/SUBSTANCE.md
+[150]: https://matt.sh/howto-c
+[151]: http://brennan.io/2015/01/16/write-a-shell-in-c/
+[152]: http://arjunsreedharan.org/post/148675821737/write-a-simple-memory-allocator
+[153]: http://hondu.co/blog/write-a-strace-and-gdb
+[154]: https://beej.us/guide/bgc/
+[155]: http://cslibrary.stanford.edu/101/
+[156]: http://oclint.org/
+[157]: https://cdecl.org/
+[158]: https://www.enlightenment.org/docs/c/start
+[159]: http://www.c-faq.com/
+[160]: https://medium.com/tech-talk/d5f8051afce2
+[161]: http://software-carpentry.org/
+[162]: http://bigocheatsheet.com/
+[163]: http://www.mjt.me.uk/posts/falsehoods-programmers-believe-about-addresses/
+[164]: https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md
+[165]: http://dfir.org/?q=node/8/
+[166]: http://matt.might.net/articles/what-cs-majors-should-know/
+[167]: http://kevinlondon.com/2015/05/05/code-review-best-practices.html
+[168]: http://hackershelf.com/browse/?popular=1
+[169]: http://www.algorithmist.com/index.php/Main_Page
+[170]: http://ferd.ca/the-little-printf.html
+[171]: http://firstround.com/review/forget-technical-debt-heres-how-to-build-technical-wealth/?_hsenc=p2ANqtz--kPw8wFvKVfV1GLca96jgrr2yWHIGRoFkCjsYzB1eY_6CWIsHTOIZp_ion68LPMGyONheMaUCanW0tA7FmqK5LF1XT6A&amp;_hsmi=32846075
+[172]: https://systemswe.love/videos
+[173]: https://tuhdo.github.io/os01/
+[174]: https://www.programmableweb.com/news/why-messaging-queues-suck/analysis/2017/02/13
+[175]: https://github.com/kdeldycke/awesome-falsehood
+[176]: https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/
+[177]: https://github.com/donnemartin/system-design-primer
+[178]: https://12factor.net/
+[179]: https://gist.github.com/rondy/af1dee1d28c02e9a225ae55da2674a6f
+[182]: http://www.catonmat.net/series/my-top-100-science-programming-computer-books
+[183]: https://blog.separateconcerns.com/2015-07-07-four-easy-reads-distsys.html
+[185]: http://gameprogrammingpatterns.com/contents.html
+[186]: http://coding-geek.com/how-databases-work/
+[187]: http://visualgo.net/
+[188]: https://medium.baqend.com/nosql-databases-a-survey-and-decision-guidance-ea7823a822d#.cxgl1igl1
+[189]: http://www.interdb.jp/pg/index.html
+[190]: https://blog.codeship.com/tuning-postgresql-with-pgbench/
+[191]: http://ciml.info/
+[192]: https://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/
+[193]: http://www.grahamlea.com/2016/08/distributed-transactions-microservices-icebergs/
+[194]: https://github.com/aphyr/distsys-class
+[195]: http://the-paper-trail.org/blog/distributed-systems-theory-for-the-distributed-systems-engineer/
+[196]: http://blog.pragmaticengineer.com/distributed-architecture-concepts-i-have-learned-while-building-payments-systems/
+[197]: https://cipherli.st/
+[198]: https://0x00sec.org/t/shared-thoughts-after-6-years-in-pentesting/2492
+[199]: https://www.charlesproxy.com/
+[200]: https://github.com/ranger/ranger/wiki/Official-user-guide
+[201]: https://chrisbarra.xyz/posts/docker-orchestration/
+[202]: http://prakhar.me/docker-curriculum/
+[203]: https://blog.yadutaf.fr/2016/04/14/docker-for-your-users-introducing-user-namespace/
+[204]: https://github.com/hobby-kube/guide
+[205]: http://blog.slashdeploy.com/2017/02/19/teaching-kubernetes/
+[206]: http://play-with-k8s.com/
+[207]: http://kubernetesbyexample.com/
+[208]: https://derickbailey.com/2017/06/07/docker-javascript-developers-site-training/
+[209]: https://vsupalov.com/docker-arg-env-variable-guide/
+[210]: https://github.com/kelseyhightower/kubernetes-the-hard-way
+[211]: https://chrisshort.net/devops-readme.md/
+[212]: https://jbodah.github.io/blog/2016/11/18/supervisors-work/
+[213]: https://www.erlang-in-anger.com/
+[214]: https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b
+[215]: http://learnyousomeerlang.com/content
+[216]: https://elixirschool.com/en/
+[217]: https://joyofelixir.com/
+[218]: https://elixircasts.io/
+[219]: http://pcottle.github.io/learnGitBranching/
+[220]: http://kushagragour.in/blog/2014/01/build-git-learn-git/
+[221]: https://confluence.atlassian.com/pages/viewpage.action?pageId=271943168
+[222]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript
+[223]: http://raganwald.com/2015/06/10/mixins.html
+[224]: https://plainjs.com/
+[225]: http://jstherightway.org/
+[226]: https://pawelgrzybek.com/siema/
+[227]: http://youmightnotneedjquery.com/?hn
+[228]: http://packetlife.net/media/library/13/Wireshark_Display_Filters.pdf
+[229]: http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html
+[230]: https://www.youtube.com/watch?v=2Lpz91EkgnA
+[231]: http://raspberry-at-home.com/wifi-configuration/
+[232]: http://kerneldriver.wordpress.com/2012/10/21/configuring-wpa2-using-wpa_supplicant-on-the-raspberry-pi/
+[233]: https://pinout.xyz/
+[234]: http://net.tutsplus.com/tutorials/other/the-ultimate-guide-to-htaccess-files/
+[235]: http://www.pathname.com/fhs/
+[236]: http://tuxradar.com/content/take-linux-filesystem-tour/
+[237]: http://strotmann.de/~cas/bind-tricks-talk/
+[238]: http://www.brendangregg.com/USEmethod/use-linux.html
+[239]: http://www.airpair.com/nginx/extending-nginx-tutorial
+[240]: http://www.linusakesson.net/programming/tty/index.php
+[241]: https://github.com/phanan/htaccess
+[242]: http://www.catb.org/esr/writings/taoup/html/ch01s06.html
+[243]: https://github.com/0xAX/linux-insides
+[244]: http://cb.vu/unixtoolbox.xhtml
+[245]: http://pgp.mit.edu/
+[246]: http://makefiletutorial.com/
+[247]: http://pages.cs.wisc.edu/~remzi/OSTEP/
+[248]: http://blog.sanctum.geek.nz/series/unix-as-ide/
+[249]: http://47ron.in/blog/2015/10/23/haproxy-in-the-era-of-microservices.html
+[250]: https://sandilands.info/sgordon/multimedia-on-linux-command-line
+[251]: http://techblog.netflix.com/2015/11/linux-performance-analysis-in-60s.html
+[252]: http://dtrace.org/blogs/brendan/2011/10/10/top-10-dtrace-scripts-for-mac-os-x/
+[253]: http://www.brendangregg.com/linuxperf.html
+[254]: https://linuxjourney.com/
+[255]: https://0day.work/writing-my-first-shellcode-iptables-p-input-accept/
+[256]: https://github.com/dennis714/RE-for-beginners/blob/master/README.md
+[257]: http://ifeanyi.co/posts/understanding-consensus/
+[258]: https://serversforhackers.com/nginx-caching
+[259]: https://www.digitalocean.com/community/tutorials/understanding-nginx-http-proxying-load-balancing-buffering-and-caching
+[260]: https://jvns.ca/blog/2016/11/21/things-to-learn-about-linux/
+[261]: https://www.robertputt.co.uk/learn-from-your-attackers-ssh-honeypot.html
+[262]: https://peteris.rocks/blog/htop/
+[263]: https://naftuli.wtf/2017/01/12/systemd-is-awful/
+[264]: https://www.scalescale.com/rolling-your-own-cdn-build-a-3-continent-cdn-for-25-in-1-hour/
+[265]: https://fabianstumpf.de/articles/makefiles.htm
+[266]: https://kukuruku.co/post/the-collapse-of-the-unix-philosophy/
+[267]: https://gauntface.com/blog/2014/09/09/your-guide-to-ssl-on-nginx
+[268]: https://mozilla.github.io/server-side-tls/ssl-config-generator/
+[269]: https://www.ssllabs.com/ssltest/index.html
+[270]: https://spdycheck.org/
+[271]: https://jvns.ca/blog/2017/07/05/linux-tracing-systems/
+[272]: http://www.brendangregg.com/blog/2016-12-27/linux-tracing-in-15-minutes.html
+[273]: http://www.commandlinefu.com/commands/browse/sort-by-votes
+[274]: http://aplawrence.com/Basics/gpg.html
+[275]: https://blog.jessfraz.com/post/home-lab-is-the-dopest-lab/
+[276]: http://rpmfind.net/linux/rpm2html/search.php
+[277]: https://rpmfusion.org/
+[278]: https://distrowatch.com/dwres.php?resource=package-management
+[279]: https://wiki.archlinux.org/index.php/Pacman/Rosetta
+[280]: https://computingforgeeks.com/install-arch-linux/
+[281]: https://statusq.org/archives/2012/10/24/4584/
+[282]: https://github.com/unixorn/awesome-zsh-plugins
+[283]: https://kernelnewbies.org
+[284]: http://explainshell.com/
+[285]: http://matt.might.net/articles/bash-by-example/
+[286]: http://linux-commands-examples.com/
+[287]: http://misc.flogisoft.com/bash/tip_colors_and_formatting
+[288]: http://www.kfirlavi.com/blog/2012/11/14/defensive-bash-programming/
+[289]: http://ferd.ca/awk-in-20-minutes.html
+[290]: http://www.dwheeler.com/essays/filenames-in-shell.html
+[291]: http://www.bash.academy/
+[292]: http://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.html
+[293]: http://tim.thechases.com/posts/cli/software-for-a-command-line-world/
+[294]: https://github.com/apenwarr/sshuttle
+[295]: http://jvns.ca/blog/2016/03/17/tcpdump-is-amazing/
+[296]: http://hokstadconsulting.com/devops/writing-systemd-units
+[297]: https://catern.com/posts/terminal_quirks.html
+[298]: http://samrowe.com/wordpress/advancing-in-the-bash-shell/
+[299]: http://www.oreilly.com/openbook/utp/UnixTextProcessing.pdf
+[300]: https://kaushikghose.wordpress.com/2016/10/27/named-pipes-process-substitution-and-tee/
+[301]: http://redsymbol.net/articles/unofficial-bash-strict-mode/
+[302]: https://medium.com/wemake-services/testing-bash-applications-85512e7fe2de
+[303]: https://jvns.ca/blog/2017/03/26/bash-quirks/
+[304]: http://redsymbol.net/articles/bash-exit-traps/
+[305]: https://www.lopezferrando.com/30-interesting-shell-commands/
+[306]: https://wiki.archlinux.org/index.php/OfflineIMAP
+[307]: https://zanshin.net/2013/02/02/zsh-configuration-from-the-ground-up/
+[308]: https://devhints.io/bash
+[309]: https://github.com/jlevy/the-art-of-command-line
+[310]: https://serversforhackers.com/c/ssh-tricks
+[311]: https://mutelight.org/practical-tmux
+[312]: https://leanpub.com/the-tao-of-tmux/read
+[313]: https://github.com/h5bp/server-configs-nginx
+[314]: http://highscalability.com/;jsessionid=743E840B2729E0A372DE4C9E044B9280.v5-web018
+[315]: https://www.educba.com/my-courses/index-bundle.php#
+[316]: http://blog.taylormcgann.com/tag/prompt-color/
+[317]: http://www.mitchchn.me/2014/os-x-terminal/
+[318]: http://blog.frd.mn/install-os-x-10-10-yosemite-in-virtualbox/
+[319]: https://github.com/tpunt/PHP7-Reference#fixes-to-foreachs-behaviour
+[320]: https://paragonie.com/blog/2017/12/2018-guide-building-secure-php-software
+[321]: http://learnvimscriptthehardway.stevelosh.com/?published
+[322]: http://mislav.uniqpath.com/2011/12/vim-revisited/
+[323]: http://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/
+[324]: http://www.drbunsen.org/vim-croquet/
+[325]: http://blog.joncairns.com/2012/05/using-vim-as-a-php-ide/
+[326]: http://www.codeography.com/2013/06/11/install-macvim-with-lua-support.html
+[327]: http://www.blaenkdenum.com/posts/a-simpler-vim-statusline/
+[328]: https://github.com/jez/vim-as-an-ide
+[329]: https://www.youtube.com/playlist?list=PLwJS-G75vM7kFO-yUkyNphxSIdbi_1NKX
+[330]: https://www.youtube.com/watch?v=XA2WjJbmmoM
+[331]: https://blog.bugsnag.com/tmux-and-vim/
+[332]: https://bluz71.github.io/2017/05/15/vim-tips-tricks.html
+[333]: https://tylercipriani.com/blog/2017/06/14/literate-vimrc/
+[334]: https://dalibornasevic.com/posts/43-12-vim-tips
+[335]: https://github.com/mhinz/vim-galore
+[336]: https://statico.github.io/vim3.html
+[337]: http://validator.w3.org/checklink
+[338]: http://jigsaw.w3.org/css-validator/
+[339]: http://validator.w3.org/
+[340]: http://mxtoolbox.com/
+[341]: http://www.intodns.com/
+[342]: http://practicaltypography.com/
+[343]: https://gist.github.com/dypsilon/5819504
+[344]: http://karenx.com/blog/how-to-become-a-designer-without-going-to-design-school/
+[345]: http://smacss.com/
+[346]: http://csswizardry.com/2013/01/front-end-performance-for-web-designers-and-front-end-developers/
+[347]: http://learn.shayhowe.com/advanced-html-css/
+[348]: http://caniuse.com/
+[349]: http://thecodeplayer.com/
+[350]: http://designwoop.com/2012/07/20-super-useful-browser-apps-for-designers/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+designwoop+%28Design+Woop%29
+[351]: http://breezi.com/
+[352]: http://subtlepatterns.com/
+[353]: http://www.bentobox.io/
+[354]: http://designmodo.github.io/Flat-UI/
+[355]: http://ui-patterns.com/
+[356]: http://net.tutsplus.com/tutorials/other/a-beginners-introduction-to-http-and-rest/
+[357]: http://jsfiddle.net/ondras/hYfN3/
+[358]: http://www.blacktie.co/
+[359]: http://www.smashingmagazine.com/2014/02/14/learning-resources-roundup/
+[360]: https://medium.com/design-ux/62ae4bcbe01b
+[361]: https://frontendmasters.com/#samples
+[362]: http://flexboxfroggy.com/
+[363]: http://katydecorah.com/css-ruler/
+[364]: http://gridbyexample.com/video/
+[365]: https://css-tricks.com/snippets/css/complete-guide-grid/
+[366]: http://www.sassmeister.com/gist/5bbe8480c48e2fc10ab5
+[367]: http://foundation.zurb.com/emails/docs/
+[368]: https://github.com/webpack-contrib/awesome-webpack
+[369]: https://www.smashingmagazine.com/2017/02/a-detailed-introduction-to-webpack/
+[370]: https://www.ossblog.org/master-javascript-programming-with-open-source-books/
+[371]: https://codepen.io/collection/DgwjNL/
+[372]: https://tallys.github.io/color-theory/
+[373]: https://kangax.github.io/compat-table/es6/
+[374]: https://www.javascripting.com/
+[375]: http://www.hanselman.com/blog/ScottHanselmans2014UltimateDeveloperAndPowerUsersToolListForWindows.aspx
+[376]: http://ninite.com/
+[377]: https://blockchain.info/unconfirmed-transactions
+[378]: https://coinmarketcap.com/coins/
+[379]: https://coinmarketcap.com/exchanges/volume/24-hour/
+[380]: http://www.logicalincrements.com/
+[381]: http://littlebits.cc/
+[382]: http://world.mathigon.org/
+[383]: http://www.27months.com/2013/10/its-always-sunny-in-iceland-or-how-i-nsa-proofed-my-email/
+[385]: https://kimonote.com/@mildbyte/mta-spf-dkim-ptr-wtf-a-quick-checklist-on-how-to-send-e-mail-from-your-domain-3020/
+[386]: https://github.com/binhnguyennus/awesome-scalability
+[387]: https://github.com/zeeshanu/learn-regex
+[388]: http://mnx.io/blog/a-proper-server-naming-scheme/
+[389]: https://www.youtube.com/watch?v=HyznrdDSSGM&amp;feature=youtu.be
+[390]: https://github.com/kamranahmedse/design-patterns-for-humans/blob/master/README.md
+[391]: https://www.cypress.io/
+[392]: https://github.com/sharkdp/shell-functools
+[393]: https://gist.github.com/MicahElliott/719710
+[394]: https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/
+[395]: https://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/
+[396]: http://www.lighterra.com/papers/modernmicroprocessors/
+[397]: https://anders.com/blockchain/
+[398]: http://www.postgresqltutorial.com/
+[399]: https://www.pgexercises.com/
+[400]: https://chrisshort.net/kubernetes-getting-started/
+[401]: http://thebuild.com/blog/2018/01/02/a-replication-cheat-sheat/
+[402]: https://sedimental.org/glom_restructured_data.html
+[404]: https://lobste.rs/
+[405]: https://news.ycombinator.com/
+[406]: https://www.discoverdev.io/
+[407]: https://hackernoon.com/12-manager-readmes-from-silicon-valleys-top-tech-companies-26588a660afe
+[408]: https://www.martinfowler.com/bliki/BlueGreenDeployment.html
+[409]: https://wiki.python.org/moin/PythonSpeed/PerformanceTips
+[411]: https://vinta.ws/code/parallel-tasks-in-python-concurrent-futures.html
+[412]: https://www.soliantconsulting.com/blog/determining-if-two-date-ranges-overlap
+[413]: https://medium.com/applied-data-science/how-to-build-your-own-alphazero-ai-using-python-and-keras-7f664945c188
+[414]: https://blog.hasura.io/how-to-write-dockerfiles-for-python-web-apps-6d173842ae1d
+[415]: https://linode.com/docs/development/use-a-linode-for-web-development-on-remote-devices/
+[416]: http://www.alexeyshmalko.com/2014/using-vim-as-c-cpp-ide/
+[417]: https://azeria-labs.com/the-importance-of-deep-work-the-30-hour-method-for-learning-a-new-skill/
+[418]: https://google.github.io/styleguide/shell.xml
+[419]: https://realpython.com/python-data-classes/
+[420]: https://gregoryszorc.com/blog/2018/05/16/revisiting-using-docker/
+[421]: https://medium.com/@s16h/pythons-notimplemented-type-2d720137bf41
+[422]: https://about.gitlab.com/2018/05/17/eliminating-distractions-and-getting-things-done/
+[423]: http://blog.thedigitalcatonline.com/blog/2016/11/14/clean-architectures-in-python-a-step-by-step-example/
+[424]: http://nullprogram.com/blog/2018/06/10/
+[425]: http://tldp.org/LDP/abs/html/
+[426]: http://www.bashoneliners.com/
+[427]: https://muratbuffalo.blogspot.com/2018/04/paper-summary-step-by-step-towards.html
+[428]: https://codeburst.io/build-your-first-ethereum-smart-contract-with-solidity-tutorial-94171d6b1c4b
+[429]: http://blog.adnansiddiqi.me/getting-started-with-apache-kafka-in-python/
+[430]: https://blogs.msdn.microsoft.com/pythonengineering/2016/06/29/idiomatic-python-eafp-versus-lbyl/
+[431]: https://hackernoon.com/10-common-security-gotchas-in-python-and-how-to-avoid-them-e19fbe265e03
+[432]: https://www.bernat.tech/the-state-of-type-hints-in-python/
+[433]: https://realpython.com/python-youtube-channels/
+[434]: https://letsencrypt.org/docs/certificates-for-localhost/
+[435]: https://blog.akerl.org/2016/05/26/systemd-services-are-easy/
+[436]: https://wiki.archlinux.org/index.php/Systemd#Writing_unit_files
+[437]: https://www.mariocampos.io/blog/more-unix-tools-hints/
+[438]: https://codingfreak.blogspot.com/2012/03/daemon-izing-process-in-linux.html
+[439]: http://www.andy-pearce.com/blog/posts/2013/Aug/process-groups-and-sessions/
+[440]: https://medium.com/the-python-corner/the-art-of-avoiding-nested-code-ec8a780089b7
+[441]: https://monkey.org/~marius/unix-tools-hints.html
+[442]: https://www.jamesbeith.co.uk/blog/how-to-structure-django-projects/
+[443]: https://rushter.com/blog/python-virtualenv/
+[444]: https://books.agiliq.com/projects/django-orm-cookbook/en/latest/introduction.html
+[445]: https://www.digitalocean.com/community/questions/best-practices-for-hardening-new-sever-in-2017
+[446]: https://github.com/CISOfy/Lynis
+[447]: https://www.startupschool.org/library
+[448]: https://blog.plaid.com/building-an-inclusive-code-review-culture/
+[449]: https://blog.doordash.com/tips-for-building-high-quality-django-apps-at-scale-a5a25917b2b5
+[450]: https://medium.com/@jsonpify/you-dont-need-standup-9a74782517c1
+[451]: https://brandur.org/minimalism
+[452]: http://www.obeythetestinggoat.com/pages/book.html
+[453]: https://code.djangoproject.com/wiki/NewbieMistakes
+[454]: https://www.begin.re/
+[455]: https://blog.asrpo.com/making_a_low_level_debugger
+[456]: https://zwischenzugs.com/2018/07/06/anatomy-of-a-linux-dns-lookup-part-iii/
+[457]: http://buildyourownlisp.com/contents
+[458]: https://leanpub.com/really-friendly-command-line-intro
+[459]: https://medium.com/@henriksylvesterpedersen/you-dont-need-that-bastion-host-cd1b1717a9e7
+[460]: https://heipei.github.io/2015/02/26/SSH-Agent-Forwarding-considered-harmful/
+[461]: https://github.com/ejmg/an-idiots-guide-to-installing-arch-on-a-lenovo-carbon-x1-gen-6
+[462]: https://sudo.pagerduty.com/for_engineers/
+[463]: http://technosophos.com/2018/07/04/be-nice-and-write-stable-code.html
+[464]: https://abe-winter.github.io/2018/07/31/group-mind.html
+[465]: https://cryptozombies.io/
+[466]: https://twobithistory.org/2018/08/05/where-vim-came-from.html
+[467]: https://www.netgate.com/docs/pfsense/book/
+[468]: https://daringtolivefully.com/ted-talks-for-lifelong-learners
+[469]: https://blog.daftcode.pl/working-with-asynchronous-celery-tasks-lessons-learned-32bb7495586b
+[470]: https://notamonadtutorial.com/how-to-pretend-you-have-social-skills-963ced9d8642
+[471]: https://github.com/open-guides/og-aws
+[472]: https://simpleisbetterthancomplex.com/tutorial/2017/08/01/how-to-setup-amazon-s3-in-a-django-project.html
+[473]: https://stephenmann.io/post/whats-in-a-production-web-application/
+[474]: http://minifesto.org/
+[475]: https://pricklytech.wordpress.com/2013/02/15/ubuntu-ripping-audio-cds-to-flac-and-mp3-with-abcde/
+[476]: https://tcpdump101.com/
+[477]: https://blog.jessfraz.com/post/docker-containers-on-the-desktop/
+[478]: https://www.nytimes.com/2018/09/01/opinion/sunday/how-make-big-decision.html
+[479]: https://blog.alexellis.io/containers-on-swarm/
+[480]: https://howchoo.com/g/zwzkzduwmjy/getting-started-with-docker-secrets
+[481]: https://codewithoutrules.com/2018/09/04/python-multiprocessing/
+[482]: http://0pointer.de/blog/projects/systemd.html
+[483]: https://adl.io/essays/why-software-development-requires-servant-leaders/
+[484]: http://blog.interviewing.io/exactly-what-to-say-when-recruiters-ask-you-to-name-the-first-number/
+[485]: http://mcfunley.com/choose-boring-technology
+[486]: https://www.youtube.com/watch?v=SjrtySM9Dns
+[487]: https://dev.to/jillesvangurp/post-agile-embracing-asynchronous-processes-ifa
+[488]: https://github.com/trimstray/test-your-sysadmin-skills
+[489]: https://intensecrypto.org/public/
+[490]: https://austinkleon.com/2018/08/30/reading-with-a-pencil/
+[491]: https://penguindreams.org/blog/my-love-hate-relationship-with-docker-and-container-orchestration-systems/
+[492]: https://www.intercom.com/blog/run-less-software/
+[493]: https://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/
+[494]: https://www.tiptapcode.com/running-standalone-django-python-script/
+[495]: https://codeinthehole.com/tips/console-logging-to-stdout-in-django/
+[496]: https://lincolnloop.com/blog/django-logging-right-way/
+[497]: https://codeinthehole.com/tips/a-deferred-logging-file-handler-for-django/
+[498]: https://botleg.com/stories/log-management-of-docker-swarm-with-elk-stack/
+[499]: https://botleg.com/stories/monitoring-docker-swarm-with-cadvisor-influxdb-and-grafana/
+[500]: https://opensource.com/article/18/9/python-programming-book-list
+[501]: https://books.goalkicker.com/
+[502]: https://www.troyhunt.com/extended-validation-certificates-are-dead/
+[503]: https://www.youtube.com/watch?v=y1tcbhWLiUM&t=2624s
+[504]: https://ovid.github.io/articles/death-by-database.html
+[505]: http://andrewsforge.com/article/python-new-package-landscape/
+[506]: https://chase-seibert.github.io/blog/2015/06/25/python-mocking-cookbook.html
+[507]: https://ops.tips/blog/how-linux-creates-sockets/
+[508]: https://www.toptal.com/python/beginners-guide-to-concurrency-and-parallelism-in-python
+[509]: http://chriskiehl.com/article/parallelism-in-one-line/
+[510]: https://prism-break.org/en/all
+[511]: https://panopticlick.eff.org/
+[512]: https://www.dnsleaktest.com
+[513]: https://words.steveklabnik.com/how-to-be-an-open-source-gardener
+[514]: https://blog.regehr.org/archives/1393
+[515]: https://github.com/TheAlgorithms/Python/blob/master/README.md
+[516]: http://www.net-intro.com
+[517]: https://python-3-patterns-idioms-test.readthedocs.io/en/latest/index.html
+[518]: https://tavianator.com/spawn-of-satan/
+[519]: https://build-system.fman.io/pyqt5-tutorial
+[520]: https://www.7pace.com/blog/become-a-better-programmer-skills-development
+[521]: https://bolinfest.github.io/opensnoop-native/#part-2-initial-foray-into-ebpf
+[522]: https://queue.acm.org/detail.cfm?id=3280677
+[523]: http://guidetodatamining.com/
+[524]: https://avilpage.com/2018/05/deploying-scaling-django-channels.html
+[525]: https://chezsoi.org/lucas/blog/python-modules-imports-visualization.html
+[526]: https://vaneyckt.io/posts/safer_bash_scripts_with_set_euxo_pipefail/
+[527]: https://blog.qt.io/blog/2018/11/15/python-qt-3000-hours-developer-insight/
+[528]: https://blog.thecodewhisperer.com/permalink/integrated-tests-are-a-scam
+[529]: https://atilanevesoncode.wordpress.com/2018/11/20/unit-testing-do-as-i-say-dont-do-as-i-do/
+[530]: https://briancaffey.github.io/2017/10/17/moving-from-gnome-to-i3-on-arch-linux.html
+[531]: https://documentation.divio.com/
+[532]: https://www.youtube.com/watch?v=UmLwYLSmTSs
+[533]: https://jordanbpeterson.com/books/book-list/
+[534]: https://shalabh.com/programmable-systems/systems-not-programs.html
+[535]: https://blog.usejournal.com/a-quick-dive-into-pythons-slots-72cdc2d334e
+[536]: https://blog.gruntwork.io/5-lessons-learned-from-writing-over-300-000-lines-of-infrastructure-code-36ba7fadeac1
+[537]: https://pybit.es/selenium-pytest-and-django.html
+[538]: https://github.com/wemake-services/wemake-django-template
+[539]: https://zwischenzugs.com/2018/11/25/six-ways-to-level-up-your-nmap-game/
+[540]: https://www.sicpers.info/2018/12/more-speed-lower-velocity/
+[541]: https://blog.spiralscout.com/php-was-never-meant-to-die-830de87915ee
+[542]: https://www.gnu.org/software/guix/
+[543]: https://robertheaton.com/2018/12/06/a-blogging-style-guide/
+[544]: https://genius.engineering/faster-and-simpler-with-the-command-line-deep-comparing-two-5gb-json-files-3x-faster-by-ditching-the-code/
+[545]: https://piet.me/blog/x-reasons-not-to-skip-the-tests/
+[546]: https://julien.danjou.info/multi-value-syntax-tree-filtering-in-python/
+[547]: https://henrikwarne.com/2014/06/08/antifragility-and-software-development/
+[548]: https://int3ractive.com/2018/09/make-the-best-of-MacBook-touchpad-on-Ubuntu.html
+[549]: https://catern.com/posts/pipes.html
+[550]: https://dpc.pw/the-faster-you-unlearn-oop-the-better-for-you-and-your-software
+[551]: https://bjornjohansen.no/www-or-not
+[552]: https://bluejamesbond.github.io/CharacterMap/
+[553]: https://blog.sicara.com/perfect-python-command-line-interfaces-7d5d4efad6a2
+[554]: https://sizovs.net/2018/12/17/stop-learning-frameworks/
+[555]: https://medium.com/@lduck11007/operating-systems-development-for-dummies-3d4d786e8ac
+[556]: https://www.gnu.org/software/guix/blog/2018/back-from-seagl-2018/
+[557]: https://gkbrk.com/2018/12/free-hotel-wifi-with-python-and-selenium/
+[558]: https://smallstep.com/blog/everything-pki.html
+[559]: https://justinmeiners.github.io/lc3-vm/
+[560]: http://mycode.doesnot.run/2018/04/11/pivot/
+[561]: http://mycode.doesnot.run/2018/04/11/pivot/
+[562]: https://sedimental.org/awesome_python_applications.html
+[563]: https://medium.com/@cpuguy83/linux-containers-what-even-are-they-5cf4e8db38c6
+[564]: https://bl33pbl0p.github.io/systemd.html
+[565]: http://lpan.io/one-liner-dropbox-client/
+[566]: https://medium.com/@yegg/mental-models-i-find-repeatedly-useful-936f1cc405d
+[567]: http://parametri.city/blog/2018-12-23-language-oriented-software-engineering/index.html
+[568]: https://0x00sec.org/t/re-guide-for-beginners-methodology-and-tools/2242
+[569]: https://www.crypto101.io/
+[570]: https://hackertarget.com/ssh-examples-tunnels/
+[571]: https://write.as/p3csqbmkyno8pb99.md
+[572]: https://kanoki.org/2017/05/14/first-blog-post/
+[573]: https://ncase.me/remember/
+[574]: https://medium.freecodecamp.org/how-to-be-a-successful-software-engineer-6f82a5b1a82e
+[575]: https://venam.nixers.net/blog/unix/2019/01/07/win-automation.html
+[576]: https://www.tedinski.com/2018/03/20/wizarding-vs-engineering.html
+[577]: https://resources.infosecinstitute.com/creating-undetectable-custom-ssh-backdoor-python-z/
+[578]: https://github.com/sharkdp/hexyl/blob/master/README.md
+[579]: https://www.destroyallsoftware.com/compendium/network-protocols?share_key=97d3ba4c24d21147
+[580]: https://github.com/NanXiao/read-nmon-code-to-learn-analyzing-linux-performance
+[581]: https://mixmastamyk.bitbucket.io/pro_soft_dev/index.html
+[582]: https://www.imaginarycloud.com/blog/broken-window-to-developers-soul/
+[583]: https://blog.kentcdodds.com/write-tests-not-too-many-mostly-integration-5e8c7fff591c
+[584]: https://danyspin97.org/blog/makefiles-best-practices/
+[585]: https://0x46.net/thoughts/2019/02/01/dotfile-madness/
+[586]: http://jsomers.net/blog/gettiers
+[587]: https://hacker-tools.github.io/
+[588]: https://gto76.github.io/python-cheatsheet/
+[589]: https://io.made.com/introducing-command-handler/
+[590]: https://notamonadtutorial.com/how-to-earn-your-macroeconomics-and-finance-white-belt-as-a-software-developer-136e7454866f
+[591]: https://wyag.thb.lt/
+[592]: https://icyphox.sh/blog/python-for-re-1/
+[593]: https://nullprogram.com/blog/2019/03/22/
+[594]: http://www.opsschool.org/introduction.html
+[595]: https://pmac.io/2019/02/multi-stage-dockerfile-and-python-virtualenv/
+[596]: https://alex.dzyoba.com/blog/vim-revamp/
+[597]: https://github.com/danistefanovic/build-your-own-x
+[598]: https://instagram-engineering.com/thundering-herds-promises-82191c8af57d
+[599]: https://www.welcometothejungle.co/fr/articles/languages-software-go-elixir
+[600]: https://medium.com/@way/rage-against-the-codebase-programmers-and-negativity-d7d6b968e5f3
+[601]: https://lucasfcosta.com/2019/04/07/streams-introduction.html
+[602]: http://highscalability.com/blog/2019/3/4/how-is-software-developed-at-amazon.html
+[603]: https://gdcvault.com/play/1025778/Everyone-Watching-This-Is
+[604]: https://haydenjames.io/linux-performance-almost-always-add-swap-space/
+[605]: https://realpython.com/courses/python-3-concurrency-asyncio-module/
+[606]: https://realpython.com/pdf-python/
+[607]: http://brunorocha.org/python/from-dynaconf-import-settings.html
+[608]: https://blog.doismellburning.co.uk/django-an-unofficial-opinionated-faq/
+[609]: https://thedeepdish.org/advanced-investing-barbell-strategy/
+[610]: https://linux-audit.com/elf-binaries-on-linux-understanding-and-analysis/
+[611]: https://blog.cleancoder.com/uncle-bob/2019/06/16/ObjectsAndDataStructures.html
+[612]: https://restoreprivacy.com/google-alternatives/
+[613]: https://zwischenzugs.com/2019/05/11/seven-surprising-bash-variables/
+[614]: https://stevemcconnell.com/articles/classic-mistakes/
+[615]: https://blog.extracheese.org/2010/05/the-tar-pipe.html
+[616]: https://github.com/dwmkerr/hacker-laws
+[617]: https://www.masterywithsql.com/
+[618]: https://skerritt.blog/dynamic-programming/
+[619]: https://blog.ganssle.io/articles/2018/03/pytz-fastest-footgun.html
+[620]: https://github.com/lob/pg_insights/blob/master/README.md
+[621]: https://spin.atomicobject.com/2019/06/16/unix-cli-relational-database/
+[622]: http://bkent.net/Doc/simple5.htm
+[623]: https://www.troyhunt.com/mmm-pi-hole/
+[624]: http://orbifold.xyz/interfaces-are-forever.html
+[625]: https://www.joelonsoftware.com/2009/09/23/the-duct-tape-programmer/
+[626]: https://arslan.io/2019/07/03/how-to-write-idempotent-bash-scripts/
+[627]: https://pythonspeed.com/articles/official-docker-best-practices/
+[628]: https://thewalrus.ca/why-being-bored-is-good/
+[630]: https://jamey.thesharps.us/2019/05/29/per-project-postgres/
+[631]: https://www.newyorker.com/magazine/2018/12/10/the-friendship-that-made-google-huge
+[632]: https://medium.com/unbabel/refactoring-a-python-codebase-using-the-single-responsibility-principle-ed1367baefd6
+[633]: https://medium.com/codeiq/object-oriented-programming-the-trillion-dollar-disaster-%EF%B8%8F-92a4b666c7c7
+[634]: http://aosabook.org/en/index.html
+[635]: https://jordanorelli.com/post/32665860244/how-to-use-interfaces-in-go
+[636]: http://www.calnewport.com/blog/2011/12/23/flow-is-the-opiate-of-the-medicore-advice-on-getting-better-from-an-accomplished-piano-player/
+[637]: https://blog.pragmaticengineer.com/an-elegant-puzzle-book-review/
+[638]: https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/
+[639]: https://blog.stephsmith.io/how-to-be-great/
+[640]: https://hackernoon.com/education-of-a-programmer-aaecf2d35312
+[641]: http://morningcoffee.io/killing-a-process-and-all-of-its-descendants.html
+[642]: https://github.com/sqshq/sampler
+[643]: https://sven.stormbind.net/blog/posts/docker_from_30_to_230/
+[644]: https://medium.com/@bellmar/all-the-best-engineering-advice-i-stole-from-non-technical-people-eb7f90ca2f5f
+[645]: https://interrupt.memfault.com/blog/how-to-write-a-bootloader-from-scratch
+[646]: https://devconnected.com/syslog-the-complete-system-administrator-guide/
+[647]: http://ifeanyi.co/posts/linux-namespaces-part-1/
+[648]: https://sobolevn.me/2019/08/typechecking-django-and-drf
+[649]: https://samsaffron.com/archive/2019/04/09/my-i3-window-manager-setup
+[650]: https://kubernetes.academy/
+[651]: https://begriffs.com/posts/2019-07-19-history-use-vim.html
+[652]: http://xn--rpa.cc/irl/term.html
+[653]: http://blog.bityard.net/articles/2019/August/rabbit-holes-the-secret-to-technical-expertise.html
+[654]: https://www.bennadel.com/blog/3390-considering-strategies-for-idempotency-without-distributed-locking-with-ben-darfler.htm
+[655]: https://meltingasphalt.com/a-codebase-is-an-organism/
+[656]: https://gist.github.com/rusrushal13/4e66c5733bfdc46e96ee0a2dc20fe9fe
+[657]: https://www.lysator.liu.se/c/ten-commandments.html
+[658]: https://cdecl.org/
+[659]: https://unixism.net/2019/08/linux-pressure-stall-information-psi-by-example/
+[660]: https://medium.com/@alexgolec/google-interview-problems-ratio-finder-d7aa8bf201e3
+[661]: http://web.eecs.utk.edu/~huangj/cs360/360/notes/Memory/lecture.html
+[662]: https://gist.github.com/chitchcock/1281611
+[663]: https://github.com/dylanaraps/pure-bash-bible
+[664]: https://remotemore.com/candidates
+[665]: https://magcius.github.io/xplain/article/index.html
+[666]: https://github.com/Pungyeon/clean-go-article/blob/master/README.md
+[667]: https://varnish-cache.org/docs/5.1/reference/varnish-cli.html#authentication-with-s
+[668]: https://dev.to/heroku/postgres-is-underrated-it-handles-more-than-you-think-4ff3
+[669]: https://thebuild.com/presentations/not-your-job-pgconf-us-2017.pdf
+[670]: https://askubuntu.com/questions/1145057/remapping-mouse-buttons-to-keyboard-keys
+[671]: https://comparite.ch/python-courses
+[672]: https://mrkaran.dev/posts/dig-overview/
+[673]: https://medium.com/contentsquare-engineering-blog/multithreading-vs-multiprocessing-in-python-ece023ad55a
+[674]: https://drewdevault.com/2019/11/26/Avoid-traumatic-changes.html
+[675]: https://github.com/dominikh/go-tools
+[676]: https://octetz.com/posts/vim-as-go-ide
+[677]: https://dev.to/seattledataguy/the-interview-study-guide-for-software-engineers-764
+[678]: https://www.sametab.com/blog/frameworks-for-remote-working
+[679]: https://blog.robertelder.org/don-libes-expect-unix-automation-tool/
+[680]: https://daedtech.com/5-things-ive-learned-in-20-years-of-programming/
+[681]: https://www.indiehackers.com/post/what-skills-do-founders-find-most-crucial-for-running-their-businesses-e95d99d9ff
+[682]: https://benjamincongdon.me/blog/2019/11/11/The-Value-in-Gos-Simplicity/
+[683]: https://pythonspeed.com/articles/data-doesnt-fit-in-memory/
+[684]: http://pljung.de/posts/easy-concurrency-in-python/
+[685]: https://neilkakkar.com/unix.html
+[687]: https://zwischenzugs.com/2019/11/27/the-first-non-bullshit-book-about-culture-ive-read/
+[688]: https://idea.popcount.org/2019-11-06-creating-sockets/
+[689]: https://blog.startifact.com/posts/framework-patterns.html
+[690]: https://lucumr.pocoo.org/2020/1/1/async-pressure/
+[691]: https://davnicwil.com/just-build-the-product/
+[692]: https://codahale.com/work-is-work/
+[693]: https://pixelprivacy.com/resources/browser-fingerprinting/
+[694]: https://github.com/EbookFoundation/free-programming-books
+[695]: https://github.com/ripienaar/free-for-dev
+[696]: https://www.benkuhn.net/hard
+[697]: https://www.daolf.com/posts/best-programming-books/
+[698]: https://www.wealthsimple.com/en-ca/magazine/how-to-best-personal-finance-books
+[699]: https://www.docker.com/blog/how-to-deploy-on-remote-docker-hosts-with-docker-compose/
+[700]: https://lethain.com/staff-plus-eng-resources/
+[701]: https://www.embeddeduse.com/2019/06/26/lessons-from-six-years-as-a-solo-consultant/
+[702]: https://blog.jse.li/posts/torrent/
+[703]: https://www.netmeister.org/blog/ops-lessons.html
+[704]: https://gavv.github.io/articles/pulseaudio-under-the-hood/
+[705]: https://blog.alexellis.io/building-containers-without-docker/
+[706]: https://blog.pragmaticengineer.com/distributed-systems-learnings-in-2019/
+[707]: https://kunigami.blog/2019/12/26/python-type-hints/
+[708]: https://cliutils.gitlab.io/modern-cmake/
+[709]: https://yakking.branchable.com/posts/parsing-command-line-arguments-from-c/
+[710]: https://rachelbythebay.com/w/2020/03/07/costly/
+[711]: https://www.cockroachlabs.com/blog/raft-is-so-fetch/
+[712]: https://fsharpforfunandprofit.com/posts/understanding-parser-combinators/
+[713]: https://developers.google.com/optimization/scheduling/employee_scheduling
+[714]: https://guyinatuxedo.github.io/
+[715]: https://devarea.com/linux-kernel-development-and-writing-a-simple-kernel-module/
+[716]: https://www.romanzolotarev.com/pass.html
+[717]: https://medium.com/@cjolowicz/hypermodern-python-d44485d9d769
+[718]: https://vermaden.wordpress.com/2019/12/13/manage-contacts-the-unix-way/
+[719]: https://linux-kernel-labs.github.io/refs/heads/master/index.html
+[721]: https://www.b-list.org/weblog/2020/mar/16/no-service/
+[722]: https://forum.djangoproject.com/t/structuring-large-complex-django-projects-and-using-a-services-layer-in-django-projects/1487/8
+[723]: https://www.jeremiahlee.com/posts/failed-squad-goals/
+[724]: https://www.dolthub.com/blog/2020-03-23-testing-dolt-bats/
+[725]: https://begriffs.com/posts/2020-03-23-concurrent-programming.html
+[726]: https://developers.redhat.com/blog/2020/03/26/static-analysis-in-gcc-10/
+[727]: https://increment.com/programming-languages/crash-course-in-compilers/
+[728]: https://einarwh.wordpress.com/2020/04/05/death-of-a-craftsman/
+[729]: https://wiki.c2.com/?ThePsychologyOfComputerProgramming
+[730]: https://thecomputation.com/2020/04/06/claude-shannon-and-choosing-a-problem.html
+[731]: https://landing.google.com/sre/books/
+[732]: https://yoongkang.com/blog/pdf-forms-with-python/
+[733]: https://keleshev.com/my-book-writing-setup/
+[734]: https://blog.jurn.io/international-payments-freelancers/
+[735]: https://ljvmiranda921.github.io/notebook/2019/11/08/flask-redis-celery-mcdo/
+[736]: http://www.timcasasola.com/blog/writing
+[737]: https://notes.eatonphil.com/database-basics.html
+[738]: https://github.com/dabeaz-course/practical-python
+[739]: https://medium.com/@bellmar/old-code-gets-younger-every-year-3bd24c7f2262
+[740]: https://thehappyphilosopher.com/how-understanding-the-marginal-utility-of-money-will-make-you-happier/
+[741]: https://rsms.me/sol-a-sunny-little-virtual-machine
+[742]: https://eliteinformatiker.de/2020/05/31/automation-archlinux-qemu-installation
+[743]: https://christine.website/blog/gitea-release-tool-2020-05-31
+[744]: https://snarky.ca/the-many-ways-to-pass-code-to-python-from-the-terminal/
+[745]: https://drawsql.app/templates
+[746]: https://github.com/papers-we-love/papers-we-love/blob/master/README.md
+[747]: https://einarwh.wordpress.com/2020/05/19/into-the-tar-pit/
+[748]: http://themediocreprogrammer.com/
+[749]: https://www.integralist.co.uk/posts/python-asyncio/
+[750]: https://www.aquicarattino.com/blog/how-write-programming-book/
+[751]: https://shouldiusethreads.com/
+[752]: https://robertovitillo.com/what-every-developer-should-know-about-tcp/
+[753]: https://medium.com/datacamp/python-for-finance-algorithmic-trading-60fdfb9bb20d
+[754]: https://philipkiely.com/wfsd/
+[755]: https://iximiuz.com/en/posts/you-dont-need-an-image-to-run-a-container/
+[756]: http://calpaterson.com/async-python-is-not-faster.html
+[757]: https://www.fastcompany.com/28121/they-write-right-stuff
+[758]: https://josebrowne.com/on-coding-ego-and-attention/
+[759]: https://hbr.org/2010/07/how-will-you-measure-your-life
+[760]: https://github.com/mozilla/sops
+[761]: https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/
+[762]: https://www.allthingsdistributed.com/2020/07/the-os-classics.html
+[763]: https://privacy.net/analyzer/
+[764]: https://www.theatlantic.com/family/archive/2020/07/why-success-wont-make-you-happy/614731/
+[765]: https://brendancahill.io/brensblog/dereksivers
+[766]: https://github.com/rothgar/mastering-zsh
+[767]: https://github.com/knrt10/kubernetes-basicLearning
+[768]: https://www.pgmustard.com/docs/explain
+[769]: https://midination.com/free-music-production-software/
+[770]: https://serhack.me/articles/monitoring-infrastructure-grafana-influxdb-connectd/
+[771]: https://meekg33k.dev/what-i-learned-from-doing-60-technical-interviews-in-30-days-ckda9sn7s00iftss13b0wd0ky
+[772]: https://www.benkuhn.net/progessays/
+[773]: https://www.perell.com/blog/50-ideas-that-changed-my-life
+[774]: https://jordanlewis.org/posts/twitch-live-coding/
+[775]: https://hakibenita.com/sql-tricks-application-dba
+[776]: https://www.varrazzo.com/blog/2020/07/25/surviving-django/
+[777]: https://spookylukey.github.io/django-views-the-right-way/index.html
+[778]: https://medium.com/@bellmar/why-is-this-idiot-running-my-engineering-org-c6e815790cdb
+[779]: https://www.readthistwice.com/person/paul-graham
+[780]: https://pythonspeed.com/articles/distributing-software/
+[781]: https://dafriedman97.github.io/mlbook/content/introduction.html
+[782]: http://www.plainenglish.co.uk/how-to-write-in-plain-english.html
+[783]: https://buttondown.email/hillelwayne/archive/whats-the-deal-with-message-passing-anyway/
+[784]: https://cmacr.ae/post/2020-08-10-cloud-like-infra-at-home-part-1/
+[785]: https://theartofpostgresql.com/
+[786]: https://ahelwer.ca/post/2020-08-09-home-ergonomics/
+[787]: https://tailscale.com/blog/how-nat-traversal-works/
+[788]: https://leontrolski.github.io/postgres-advisory-locks.html
+[789]: https://nelis.boucke.be/post/architectural-katas/
+[790]: https://python-patterns.guide/gang-of-four/composition-over-inheritance/
+[791]: https://adamj.eu/tech/2020/04/01/how-to-combine-two-python-decorators/
+[792]: https://nocomplexity.com/documents/arplaybook/index.html
+[793]: https://mywiki.wooledge.org/BashPitfalls
+[794]: https://ahelwer.ca/post/2020-04-15-probabilistic-distsys/
+[795]: https://hopkinspokercourse.com/
+[796]: https://www.cyberciti.biz/tips/bash-shell-parameter-substitution-2.html
+[797]: https://who23.github.io/2020/12/03/sockets-in-your-shell.html
+[798]: https://clig.dev/
+[799]: https://engaging-data.com/will-money-last-retire-early/
+[800]: https://faculty.washington.edu/ajko/papers/Li2019WhatDistinguishesEngineers.pdf
+[801]: https://blog.flowblok.id.au/2013-02/shell-startup-scripts.html
+[802]: https://josephg.com/blog/crdts-are-the-future/
+[803]: https://kevinmahoney.co.uk/articles/applying-misu/
+[804]: https://crontab.guru
+[805]: https://daqo.medium.com/facebook-senior-software-engineer-interview-the-only-post-youll-need-to-read-e4604ff2336d
+[806]: https://downloads.goalkicker.com/
+[807]: https://marcyes.com/2016/0922-messing-with-postgresql-users-and-permissions/
+[808]: https://blog.pragmaticengineer.com/what-silicon-valley-gets-right-on-software-engineers/
+[809]: https://pankrat.github.io/2015/django-migrations-without-downtimes/
+[810]: https://iximiuz.com/en/posts/container-networking-is-simple/
+[811]: https://sysadmincasts.com/episodes/14-introduction-to-linux-control-groups-cgroups
+[812]: https://francis.begyn.be/blog/nixos-home-router
+[813]: https://jakobgreenfeld.com/metrics
+[814]: https://dev.to/napicella/how-are-docker-images-built-a-look-into-the-linux-overlay-file-systems-and-the-oci-specification-175n
+[815]: https://www.laac.dev/blog/database-constraints-in-django/
+[816]: https://hiringengineersbook.com/post/autonomy/
+[817]: https://carltheperson.com/posts/10-things-linux
+[818]: https://venam.nixers.net/blog/unix/2021/02/07/audio-stack.html
+[819]: https://christine.website/blog/site-to-site-wireguard-part-1-2019-04-02
+[820]: https://christine.website/blog/my-wireguard-setup-2021-02-06
+[821]: https://huth.me/blog/my-staff-software-engineering-reading-list/
+[822]: https://www.tweag.io/blog/2020-05-25-flakes/
+[823]: https://alexdanco.com/2020/10/08/making-is-show-business-now/
+[824]: https://fs.blog/2021/01/mistrust/
+[825]: https://venam.nixers.net/blog/unix/2020/03/29/distro-pkgs.html
+[826]: https://doppler.com/blog/how-to-set-environment-variables-in-linux-and-mac
+[827]: https://martinfowler.com/articles/developer-effectiveness.html
+[828]: https://blog.logrocket.com/node-js-docker-improve-dx/
+[829]: https://hakibenita.com/sql-anomaly-detection
+[830]: https://nix.dev/index.html
+[831]: https://ebzzry.io/en/nix/
+[832]: https://ghedam.at/15490/so-tell-me-about-nix
+[833]: https://durmonski.com/productivity/what-is-mind-wandering/
+[834]: https://qmacro.org/autodidactics/2021/02/02/fzf-the-basics-1-layout/
+[835]: https://martinfowler.com/articles/patterns-of-distributed-systems/
+[836]: https://minimalmodeling.substack.com/archive
+[837]: https://adamj.eu/tech/2020/01/27/moving-to-django-3-field-choices-enumeration-types/
+[838]: https://www.laac.dev/blog/five-common-django-mistakes/
+[839]: https://www.markozivanovic.com/screw-it-ill-host-it-myself/
+[840]: https://review.firstround.com/the-engineers-guide-to-career-growth-advice-from-my-time-at-stripe-and-facebook
+[841]: https://blog.alexgleason.me/run-your-own-server/
+[842]: https://andydote.co.uk/2020/08/28/better-bashing-through-technology/
+[843]: https://mrkaran.dev/posts/home-server-nomad/
+[844]: https://github.com/kuchin/awesome-cto
+[845]: https://atodorov.me/2021/02/27/why-you-should-take-a-look-at-nomad-before-jumping-on-kubernetes/
+[846]: https://muratbuffalo.blogspot.com/2021/02/foundational-distributed-systems-papers.html?m=1
+[847]: https://bytes.zone/posts/nix-script/
+[848]: https://codeburst.io/on-writing-tech-specs-6404c9791159
+[849]: https://stitcher.io/blog/what-event-sourcing-is-not-about
+[850]: https://srvaroa.github.io/paas/infrastructure/platform/kubernetes/cloud/2020/01/02/talk-how-to-build-a-paas-for-1500-engineers.html
+[851]: https://hbr.org/2016/12/if-your-boss-could-do-your-job-youre-more-likely-to-be-happy-at-work
+[852]: https://christine.website/blog/morph-setup-2021-04-25
+[853]: https://archive.ph/kDwXg
+[854]: https://serokell.io/blog/practical-nix-flakes
+[855]: https://grahamc.com/blog/flakes-are-an-obviously-good-thing
+[856]: https://antonz.org/sqlite-is-not-a-toy-database/
+[857]: https://www.prisma.io/dataguide/
+[858]: https://www.kalzumeus.com/2012/01/23/salary-negotiation/
+[859]: https://segment.com/blog/introducing-centrifuge/
+[860]: https://www.8bitmen.com/what-is-grafana-why-use-it-everything-you-should-know-about-it/
+[861]: https://engineering.fb.com/2018/02/12/production-engineering/how-production-engineers-support-global-events-on-facebook/
+[862]: https://blog.christianposta.com/microservices/istio-as-an-example-of-when-not-to-do-microservices/
+[863]: https://medium.com/canopy-tax/a-step-by-step-guide-to-single-spa-abbbcb1bedc6
+[865]: https://www.narrator.ai/blog/using-postgresql-as-a-data-warehouse/
+[866]: https://anthonynsimon.com/blog/one-man-saas-architecture/
+[867]: https://up-for-grabs.net/
+[868]: https://spin.atomicobject.com/2021/02/04/redis-postgresql/
+[869]: https://review.firstround.com/the-25-micro-habits-of-high-impact-managers
+[870]: https://skamille.medium.com/an-incomplete-list-of-skills-senior-engineers-need-beyond-coding-8ed4a521b29f
+[871]: https://semaphoreci.com/blog/building-python-projects-with-pants
+[872]: https://engineering.soroco.com/abstract-syntax-tree-for-patching-code-and-assessing-code-quality/
+[873]: https://www.theinsaneapp.com/2021/06/list-of-python-projects-with-source-code-and-tutorials.html
+[874]: https://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/
+[875]: https://github.com/cs01/termpair
+[876]: https://adamj.eu/tech/2021/05/05/3-uses-for-functools-partial-in-django/
+[877]: https://github.com/spectralops/teller
+[878]: https://medium.com/ibm-garage/out-of-this-world-lessons-from-the-apollo-lunar-landings-part-i-703ff4f872ce
+[879]: https://earthly.dev/blog/thought-leaders/
+[880]: https://christine.website/blog/my-homelab-2021-06-08
+[881]: https://www.heavybit.com/library/blog/kwans-hierarchy-of-product-needs-the-four-levels-of-product-managers/
+[882]: https://rtpg.co/2021/06/07/changes-checklist.html
+[883]: https://www.stateright.rs/
+[884]: https://nickjanetakis.com/blog/best-practices-around-production-ready-web-apps-with-docker-compose
+[885]: https://fearlesssalarynegotiation.com/salary-negotiation-guide/
+[886]: https://blog.gougousis.net/file-permissions-the-painful-side-of-docker/
+[887]: https://katacontainers.io/
+[888]: https://www.youtube.com/c/AndreasKling/videos
+[889]: https://itnext.io/direct-i-o-writes-the-best-way-to-improve-your-credit-score-bd6c19cdfe46
+[890]: https://turriate.com/articles/modern-javascript-everything-you-missed-over-10-years
+[891]: https://shealevy.com/blog/2018/08/05/understanding-nixs-string-context/
+[892]: https://www.crackedthecode.co/how-to-use-your-dslr-as-a-webcam-in-linux/
+[893]: https://dataschool.com/sql-optimization/multicolumn-indexes/
+[894]: https://sacks.substack.com/p/the-saas-org-chart
+[895]: https://www.imaginary.org/sites/default/files/taskbook_arnold_en_0.pdf
+[896]: https://www.americastestkitchen.com/articles/3615-how-to-clean-and-season-cast-iron-skillets
+[897]: https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13
+[898]: https://juliu.is/ditch-your-version-manager/
+[899]: https://docs.docker.com/config/containers/multi-service_container/
+[900]: https://diego-pacheco.blogspot.com/2021/09/podmain-in-linux.html
+[901]: https://blog.pragmaticengineer.com/project-management-at-big-tech/
+[902]: https://blog.ysndr.de/posts/internals/2021-01-01-flake-ification/
+[903]: https://untools.co/
+[904]: https://christine.website/blog/paranoid-nixos-2021-07-18
+[905]: https://marcusnoble.co.uk/2021-09-01-migrating-from-docker-to-podman/
+[906]: https://john-millikin.com/unix-syscalls
+[907]: https://www.oilshell.org/blog/2021/08/xargs.html
+[908]: http://yosefk.com/blog/evil-tip-avoid-easy-things.html
+[909]: https://github.com/on-nix/python
+[910]: https://github.com/adrianscheff/useful-sed
+[911]: https://12ft.io/
+[912]: https://sadh.life/post/builtins/
+[913]: https://tenthousandmeters.com/blog/python-behind-the-scenes-11-how-the-python-import-system-works/
+[914]: https://michaelfeathers.silvrback.com/10-papers-every-developer-should-read-at-least-twice
+[915]: https://github.com/divnix/devos
+[916]: https://www.atomiccommits.io/everything-useful-i-know-about-kubectl
+[917]: https://h1bdata.info/index.php
+[918]: https://mgdm.net/weblog/systemd/
+[919]: https://ianthehenry.com/posts/how-to-learn-nix/
+[920]: https://margin.re/media/an-opinionated-guide-on-how-to-reverse-engineer-software-part-1.aspx
+[921]: https://changelog.complete.org/archives/7562-i-introduced-my-5-year-old-and-2-year-old-to-startx-and-xmonad-theyre-delighted
+[922]: https://jichu4n.com/posts/how-x-window-managers-work-and-how-to-write-one-part-i/
+[923]: https://www.poor.dev/blog/terminal-anatomy/
+[924]: https://justinas.org/nixos-in-the-cloud-step-by-step-part-1
+[925]: https://github.com/mhadidg/software-architecture-books
+[926]: https://myme.no/posts/2021-11-25-nixos-home-assistant.html
+[927]: https://www.pixelbeat.org/programming/shell_script_mistakes.html
+[928]: https://ma.ttias.be/auto-restart-crashed-service-systemd/
+[929]: https://systemd-by-example.com/
+[930]: https://trunkbaseddevelopment.com/
+[931]: https://www.bretfisher.com/docker-mastery-for-nodejs/
+[932]: https://www.jamesshore.com/v2/blog/2006/continuous-integration-on-a-dollar-a-day
+[933]: https://datascienceatthecommandline.com/2e/chapter-4-creating-command-line-tools.html
+[934]: https://github.com/khuedoan/homelab
+[935]: https://asatarin.github.io/testing-distributed-systems/
+[936]: https://mywiki.wooledge.org/BashGuide
+[937]: https://www.mulle-kybernetik.com/modern-bash-scripting/intro.html
+[938]: https://myme.no/posts/2022-01-16-nixos-the-ultimate-dev-environment.html
+[939]: https://michael.stapelberg.ch/posts/2022-01-15-high-end-linux-pc/
+[940]: https://github.com/containers/skopeo
+[941]: https://unix.stackexchange.com/questions/288236/have-systemd-spawn-n-processes#288310
+[942]: https://www.redhat.com/en/blog/painless-services-implementing-serverless-rootless-podman-and-systemd
+[943]: http://0pointer.de/blog/projects/socket-activation.html
+[944]: https://blog.darknedgy.net/technology/2020/05/02/0/index.html
+[945]: https://blog.flyingcircus.io/2016/05/06/thoughts-on-systems-management-methods/
+[946]: https://www.usenix.org/system/files/atc19-fouladi.pdf
+[947]: https://eng.lyft.com/scaling-productivity-on-microservices-at-lyft-part-2-optimizing-for-fast-local-development-9f27a98b47ee
+[948]: https://blog.pragmaticengineer.com/holiday-tech-book-recommendations/
+[949]: https://uomresearchit.github.io/shell-programming-course/
+[950]: https://bertvv.github.io/cheat-sheets/Bash.html
+[951]: https://forums.docker.com/t/how-to-mount-docker-volume-along-with-subfolders-on-the-host/120482
+[952]: https://tips.graphica.com.au/nested-kvm/
+[953]: https://www.accountingcoach.com/
+[954]: https://www.youtube.com/watch?v=EfOXY5XY9s8
+[955]: https://www.youtube.com/watch?v=bmSAYlu0NcY
+[956]: https://fs.blog/first-principles/
+[957]: https://blog.acolyer.org/2016/09/05/on-the-criteria-to-be-used-in-decomposing-systems-into-modules/
+[958]: https://blog.sentry.io/2019/07/25/field-guide-mitigating-risk-transitioning-databases
+[959]: http://www.oilshell.org/blog/2022/03/backlog-arch.html
+[960]: https://www.lpalmieri.com/posts/idempotency/
+[961]: https://martinfowler.com/articles/bottlenecks-of-scaleups/01-tech-debt.html
+[962]: https://alexturek.com/2022-03-07-How-to-do-less/
+[963]: https://incolumitas.com/2021/11/03/so-you-want-to-scrape-like-the-big-boys/
+[964]: https://builtin.com/software-engineering-perspectives/platform-engineer-twilio-ask-your-developer-excerpt
+[965]: https://commoncog.com/blog/tacit-knowledge-is-a-real-thing/
+[966]: https://www.morling.dev/blog/the-code-review-pyramid/
+[967]: https://www.wave.com/en/blog/simple-architecture/
+[968]: https://zhenzhongxu.com/the-four-innovation-phases-of-netflixs-trillions-scale-real-time-data-infrastructure-2370938d7f01
+[969]: https://fossa.com/blog/three-pillars-reproducible-builds/
+[970]: https://200ok.ch/posts/2022-01-12_configuring_default_applications_for_xdg_open.html
+[971]: https://www.lurklurk.org/linkers/linkers.html
+[972]: https://www.sicpers.info/2022/02/what-is-software-engineering/
+[973]: https://javarome.medium.com/design-noframework-bbc00a02d9b3
+[974]: https://mag.uchicago.edu/economics-business/optimal-quitting#
+[975]: https://bas.codes/posts/python-virtualenv-venv-pip-pyenv-poetry
+[976]: https://harshal.sheth.io/2022/01/31/webassembly.html
+[977]: https://earthly.dev/blog/lxc-vs-docker/
+[978]: https://future.a16z.com/software-development-building-for-99-developers/
+[979]: https://medium.com/@mormesher/building-your-own-linux-cloud-backup-system-75750f47d550
+[980]: https://www.ravi-mehta.com/product-manager-roles/
+[981]: https://superfastpython.com/threading-in-python/
+[982]: https://blog.relyabilit.ie/the-curse-of-systems-thinkers/
+[983]: https://www.getlago.com/blog/why-billing-systems-are-a-nightmare-for-engineers
+[984]: https://blog.nixbuild.net/posts/2022-03-16-lightning-fast-ci-with-nixbuild-net.html
+[985]: https://sharedphysics.com/everything-is-important/
+[986]: https://blog.techlanika.com/distributed-tracing-the-why-what-and-how-ab9ca9e40081
+[987]: https://xenitab.github.io/blog/2022/02/23/12factor/
+[988]: https://disco.ethz.ch/courses/podc_allstars/
+[989]: https://dropbox.tech/infrastructure/disaster-readiness-test-failover-blackhole-sjc
+[990]: https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797
+[991]: https://github.com/dylanaraps/writing-a-tui-in-bash
+[992]: https://lethain.com/durably-excellent-teams/
+[993]: https://blog.pragmaticengineer.com/what-do-tpms-do/
+[994]: https://nolanlawson.com/2022/06/09/the-collapse-of-complex-software/
+[995]: https://www.foxhound.systems/blog/essential-elements-of-high-performance-sql-indexes/
+[996]: https://dx.tips/the-end-of-localhost#heading-further-reading
+[997]: http://brucefwebster.com/2008/04/11/the-wetware-crisis-the-dead-sea-effect/
+[998]: https://spectrum.ieee.org/xerox-parc
+[999]: https://blog.aleksic.dev/using-ansible-and-nomad-for-a-homelab-part-2#heading-bad-sides-of-nomad
+[1000]: https://sirupsen.com/metrics
+[1001]: https://www.fermyon.com/blog/python-wagi
+[1002]: https://medium.com/@adrian_cooney/introducing-the-taskfile-5ddfe7ed83bd
+[1003]: https://www.slideshare.net/RandyShoup/from-monolith-to-microservices-craftconf-2015
+[1004]: https://medium.com/@jamesacowling/stepping-stones-not-milestones-e6be0073563f
+[1005]: https://blog.thepete.net/blog/2019/12/09/delivering-on-an-architecture-strategy/
+[1006]: https://lepiter.io/feenk/developers-spend-most-of-their-time-figuri-9q25taswlbzjc5rsufndeu0py/
+[1007]: https://webapp.io/blog/github-actions-10x-faster-with-firecracker/
+[1008]: https://www.heinrichhartmann.com/posts/writing/
+[1009]: https://lethain.com/founding-uber-sre/
+[1010]: https://flameeyes.blog/2022/04/26/engineering-jargon-yaks/
+[1011]: https://mazzo.li/posts/fast-pipes.html
+[1012]: https://eugeneyan.com/writing/writing-docs-why-what-how/
+[1013]: https://fs.blog/peter-bevelin-seeking-wisdom/
+[1014]: https://fs.blog/book-recommendations-from-billionaire-charlie-munger/
+[1015]: https://architecturenotes.co/things-you-should-know-about-databases/
+[1016]: https://blog.pragmaticengineer.com/rfcs-and-design-docs/
+[1017]: https://hbr.org/2022/06/small-actions-make-great-leaders
+[1018]: https://byrnemluke.com/posts/webassembly
+[1019]: https://blog.google/outreach-initiatives/entrepreneurs/effective-founders-project/
+[1020]: https://myme.no/posts/2022-06-14-nixos-confederation.html
+[1021]: https://slack.engineering/building-self-driving-kafka-clusters-using-open-source-components/
+[1022]: https://www.vantage.sh/blog/nat-gateway-vpc-endpoint-savings
+[1023]: https://guicommits.com/how-to-log-in-python-like-a-pro/
+[1024]: https://incident.io/guide/
+[1025]: https://superamit.substack.com/p/short-stories-how-much-do-you-make
+[1026]: https://www.levels.fyi/blog/equity-tech-job-offer.html
+[1027]: https://garnix.io/blog/converting-to-flakes
+[1028]: https://monorepo.tools/
+[1029]: https://blog.ploeh.dk/2022/05/02/at-the-boundaries-applications-arent-functional/
+[1030]: https://medium.com/pipedrive-engineering/say-hello-to-devboxes-fab125cd793a
+[1031]: https://ericmustin.substack.com/p/notes-on-an-observability-team
+[1032]: https://medium.com/building-carta/staff-engineering-at-carta-526b154fd317
+[1033]: https://zimbatm.com/notes/nix-packaging-the-heretic-way
+[1034]: https://github.com/facundoolano/software-papers/
+[1035]: https://www.jeremiahlee.com/posts/failed-squad-goals/
+[1036]: https://quii.gitbook.io/learn-go-with-tests/
+[1037]: https://github.com/karanpratapsingh/system-design
+[1038]: https://arrdem.com/2022/07/04/superficial_simplicity/
+[1039]: https://grugbrain.dev/
+[1040]: https://webhooks.fyi
+[1041]: https://staysaasy.com/management/2022/07/10/Writing-Management.html
+[1042]: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6125071/
+[1043]: https://www.richmondquant.com/news/2021/9/21/shannons-demon-amp-how-portfolio-returns-can-be-created-out-of-thin-air
+[1044]: https://totalrealreturns.com/
+[1045]: https://brandur.org/small-sharp-tools
+[1046]: https://superfastpython.com/multiprocessing-pool-python/
+[1047]: https://blush-pixie-9dd.notion.site/For-Job-Seekers-675ba42e81504839877d027384679fa1
+[1048]: https://lucasfcosta.com/2022/07/19/finish-what-you-start.html
+[1049]: https://gigamonkeys.com/flowers/
+[1050]: https://embeddedartistry.com/blog/2020/03/02/why-we-estimate/
+[1051]: https://eng.lyft.com/awesome-tech-specs-86eea8e45bb9
+[1052]: https://architecturenotes.co/redis/
+[1053]: https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/tech-forward/why-your-it-organization-should-prioritize-developer-experience
+[1054]: https://www.youtube.com/watch?v=LKtk3HCgTa8
+[1055]: https://www.youtube.com/watch?v=f84n5oFoZBc
+[1056]: https://lethain.com/profit-and-loss-statement/
+[1057]: https://lethain.com/downturn-career-decisions/
+[1058]: https://github.com/batchcorp/plumber
+[1059]: https://architecturenotes.co/12-factor-app-revisited/
+[1060]: https://jvns.ca/blog/2023/03/03/how-do-nix-builds-work-/
+[1061]: https://academy.o11y.io/courses/practical-observability
diff --git a/check_links.py b/check_links.py
new file mode 100644
index 0000000..46feb0f
--- /dev/null
+++ b/check_links.py
@@ -0,0 +1,41 @@
+import asyncio
+
+import aiohttp
+import markdown
+from bs4 import BeautifulSoup
+
+with open("README.md") as f:
+ body_markdown = f.read()
+html_page = markdown.markdown(body_markdown)
+
+
+print("Gathering links...")
+urls = []
+soup = BeautifulSoup(html_page, features="lxml")
+for link in soup.findAll("a"):
+ urls.append(link.get("href"))
+
+
+async def get_url_response(session, url):
+ try:
+ async with session.get(url) as resp:
+ return (resp.status, url)
+ except Exception:
+ return (000, url)
+
+
+async def main():
+ timeout = aiohttp.ClientTimeout(total=20)
+ async with aiohttp.ClientSession(timeout=timeout) as session:
+ tasks = []
+ for url in urls:
+ tasks.append(asyncio.ensure_future(get_url_response(session, url)))
+
+ print("Checking links...")
+ responses = await asyncio.gather(*tasks)
+ for _, (resp, url) in enumerate(responses):
+ if resp != 200:
+ print(resp, url)
+
+loop = asyncio.get_event_loop()
+loop.run_until_complete(main())
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..7338af7
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,25 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1678693419,
+ "narHash": "sha256-bbSv5yqZAW6dz+3f3f3pOUZbxpPN+3OgCljgn7P+nnQ=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "8e3fad82be64c06fbfb9fd43993aec9ef4623936",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "type": "indirect"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..c65d19c
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,19 @@
+{
+ description = "A very basic flake";
+
+ outputs = { self, nixpkgs }:
+ let
+ system = "x86_64-linux";
+ pkgs = import nixpkgs { inherit system; };
+ in {
+
+ devShells.x86_64-linux.default = pkgs.mkShell {
+ nativeBuildInputs = with pkgs;
+ let
+ mypython = pkgs.python3.withPackages
+ (packages: with packages; [ markdown beautifulsoup4 aiohttp ]);
+ in [ mypython ];
+ };
+
+ };
+}