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 freeSoftware engineer · Teacher
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:
Teaching now
Free lightning talk
A free taste of the workshop, on Maven.
Upcoming workshop
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.
Teaching experience
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.
One of the best courses I've ever done at Google :-)
Incredible course, both pedagogically and professionally. I was very impressed with Dan's deep knowledge of Python in particular, and software in general.
This is definitely the best course I have taken. Thanks for the experience!!!
I have been in software development for 25 years but I felt like this course enhanced my understanding of computing basics tremendously. I would sign-up for part III and IV tomorrow if it was available.
Top-notch course, with good teaching and excellent feedback using the quizzes, etc. I am glad to have found this gem of an online CS class!
Dan was one of the best teachers in Tel Aviv University. It seems like he truly cares about the students. He also builds his courses very well, And they are the closest you can get to “real world” experience.
The best lecturer I've ever had. This was the hardest course I've taken, but his explanations, patience and charisma made it possible. Thank you!
After 10 years of programming in Python I was pretty skeptical I'd have something to learn, but Dan really surprised me. Most courses I've seen don't go so much in depth -- Kudos!
I really liked Dan's "dialectic" approach to teaching software design. First he convinced us one way to do something is best, then he showed us the exact opposite is sometimes better, then he did a "synthesis" you can apply in context. Very cool, thank you!
Perfect level of detail and pace for a Googler ENG audience. Loved it.
Very high quality class. Help to understand complex problems in a very clear way. Videos are short, very clear and straight to the point. Relevant real world examples are provided for each security concept or attack. The supplementary material at the end of each chapter is very helpful to dig further.
The best course I had in university (and the gap is really big). Interesting, relevant, the teacher was fluent, the HW really helped. Dan has passion, skill and talent – I still bear with me things I learned from the lessons.
Very very interesting, hands down the most interesting course I ever took. Lectures very well built, material very well explained, and the homework is very challenging, interesting and fun, whether its overflowing a buffer or sniffing packets in Wireshark. Really made me interested in the Information Security in general, and it is one of the fields that I have my eyes on for the future.
The teacher was excellent, super professional! The course and the materials were top notch: not just a "syntax" course, but Python under the hood, which is much harder to learn on your own.
First time in my life that I give a full score. The teacher was excellent, well-versed in the material, answered questions in depth, and provided clear and concise examples.
Interesting and engaging. Dan is a great, detail oriented teacher.
Dan is an amazing & passionate lecturer! His mixture of domain expertise and patience to teach makes him by far the best lecturer I've ever had. Not only that - his classes are very practical and I believe advances the students in ways that usually don't happen in academic studies.
Put in one word, Incredible. Dan is an incredible lecturer and instructor that delivers top notch, world class courses (I can judge: This is my Post (E)MBA (Second) undergrad, so I have been through some lecturers in my life). A lecturer that not only takes his work extremely seriously, but also creates an inspiring atmosphere. The professionalism, profound knowledge, top-of-the-line learning aids and materials, gradual approach all play an orchestrated role in what becomes some on the most influential classes I've participated in.
The experience was great and I learned a lot. Dan is a great lecturer and has provided me with another perspective on computer science.
Dan put in an absolutely stellar performance as facilitator. The sessions were engaging, fascinating and beloved by the attendees, with a score of 6.6 / 7 - the highest of any session in 2018!
I was able to understand everything and complete all the exercises, and had fun doing so. I have no idea if there are many companies working with infosec where I am (Brazil) but this was so enjoyable that I now dream of some day working in the field... Thank you!
This course had taught me more than any other university course about software development, system design, contemporary technologies and methodologies used in the tech industry. Dan is an excellent teacher and a stand up guy, and I would've loved taking more of his courses in the future.
Dan is an exceptional teacher who brings young and new spirit to to the old spirit of traditional universities.
Writing
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 freeA comprehensive guide to Python programming: from everyday language features to internals, design patterns, performance and concurrency, testing and workflow.
Read for freeLet’s work together
Get in touch if you're looking for custom training for your team
or a software architecture review for your business.