<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://blog.nelhage.com/</loc>
    <lastmod>2026-03-23T08:30:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/concurrent-error-handling/</loc>
    <lastmod>2026-03-23T08:30:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/</loc>
    <lastmod>2026-03-23T08:30:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/regex-crosswords-z3/</loc>
    <lastmod>2025-10-21T07:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/ittage-branch-predictor/</loc>
    <lastmod>2025-07-04T14:30:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/cpython-tail-call/</loc>
    <lastmod>2025-03-09T15:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/personal-software-with-claude/</loc>
    <lastmod>2025-01-27T12:00:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/fuzzy-dedup/</loc>
    <lastmod>2024-07-03T16:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/stripe-dev-environment/</loc>
    <lastmod>2024-05-21T10:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/profilers-seeing-the-invisible/</loc>
    <lastmod>2023-12-18T08:00:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/advent-of-templates/</loc>
    <lastmod>2023-12-08T07:30:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/pickles-and-ml/</loc>
    <lastmod>2023-11-07T21:00:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/systems-at-capacity/</loc>
    <lastmod>2023-08-07T09:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/efficiency-vs-resiliency/</loc>
    <lastmod>2023-04-15T16:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/transformers-for-software-engineers/</loc>
    <lastmod>2022-04-01T13:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/a-cursed-bug/</loc>
    <lastmod>2022-02-22T19:03:48-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/distributed-builds-for-everyone/</loc>
    <lastmod>2021-05-31T16:05:17-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/building-llvm-in-90s/</loc>
    <lastmod>2021-05-20T19:00:28-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/some-opinionated-sql-takes/</loc>
    <lastmod>2021-03-30T10:32:31-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/solving-ultimate-ttt/</loc>
    <lastmod>2020-07-15T10:15:21-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/write-testable-code-by-writing-generic-code/</loc>
    <lastmod>2020-03-11T18:30:17-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/test-suites-as-classifiers/</loc>
    <lastmod>2020-03-01T15:34:00-05:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/systems-that-defy-understanding/</loc>
    <lastmod>2020-02-22T12:00:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/computers-can-be-understood/</loc>
    <lastmod>2020-02-16T12:00:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/reflections-on-performance/</loc>
    <lastmod>2020-02-02T17:00:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/why-sorbet-is-fast/</loc>
    <lastmod>2020-01-23T17:00:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/testing-and-feedback-loops/</loc>
    <lastmod>2020-01-19T12:00:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/record-replay-in-sorbet/</loc>
    <lastmod>2020-01-13T10:00:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/two-kinds-of-testing/</loc>
    <lastmod>2019-12-24T17:09:55-04:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/declarative-configuration-management/</loc>
    <lastmod>2019-11-12T14:00:00-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/a-go-c-polyglot/</loc>
    <lastmod>2019-09-05T16:42:28-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/rwlock-contention/</loc>
    <lastmod>2019-05-07T08:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/apollo-bibliography/</loc>
    <lastmod>2019-04-08T20:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/three-kinds-of-leaks/</loc>
    <lastmod>2018-04-29T08:30:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/property-testing-like-afl/</loc>
    <lastmod>2017-10-24T09:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/property-testing-is-fuzzing/</loc>
    <lastmod>2017-10-03T09:00:00-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/transparent-hugepages/</loc>
    <lastmod>2017-07-10T21:15:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/end-to-end-principle/</loc>
    <lastmod>2017-06-11T13:42:01-07:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/tensorflow-on-aws/</loc>
    <lastmod>2017-02-26T18:41:27-05:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/kubernetes/</loc>
    <lastmod>2017-02-19T12:48:34-08:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/post/utilization/</loc>
    <lastmod>2017-01-08T15:09:09-05:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2016/12/how-i-test/</loc>
    <lastmod>2016-12-29T19:00:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2016/03/design-for-testability/</loc>
    <lastmod>2016-03-06T10:00:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2015/11/what-mongodb-got-right/</loc>
    <lastmod>2015-11-01T10:00:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2015/08/indices-point-between-elements/</loc>
    <lastmod>2015-07-17T09:00:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2015/02/regular-expression-search-with-suffix-arrays/</loc>
    <lastmod>2015-02-01T15:52:43+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2014/08/new-reptyr-feature-tty-stealing/</loc>
    <lastmod>2014-08-20T08:41:34+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2013/12/lightweight-linux-kernel-development-with-kvm/</loc>
    <lastmod>2013-12-30T02:11:45+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2013/03/tracking-an-eventmachine-leak/</loc>
    <lastmod>2013-03-07T13:13:37+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2012/03/why-node-js-is-cool/</loc>
    <lastmod>2012-03-12T11:36:35+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2011/08/breaking-out-of-kvm/</loc>
    <lastmod>2011-08-08T13:32:29+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2011/03/exploiting-pickle/</loc>
    <lastmod>2011-03-20T18:38:13+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2011/02/changing-ctty/</loc>
    <lastmod>2011-02-08T23:06:50+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2011/01/reptyr-attach-a-running-process-to-a-new-terminal/</loc>
    <lastmod>2011-01-21T21:56:01+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/12/some-android-reverse-engineering-tools/</loc>
    <lastmod>2010-12-27T16:26:13+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/12/cve-2010-4258-from-dos-to-privesc/</loc>
    <lastmod>2010-12-10T12:02:11+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/11/exploiting-cve-2010-3081/</loc>
    <lastmod>2010-11-30T12:58:01+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/11/why-scons-is-cool/</loc>
    <lastmod>2010-11-07T18:00:38+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/10/dnsmasq-and-vmware/</loc>
    <lastmod>2010-10-24T23:15:23+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/10/using-haskells-newtype-in-c/</loc>
    <lastmod>2010-10-11T13:11:25+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/10/amd64-and-va_arg/</loc>
    <lastmod>2010-10-04T00:14:28+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/09/a-brief-look-at-linuxs-security-record/</loc>
    <lastmod>2010-09-26T23:16:19+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/09/dear-twitter/</loc>
    <lastmod>2010-09-12T23:48:28+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/09/how-is-duct-tape-like-the-force/</loc>
    <lastmod>2010-09-05T18:37:19+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/08/write-yourself-an-strace-in-70-lines-of-code/</loc>
    <lastmod>2010-08-29T12:33:26+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/08/navigating-the-linux-kernel/</loc>
    <lastmod>2010-08-15T21:52:58+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/08/suggestion-time-what-should-i-blog-about/</loc>
    <lastmod>2010-08-08T21:44:55+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/07/some-musings-on-orms/</loc>
    <lastmod>2010-07-18T18:38:23+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/07/implementing-an-edsl-in-cpp/</loc>
    <lastmod>2010-07-04T15:54:55+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/06/check-plus-an-edsl-for-writing-unit-tests-in-c/</loc>
    <lastmod>2010-06-26T15:54:53+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/06/lab-notebooking-for-the-software-engineer/</loc>
    <lastmod>2010-06-20T22:53:07+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/06/disable-wordpress-edit-shortcuts/</loc>
    <lastmod>2010-06-13T20:07:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/06/i-hate-code-review/</loc>
    <lastmod>2010-06-06T20:21:11+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/05/using-x-forwarding-with-screen/</loc>
    <lastmod>2010-05-30T20:25:52+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/05/hack-value/</loc>
    <lastmod>2010-05-23T19:53:30+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/05/the-window-manager-i-want/</loc>
    <lastmod>2010-05-09T17:08:47+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/05/software-and-lab-notebooks/</loc>
    <lastmod>2010-05-02T23:14:14+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/04/some-thoughts-on-quora/</loc>
    <lastmod>2010-04-04T23:33:51+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/03/config_ia32_emulation_hacks/</loc>
    <lastmod>2010-03-28T20:07:43+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/03/security-doesnt-respect-abstraction/</loc>
    <lastmod>2010-03-13T20:20:26+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/03/followup-to-a-very-subtle-bug/</loc>
    <lastmod>2010-03-03T13:45:11+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/02/a-very-subtle-bug/</loc>
    <lastmod>2010-02-27T23:48:47+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/02/iron-blogger-blogging-for-beer/</loc>
    <lastmod>2010-02-21T23:09:57+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/02/versioning-dotfiles-in-git/</loc>
    <lastmod>2010-02-14T20:03:15+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/02/cve-2007-4573-the-anatomy-of-a-kernel-exploit/</loc>
    <lastmod>2010-02-05T23:32:31+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/01/git-in-pictures/</loc>
    <lastmod>2010-01-24T23:30:02+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/01/on-git-and-usability/</loc>
    <lastmod>2010-01-18T00:57:31+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2010/01/a-brief-introduction-to-termios-signaling-and-job-control/</loc>
    <lastmod>2010-01-11T01:42:52+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2009/12/a-brief-introduction-to-termios-termios3-and-stty/</loc>
    <lastmod>2009-12-30T01:47:17+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2009/12/a-brief-introduction-to-termios/</loc>
    <lastmod>2009-12-22T19:11:22+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2008/09/wpa_supplicant-gui-and-wpa_action/</loc>
    <lastmod>2008-09-18T12:07:49+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2008/09/autocutsel/</loc>
    <lastmod>2008-09-16T12:08:12+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2008/09/new-blog/</loc>
    <lastmod>2008-09-12T14:17:42+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2008/08/using-wpa_supplicant-on-debianubuntu/</loc>
    <lastmod>2008-08-22T14:06:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2008/03/automounting-sshfs/</loc>
    <lastmod>2008-03-23T18:54:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2008/03/conkeror/</loc>
    <lastmod>2008-03-13T19:57:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2008/02/todopl-ratmenu/</loc>
    <lastmod>2008-02-19T23:46:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2007/12/a-week-with-the-iphone/</loc>
    <lastmod>2007-12-31T01:41:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2007/08/def-con/</loc>
    <lastmod>2007-08-05T22:53:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/2007/02/3/</loc>
    <lastmod>2007-02-11T01:33:00+00:00</lastmod>
  </url><url>
    <loc>https://blog.nelhage.com/about/</loc>
  </url><url>
    <loc>https://blog.nelhage.com/irc/</loc>
  </url><url>
    <loc>https://blog.nelhage.com/subscribe/</loc>
  </url>
</urlset>
