I'm a Software Engineer, passionate about bringing technology to the people, and using code to advance science, social impact and wellbeing.
I always loved to teach: I started doing it in high school for spare change, and continued doing so during my military service, teaching and organizing various advanced trainings. Since then, I've taught in both academia and the industry (including places like Google, Intel and Magic Leap, to name a few) — and now I do it for small groups of students, professionals and other enthusiasts, looking to improve their skills.
This course is about advanced Python programming: from subjects as basic as assignment, conditionals and loops (you'd be surprised how much there's to say), through functions and objects, to descriptors and metaclasses, including Python internals, performance, and software design. Master Python for real, inside out!
Software design, like any design, is near impossible to teach — it's more of an experience, an intuition. Through a series of lectures and guided exercises, we'll cover important design patterns, learn to build platforms instead of solutions, and draw on industrial design, architecture and urbanism for inspiration.
In this course, we cover everything from reverse-engineering and buffer overflows, to logical, network and web vulnerabilities, including cryptography, computer viruses and various defenses and mitigations; but more importantly — we learn the attacker's mindset, the defender's paradigm, and the underlying philosophy of it all.