[](https://nedbatchelder.com)
[](https://hachyderm.io/@nedbat)
[](https://bsky.app/profile/nedbat.com)
[](https://about.bostonpython.com)
[](https://discord.gg/python)
[](https://github.com/sponsors/nedbat)
[](https://stackoverflow.com/users/14343/ned-batchelder)
[](https://pypi.org/user/nedbatchelder)
[
](https://nokings.org)
[
](https://nedbatchelder.com/blog/202411/my_politics.html)
[
](https://stand-with-ukraine.pp.ua/#support-ukraine)
[
](https://nedbatchelder.com/blog/201207/my_mom_got_married.html)
[
](https://nedbatchelder.com/blog/202006/black_lives_matter.html)
I'm **Ned Batchelder**, a Python software developer and community organizer.
- My personal site is [nedbatchelder.com][nedbat].
- I'm an organizer of [Boston Python][bp].
- I'm a member of the [Python Docs Editorial Board][pdeb].
You can **find me** at:
- Mastodon: [@nedbat@nedbat.com][mastodon].
- Bluesky: [nedbat.com](https://bsky.app/profile/nedbat.com).
- Libera IRC: nedbat in [#python][libera].
- Discord: nedbat in the [Python Discord][discord].
My latest **[blog][blog]** posts:
- **[No more .html](https://nedbatchelder.com/blog/202601/no_more_html)**, 2 Jan
My site used to have URLs ending with .html. Not anymore. *([read..](https://nedbatchelder.com/blog/202601/no_more_html))*
- **[Generating data shapes with Hypothesis](https://nedbatchelder.com/blog/202512/generating_data_shapes_with_hypothesis)**, 21 Dec
I used Hypothesis to generate random data structure schemas, and then generate random data using them. I learned a lot along the way. *([read..](https://nedbatchelder.com/blog/202512/generating_data_shapes_with_hypothesis))*
- **[A testing conundrum](https://nedbatchelder.com/blog/202512/a_testing_conundrum)**, 18 Dec
A useful class that is hard to test thoroughly, and my failed attempt to use Hypothesis to do it. *([read..](https://nedbatchelder.com/blog/202512/a_testing_conundrum))*
- **[Autism Adulthood, 3rd edition](https://nedbatchelder.com/blog/202511/autism_adulthood_3rd_edition)**, 18 Nov
My wife’s book is out today, you should buy it. *([read..](https://nedbatchelder.com/blog/202511/autism_adulthood_3rd_edition))*
- and [many more][blog]..
I maintain a few [**Python packages**][ned_pypi], including:
- [**Coverage.py**](https://github.com/nedbat/coveragepy): The code coverage tool for Python
[](https://pypi.org/project/coverage) [](https://github.com/nedbat/coveragepy/commits) [](https://pypistats.org/packages/coverage)
[](https://hachyderm.io/@coveragepy)
- [**Cog**](https://github.com/nedbat/cog): Small bits of Python computation for static files
[](https://pypi.org/project/cogapp) [](https://github.com/nedbat/cog/commits) [](https://pypistats.org/packages/cogapp)
- [**Scriv**](https://github.com/nedbat/scriv): Changelog management tool
[](https://pypi.org/project/scriv) [](https://github.com/nedbat/scriv/commits) [](https://pypistats.org/packages/scriv)
- [**Dinghy**](https://github.com/nedbat/dinghy): A GitHub activity digest tool
[](https://pypi.org/project/dinghy) [](https://github.com/nedbat/dinghy/commits) [](https://pypistats.org/packages/dinghy)
- [**WatchGHA**](https://github.com/nedbat/watchgha): Live display of current GitHub action runs
[](https://pypi.org/project/watchgha) [](https://github.com/nedbat/watchgha/commits) [](https://pypistats.org/packages/watchgha)
I've also made a few informal projects, some mathy art, and some small utilities:
- [pkgsample](https://github.com/nedbat/pkgsample), an simple example of how to package a Python project.
- [Truchet images](https://github.com/nedbat/truchet) explores Truchet tiles and rendering images with them.
[Blog post](https://nedbatchelder.com/blog/202208/truchet_images.html).
- [Flourish](https://github.com/nedbat/flourish) is a harmonograph explorer.
[Blog post](https://nedbatchelder.com/blog/202101/flourish.html) and [live site](https://flourish.nedbat.com/).
- [Stilted](https://github.com/nedbat/stilted) is a toy PostScript implementation.
[Blog post](https://nedbatchelder.com/blog/202208/stilted.html).
- [Gefilte Fish](https://github.com/nedbat/gefilte) is a Python-based DSL for writing Gmail filters.
[Blog post](https://nedbatchelder.com/blog/202103/gefilte_fish_gmail_filter_creation.html).
- [Pydoctor](https://github.com/nedbat/pydoctor) shows details of your Python environment for troubleshooting.
- [Aptus](https://nedbatchelder.com/code/aptus/v3.html) is a Mandelbrot toy.
This is a [Markdown page with embedded Python code][readme.md] rendered with [cog][cog].
See my blog post **[Cogged GitHub profile][blog_post]** for details.
*Updated at 2026-01-03 14:40 UTC*
[nedbat]: https://nedbatchelder.com "My site with blog, talks, etc"
[blog]: https://nedbatchelder.com/blog "My blog"
[mastodon]: https://hachyderm.io/@nedbat
[discord]: https://pythondiscord.com
[libera]: https://libera.chat
[bp]: https://bostonpython.com "The Boston Python home page"
[pdeb]: https://python.github.io/editorial-board/
[ned_pypi]: https://pypi.org/user/nedbatchelder "The list of all my packages on PyPI"
[cog]: https://github.com/nedbat/cog "The cog repo on GitHub"
[readme.md]: https://github.com/nedbat/nedbat/blob/main/README.md?plain=1 "The raw source for this GitHub profile"
[blog_post]: https://nedbatchelder.com/blog/202409/cogged_github_profile.html "Discussion of how this page is constructed"