Teaching

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.

Taught at:

  • Tel Aviv University
  • edX
  • Google
  • Intel
  • Amazon
  • Armis
  • and other companies

Current teaching

Featured Maven workshop

A practical workshop for senior engineers.

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

Past teaching

Online course on edX

Unlocking Information Security

Unlocking Information Security

This two-part course was co-authored and taught with Prof. Avishai Wool at Tel Aviv University; it's available to audit for free, or with a professional certificate endorsed by CheckPoint.

Part I: From Cryptography to Buffer Overflows and Part II: An Internet Perspective connect the principles of secure systems to the mechanisms behind real attacks: cryptography and authentication, memory vulnerabilities, network protocols, web security and malware. Video lessons, quizzes and practical problems help learners investigate how those mechanisms work and how systems can be defended.

Learner feedback

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!

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.

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.

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!

Past teaching

Courses at Tel Aviv University

  • 3 coursesin CS faculty
  • 500+ studentsBSc. and MSc.
  • 100+ hoursof lectures
  • 4.98/5 rating120+ reviews
Advanced System Design

Advanced System Design

"Everything I wish they'd teach me in university before I went to work in the industry" – throughout this course, students built a complete, distributed data-processing system, from the wire protocol to the web UI.

Its first half covers advanced Python programming, from everyday language features to internals, design patterns, performance and concurrency, testing and workflow. The second half focuses on software architecture: databases and message queues, networking and distributed systems, virtualization and the cloud, APIs, CLIs and GUIs. It includes a progression of exercises to implement an imaginary brain-computer interface: a client that streams video, depth images and cognitive metrics to a server that distributes the load across orchestrated micro-services, which then parse, index and visualize the results.

Student feedback

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 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.

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.

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.

Impact-Oriented Programming

Impact-Oriented Programming

Undergraduate CS students have to do one practical workshop during their degree – but why waste their effort on building toy systems or academic PoCs when there are plenty of real "customers" – science labs down the hall, or NGOs for that matter – that face concrete problems, but lack the funds or expertise to address them with software? During this course, teams of students were paired with such customers to write specifications, develop prototypes and iterate on real products; and with a bit of mentoring and a lot of open-source software, they were able build working solutions (some of which are still in use) in a range of areas: brain imaging and cultured-meat research, computer vision to physical experiments, and a refugee clinic in south Tel Aviv.

The course combined engineering with requirements, teamwork and the practical responsibility of delivering to real (and often non-technical) clients – and hopefully made some small impact in the various fields it touched.

Student feedback

This was the best course I took during my BA. It not only gave every single person a hands on experience working on real problems with tools we will see and use in the future, it also gave us an opportunity to give back to the community. We were given a much needed project and worked with people who didn't have the technical background to even understand what they actually need. Dan guidance was great, pushing us when we needed it and in other times letting us figure it out on our own, helping us understand how to solve problems easily and quickly. This is a great course that I believe should be a required course on any computer science program.

Best course I took in all my years in TAU. Interesting, challenging, hands-on with added-value of working with other teams from university (Neuroscience lab). Dan is the best teacher I had. His attitude, which is more knowledge-oriented and less grades-oriented has helped me learn and develop as a programmer. Throughout this project I learned so many important aspects of programming that I never learned before (product design, databases management, git flow and using git correctly, writing web app from scratch, dealing with clients and so on...). I feel that the skills I earned in this course has made be a better programmer. I even feel that my impact in my workplace has become more significant. So glad I took your class. Thank you so much Dan!!

Mr. Gittik has a lot of experience in the industry and in teaching, both expressed by working under his guidenece on the workshop at the University. Gittik has taught us in a unique way how to adress problems in the real world and more importently how to think about these issues.

I would recommend future students to attend this workshop that actually has an impact on the world and gives them a priceless experience in the industry of developing.

The Impact oriented programing is one of the best courses I have ever taken. On the academic level, I have gained a great amount of useful programing skills and experience that allowed me to integrate into the tech industry. Not only that I've learned about web-frameworks, versioning tools, system design and much more, I've learned how to approach a real world problem, how to work as a member of a programming team, and how to talk to clients and present them ideas and solutions. Despite the importance of all of these, in my opinion, what made this workshop so special and unique is the focus on altruism. Mr. Gittik showed us how we can use our knowledge and practice to help others, and he inspired us to do so. As a matter of fact, even after we received our grades, we kept working on our product to perfect it for our client. Finally, it is important to acknowledge the effort, time, and thought that mr. Gittik put in this workshop. Along the semester he mentored us, taught us, and helped us to achieve our goals.

Introduction to Information Security

Introduction to Information Security

A practical course in how systems are attacked and defended, covering reverse engineering, memory corruption, network and web vulnerabilities, cryptography, malware and mitigations. I joined the course as a teaching assistant, became a lecturer after one semester, and went on to revamp the content and infrastructure as its audience grew. My aim was to put the theory into practice through a series of exercises in which students had to patch binaries with IDA, find vulnerabilities in a large codebase, implement stack overflows and return-oriented shellcodes, practice ARP poisoning, IP spoofing, SQL injections and XSS – all so they can see for themselves how real systems could be hacked, and how they should be protected.

Student feedback

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!

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.

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.

Dan is an exceptional teacher who brings young and new spirit to to the old spirit of traditional universities.

Past teaching

Corporate training

  • 15+ coursesin 12+ companies
  • 200+ studentsacross industries
  • 100+ hoursof lectures
  • 4.96/5 rating50+ reviews
Advanced Python

Advanced Python

Advanced Python for developers who want to understand the language beyond its syntax. The course moves from names, scopes and control flow through functions, generators and objects to decorators, descriptors and metaclasses. It covers bytecode, profiling and performance, concurrency and asynchronous programming, as well as the workflow of building, testing and packaging Python projects, with exercises and solutions that give participants a way to investigate the ideas themselves.

Participant feedback

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!

Amazon

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.

RAD

Incredible course, both pedagogically and professionally. I was very impressed with Dan's deep knowledge of Python in particular, and software in general.

Intel
Software Design

Software Design

Taught from first principles of how complexity can be managed, this course goes through common design patterns and considerations like composition vs. inheritance to less familiar paradigms like aspect-oriented programming and plugin development kits, drawing on industrial design and architecture to explore how large, complex systems can remain useful as requirements change. Practical work connects those ideas to databases, message queues, micro-services, containers and APIs.

Participant feedback

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!

Intel

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.

RAD

The experience was great and I learned a lot. Dan is a great lecturer and has provided me with another perspective on computer science.

Toka
Information Security

Information Security

The mechanisms and reasoning behind attacks and defenses, from reverse engineering and memory vulnerabilities to networking, the web, cryptography and malware. The course develops an attacker’s ability to find broken assumptions and a defender’s ability to evaluate mitigations. Practical challenges make those ideas concrete for engineers working on real systems.

Participant feedback

Perfect level of detail and pace for a Googler ENG audience. Loved it.

Google

Interesting and engaging. Dan is a great, detail oriented teacher.

Armis

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!

Google Campus Startup School

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.