SCS: A session manager for Go
Looks pretty neat for a session manager built in Go
go  golang 
2 days ago
Monitorama PDX - Computer are a Sadness, I am the cure
Hilarious talk, lots of stuff on observability
SRE  DevOps 
2 days ago
Writing a Simple Event Bus in Go
Sounds like a cool project to rebuild something like Kafka/Rabbit
go  golang 
4 days ago
Great Article on Go Interfaces
breaks is down with examples and includes examples from the standard library
go  golang  interface 
10 days ago
Hiding from Big Tech
Lots of ideas on how to fuck with Big Tech surveillance
surveillance  secuirty 
12 days ago
Network ACL: Firewall within your network
A network access control list (ACL) is an optional layer of security for your VPC that acts as a firewall for controlling traffic in and out of one or more subnets. You might set up network ACLs with rules similar to your security groups in order to add an additional layer of security to your VPC. For more information about the differences between security groups and network ACLs, see Comparison of Security Groups and Network ACLs.
network  security  SRE 
15 days ago
Virtual IP Address (VIP)
Even more shit I have to learn!
vip  networking  security 
15 days ago
Advanced Training
lots of great advice for training, hypertrophy, etc
training  workout 
16 days ago
Ben Eater: Best Site for how computers actually work
CRC checker
8 bit computer
how the internet works
study this guy
internet  fundamentals  electronics 
17 days ago
Practical Javascript
Supposed to be a damn good course!
javascript  fullstack 
22 days ago
Google Drive Interview Questions
Google, HBO, Facebook, lots of interview questions
interview  question  questions 
28 days ago
Testing Your (HTTP) Handlers in Go
If you want to take your Go HTTP handler testing to the next level
go  golang  testable  testing  web 
29 days ago
Dissecting golang's HandlerFunc, Handle and DefaultServeMux
Seems in-depth and a great way to absorb more Golang
go  golang  web  servers 
29 days ago
Eloquent Javascript
also supposed to be really fucking good
javascript  fullstack 
29 days ago
Atlassian Git Tutorial
Beginner to Advanced Git Tutorial
4 weeks ago
Go: When writing unit tests, don't use mocks
remember what jon said, it's the technical definition of mocks, not mocks as you know it
unit  testing  go  golang  mock 
4 weeks ago
Golang in Interviews
Use golang in interviews
4 weeks ago
Notes on Bismark
The man, the myth, the legend, Otto von Bismark
4 weeks ago
Let's Learn React Fundamentals with HN
Lots of great links and ideas about React
react  apps 
5 weeks ago
Blog on First Principles
First-principles thinking is one of the best ways to reverse-engineer complicated problems and unleash creative possibility. Sometimes called “reasoning from first principles,” the idea is to break down complicated problems into basic elements and then reassemble them from the ground up. It’s one of the best ways to learn to think for yourself, unlock your creative potential, and move from linear to non-linear results.

This approach was used by the philosopher Aristotle and is used now by Elon Musk and Charlie Munger. It allows them to cut through the fog of shoddy reasoning and inadequate analogies to see opportunities that others miss.
blog  first  principles 
5 weeks ago
Best Other Tech Cities

Best Cities for Software Engineering Jobs
Rank Overall By Adjusted Median Salary By Opportunity Index
1 San Antonio Detroit ($91,404) Baltimore (1.95)
2 Pittsburgh San Antonio ($89,621) Pittsburgh ...
tech  cities  from notes
7 weeks ago
The Introduction to Software Architecture Every Programmer Should Have
w hour YouTube video oh dang

