Interview
Teaching in the Age of AI: Learning Goals and the Goals of Learning
Aaron Bauer's background and origin story
- Began fascination with computers in childhood; identified programming as his primary interest after a summer program in New Mexico involving Python-based asteroid orbit calculations.
- Took an online AP Computer Science course in high school via a retired teacher located on a beach in North Carolina.
- Developed an interest in teaching while serving as a Teaching Assistant at the Summer Science Program, delivering lectures on binary search trees.
- Studied early Fortran scientific computing at the undergraduate level, noting the historical presence of automatic differentiation in code used for atomic explosion and asteroid impact simulations.
- Pursued a PhD in Computer Science after a computer graphics course sparked interest, though the field had matured; shifted research focus to human-computer problem solving and cognitive psychology.
- Completed dissertation research on the game Foldit, analyzing how non-biochemists collaboratively solved protein folding problems that computers alone could not resolve.
- Foldit data contributed to training datasets for modern AI tools like AlphaFold, demonstrating the value of gamified domain learning.
Teaching evolution during and after the pandemic
- Transitioned to online teaching at Carleton College in Spring 2020; initially used a text-only, asynchronous model but pivoted due to poor student outcomes.
- Implemented a "flipped classroom" approach where students consume lecture content via video beforehand to maximize synchronous time for interactive problem solving and discussion.
- Found that live lectures provide a unique psychological focusing effect for students that recorded videos often lack, particularly regarding note-taking and retention.
- Adopted active learning techniques, such as posing questions and neighbor discussions, to combat passive consumption and improve information processing.
- Continued using recording technology post-pandemic to support student flexibility without reducing in-class attendance, which remained high at Carleton.
- Integrated automated feedback mechanisms and "mastery learning" principles, allowing students to re-attempt quizzes until passing, though with fixed deadlines to prevent procrastination.
- Evaluated the potential of Large Language Models (LLMs) for generating automated feedback, noting risks of misleading outputs (false positives) requiring careful framing.
Jane Street's Developer Educator role and hiring strategy
- Recruited from academia to fill a unique role combining 50% software engineering with 50% educational responsibilities.
- The role was created because Jane Street's proprietary tech stack and trading domain require specialized instruction that generalists cannot provide effectively.
- Hiring challenges stemmed from the rarity of candidates possessing both deep teaching expertise and credible, day-to-day software engineering skills in the firm's specific environment.
- Plans to expand the role into specialized areas, including an OCaml Educator, a Machine Learning Educator, and embedded educators for AI teams.
- Goal to evolve into a model where educators are embedded within specific product or engineering teams to provide context-specific training, similar to the role of designers in the firm.
- Emphasis on reducing tool specialization among engineers to foster a "generalist software engineer" mindset across multiple languages (OCaml, Python, proprietary tools).
Technical challenges in the Editors and Tools organization
- The Editors team maintains VS Code, Emacs, and NeoVim, customizing them to serve as the primary "home base" for all development workflows, including code review via the internal
ironsystem. - Current engineering efforts address performance issues in VS Code when handling massive diffs (e.g., large configuration files) that cause hanging or queue lock-ups.
- Internal integrations often conflict with external editor assumptions, requiring fixes for search functionality and buffer management.
- Python support challenges involve the limitations of existing notebook solutions; the firm is building a custom OCaml-based notebook tool to ensure control and seamless integration.
- Efforts to "de-weirdify" tooling include migrating from custom Emacs extensions to upstream standard open-source packages where possible, while maintaining OCaml-based extensions for critical functionality.
- Concurrency challenges persist in bridging OCaml (used for extensions) with Emacs's native Elisp and asynchronous limitations.
- The Editors team maintains VS Code, Emacs, and NeoVim, customizing them to serve as the primary "home base" for all development workflows, including code review via the internal
Impact of AI and LLMs on development and education
- AI tools have shifted the software engineer's primary activity from writing code to reading, understanding, and verifying generated code, increasing the volume of code to be reviewed.
- Telemetry data shows an increase in "jump to definition" actions, suggesting developers are engaging more deeply with codebases to understand AI-generated logic.
- The cost of generating plausible code has dropped to near zero, while the cost and cognitive load of verifying it have increased.
- Proposed workflow adjustments include "tutor-like" LLM modes where the model pauses for human input, forcing the developer to maintain mental models of the code rather than passively accepting outputs.
- Strategies to leverage AI in education include using LLMs as patient, on-demand tutors for hints rather than code generators, and embedding pre-computed code segmentation explanations directly into review tools.
- Recognition that the "vibe coding" approach (relying entirely on LLMs) is insufficient for deep learning; students must still perform implementation tasks manually to build sufficient conceptual understanding.
Curriculum design and the Jane Street education ecosystem
- Onboarding Structure:
- OCaml Bootcamp: A one-week cumulative exercise building a client-server app to teach syntax, libraries, and code review style.
- Production Bootcamp: Focuses on deployment, monitoring, and configuration practices.
- Teach-ins: A catalog of short, topical courses on specific libraries (e.g., Bonsai, Market Data) and concepts (e.g., performance, debugging).
- Curriculum Philosophy:
- Emphasis on "learning goals" defined as observable student actions (active verbs) rather than vague concepts, ensuring exercises directly practice the intended skills.
- Application of "cognitive load" theory by separating the introduction of new concepts (syntax, tools, version control) before combining them in complex tasks.
- Shift from abstract problem-solving to teaching practical, immediately applicable tools, leveraging the high baseline problem-solving skills of new hires.
- Internship Program Overhaul:
- Replaced short, code-generation-heavy projects with open-ended, design-focused assignments that require requirements gathering and stakeholder interaction.
- Integrated mandatory testing instruction to provide the necessary feedback loops for LLMs and ensure code quality.
- Introduced formal code review training for interns, including peer reviews and guided practice with "answer keys" to build review skills early.
- Utilized small-group "pods" for interactive discussion, allowing interns to share LLM usage strategies and troubleshoot together.
- Adjusted scope and pacing based on feedback, prioritizing testing and design over multitasking to set a better tone for the internship.
- Onboarding Structure: