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] - [Implementers, Solvers, and Finders][1079] - [Introduction to FAANG interviews][1089] - [Engineering Levels at Honeycomb: Avoiding the Scope Trap][1090] - [A Senior Engineer's Guide to the System Design Interview][1134] - [theorg.com: 50 Most Transparent Companies][1136] ### 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] - [The Seven Levels of Busy][1075] - [How Great Leaders Use the 3 Laws of Influence to Be Remarkably Persuasive, Backed by Considerable Science][1077] - [Done, and Get Things Smart][1091] - [Embrace Complexity; Tighten Your Feedback Loops][1094] - [Software Estimation Is Hard. Do It Anyway.][1098] - [Maker's Schedule, Manager's Schedule][1107] - [Reaching Peak Meeting Efficiency][1108] - [Meetings for an effective eng organization][1109] ### 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] - [Software engineering practices][1064] - [Managers, Stop Distracting Your Employees][1068] - [How Apple Is Organzied For Innovation][1078] - [High-Performing Teams Need Psychological Safety: Here’s How to Create It][1085] - [The Generation Ship Model of Software Development][1095] - [Measuring developer productivity? A response to McKinsey][1104] - [OKR vs. SMART Goals: What’s the Difference and When to Use Either][1117] - [Conventional Comments][1119] - [Managing Your Manager][1123] - [Non-Goals: What They are and How to Set Them][1128] - [The Maze is in The Mouse: What Ails Google][1130] - [Writing an engineering strategy][1132] - [Amazon's Cloud Crisis: How AWS Will Lose The Future Of Computing][1139] - [When a New Manager Takes Charge][1147] - [Management Time: Who’s Got the Monkey?][1152] ### Psychology/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] - [Leo Tolstoy on Finding Meaning in a Meaningless World][1145] ### 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 & 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: Examples of Namespace, Variables, Properties & 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: 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 : 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 :: 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: 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: 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: A Moving Average Trading Strategy][93] - [Python Programming Tutorials Zipline Quantopian][94] - [Django 1.11 -- Classy Django Forms][95] - [kennethreitz/setup.py: 📦 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: 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: 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: 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: 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] - [Python Asyncio: The Complete Guide][1070] - [Dynaconf: Configuration Management for Python][1072] - [The Basics of Python Packaging in Early 2023][1081] - [pypackaging-native: Python packaging topics and issues for projects using native code][1096] - [Asyncio, twisted, tornado, gevent walk into a bar...][1100] - [Writing a C compiler in 500 lines of Python][1105] - [Python’s "Disappointing" Superpowers][1113] - [Video: How to Use FastAPI: A Detailed Python Tutorial][1131] - [How virtual environments work][1138] - [Parquet: more than just "Turbo CSV"][1143] - [Makefile tricks for Python projects][1144] ### Ops - [Proper Server Naming DNS][388] - [Gitlab: 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: 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] - [Why I prefer trunk-based development][1084] - [What if Infrastructure as Code never existed - Adam Jacob][1087] - [Get Started with Server Health Checks][1092] - [What every SRE should know about GNU/Linux shell related internals][1093] - [Platform Engineering Landmines: Part 1][1103] - [Delivering Value with Platform Engineering][1112] - [The Practical Guide to Internal Developer Portals][1115] - [Cloud Costs Every Programmer Should Know][1122] - [Understanding Networking in Nomad][1137] - [Dev vs Ops][1151] ### 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 & The Little Printf][170] - [Build Technical Wealth][171] - [Systems We Love][172] - [Why Messaging Queues Suck | ProgrammableWeb][174] - [kdeldycke/awesome-falsehood: 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: 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] - [Bet You Can't Solve These 9 Dependency Problems][1065] - [Always use closed, open intervals][1076] - [An Interactive Intro to CRDTs][1120] - [Big Data is Dead][1124] - [Destroy All Software: Boundaries Talk][1126] - [Destroy All Software: Functional Core, Imperative Shell][1127] - [Granting at least once delivery][1129] - [HPC is dying, and MPI is killing it][1140] - [Load Balancing Visualized][1142] ### 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] - [Extracting Hacker News Book Recommendations with the ChatGPT API][1121] ### Databases - [How does a relational database work - Coding Geek][186] - [NoSQL Databases: a Survey and Decision Guidance][188] - [The Internals of PostgreSQL : 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: 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] - [How to do distributed locking][1141] - [Distributed systems for fun and profit][1149] ### 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: 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: 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] - [Not Every Container Has an Operating System Inside][1062] - [What's Inside Of a Distroless Container Image: Taking a Deeper Look][1063] - [Run Docker Images With Chroot][1071] - [Crafting container images without Dockerfiles][1114] - [Scheduling cron jobs in docker : A How-To Guide][1118] - [Dodge the next Dockerpocalypse: how to own your own Docker Registry address][1135] - [Container Training][1153] ### 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: Linux Performance Checklist][238] - [NGINX Tutorial: 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: 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: 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: Testing Websites for SPDY Support][270] - [Linux tracing systems & 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: 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: A collection of ZSH frameworks, plugins & 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: Expect][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] - [Sadservers: Troubleshoot and make a sad server happy!][1074] - [Lobsters Comments: ZFS Notes][1101] - [ZFS Notes][1150] - [The 'Hidden' Cost of Using ZFS for Your Home NAS][1102] ### 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 & safety tips][303] - [How "Exit Traps" 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: 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] - [Build FFMPEG Filters Without The Headache][1073] - [A Guide to the Terminal, Console, and Shell][1106] ### 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] - [How and why to host a blog at home][1069] - [Scaling Kafka to Support PayPal’s Data Growth][1116] ### 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] - [Customizing packages in Nix][1067] - [Using Nix with Dockerfiles][1086] - [Cheap Docker images with Nix][1088] - [Nixos rebuild as a deployment tool][1097] - [Why you don't need flake-utils][1099] - [Getting Inputs To Modules in A Flake][1110] - [Nix from First Principles: Flake Edition][1111] - [Flake Parts: Core of a distributed framework for writing Nix Flakes.][1125] ### 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 & 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: 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] - [Google's Technical Writing Course][1066] - [What I Did Not Learn About Writing In School][1133] ### Finance - [Saving Money on International Payments as a Freelancer][734] ### AI - [Theres An AI For That][1080] - [Learn Prompting][1082] - [Brex's Prompt Engineering Guide][1083] ## Data Engineering - [Build a poor man’s data lake from scratch with DuckDB][1146] - [how (not) to write a pipeline][1148] ### Misc - [PC Buying Guide][380] - [littleBits][381] - [Mathigon][382] - [NSA Proofed Email | 27 months][383] - [MTA, SPF, DKIM, PTR, WTF: 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&_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&utm_medium=feed&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&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 [1062]: https://iximiuz.com/en/posts/not-every-container-has-an-operating-system-inside/ [1063]: https://iximiuz.com/en/posts/containers-distroless-images/ [1064]: https://simonwillison.net/2022/Oct/1/software-engineering-practices/ [1065]: https://www.pathsensitive.com/2022/09/bet-you-cant-solve-these-9-dependency.html [1066]: https://developers.google.com/tech-writing/overview [1067]: https://bobvanderlinden.me/customizing-packages-in-nix/ [1068]: https://hbr.org/2023/01/managers-stop-distracting-your-employees [1069]: https://kubesail.com/blog/2022-08-08-how-and-why [1070]: https://superfastpython.com/python-asyncio/ [1071]: https://earthly.dev/blog/chroot/ [1072]: https://www.dynaconf.com/ [1073]: https://ffmpeg.guide/ [1074]: https://sadservers.com/ [1075]: https://randsinrepose.com/archives/the-seven-levels-of-busy/ [1076]: https://fhur.me/posts/always-use-closed-open-intervals [1077]: https://www.inc.com/jeff-haden/great-leaders-use-laws-of-influence-persuasive-backed-by-considerable-science.html [1078]: https://hbr.org/2020/11/how-apple-is-organized-for-innovation [1079]: https://rkoutnik.com/2016/04/21/implementers-solvers-and-finders.html [1080]: https://theresanaiforthat.com/ [1081]: https://drivendata.co/blog/python-packaging-2023 [1082]: https://learnprompting.org/ [1083]: https://github.com/brexhq/prompt-engineering [1084]: https://trishagee.com/2023/05/29/why-i-prefer-trunk-based-development/ [1085]: https://hbr.org/2017/08/high-performing-teams-need-psychological-safety-heres-how-to-create-it [1086]: https://mitchellh.com/writing/nix-with-dockerfiles [1087]: https://www.youtube.com/watch?v=5lPa2U239C4 [1088]: https://archive.ph/605zv#selection-4303.1-4315.0 [1089]: https://interviewing.io/guides/hiring-process [1090]: https://www.honeycomb.io/blog/engineering-levels-at-honeycomb [1091]: https://steve-yegge.blogspot.com/2008/06/done-and-gets-things-smart.html [1092]: https://betterstack.com/community/guides/monitoring/health-checks/ [1093]: https://biriukov.dev/docs/fd-pipe-session-terminal/0-sre-should-know-about-gnu-linux-shell-related-internals-file-descriptors-pipes-terminals-user-sessions-process-groups-and-daemons/ [1094]: https://ferd.ca/embrace-complexity-tighten-your-feedback-loops.html [1095]: https://medium.com/@wm/the-generation-ship-model-of-software-development-5ef89a74854b [1096]: https://pypackaging-native.github.io [1097]: https://www.haskellforall.com/2023/01/announcing-nixos-rebuild-new-deployment.html [1098]: https://jacobian.org/2021/may/20/estimation/ [1099]: https://ayats.org/blog/no-flake-utils/ [1100]: https://www.bitecode.dev/p/asyncio-twisted-tornado-gevent-walk [1101]: https://lobste.rs/s/qnmx3s/zfs_notes [1102]: https://louwrentius.com/the-hidden-cost-of-using-zfs-for-your-home-nas.html [1103]: https://www.alashiban.com/platform-engineering-landmines-part-1/ [1104]: https://archive.ph/KygFt [1105]: https://vgel.me/posts/c500/ [1106]: https://thevaluable.dev/guide-terminal-shell-console/ [1107]: http://www.paulgraham.com/makersschedule.html [1108]: https://medium.learningbyshipping.com/reaching-peak-meeting-efficiency-f8e47c93317a [1109]: https://lethain.com/eng-org-meetings/ [1110]: https://blog.nobbz.dev/2022-12-12-getting-inputs-to-modules-in-a-flake/ [1111]: https://tonyfinn.com/blog/nix-from-first-principles-flake-edition/ [1112]: https://www.maxcountryman.com/articles/delivering-value-with-platform-engineering [1113]: https://lukeplant.me.uk/blog/posts/pythons-disappointing-superpowers/ [1114]: https://ochagavia.nl/blog/crafting-container-images-without-dockerfiles/ [1115]: https://www.getport.io/guide [1116]: https://medium.com/paypal-tech/scaling-kafka-to-support-paypals-data-growth-a0b4da420fab [1117]: https://fellow.app/blog/productivity/okr-vs-smart-goals-whats-the-difference-and-when-to-use-either/ [1118]: https://dev.to/dm8ry/scheduling-cron-jobs-in-docker-a-how-to-guide-415k [1119]: https://conventionalcomments.org/ [1120]: https://jakelazaroff.com/words/an-interactive-intro-to-crdts/ [1121]: https://blog.reyem.dev/post/extracting_hn_book_recommendations_with_chatgpt_api/ [1122]: https://www.vantage.sh/blog/cloud-costs-every-programmer-should-know [1123]: https://every.to/superorganizers/managing-your-manager [1124]: https://motherduck.com/blog/big-data-is-dead/ [1125]: https://github.com/hercules-ci/flake-parts [1126]: https://www.destroyallsoftware.com/talks/boundaries [1127]: https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell [1128]: https://fellow.app/blog/productivity/non-goals-what-they-are-and-how-to-set-them/ [1129]: https://tuwukee.github.io/ruby/fibers/2023/02/14/granting-at-least-once.html [1130]: https://pravse.medium.com/the-maze-is-in-the-mouse-980c57cfd61a [1131]: https://youtu.be/SORiTsvnU28?si=sTdneTH1v4Q-5oOJ [1132]: https://lethain.com/eng-strategies/ [1133]: https://eugeneyan.com/writing/what-i-did-not-learn-about-writing-in-school/ [1134]: https://interviewing.io/guides/system-design-interview/ [1135]: https://httptoolkit.com/blog/docker-image-registry-facade/ [1136]: https://theorg.com/iterate/50-most-transparent-companies-2023 [1137]: https://mrkaran.dev/posts/nomad-networking-explained/ [1138]: https://snarky.ca/how-virtual-environments-work/ [1139]: https://www.semianalysis.com/p/amazons-cloud-crisis-how-aws-will [1140]: https://www.dursi.ca/post/hpc-is-dying-and-mpi-is-killing-it [1141]: https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html [1142]: https://samwho.dev/load-balancing/ [1143]: https://csvbase.com/blog/3 [1144]: https://ricardoanderegg.com/posts/makefile-python-project-tricks/ [1145]: https://www.themarginalian.org/2014/06/03/tolstoy-confession/ [1146]: https://dagster.io/blog/duckdb-data-lake [1147]: https://hbr.org/2007/01/when-a-new-manager-takes-charge [1148]: https://cohost.org/tef/post/1764930-how-not-to-write-a [1149]: https://book.mixu.net/distsys/single-page.html [1150]: https://wiki.alopex.li/ZfsNotes [1151]: https://www.bassi.io/articles/2017/08/10/dev-v-ops/ [1152]: https://hbr.org/1999/11/management-time-whos-got-the-monkey [1153]: https://container.training/