Teaching
Empowering Software Developers to Reach Their Full Potential
I began my journey as a programming instructor in 1995, teaching C, C++, and Java in public courses. During those early years, I enjoyed the opportunity to refine my ability to make complex technical concepts accessible, practical, and engaging for students from diverse backgrounds.
In 1996, 1997, and 1998, I had the privilege of teaching academic courses in economics at the Open University. This experience broadened my perspective and strengthened my communication skills as an educator. In 1999, I decided to continue teaching programming courses only and to follow my passion for programming. My decision to stop teaching economics courses at the Open University was to allow me to dedicate more time to my professional development in software development.
Teaching has always been my true passion — a driving force that inspires me to empower software developers in their never-ending journey of professional growth and evolution. Over the years, I have accumulated extensive experience delivering both academic courses and professional training programs for software developers, combining deep technical expertise with a practical, hands-on approach. Whether in a university lecture hall or a high-tech company’s training room, my goal has always been the same: to equip developers with the knowledge, skills, and confidence they need to excel, adapt, and lead in an ever-changing technological world.
Over the years, I’ve been fortunate to receive thoughtful feedback from students, engineers, managers, and conference organizers—spanning academic courses, corporate training, online programs, and public talks. I’ll be honest: I wasn’t diligent about preserving every feedback. Many were handed to me on paper, stored in internal systems, or sent as quick emails that got lost along the way. Recently, I made an effort to recover and organize what I could. The result is a curated selection of feedbacks that reflect both what worked well and where I grew as a trainer. You’re welcome to browse them at https://lifemichael.com/reviews. I will continue adding more as I locate additional materials.
The Extreme Blended Methodology
During the years, I created the Extreme Blended Methodology for the delivery of software-development training that is practical, flexible, and measurable. Instead of choosing between in-person classes, synchronous online training, and asynchronous training that usually allows self-paced learning, I deliberately combine the right mix of formats separately for every course and topic.
At the base of the Extreme Blended methodology is the assumption that there are differences between different populations of students who attend a software development courses, and to maximize the effectiveness of the training within the time limits (optimization), a variety of tools and methodologies must be used in doses that are specifically suited to the population for which the training is being carried out. Although general lines of action can be outlined for different populations, there is still a need for optimization. The optimization must be done in advance before the training is carried out (if possible). During the first stages of the training, the optimization should be continued using the feedback that can be received from the students. During the training itself, in each and every topic that is taught, the tools and methodologies most suitable for that topic must be used.
Academic Courses in Software Development
Over the years, I have had the privilege of delivering academic courses in some of Israel’s leading institutions, including the Technion, Bar-Ilan University, Holon Institute of Technology (HIT), Kibbutzim College of Education, Technology and the Artsת, The Academic College of Tel Aviv–Yaffo, Shenkar College, and Tel-Hai College. My years teaching at Tel-Hai were especially memorable, involving a flight from Tel Aviv to Rosh Pina followed by a taxi ride to the college — a lovely round trip that I always enjoyed. After 2015, I chose to reduce the number of academic institutions where I teach in order to free more time for the professional training I deliver in high-tech companies. Today I teach at Bar Ilan University and Holon Institute of Technology only.
My academic teaching journey began many years ago at Shenkar College, where I delivered my very first courses in software development. I still remember the excitement of standing in front of a class for the first time, eager to share my knowledge and help students take their first steps in programming.
Over time, I’ve experienced both the joy of courses that became incredible successes — where student feedback was overwhelmingly positive — and the valuable lessons from courses that challenged me to improve. Each experience, whether a triumph or a learning opportunity, shaped the educator I am today.
Since 2015, I have captured on video every lesson I deliver. These recordings have become a powerful tool: students can revisit and strengthen their understanding, and I can review my work, spot areas for refinement, and keep improving semester after semester.
Training Software Developers in High Tech Companies
I began delivering professional training for software developers in 1998, when demand for Java was surging. During that period I taught primarily as a Sun Certified Instructor—with Sun Microsystems, the company that created the Java programming language—helping teams adopt modern Java practices quickly and effectively.
Since then, I’ve designed and delivered programs for many well-known high-tech companies, including Amazon Web Services, Microsoft, Intel, Cisco, Samsung, Amdocs, Comverse, Cyren, Elbit, and many others. My focus has always been practical and production-oriented: hands-on labs, code reviews, and examples tailored to each team’s stack and challenges.
Today I deliver professional training on cutting-edge topics, specializing in advanced content and relatively new languages such as Kotlin, Scala, and TypeScript, alongside the industry mainstays—Java, Python, and JavaScript. Whether it’s language mastery, architecture and design patterns, testing, performance, or modern tooling, every course is crafted to translate quickly from the classroom to production.
Public Professional Courses in Software Developmemt
I began teaching public professional courses around 1996, focusing mainly on C, C++, and Java. From the outset my goal was practical, job-ready training—clear explanations, hands-on exercises, and examples drawn from real projects.
Between 1996 and 2011, I collaborated with companies, colleges, and universities across Israel. At the Technion, I delivered .NET courses as well as Design Patterns and Architecture topics in 2009 and 2011, helping engineers connect foundational principles with production realities.
From 2010 to 2017, I delivered all public courses through the Holon Institute of Technology (HIT) External Studies unit in a very successful cooperation. The flagship offerings in that period included Software Engineering in PHP, Front-End Development, and Android Applications Development.
Since 2017, all public courses have been delivered solely through life michael. Following COVID-19, these public courses are offered online only, maintaining the same depth, interactivity, and real-world focus while reaching learners wherever they are. The currently available public courses are Python Programming, Software Engineering in PHP, Java Programming, Go Programming. Front End Development, C++ Programming, Angular Fundamentals, Android Applications Development, Full-stack Development for Managers, C# Programming, Swift Programming, Scala Programming, Node.js Fundamentals, React.js Fundamentals, Kotlin Programming, CSS Fundamentals, OpenAI Fundamentals, and Extreme Java Programming.
Software Development Online Courses
Following COVID-19, I chose to start working on the development of online courses. Producing professional video clips that explain specific topics, both in English and in Hebrew, wasn’t new for me. In 2007, I started to produce short video clips that explain specific topics in Programming and published them for free on YouTube. So far, I have published thousands of professional video clips, both in Hebrew and in English.
I chose to start with online courses on Udemy. So far, I have developed nearly 30 online courses. These courses cover various specific topics in Java, Python, Kotlin, PHP, and JavaScript.
Following the success of my courses on Udemy, I decided to launch my own online courses platform. In the beginning, I chose to name that new platform “life michael academy”. Shortly after, I found that there was a problem with the use of the word “academy”. I chose to rename that platform to “life michael professional“. The life michael professional platform currently has online courses in Hebrew for learning Java, Python, JavaScript, and TypeScript. The first topics in most of these courses are available for free.
One on One Software Development Training
I offer private, one-on-one training that is fully tailored to your goals, codebase, and pace. Even though the hourly rate is higher than group classes, the fit is sharper—so you spend time only on what matters, often making it the more efficient and cost-effective option overall.
Academic Courses in Economics
Between 1996 and 1998, I taught academic economics courses exclusively at The Open University. Some cohorts earned exceptional feedback; others challenged me and helped me refine my materials, assignments, and classroom practice. The two courses I was teaching at that time were Introduction to Microeconomics and The Consumer Theory (also known as Pricing Theory). During those years, I have also published three books on the topics covered in these two courses.
The Beauty of Code
Coding is Art! Developing Code That Works is Simple. Develop Code with Style is a Challenge!