• Skip to primary navigation
  • Skip to content
  • Skip to footer
decomposition ∘ al
  • About
  • Blog
  • Research
  • Zines
  • CV
    Lindsey Kuper

    Lindsey Kuper

    • Email
    • Academic web page
    • Mastodon
    • GitHub
    • YouTube
    • December 30th, 2025: Interpreters everywhere!
    • November 20th, 2025: Where "simulation" came from
    • November 17th, 2025: I took the "Crusty Interpreter" class!
    • June 29th, 2025: "CRDT Emulation, Simulation, and Representation Independence" will appear at ICFP 2025
    • December 31st, 2024: Alan Jeffrey
    • December 5th, 2024: "Communicating Chorrectly with a Choreography" is out!
    • September 22nd, 2024: When is causal broadcast not enough for causal memory?
    • July 24th, 2024: Join us for !!Con, and help spread the word!
    • June 12th, 2024: The last !!Con!
    • December 31st, 2023: A CAP tradeoff in the wild
    • August 18th, 2023: Talk at Sunday Assembly Silicon Valley: "What could go wrong?"
    • August 1st, 2023: Research roundup, 2022-2023
    • April 8th, 2023: Who invented vector clocks?
    • January 23rd, 2023: An underwhelming conversation with ChatGPT
    • January 18th, 2023: Enforcing causally-ordered message delivery on the sender's side
    • December 20th, 2022: Course announcement: Distributed Software Systems: Global-First and Local-First Perspectives
    • September 7th, 2022: Verified causal broadcast with Liquid Haskell
    • August 11th, 2022: An example run of a matrix-based causal unicast protocol
    • July 21st, 2022: Teaching roundup, 2018-2022
    • July 20th, 2022: My FLOPS 2022 keynote talk: "Adventures in Building Reliable Distributed Systems with Liquid Haskell"
    • January 31st, 2022: CAREER: Building Reliable Distributed Systems with Refinement Types
    • October 19th, 2021: Two papers at HATRA
    • July 26th, 2021: Join us at the Programming Languages Mentoring Workshop at ICFP next month
    • July 14th, 2021: How to create an .srt caption file for a video
    • May 15th, 2021: !!Con 2021 starts today!
    • March 30th, 2021: CSE138 returns to Twitch today!
    • November 25th, 2020: How not to email prospective grad school advisors
    • September 20th, 2020: Course retrospective: SMT Solving and Solver-Aided Systems
    • July 20th, 2020: Yet another post telling you to apply to PLMW
    • March 31st, 2020: Twitch plays CSE138
    • November 30th, 2019: Call for talk proposals: !!Con West 2020!
    • October 31st, 2019: Why you should come to UC Santa Cruz to do LSD research
    • September 27th, 2019: Apply to PLMW
    • August 31st, 2019: Course announcement: SMT Solving and Solver-Aided Systems
    • July 31st, 2019: My first year as a professor
    • June 29th, 2019: My students made zines, and so can you(rs)!
    • May 31st, 2019: How I learned about Merklix trees (without having to become a cryptocurrency enthusiast)
    • April 26th, 2019: An example run of the Chandy-Lamport snapshot algorithm
    • March 31st, 2019: "Toward Domain-Specific Solvers for Distributed Consistency" will appear at SNAPL 2019
    • February 28th, 2019: Jane Street Tech Talk: "Abstractions for Expressive, Efficient Parallel and Distributed Computing"
    • January 31st, 2019: Way number eight of looking at the correlation coefficient
    • December 31st, 2018: Course retrospective: Languages and Abstractions for Distributed Programming
    • November 29th, 2018: Call for talk proposals: !!Con West 2019!
    • October 31st, 2018: An introduction to replica conflict resolution
    • September 18th, 2018: Course announcement: Languages and Abstractions for Distributed Programming
    • August 31st, 2018: Understanding the regression line with standard units
    • July 31st, 2018: You don't need a 4.0 to go to grad school
    • June 29th, 2018: Where and when should you go to PLMW?
    • May 13th, 2018: Back to school
    • April 29th, 2018: Call for talk proposals: DSLDI 2018
    • March 31st, 2018: Four kinds of talk proposals that get rejected from !!Con
    • February 14th, 2018: "Toward Scalable Verification for Safety-Critical Deep Networks" at SysML 2018
    • January 31st, 2018: Celebrating five years of this blog, and a change of pace
    • December 31st, 2017: The call for papers formerly known as ICFP
    • December 30th, 2017: Call for submissions: PaPoC 2018
    • November 30th, 2017: Three times the Internet Archive helped me this year
    • November 29th, 2017: The power of blogging with plain old versioned text
    • October 31st, 2017: Using the simplex algorithm for SMT solving
    • October 30th, 2017: Notes on Halide and Distributed Halide
    • September 30th, 2017: The case of the missing frames
    • September 29th, 2017: The optimization that wasn't
    • August 31st, 2017: Upsides and downsides of "women in..." lists
    • August 30th, 2017: Participating in ICFP remotely
    • July 31st, 2017: My first fifteen compilers
    • July 30th, 2017: What do people mean when they say "transpiler"?
    • June 30th, 2017: How to write a timeline for a !!Con talk proposal
    • June 9th, 2017: "Parallelizing Julia with a Non-Invasive DSL" will appear at ECOOP 2017
    • May 31st, 2017: Proving that safety-critical neural networks do what they're supposed to: where we are, where we're going (part 2 of 2)
    • May 30th, 2017: Proving that safety-critical neural networks do what they're supposed to: where we are, where we're going (part 1 of 2)
    • April 30th, 2017: What isn't a high-performance DSL?
    • April 29th, 2017: Call for talk proposals: DSLDI 2017
    • March 31st, 2017: Scaling !!Con
    • March 30th, 2017: Should you do an MS before doing a Ph.D.?
    • February 28th, 2017: Call for talk proposals: !!Con 2017
    • February 27th, 2017: Why does a Turing-complete type system make type checking undecidable?
    • January 31st, 2017: The fine print in the ICFP 2017 call for papers
    • January 30th, 2017: Reflections on four years of research blogging
    • December 31st, 2016: A simple but difficult arithmetic puzzle, and the rabbit hole it took me down
    • December 30th, 2016: My adventures with git-filter-branch
    • November 30th, 2016: Thoughts on "Safety Verification of Deep Neural Networks"
    • November 17th, 2016: An economics analogy for why adversarial examples work
    • October 27th, 2016: Where does OBT research go after OBT?
    • October 17th, 2016: Call for talk proposals: OBT 2017
    • September 30th, 2016: Thoughts on "An Abstraction-Refinement Approach to Verification of Artificial Neural Networks"
    • September 29th, 2016: Thoughts on "Adversarial examples in the physical world"
    • August 31st, 2016: 'Experiencing computing viscerally': my PG Podcast interview about !!Con
    • August 30th, 2016: The saga of Accumulo bug 4379
    • July 31st, 2016: Publicity chair tip: use ruby-gmail to send bulk emails via Gmail
    • July 28th, 2016: Getting into a Ph.D. program without previous research experience
    • June 30th, 2016: s/S/C/
    • June 29th, 2016: The first ten minutes of my JuliaCon talk
    • May 30th, 2016: Do 'all Java type checkers have bugs'?
    • May 18th, 2016: Call for talk proposals: DSLDI 2016
    • April 30th, 2016: What even is OpenStack?
    • April 29th, 2016: Help the !!Con 2016 attendees eat breakfast
    • March 31st, 2016: That time my tweet got cited in a scientific journal
    • March 5th, 2016: "An introduction to ParallelAccelerator.jl" on the Julia blog
    • February 29th, 2016: Don't "invite" people to your program committee; ask them to serve
    • February 28th, 2016: Call for talk proposals: !!Con 2016
    • January 31st, 2016: Why review papers?
    • January 25th, 2016: Off the Beaten Track 2016 program chair's report
    • December 29th, 2015: Refactoring as a way to understand code
    • December 28th, 2015: Call for participation: Off the Beaten Track 2016
    • November 30th, 2015: Some notes from SPLASH 2015
    • November 29th, 2015: A better way to add labels to bar charts with matplotlib
    • October 31st, 2015: My talk on Prospect and ParallelAccelerator.jl at SPLASH-I 2015
    • October 30th, 2015: Two announcements about OBT: invited speakers and funding for speaker expenses
    • September 30th, 2015: Call for submissions: Off the Beaten Track 2016
    • September 19th, 2015: I finally finished my dissertation!
    • August 31st, 2015: What's the difference between inflationary and monotonic functions?
    • August 30th, 2015: I'm speaking at SPLASH 2015
    • July 31st, 2015: How to learn to do determinism proofs
    • July 30th, 2015: A month of daily check-ins
    • June 30th, 2015: Captioning videos: a fun and easy way to contribute to !!Con right now
    • June 2nd, 2015: Embedding, deep and shallow
    • May 31st, 2015: Call for papers: IFL 2015
    • May 29th, 2015: What's the difference between LVars and CRDTs?
    • April 30th, 2015: Say "experts" instead of "smart people"
    • April 29th, 2015: A few notes from PaPoC 2015
    • March 31st, 2015: What isn't a key-value store?
    • March 30th, 2015: Call for proposals: !!Con 2015
    • February 27th, 2015: Browser extensions are kernel modules for browsers
    • February 24th, 2015: To OpenCL from JavaScript via js-ctypes, or, how we rewrote the River Trail Firefox extension
    • January 30th, 2015: Call for papers: Onward! 2015
    • January 27th, 2015: Reflections on two years of research blogging
    • December 30th, 2014: One last CFP to wrap up the year: Tiny ToCS
    • December 26th, 2014: What I do all day, as told to a first-year CS student
    • November 30th, 2014: Call for submissions: PaPoC 2015
    • November 24th, 2014: Yet another blog post about how parallelism is not concurrency
    • October 31st, 2014: The Programming Systems Lab is hiring research interns for summer 2015
    • October 30th, 2014: Notes from the "Energy and Performance" session at OOPSLA
    • September 30th, 2014: Call for submissions: Off the Beaten Track 2015
    • September 29th, 2014: My thesis defense talk
    • August 31st, 2014: Frame problems and frame properties
    • August 18th, 2014: Dissertation draft readers wanted!
    • July 31st, 2014: Call for papers: IFL 2014
    • July 28th, 2014: Draft: "Deterministic Threshold Queries of Distributed Data Structures"
    • June 29th, 2014: A one-minute talk about "Taming the Parallel Effect Zoo"
    • June 27th, 2014: Things you can do to get ready for PL grad school
    • May 31st, 2014: Your next conference should have real-time captioning
    • May 28th, 2014: The LVar that was, after all
    • April 30th, 2014: What I'm doing after graduation
    • April 29th, 2014: Rejections
    • March 31st, 2014: "Taming the Parallel Effect Zoo" and the PLDI artifact evaluation process
    • March 29th, 2014: Call for submissions: 2014 Haskell Symposium
    • February 27th, 2014: Two LVars papers at WoDet
    • February 18th, 2014: Disorder and determinism
    • January 31st, 2014: How to freeze after writing
    • January 10th, 2014: New paper draft: "Joining Forces"
    • December 28th, 2013: Music as preparation for a computer science career
    • December 24th, 2013: The LVar that wasn't
    • November 30th, 2013: My thesis proposal, and my second Hacker School residency
    • November 11th, 2013: Thoughts on CRDTs and threshold reads
    • October 31st, 2013: What's the deal with LVars and CRDTs?
    • October 3rd, 2013: "Freeze After Writing" will appear at POPL 2014
    • September 30th, 2013: Some FHPC and Haskell Symposium highlights
    • September 22nd, 2013: Some example MVar, IVar, and LVar programs in Haskell
    • August 30th, 2013: Interpreting LVar effects as resources
    • August 26th, 2013: Default methods and negative diffstats
    • July 31st, 2013: Some misconceptions about Hacker School
    • July 17th, 2013: Two LVars papers
    • June 29th, 2013: Write an interpreter: variables
    • June 23rd, 2013: Write an interpreter
    • May 31st, 2013: One-character patches
    • May 25th, 2013: How to read from an LVar: an illustrated guide
    • April 30th, 2013: Hacker School residency
    • April 21st, 2013: Writing macros that write Redex
    • March 31st, 2013: A new paper draft, and a debugging story
    • March 2nd, 2013: FizzBuzz revisited
    • February 17th, 2013: Determinism abides
    • February 4th, 2013: I can't believe I was allowed to say "relationships between ordered sets"
    • January 18th, 2013: A ten-minute talk about my research
    • January 10th, 2013: Hello, world!
    • Feed
    Powered by Jekyll & Minimal Mistakes