Check out Clean Code and Clean Architecture by Robert Martin.
software  softwaredesign  architecture 
7 weeks ago
Kernels 101 - Let's write a Kernel!
Let us write a simple kernel which could be loaded with the GRUB bootloader on an x86 system. This kernel will display a message on the screen and then hang.
kernel  linux  boot  loader  GRUB 
7 weeks ago
How to remember anything
How to Remember Anything You Really Want to Remember, Backed by Science
1. Quiz yourself.
2. Summarize and share with someone else.
3. Connect what you just learned to experiences you previously had.
memory  learning 
7 weeks ago
Companies committed to fight the ageism in tech
Cool companies to work for, since they don't care about age!
ageism  tech  job 
7 weeks ago
Computer Science without a computer!
Computer Science
without a computer
CS Unplugged is a collection of free teaching material that teaches Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around.
7 weeks ago
A Very Relatable Datatbase
The problem

I like to find ways to fill up my free time over winter breaks. Since I’m not in school for a month, I usually take the time to do some self-study on a topic I find interesting. This past month, it was building a database. Unfortunately, I had only a casual understanding of how a database actually works under the hood, and no idea how to get started. Additionally, I decided to write the database in Rust, since I knew there would be complicated management of data, and I wanted to avoid headaches involving invalid data. Finally, rust’s static garbage collector meant I wouldn’t have to rely on a runtime to guarantee this.

That was a month ago. While I’m not too far along (mostly due to being busier than expected during the break), I still have things I think are worth sharing.
ACID  rust  database 
7 weeks ago
Clean Code by Robert C. Martin Summary
General rules

Follow standard conventions.
Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
Boy scout rule. Leave the campground cleaner than you found it.
Always find root cause. Always look for the root cause of a problem.
Design rules

Keep configurable data at high levels.
Prefer polymorphism to if/else or switch/case.
Separate multi-threading code.
Prevent over-configurability.
Use dependency injection.
Follow Law of Demeter. A class should know only its direct dependencies.
Understandability tips

Be consistent. If you do something a certain way, do all similar things in the same way.
Use explanatory variables.
Encapsulate boundary conditions. Boundary conditions are hard to keep track of. Put the processing for them in one place.
Prefer dedicated value objects to primitive type.
Avoid logical dependency. Don't write methods which works correctly depending on something else in the same class.
Avoid negative conditionals.
Names rules

Choose descriptive and unambiguous names.
Make meaningful distinction.
Use pronounceable names.
Use searchable names.
Replace magic numbers with named constants.
Avoid encodings. Don't append prefixes or type information.
Functions rules

Do one thing.
Use descriptive names.
Prefer fewer arguments.
Have no side effects.
Don't use flag arguments. Split method into several independent methods that can be called from the client without the flag.
Comments rules

Always try to explain yourself in code.
Don't be redundant.
Don't add obvious noise.
Don't use closing brace comments.
Don't comment out code. Just remove.
Use as explanation of intent.
Use as clarification of code.
Use as warning of consequences.
Source code structure

Separate concepts vertically.
Related code should appear vertically dense.
Declare variables close to their usage.
Dependent functions should be close.
Similar functions should be close.
Place functions in the downward direction.
Keep lines short.
Don't use horizontal alignment.
Use white space to associate related things and disassociate weakly related.
Don't break indentation.
Objects and data structures

Hide internal structure.
Prefer data structures.
Avoid hybrids structures (half object and half data).
Should be small.
Do one thing.
Small number of instance variables.
Base class should know nothing about their derivatives.
Better to have many functions than to pass some code into a function to select a behavior.
Prefer non-static methods to static methods.

One assert per test.
Code smells

