- Amazon Aurora: Design Considerations for High Throughput Cloud-native Relational Databases
- Architecture of a Database System
- Relational Database: A Practical Foundation for Productivity
- The Chubby lock service for loosely-coupled distributed systems
- The Case for Learned Index Structures
- Monarch: Google’s Planet-Scale In-Memory Time Series Database
- Spanner, TrueTime and the CAP Theorem
- Dremel: Interactive Analysis of Web-Scale Datasets
- Dynamo
- Earlybird: Real-Time Search at Twitter
- The Dataflow Model
- Interpreting the Data: Parallel Analysis with Sawzall
- New Algorithms for Heavy Hitters in Data Streams
- Memory-Efficient Search Trees for Database Management Systems
- Verifiable Data Structures
- Epidemic algorithms for replicated database maintenance
- Adaptive real-time anomaly detection for multi-dimensional streaming data
- Efficient Summing over Sliding Windows (stream statistics)
- Detecting Change in Data Streams
- Semantics and Evaluation Techniques for Window Aggregates in Data Streams
- Architectural considerations for a new generation of protocols
- Anonymous Connections and Onion Routing
- Protecting the DNS Root servers against DDoS attacks
- Push or Request: An Investigation of HTTP/2 Server Push for Improving Mobile Performance
- Snap: a Microkernel Approach to Host Networking
- Defcon: Preventing Overload with Graceful Feature Degradation
- In Search of an Understandable Consensus Algorithm
- Information Storage in a Decentralized Computer System
- Conflict-free Replicated Data Types
- Life beyond Distributed Transactions: an Apostate’s Opinion
- Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial
- A Note on Distributed Computing
- Replicated Document Management in a Group Communication System
- Zero Downtime Release: Disruption-free Load Balancing of a Multi-Billion User Website
- Impossibility of Distributed Consensus with One Faulty Process
- Perspectives on the CAP Theorem
- Serving DNS using a Peer-to-Peer Lookup Service
- Metastable Failures in Distributed Systems
- Time, Clocks, and the Ordering of Events in a Distributed System
- Interleaving anomalies in collaborative text editors
- Internet Time Synchronization: the Network Time Protocol
- The Leap Second Behaviour of NTP Servers
- OverDoSe: A Generic DDoS Protection Service Using an Overlay Network
- Paxos made simple
- Fundamental Limits of Online Network-Caching
- In Search of an Understandable Consensus Algorithm
- Paxos vs Raft: Have we reached consensus on distributed consensus?
- Andromeda: Performance, Isolation, and Velocity at Scale in Cloud Network Virtualization
- Google-Wide Profiling: A Continuous Profiling Infrastructure for Data Centers
- A brief introduction to distributed systems
- A Mathematical Theory of Communication
- Maintaining the Time in a Distributed System
- Minimizing Faulty Executions of Distributed Systems
- Self-stabilizing Systems in Spite of Distributed Control
- Unix Time Sharing
- A Study of Real-World Data Races in Golang
- Automatically Detecting and Fixing Concurrency Bugs in Go Software Systems
- How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs
- Linearizability: A Correctness Condition for Concurrent Objects
- Static Race Detection and Mutex Safety and Liveness for Go Programs
- The Theory and Practice of Concurrency
- Why events are a bad idea
- Laws for Communicating Parallel Processes
- The problem with threads
- Concurrent Reading and Writing
- Ad Hoc Synchronization Considered Harmful
- SCHEDULING AND LOCKING IN MULTIPROCESSOR REAL-TIME OPERATING SYSTEMS
- Kill-Safe Synchronization Abstractions
- A Static Verification Framework for Message Passing in Go using Behavioural Types
- The Early History Of Smalltalk
- The Development of Erlang
- Can Programming Be Liberated from the von Neumann Style?
- Lisp in 99 lines of C
- Declarative programming: The light at the end of the tunnel
- Fundamental Concepts in Programming Languages
- On Certain Properties of Grammars
- An Incremental Approach to Compiler Construction
- Meta II A Syntax Oriented Compiler Writing Language
- The Next 700 Programming Languages
- Growing a Language
- Why Functional Programming Matters
- The Next 700 Programming Languages
- On-the-fly garbage collection: an exercise in cooperation
- Languages as Libraries
- Advanced Macrology and the Implementation of Typed Scheme
- The Galois Connection between Syntax and Semantics
- A Comparative Study of Language Support for Generic Programming
- Advanced Procedural Modeling of Architecture
- Machine Learning: The High Interest Credit Card of Technical Debt
- Hidden Technical Debt in Machine Learning Systems
- 150 Successful Machine Learning Models: 6 Lessons Learned at Booking.com
- Understanding deep learning requires rethinking generalization
- A Closer Look at Memorization in Deep Networks
- Deep Learning Scaling is Predictable, Empirically
- Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes
- LIMA: Less Is More for Alignment
- The Curse of Recursion: Training on Generated Data Makes Models Forget
- The False Promise of Imitating Proprietary LLMs
- Talking About Large Language Models
- The Linux Scheduler: a Decade of Wasted Cores
- A trace-driven analysis of the UNIX 4.2 BSD file system
- Caching in the Sprite network file system
- UNIX Implementation
- The Protection of Information in Computer Systems
- On the Computational Practicality of Private Information Retrieval
- Some thoughts on security after ten years of qmail 1.0
- SDSI - A Simple Distributed Security Infrastructure
- Provably Secure Password-Authenticated Key Exchange Using Diffie-Hellman
- Strong Password-Only Authenticated Key Exchange
- CacheOut: Leaking Data on Intel CPUs via Cache Evictions
- Probabilistic logics and the synthesis of reliable organisms from unreliable components
- Notes on Structured Programming
- Worlds: Controlling the Scope of Side Effects
- Efficient software-based fault isolation
- Failure-Oblivious Computing and Boundless Memory Blocks
- Enhancing Server Availability and Security Through Failure-Oblivious Computing
- Middle-schoolers’ reading and processing depth in response to digital and print media: An N400 study
- Points of View: Tribute To Alan Kay
- John Carmack Interviews
- Google’s Hybrid Approach to Research
- Silent Data Corruptions at Scale
- Engineering with Logic: Rigorous Test-Oracle Specification and Validation for TCP/IP and the Sockets API
- The Global Positioning System
- Functional Data Structures
- Formal Verification of a Distributed Dynamic Reconfiguration Protocol
- Combining reverse debugging and live programming towards visual thinking in computer programming
- Augmenting Human Intellect
- STEPS Toward the Reinvention of Programming
- What Every Programmer Should Know About Memory
- What Every Computer Scientist Should Know About Floating-Point Arithmetic
- Toward Simplifying Application Development, in a Dozen Lessons
- Prog in the small and in the large
- How Did Software Get So Reliable Without Proof?
- Efficient Guided Generation for Large Language Models
- WhisperX: Time-Accurate Speech Transcription of Long-Form Audio
- Compact Language Models via Pruning and Knowledge Distillation
- OLMo: Accelerating the Science of Language Models
- No Silver Bullet —Essence and Accident in Software Engineering
- Local-First Software
- Build Systems à la Carte
- Winners Curse
- It's Time to Replace TCP in the Datacenter
- On Systems Design
- What Every Programmer Should Know About Memory
- Distributed Transactional Systems Cannot Be Fast
- The Design Philosophy of the DARPA Internet Protocols
- Designing Cluster Schedulers for Internet-Scale Services
- On the Dangers of Stochastic Parrots: Can Language Models Be Too Big?
- Making reliable distributed systems in the presence of software errors
- A Plea for Lean Software
- The Xcpu Cluster Management Framework
- The Llama 3 Herd of Models
- LLMS STILL CAN’T PLAN; CAN LRMS? A PRELIMINARY EVALUATION OF OPENAI’S O1 ON PLANBENCH
- GSM-Symbolic: Understanding the Limitations of Mathematical Reasoning in Large Language Models
- Attention Is All You Need
- END-TO-END ARGUMENTS IN SYSTEM DESIGN
- Kafka, Samza and the Unix Philosophy of Distributed Data
- Robust Speech Recognition via Large-Scale Weak Supervision
- Scalability! But at what COST?
- Why Software Projects need Heroes
- Do Users Write More Insecure Code with AI Assistants?
- Simple Testing Can Prevent Most Critical Failures
- The paradox of the assisted user: guidance can be counterproductive
- Bitcoin: A Peer-to-Peer Electronic Cash System
- Our Human Condition "From Space"
- RE-READING TANENBAUM’S CRITIQUE OF RPC 30 YEARS LATER
- A Critique of the Remote Procedure Call Paradigm
- The Emperor's Old Clothes
- Performance Implications of Packet Filtering with Linux eBPF
- Firecracker: Lightweight Virtualization for Serverless Applications
- End to End arguments in system design
- The Computer as a Communication Device
- Man Computer Symbiosis
- The Intergalactic Computer Network
- How
- The Text Editor sam
- The Byzantine Generals Problem
- Google Workloads for Consumer Devices
- WireGuard: Next Generation Kernel Network Tunnel
- CPU bandwidth control for CFS
- Write your Own Virtual Machine
- Revisiting Coroutines
- The Computer Scientist as Toolsmith
- An Inside Look at Google BigQuery
- The Computer Scientist as Toolsmith 2
- Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
- Deconstructing process isolation
- Spectre is here to stay: An analysis of side-channels and speculative execution
- Understanding Real-World Concurrency Bugs in Go
- Spanner
- Programming Considered as a Human Activity
- The Humble Programmer
- Program Development Under Inferno
- The Inferno Shell
- Dis Virtual Machine specs
- NDBench: Benchmarking Microservices at Scale
- The design of the Inferno virtual machine
- Unix and Beyond
- The Inferno Operating System
- The Future of Computing: Logic or Biology
- Rc - The Plan 9 Shell
- CockroachDB
- Intel® Clear Containers: A breakthrough combination of speed and workload isolation
- Mk: a successor to make
- A General Purpose File System for Secondary Storage
- Tea, A Tiny Encription Algorithm
- ACME
- Large-scale cluster management at Google with Borg
- Recursive Functions of Symbolic Expressions and Their Computation by Machine
- Venti: a new approach to archival storage
- The Limbo Programming Language
- Architectural Styles and the Design of Network-based Software Architectures
- What is Software Design
- Breaking Audio Captchas
- UnCaptcha
- Plan9 from Bell Labs
- Security in plan 9
- The Styx Architecture for Distributed Systems
- The Organization of Networks in Plan 9
- The use of namespaces in Plan 9
- Lexical Filenames in Plan 9
- The humble programmer
- A Relational Model of Data for Large Shared Data Banks
- WiscKey: Separating Keys from Values in SSD-conscious Storage
- The Power Of Context
- The USE method
- Building LinkedIn’s Real-time Activity Data Pipeline
- On Designing and Deploying Internet-Scale Services
- Process file system and process in Unix V
- Using a hierarchy of Domain Specific Languages in complex software systems design
- Communicating Sequential Processes
- Go: A look behind the scenes
- I’m not a human: Breaking the Google reCAPTCHA
- A hierarchical approach to wrapper induction
- Extracting Web Data Using Instance-Based Learning
- On the Criteria To Be Used in Decomposing Systems into Modules