dr-knz.net is my open notebook and archive of lab notes.
It preserves experiments, drafts, and technical deep dives from past work.
For current work, writing, and ways to engage, visit raphaelposs.com
For current work, writing, and ways to engage, visit raphaelposs.com
advice
- You’re a Tech Lead. What now?
- Navigating and optimizing performance reviews
- Self-direction: navigating agency and responsibility
- Tech Career Progression for Beginners Everything you didn't learn at school about evolving in a corporation
- How to get into computer security (2/2) Data & Dev S1:E7 — Transcript
- How to get into computer security (1/2) Data & Dev S1:E6 — Transcript
- CS PhD student in the Netherlands: to be or not to be?
- My “ideal” Bachelor of Informatics
analysis
- LLMs in Software Engineering What Experienced Practitioners Actually See
- Human-Agent Computation Systems: A Complexity-Theoretic Sketch
- Theoretical Limits on AI Code Transformation You Can't Always Get There From Here
- Investigation into Message Layer Security (MLS)
- What the EU’s efficiency labels can teach us about helping customers choose
- Time is a Range, Not a Point Introducing timecond
- The Share Web A manifesto
- Unusual primitives in programming languages
- The machine does not (yet) think outside of the box
- Loss of input in Charm’s Bubbletea
- My Go executable files are still large What's new in 2021 and Go 1.16
- Errors vs. exceptions in Go and C++ in 2020 Why and how exceptions are still better for performance, even in Go
- The Go low-level calling convention on x86-64 (updated) What's new in 2020 and in Go 1.15
- Expressivity vs Tractability
- Why are my Go executable files so large? Size visualization of Go executables using D3
- Measuring errors vs. exceptions in Go and C++ Also, why and how exceptions are usually better for performance, even in Go
- Measuring argument passing in Go and C++
- Measuring multiple return values in Go and C++
- The Go low-level calling convention on x86-64
- The “PostgreSQL” in CockroachDB — Why?
- The 4th law of programming language comparisons
- DYI Jepsen Testing CockroachDB External blog post
- Open problems in Computer Science
- On the future of computer science
- Rust for functional programmers
- Categories from scratch
- Haskell for OCaml programmers
- Comments on the Mill CPU from OotB Computing
- On the Turing-Completeness of C (cont.)
- On the Turing-Completeness of C
c and c++
- Errors vs. exceptions in Go and C++ in 2020 Why and how exceptions are still better for performance, even in Go
- The Go low-level calling convention on x86-64 (updated) What's new in 2020 and in Go 1.15
- Why are my Go executable files so large? Size visualization of Go executables using D3
- Measuring errors vs. exceptions in Go and C++ Also, why and how exceptions are usually better for performance, even in Go
- Measuring argument passing in Go and C++
- Measuring multiple return values in Go and C++
- The Go low-level calling convention on x86-64
- Proefstuderen Informatica
- The Vaucanson story
- On the Turing-Completeness of C (cont.)
- On the Turing-Completeness of C
cockroachdb
- Contextual suggestions for SQL syntax External blog post
- Bubbles and sparkles: refreshing CockroachDB’s SQL shell External blog post
- Updates to CockroachDB’s security architecture between v20.1 and v22.1
- How to get into computer security (2/2) Data & Dev S1:E7 — Transcript
- How to get into computer security (1/2) Data & Dev S1:E6 — Transcript
- My Go executable files are still large What's new in 2021 and Go 1.16
- Log and error redaction in CockroachDB v20.2 External blog post
- Nested transactions in CockroachDB 20.1 External blog post
- Local connection overheads in PostgreSQL and CockroachDB
- Authentication configuration in PostgreSQL and CockroachDB
- Data flows and security architecture in CockroachDB
- Why are my Go executable files so large? Size visualization of Go executables using D3
- My database has bugs — now what?
- The “PostgreSQL” in CockroachDB — Why?
- The “Open Source” in CockroachDB
- The “Wow” effect in CockroachDB
- Local and distributed query processing in CockroachDB External blog post
- On the Way to Better SQL Joins in CockroachDB v1.0 External blog post
- Memory Usage in CockroachDB External blog post
- Squashing a Schrödinbug With Strong Typing External blog post
- Modesty in Simplicity: SQL JOINs in CockroachDB pre-1.0 Beta External blog post
- Critters in a Jar: Running CockroachDB in a FreeBSD Jail External blog post
- Revisiting SQL typing in CockroachDB External blog post
- DYI Jepsen Testing CockroachDB External blog post
compilers
- My Go executable files are still large What's new in 2021 and Go 1.16
- Errors vs. exceptions in Go and C++ in 2020 Why and how exceptions are still better for performance, even in Go
- The Go low-level calling convention on x86-64 (updated) What's new in 2020 and in Go 1.15
- Why are my Go executable files so large? Size visualization of Go executables using D3
- Measuring errors vs. exceptions in Go and C++ Also, why and how exceptions are usually better for performance, even in Go
- Measuring argument passing in Go and C++
- Measuring multiple return values in Go and C++
- The Go low-level calling convention on x86-64
computer architecture
- Hacking week: hardware/software co-design for a UT-LEON3 extension
- Comments on the Mill CPU from OotB Computing
- Building computing systems for research and innovation
- How I met the Microgrids
- Proposal: high-level thermal modeling
computer science
- Human-Agent Computation Systems: A Complexity-Theoretic Sketch
- Theoretical Limits on AI Code Transformation You Can't Always Get There From Here
- Abstract Machine Models Also: what Rust got particularly right
- How to get into computer security (2/2) Data & Dev S1:E7 — Transcript
- How to get into computer security (1/2) Data & Dev S1:E6 — Transcript
- The 4th law of programming language comparisons
- CS PhD student in the Netherlands: to be or not to be?
- My “ideal” Bachelor of Informatics
databases
- Updates to CockroachDB’s security architecture between v20.1 and v22.1
- How to get into computer security (2/2) Data & Dev S1:E7 — Transcript
- How to get into computer security (1/2) Data & Dev S1:E6 — Transcript
- Nested transactions in CockroachDB 20.1 External blog post
- Local connection overheads in PostgreSQL and CockroachDB
- Authentication configuration in PostgreSQL and CockroachDB
- Data flows and security architecture in CockroachDB
- Critters in a Jar: Running CockroachDB in a FreeBSD Jail External blog post
- DYI Jepsen Testing CockroachDB External blog post
education
- Understanding the Beginner’s Mind How to deal with different learning styles and anxieties
- CS PhD student in the Netherlands: to be or not to be?
- My “ideal” Bachelor of Informatics
- Proefstuderen Informatica
- Resources on writing and teaching
- Introductie Unix De eerste dag overleven
freebsd
functional programming
- Unusual primitives in programming languages
- Rust for functional programmers
- Categories from scratch
- Haskell for OCaml programmers
golang
- Loss of input in Charm’s Bubbletea
- Abstract Machine Models Also: what Rust got particularly right
- My Go executable files are still large What's new in 2021 and Go 1.16
- Errors vs. exceptions in Go and C++ in 2020 Why and how exceptions are still better for performance, even in Go
- The Go low-level calling convention on x86-64 (updated) What's new in 2020 and in Go 1.15
- Nested transactions in CockroachDB 20.1 External blog post
- A tour of Emacs as my Go editor
- Why are my Go executable files so large? Size visualization of Go executables using D3
- Measuring errors vs. exceptions in Go and C++ Also, why and how exceptions are usually better for performance, even in Go
- Measuring argument passing in Go and C++
- Measuring multiple return values in Go and C++
- The Go low-level calling convention on x86-64
- Memory Usage in CockroachDB External blog post
- Squashing a Schrödinbug With Strong Typing External blog post
- Finding the right tool for the job - FAIL
haskell
- Abstract Machine Models Also: what Rust got particularly right
- Rust for functional programmers
- Haskell for OCaml programmers
- Finding the right tool for the job - FAIL
lab notes
- Community Maps - Where Your People Are A foray into AI-assisted development
- Investigation into Message Layer Security (MLS)
- Time is a Range, Not a Point Introducing timecond
- The machine does not (yet) think outside of the box
- Finding the right tool for the job - FAIL
- OpenRISC / de0 nano resources
language comparison
- Unusual primitives in programming languages
- Rust for functional programmers
- Haskell for OCaml programmers
llms
- LLMs in Software Engineering What Experienced Practitioners Actually See
- Human-Agent Computation Systems: A Complexity-Theoretic Sketch
- Theoretical Limits on AI Code Transformation You Can't Always Get There From Here
- The machine does not (yet) think outside of the box
management
- One-on-one meeting questions
- People management incentives “Help! How do I make my manager care more?”
- You’re a Tech Lead. What now?
- Navigating and optimizing performance reviews
- Self-direction: navigating agency and responsibility
- Tech Career Progression for Beginners Everything you didn't learn at school about evolving in a corporation
- Understanding the Beginner’s Mind How to deal with different learning styles and anxieties
- Levels of Technical Leadership
mental health
methodology
- Cloud-Native Security has Two R’s, not Three How I saved $50k and how you can too
- The STRIDE threat model with examples
- My database has bugs — now what?
- The Dark Resistance
- How good are you at programming? A CEFR-like approach to measure programming proficiency
- Resources on writing and teaching
- Building computing systems for research and innovation
- Frustrated elements of symmetry
ocaml
- Rust for functional programmers
- Haskell for OCaml programmers
- Finding the right tool for the job - FAIL
open source
performance
- Local connection overheads in PostgreSQL and CockroachDB
- Local and distributed query processing in CockroachDB External blog post
- On the Way to Better SQL Joins in CockroachDB v1.0 External blog post
- Modesty in Simplicity: SQL JOINs in CockroachDB pre-1.0 Beta External blog post
postgresql
- Local connection overheads in PostgreSQL and CockroachDB
- Authentication configuration in PostgreSQL and CockroachDB
- The “PostgreSQL” in CockroachDB — Why?
programming languages
- Unusual primitives in programming languages
- The machine does not (yet) think outside of the box
- Abstract Machine Models Also: what Rust got particularly right
- My Go executable files are still large What's new in 2021 and Go 1.16
- Errors vs. exceptions in Go and C++ in 2020 Why and how exceptions are still better for performance, even in Go
- The Go low-level calling convention on x86-64 (updated) What's new in 2020 and in Go 1.15
- Why are my Go executable files so large? Size visualization of Go executables using D3
- Measuring errors vs. exceptions in Go and C++ Also, why and how exceptions are usually better for performance, even in Go
- Measuring argument passing in Go and C++
- Measuring multiple return values in Go and C++
- The Go low-level calling convention on x86-64
- The 4th law of programming language comparisons
- Revisiting SQL typing in CockroachDB External blog post
- Rust for functional programmers
- Haskell for OCaml programmers
- Finding the right tool for the job - FAIL
python
- My Go executable files are still large What's new in 2021 and Go 1.16
- Why are my Go executable files so large? Size visualization of Go executables using D3
- Proefstuderen Informatica
- The Vaucanson story
remote work
research ideas
- Human-Agent Computation Systems: A Complexity-Theoretic Sketch
- Theoretical Limits on AI Code Transformation You Can't Always Get There From Here
- The Share Web A manifesto
- Abstract Machine Models Also: what Rust got particularly right
- Open problems in Computer Science
- On the future of computer science
- Crazy research: bio warfare against mega corps
- Frustrated elements of symmetry
- How I met the Microgrids
- The Vaucanson story
- Proposal: high-level thermal modeling
rust
- Investigation into Message Layer Security (MLS)
- Abstract Machine Models Also: what Rust got particularly right
- Rust for functional programmers
- Finding the right tool for the job - FAIL
security
- Updates to CockroachDB’s security architecture between v20.1 and v22.1
- How to get into computer security (2/2) Data & Dev S1:E7 — Transcript
- How to get into computer security (1/2) Data & Dev S1:E6 — Transcript
- Log and error redaction in CockroachDB v20.2 External blog post
- Cloud-Native Security has Two R’s, not Three How I saved $50k and how you can too
- Authentication configuration in PostgreSQL and CockroachDB
- Data flows and security architecture in CockroachDB
- The STRIDE threat model with examples
software engineering
- LLMs in Software Engineering What Experienced Practitioners Actually See
- You’re a Tech Lead. What now?
- Navigating and optimizing performance reviews
- Self-direction: navigating agency and responsibility
- Tech Career Progression for Beginners Everything you didn't learn at school about evolving in a corporation
- Understanding the Beginner’s Mind How to deal with different learning styles and anxieties
- Levels of Technical Leadership
- Hacking week: hardware/software co-design for a UT-LEON3 extension
- My database has bugs — now what?
- The Dark Resistance
- Open problems in Computer Science
- Finding the right tool for the job - FAIL
- Building computing systems for research and innovation
sql
- Contextual suggestions for SQL syntax External blog post
- Bubbles and sparkles: refreshing CockroachDB’s SQL shell External blog post
- The acronym “DML” may not mean what you think it means
- The “PostgreSQL” in CockroachDB — Why?
- The “Wow” effect in CockroachDB
- Local and distributed query processing in CockroachDB External blog post
- On the Way to Better SQL Joins in CockroachDB v1.0 External blog post
- Modesty in Simplicity: SQL JOINs in CockroachDB pre-1.0 Beta External blog post
thought leadership
- One-on-one meeting questions
- People management incentives “Help! How do I make my manager care more?”
- You’re a Tech Lead. What now?
- Navigating and optimizing performance reviews
- Self-direction: navigating agency and responsibility
- Tech Career Progression for Beginners Everything you didn't learn at school about evolving in a corporation
- Understanding the Beginner’s Mind How to deal with different learning styles and anxieties
- Levels of Technical Leadership
tooling
- My Go executable files are still large What's new in 2021 and Go 1.16
- A tour of Emacs as my Go editor
- Why are my Go executable files so large? Size visualization of Go executables using D3
- Introductie Unix De eerste dag overleven