Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Question Driven Development using Python

Avatar for Carol Willing Carol Willing PRO
September 27, 2025

Question Driven Development using Python

Keynote address at PyBeach 2025 conference in Santa Monica, CA on Sept. 27, 2025

Avatar for Carol Willing

Carol Willing PRO

September 27, 2025
Tweet

More Decks by Carol Willing

Other Decks in Science

Transcript

  1. Driven Development Question Carol Willing PyBeach 2025 Sept. 27, 2025

    Guide your Python code and career to success
  2. Contributions Developing tools, processes, and organizations to foster learning Enabling

    no-install notebooks with JupyterHub and Binder Improving Python's docs, usability, and governance
  3. Where to start with AI Pick a free tool Try

    to break it Try multiple tools Sandbox your work Take care with your credentials
  4. 59 precious on this years programming for fun 49 years

    experimenting with AI 38 years coding with Python 13
  5. 59 precious on this years programming for fun 49 years

    experimenting with AI 38 years coding with Python 13 my experiments continue using AI for science today
  6. What is working well Visualization of unfamiliar codebase Explanation of

    logical modules (such as event handling) Iterating through a complex environment setup
  7. What could be improved Generating new code Refactoring of existing

    code Surfacing recent approaches and new tools Isolating bugs Hallucinations
  8. What is my conclusion AI is a tool. AI is

    not a person. A person chooses an AI tool. An AI tool has limitations. Fit the tool to the job. Minimize the harm done by the tool.
  9. What should I do next llamabot Eric Ma SciPy conference

    talks Katharine Jarmul Simon Willison Hamel Hussain Hugo Bowne Anderson marimo and Vincent's youtube shorts Audrey Roy Greenfeld
  10. Use tools and templates uv / pixi (GPU) linters and

    formatters pre-commit pytest and playwright CI: automate the boring (but important) stu ff type checkers (mypy, ty, pyre fl y)
  11. https://pyfound.blogspot.com/2025/06/python-language-summit-2025.html Python Language Summit 2025 blog posts https://pyfound.blogspot.com/2025/06/python-language-summit-2025.html PEPs (Python

    Enhancement Proposals) https://discuss.python.org discuss.python.org (Discourse forum) https://pyfound.blogspot.com/2025/06/python-language-summit-2025- python-on-mobile.html iOS and Android https://pyfound.blogspot.com/2025/06/python-language-summit-2025- packaging-governance-process.html Packaging Summit and Packaging PEPs
  12. • timeit or magic %timeit • cPro fi le (deterministic

    pro fi ler) • Pyinstrument (statistical pro fi ler) • py-spy (sampling pro fi ler) • pyperf (https://github.com/psf/pyperf) • GPU: CUDA, numba, cuPy Profile and Optimize
  13. Profile running processes with py-spy py-spy Search fit (implicit/als.py:159) calculate_similar_artists

    (lastfm.py:79) fit (implicit/als.py:163) _get_similarity_score (implic.. _get_similarity_score (implicit/recommender_.. argpartition (numpy/core/fromnumeric.py:757) _wrapfunc (numpy/core/fromnumeric.py:51) calculate_similar_artists (lastfm.py:95) similar_items (implicit/recommender_base.py:203) <module> (lastfm.py:161) visualize with fl ame graphs https://docs.ray.io/en/latest/cluster/kubernetes/k8s-ecosystem/pyspy.html https://github.com/benfred/py-spy https://www.youtube.com/watch?v=p8s2fzqA07s Anthony Sottile, Sentry usage installation
  14. How do I avoid reinventing the wheel https://learn.scienti fi c-python.org/development/

    https://learn.scienti fi c-python.org/development/guides/repo-review/ https://www.pyopensci.org
  15. Instead of imagining that our main task is to instruct

    a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do. – Donald E. Knuth, Literate Programming (1984)
  16. Driven Development Question Carol Willing PyBeach 2025 Guide your Python

    code and career to success https://speakerdeck.com/willingc/question-driven-development-using-python