technically a blog
If you have comments, questions, or feedback, you can email my personal email. To get new posts, subscribe to the newsletter or use the RSS feed.
- 2023-12-04: Profiling Rust programs the easy way
- 2023-11-27: Why do companies hire people to be idle a lot of the time?
- 2023-11-19: Building a digital vigil for those we've lost
- 2023-11-13: Introducing Yet Another Rust Resource (or YARR!)
- 2023-11-06: Accessibility is a requirement, not a feature
- 2023-10-30: That time I wrote malware and got caught
- 2023-10-23: Unpacking some Rust ergonomics: getting a single Result from an iterator of them
- 2023-10-16: Estimates are about time, so let's cut to the chase
- 2023-10-09: A student asked how I keep us innovative. I don't.
- 2023-10-02: What would a web app canary look like?
- 2023-09-25: Making it fast shouldn't be the last step
- 2023-09-18: "Help, iterators made my Rust program slower!"
- 2023-09-11: A systematic approach to debugging
- 2023-09-04: OpenAI fixed their unsafe policy around names
- 2023-08-28: Changing my relationship with GitHub Copilot
- 2023-08-21: The phrase "good enough" isn't fit for purpose
- 2023-08-14: Writing a basic code formatter
- 2023-08-11: Fiction as a lens into technological change
- 2023-08-07: A few weird ways of displaying git hashes
- 2023-07-31: Throw away your first draft of your code
- 2023-07-24: Recovering from a lost disk: how I setup, backup, and restore dev machines
- 2023-07-17: Writing Hurl's grammar, twice
- 2023-07-10: Impact of remote-code execution vulnerability in LangChain
- 2023-07-03: Using git mailmap when names change (or you mess up your email)
- 2023-06-26: Write more "useless" software
- 2023-06-19: Introducing Hurl, a terrible (but cute) idea for a language
- 2023-06-12: Optimize sprint points to get nowhere fast
- 2023-06-05: Units in Go and Rust show philosophical differences
- 2023-05-29: Email addresses are not primary user identities
- 2023-05-22: We deserve to know if something was generated by AI
- 2023-05-15: It's easier to code review Rust than Python
- 2023-05-10: Visualizing the FIDE World Chess Championship
- 2023-05-08: Your app doesn't need to know my gender
- 2023-05-01: You should be using hackdays to supercharge your roadmap
- 2023-04-24: Rust allows redeclaring local variables to great benefit
- 2023-04-17: Scheduling visits from the muse
- 2023-04-10: Feature flags and authorization abstract the same concept
- 2023-04-03: Coding with LLMs can lead to more and better software
- 2023-03-27: Different topologies for an org chart, wrong answers only
- 2023-03-20: Betraying vim for the IDEs of March
- 2023-03-14: Approximating pi using... a cake?
- 2023-03-06: Getting people to tell you you're wrong
- 2023-02-27: If software engineering roles were chess pieces, what would they be?
- 2023-02-20: What's in my software engineering tool belt?
- 2023-02-13: A systems design perspective on why chess.com's servers have been melting
- 2023-02-06: What's the difference between references and pointers in Rust?
- 2023-01-30: Does technology have a right to exist? (No.)
- 2023-01-23: Speeding up queries 1000x by sorting my bitmaps
- 2023-01-16: Why Rust's learning curve seems harsh, and ideas to reduce it
- 2023-01-09: Names should be cute, not descriptive
- 2023-01-02: A confusing lifetime error related to Rust's lifetime elision
- 2022-12-28: Reflecting on 2022, Looking Ahead to 2023
- 2022-12-19: return "reflections on a batch";
- 2022-12-16: Working with Rust in (neo)vim
- 2022-12-10: RC Week 12: What's Next, and Speedrunning Crafting Interpreters
- 2022-12-07: Building Molecule Reader in one day
- 2022-12-03: RC Week 11: Learning is best when multiplayer
- 2022-12-01: Tech systems amplify variety and that's a problem
- 2022-11-25: RC Week 10: Thankful for Family, Missing my Family
- 2022-11-22: Measuring the overhead of HashMaps in Rust
- 2022-11-19: RC Week 9: Parallels of Proofs and Programs
- 2022-11-16: I'm moving my projects off GitHub
- 2022-11-12: RC Week 8: Life happens, and databases are hard
- 2022-11-08: Open source licenses as a reflection of values
- 2022-11-04: RC Week 7: Four habits to improve as a programmer
- 2022-11-04: Paper review: C-store
- 2022-10-29: RC Week 6: Halfway done, wrote a parser!
- 2022-10-28: My first impressions from a few weeks with Lean and Coq
- 2022-10-27: Paper review: Concurrency Control Performance Modeling
- 2022-10-21: RC Week 5: Wrapping up projects and starting a new one
- 2022-10-18: Alpha-beta pruning illustrated by the smothered mate
- 2022-10-14: RC Week 4: Gratitude and emotions
- 2022-10-11: Paper review: The Gamma Database Project
- 2022-10-08: RC Week 3: Returning to Math
- 2022-10-06: Starting my (overkill) homelab
- 2022-10-01: Paper Review: Architecture of a Database System
- 2022-09-30: RC Week 2: Pairing is Awesome
- 2022-09-28: Rounding in Python
- 2022-09-24: RC Week 1: Getting Unexpected Extrovert Energy
- 2022-09-11: I'm taking a sabbatical and attending Recurse Center!
- 2022-07-09: Running an Effective Book Club at Work
- 2021-07-03: Where are we going from here? Software engineering needs formal methods
- 2021-02-01: Drawbacks of developing in containers
- 2021-01-11: Lessons from my first (very bad) on-call experience
- 2021-01-04: Load testing is hard, and the tools are... not great. But why?
- 2020-12-22: Tech salaries probably aren't dropping from remote work
- 2020-12-08: Solving my fun, frustrating docker-machine error
- 2020-10-14: What's "good" code and does it matter?
- 2020-07-26: Where is the source code for ping?
- 2020-05-15: Parallel assignment: a Python idiom cleverly optimized
- 2020-04-29: Terminology matters: let's stop calling it a "sprint"
- 2019-02-27: Gmail's "Smart Compose" feature should be considered harmful
- 2018-12-31: Books I Read in 2018
- 2018-11-02: Kill the crunch time heroics
- 2018-10-26: Avoid multitasking to write better code
- 2018-09-14: Distractions Cause Bad Code
- 2018-09-07: Don't Disrupt Things; Fix Them
- 2018-08-31: Even bad estimates are valuable if you use them right
- 2018-08-23: Topologies of Remote Teams
- 2018-06-02: How I Work Remotely
- 2017-09-02: The bittersweet end of a year of independence
- 2017-08-07: On Estimates, Time, and Evidence
- 2017-07-30: PyOhio
- 2017-01-21: Growing Teams and Baking Bread
- 2016-11-12: Functional Programming and Big Data
- 2016-10-12: Security of the Infinity Ergodox on Mac OS
- 2016-09-26: Consider Part-Time Work
- 2016-08-21: Starting a New Chapter
- 2016-04-05: [Talk] Scaling Graphs
- 2016-03-15: [Review] "The Circle" by Dave Eggers
- 2016-03-07: Surveillance, Schools, and Our Children
- 2016-02-19: Fight Burnout, Go For a Run
- 2015-07-13: [Review] "Data and Goliath" by Bruce Schneier
- 2015-03-08: In Defense of the Midwest
- 2015-02-22: How Cryptology Can Fix Identity Theft
- 2015-02-22: The Beginning of Something
Want to become a better programmer? Join the Recurse Center!