Python · Developer Tools · OSS
Koudai Aono (青野高大)
I build and maintain Python tools that turn schemas into typed code and make new language features usable in real projects.
Creator and lead maintainer of datamodel-code-generator. Co-author of PEP 750, which brought template strings to Python 3.14. Author of Python IDE tooling with 1.2M+ downloads.
Open to a full-time role, bringing datamodel-code-generator in-house with me, or collaboration, especially in developer tools and production-quality OSS.
-
14M+
monthly PyPI downloads
datamodel-code-generator -
6.5k
GitHub stars
across my OSS projects -
1.2M+
downloads
my JetBrains plugins -
Since 2019
creator and lead maintainer
datamodel-code-generator
Based in Tokyo, Japan. Available for global remote work.
Independent Adoption
Public projects use datamodel-code-generator in SDK and model generation, developer tooling, configuration workflows, and test or evaluation infrastructure. Each project below links to the code or documentation for that use.
AI and Agent Systems
Data and Platform Infrastructure
Observability and Product Infrastructure
Tests and Evaluation
How I Build OSS
I usually start with a repeated problem that existing tools do not solve well. I define the model, build the tool, add the integrations and documentation needed to use it, and keep it compatible as Python and its libraries change.
Schema to Typed Python
I created datamodel-code-generator in 2019 and have been its lead maintainer since. It now lives in its own GitHub organization. It turns OpenAPI, JSON Schema, GraphQL, CSV, and other inputs into Pydantic v2 models, dataclasses, TypedDicts, and msgspec structs. Since 0.84, it also generates FastAPI server and HTTP client packages.
The work covers schema semantics, naming, compatibility, generated-code quality, CI usage, and migration across Python and model-library versions. It is also documented for AI coding agents.
Repository · Documentation · llms.txt · coding-agent skill · fastapi-code-generator
Python Language and Typing
I co-authored PEP 750, which introduced template strings in Python 3.14. Their interpolations stay structured so tools can inspect and transform them before rendering. My talks examine how typing concepts hold up in maintained Python projects, including decorators and the difference between missing, None, and unset values.
My current work explores linting, safe rendering, and structured-data tools built on t-strings.
Adoption in the IDE
I built JetBrains plugins when widely used Python tools still lacked first-class IDE support. The Pydantic, Ruff, and Poetry plugins have 1.2M+ combined downloads.
The Poetry plugin was later bundled with PyCharm. The Ruff plugin preceded JetBrains' native Ruff support.
If your team relies on any of these projects, sponsoring is the most direct way to support long-term maintenance, compatibility updates, releases, and documentation. Sponsor on GitHub
Where This Fits
This work is most useful to teams building AI coding systems, SDK and API platforms, schema infrastructure, or Python developer tooling. I can own a problem area, choose the technical direction, ship the work, and maintain the public project over time.
What I Am Looking For
I am exploring new opportunities, especially in developer tools and production-quality OSS.
That can be a full-time role, bringing datamodel-code-generator in-house with me, or collaboration.
The company sets product goals, priorities, and constraints. I take ownership of problem discovery, technical direction, delivery, adoption, and long-term maintenance within that context.
Based in Tokyo. I previously worked fully remote with a US company and at the Tokyo branch of a UK company. Employment history is available on LinkedIn.
Bringing datamodel-code-generator in-house
If your company builds on datamodel-code-generator, I am open to discussing bringing the project in-house with me as its lead maintainer.
Selected Talks
My talks focus on bringing typing and language concepts into maintained, real-world Python projects.
- 🇪🇺 EuroPython 2026, Kraków EN "Beyond Optional in Real-World Projects: Missing, None, and Unset" · slides/code
- 🇺🇸 PyCon US 2026, Long Beach EN "Beyond Optional in Real-World Projects: Missing, None, and Unset" · slides/code
- 🇯🇵 SciPyData 2026, Tokyo JA "Deep Dive: datamodel-code-generator"
- 🇯🇵 PyCon JP 2025, Hiroshima (Invited) JA "PEP 750: New Features in Python 3.14" · video
- 🌏 PythonAsia Online Charity Talk 2025 EN "t-strings: Template Strings in Python 3.14" · video
- 🇪🇺 EuroPython 2025, Prague EN "Type Hints in Real-World Projects: Maintenance & Improvement" · video
- 🇺🇸 PyCon US 2025, Pittsburgh EN "Type Hints in Real-World Projects: Practical Steps for Continuous Maintenance and Improvement" · video
- 🇪🇺 EuroPython 2024, Prague EN "Enhancing Decorators with Type Annotations: Techniques and Best Practices" · video
- 🇺🇸 PyCon US 2024, Pittsburgh EN "Enhancing Decorators with Type Annotations: Techniques and Best Practices" · video