Software engineer · Teacher

Hi, I’m Dan

I’m a software engineer and teacher with 15+ years of experience across academia, startups and corporations, spanning three generations of AI: machine learning at Google, deep learning at Magic Leap, and nowadays generative AI.

I love making software development more effective, from metaprogramming and code generation to agentic architecture and AI-centric tools.

Worked with:

  • Google
  • Magic Leap
  • Tel Aviv University
  • edX
  • Intel
  • Amazon
  • and other companies

Teaching now

Upcoming workshops

Free lightning talk

What Does It Mean to be a Software Engineer,
Now That AI Writes All The Code?

A free taste of the workshop, on Maven.

Why Coding Agents Fail in Real Codebases: First Principles for Senior Engineers

Upcoming workshop

Why Coding Agents Fail in Real Codebases: First Principles for Senior Engineers

A 3-hour workshop for experienced devs working with AI, in which we’ll see how most of our problems arise because the tools and design patterns we take for granted were built for humans – an understandably implicit assumption that no longer holds.

We'll revisit them from first principles, accounting for AI’s strengths and weaknesses, reconsider our role in the process and explore what practices work best – not to manage our agents, but to manage complexity with them.

  • For senior engineers
  • 3-hour live workshop
  • 1-hour follow-up session
  • Practical examples and demos
  • Hands-on exercise on your real codebase

Teaching experience

12+ years in industry and academia

I’ve taught 20+ courses – at Tel Aviv University, edX, Google, Intel, Amazon and other companies. My method combines reasoning about software from first principles with substantial exercises and real-life projects, covering advanced Python, information security, software design and AI.

Writing

Books on Python and Metaprogramming

  • 1,300+ pages
  • 2,500+ code examples
  • 150+ exercises

Metaprogramming: An Adventure

A playful exploration of software that can inspect, adapt and generate other software – and the lessons this paradigm offers for software engineering at large.

Read for free

The Unbearable Lightness of Coding

A comprehensive guide to Python programming: from everyday language features to internals, design patterns, performance and concurrency, testing and workflow.

Read for free

Let’s work together

Consulting and corporate training

Get in touch if you're looking for custom training for your team
or a software architecture review for your business.