I'm **Ned Batchelder**, a Python software developer and community organizer.
[](https://vshymanskyy.github.io/StandWithUkraine)
[](https://nedbatchelder.com)
[](https://hachyderm.io/@nedbat)
[](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)
- My personal site is [https://nedbatchelder.com][nedbat].
- I work at [2U/edX](https://edx.org) on [Open edX](https://openedx.org).
- I'm an organizer of [Boston Python][bp].
You can **find me** at:
- Mastodon: [@nedbat@nedbat.com][mastodon].
- [Libera IRC][libera]: nedbat in #python.
- Discord: nedbat in the [Python Discord][discord].
My latest **[blog][blog]** posts:
- **[Multi-syntax configuration examples](https://nedbatchelder.com/blog/202306/multisyntax_configuration_examples.html)**, 5 Jun
How I used cog to let Coverage.py docs show configuration file example in all their different syntaxes. *([read..](https://nedbatchelder.com/blog/202306/multisyntax_configuration_examples.html))*
- **[Scriv on Test & Code](https://nedbatchelder.com/blog/202305/scriv_on_test_code.html)**, 25 May
Brian Okken and I recorded a podcast about my scriv project and other adjacent topics: Avoid merge conflicts on your CHANGELOG with “scriv”. *([read..](https://nedbatchelder.com/blog/202305/scriv_on_test_code.html))*
- **[PyCon 2023 keynote](https://nedbatchelder.com/blog/202305/pycon_2023_keynote.html)**, 4 May
I gave a keynote at PyCon 2023! *([read..](https://nedbatchelder.com/blog/202305/pycon_2023_keynote.html))*
- **[PyCon 2023](https://nedbatchelder.com/blog/202304/pycon_2023.html)**, 26 Apr
Disjointed reflections on PyCon 2023 *([read..](https://nedbatchelder.com/blog/202304/pycon_2023.html))*
- **[Beginner sprint on coverage.py](https://nedbatchelder.com/blog/202303/beginner_sprint_on_coveragepy.html)**, 21 Mar
I participated in the PyCascades sprint day yesterday, offering up coverage.py as a project. I was pretty sure it wasn’t beginner-friendly, but the sprint was useful because it pointed out specific ways that it was not, and we fixed some of them. *([read..](https://nedbatchelder.com/blog/202303/beginner_sprint_on_coveragepy.html))*
- **[Watchgha](https://nedbatchelder.com/blog/202303/watchgha.html)**, 13 Mar
Watch GitHub actions until they finish *([read..](https://nedbatchelder.com/blog/202303/watchgha.html))*
- 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)
- [**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)
- [**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)
- [**Aptus**](https://github.com/nedbat/aptus): Mandelbrot fractal viewer
[](https://pypi.org/project/aptus)
[](https://github.com/nedbat/aptus/commits)
[](https://pypistats.org/packages/aptus)
*(made with [cog](https://github.com/nedbat/cog) at 2023-06-06 01:06 UTC)*
[nedbat]: https://nedbatchelder.com
[blog]: https://nedbatchelder.com/blog
[mastodon]: https://hachyderm.io/@nedbat
[discord]: https://pythondiscord.com
[libera]: https://libera.chat
[bp]: https://bostonpython.com
[ned_pypi]: https://pypi.org/user/nedbatchelder