Every byte of a TLS connection explained and reproduced. This demonstration a client has connection to a server, negotiated a TLS 1.2 session, sent “ping”, received “pong”, and then terminated the session.
This is the part of a series of posts on preparing for and understanding interviews at big tech companies, drawing from my experience recruiting and interviewing for Google. I’ll be using real banned interview problems I and other Google engineers have used in interviews.
Reverse engineering, and fixed by literally editing 1 byte.
Raytracing is a relatively simple way to render images of 3D objects. The core is an elegant idea, that one can simulate the real-world behavior of photons of light bouncing off of surfaces and colors accumulating from their paths. It’s not inherently fast, but the simplicity of the core lets it model interesting things like reflections and depth of field in ways that mirror natural processes.
This paper proposes an efficient tree data structure that relies on splitting variable length keys into a variable number of fixed-length keys called slices. As you go down the tree, you compare the first slice of each key, then the second, then the third and so on, but each comparision has constant cost.
Part of Graph Databases for Beginners blog series by Neo4J. This post discuss different graph search algorithms and how they’re used, including Dijkstra’s algorithm and the A* algorithm. Our discussion will focus on what graph search algorithms do for you (and your business) without diving too deep into the mathematics of graph theory.
Microservices architecture (MSA) has become very popular. However, one common problem is how to manage distributed transactions across multiple microservices. This post is going to share my experience from past projects and explain the problem and possible patterns that could solve it.
This is a beginner level article, so I will not spell out every detail. This memory allocator will not be fast and efficient, we will not adjust allocated memory to align to a page boundary, but we will build a memory allocator that works. That’s it.
Have ever feel frustrated because you don’t understand the network layer? what are layer4, layer7 or layer2/3 routing? What kind of data is in a TCP packet? What is exactly happen during a TLS handshake? All of these requires some fundamental knowledges and cannot answer in a short post. That’s why this free ebook is available.
Some Makefile tricks can be added for each target in the Makefile itself, and is available to view as a make target (eg. make help).
Written in 8 years. Read companion post The benefits and costs of writing a POSIX kernel in a high-level language and research paper
GoThis library is designed to assist in testing distributed states in Elixir which require a number of local nodes
Elixira low-level retargetable code generator. It translates a target-independent intermediate representation into executable machine code
RustThe Bε-tree File System is an in-kernel file system that uses Bε trees to organize on-disk storage
C++Quick, convenient, expression-centric, graphical Python debugger using the AST
allows you to create AWS resources using kubectl with CRD
Kubernetes object static code analysis
Easily generate optinal Postgres config
a cross data-center data replication tool for Apache Kafka
Locate and fix overly complex lines of code in Go
postgres pager
RobotGo, Go Native cross-platform GUI automation
Open source video encoder written in GO and based on ffmpeg C bindings
📮Untangle your GitHub Notifications
Compose data-driven layers to create interactive visualizations with relational algebra data model
The automatic indexer for Postgres
Secure Secret management for Kubernetes (with gpg, Google Cloud KMS and AWS KMS backends)
PDF Table Extraction for Humans
BetterDev Link
Every Monday