Rigidity. The software is difficult to change. A small change causes a cascade of subsequent changes.
Fragility. The software breaks in many places due to a single change.
Immobility. You cannot reuse parts of the code in other projects because of involved risks and high effort.
Needless Complexity.
Needless Repetition.
Opacity. The code is hard to understand.
cleancode  software  softwaredesign 
7 weeks ago
The anatomy of Charisma
and why it's so fuckin' scary!
7 weeks ago
How to stay fit forever!
1 Work out why, don’t just work out
2 Get off to a slow start
3 You don’t have to love it
4 Be kind to yourself
5 Don’t rely on willpower
6 Find a purpose
7 Make it a habit
8 Plan and prioritize
9 Keep it short and sharp
10 If it doesn’t work, change it
11 Add resistance and balance training as you get older
12 Up the ante
13 Work out from home
14 Get out of breath
15 Be sensible about illness
16 Seek advice after injury
17 Take it slowly after pregnancy
18 Tech can help
19 Winter is not an excuse
20 Keep it bite-size
21 Reward yourself
22 Call in the reinforcements
23 Use visual motivation
24 Keep alarms out of reach
25 Follow the four-day rule
7 weeks ago
Second Order Thinking
What Smart People Use to Outperform
lifehack  thinking 
7 weeks ago
Best Paper Awards in CS
Lots of computer science papers from different fields
computerscience  papers  AI  NCL 
7 weeks ago
The Morning Paper: A random walk through CS research
A blog that breaks down the latest and greatest in CS research
computerscience  distributed  c 
7 weeks ago
Learning to build distributed systems
Good resource on learning about building distributed systems.
distributed  system  systemdesign 
7 weeks ago
U of Helenski MOOC
Java 1 and 2
Full Stack!
Element of AI!
java  DevOps  fullstack  OOP 
9 weeks ago
Google Tech Talks on Clean Code
unit testing
don't look for things
global state and singletons
inheritance, polymorphism,
OO design for testability,
writing clean/testable code
google  clean  code  testable 
9 weeks ago
Arrakis: The Operating System is the Control Plane
A minimal OS as a ISA, and program the hardware directly white paper
arrakis  OS 
12 weeks ago
Hitchhiker's Guide: Reading Great Code
Even more examples:
hitchhiker  python  codebase  examples 
12 weeks ago
Bootstraping SRE
Really good article about getting into SRE without the background!
SRE  Apple  breaking-in 
may 2019
Using Rust to Scale Elixir for 11 Million Concurrent Users
Over the last year, the Backend Infrastructure team at Discord was hard at work improving the scalability and performance of our core real-time communications infrastructure.
One big project we undertook was changing how we update the Member List (all those nifty people on the right side of the screen). Instead of sending updates for every single person in the Member List, we could just send down the updates for the visible portion of the Member List. This has obvious benefits such as less network traffic, less CPU usage, better battery life; the list goes on and on.
However, this posed one big problem on the server side: We needed a data structure capable of holding hundreds of thousands of entries, sorted in a particular way that can accept and process tons of mutations, and can report back indices of where things are being added and removed.
Elixir is a functional language; its data structures are immutable. This is great for reasoning about code and supporting the massive concurrency you enjoy when you write Elixir. The double-edged sword of immutable data structures is that mutations are modeled by taking an existing data structure and an operation and creating a brand new data structure that is the result of applying that operation to the existing data structure.
elixir  discord  Rust 
may 2019
Learning Ruby on Rails in 2016 from the best resources
A little old, but looks like a comprehensive list
ruby  web  programming 
june 2018
Periodic Table of DevOps Tools
Periodic tables of DevOps tools
DevOps  SRE  tools 
june 2018
« earlier      
acid ageism ai algorithm api app apple apps architecture arrakis auth bismarck blog books boot bootcamp breaking-in build c ci cities clean cleancode code codebase computerscience consensus database deliberate design designpatterns devops discord distributed distributedsystems dns electronics elixir engineering examples first full fullstack fundamentals gamengine git go golang google grub hiring hitchhiker hunt interface intermediate internet interpreter interview java javascript jenkins job kafka keith kernel kubernetes learning lifehack linux loader math memory mock ncl netflix network networking oop opensource optimization os papers podcast practice principles programming python question questions rabois react recommendation recursion reddit reliability ruby rust scalability secuirty security servers shelf shortener software softwaredesign solid sre stack stripe surveillance system systemdesign tech testable testing thinking tools training tutorial ubuntu unit url vim vip web whiteboard wiki workout

Copy this bookmark: