Ron Mak

Ronald Mak is a highly rated instructor of object-oriented analysis and design in C++, Java, and Python at San Jose State University in Silicon Valley. As a senior computer scientist at NASA and JPL, he developed software for major space missions, including the Mars rovers, the International Space Station, cubesats, and the Orion spacecraft. He was a research staff member at IBM Research, where he helped develop systems software for a supercomputer and software for an advanced data science project. He was the enterprise software strategist for the National Ignition Facility (NIF) at the Lawrence Livermore National Laboratory, which is making important breakthroughs in fusion energy. Earlier in his career, he was a software developer and engineering manager at various Silcon Valley companies, including Hewlett-Packard, Sun Microsystems, Apple, and several startups. He has degrees in the mathematical sciences and in computer science from Stanford University. He is an inventor on seven software patents. He has written books on compiler writing, software engineering, and numerical computation, which have been translated into several languages. Despite having done work on the relative motions of planets and calculations that involved Einstein’s theory of relativity, Ron is still amazed that the sun comes up each morning and that bicycles don’t tip over.

books by Ron Mak

Software Design in Python

  • MEAP began December 2024
  • Last updated May 2025
  • Publication in August 2025 (estimated)
  • ISBN 9781633439498
  • 475 pages (estimated)
  • printed in black & white

Software Design in Python helps you build software like the pros. In clear, jargon-free language it lays out the object-oriented design principles, practices, and patterns that you need to know to build scalable and maintainable applications. Throughout, you’ll find intuitive “before” and “after” examples that show you what bad code looks like, and how to fix it with the right pattern. Conversation sidebars feature engaging talking heads that ask-and-answer common questions. If you know the basics of Python code and are ready to make the leap to building software, this book will be the patient and insightful mentor you need!

Object-Oriented Software Design in C++

  • May 2024
  • ISBN 9781633439504
  • 520 pages
  • printed in black & white

Object-Oriented Software Design in C++ introduces object-oriented design principles, practices, and patterns in clear, jargon-free language. The instantly-familiar before-and-after examples highlight the benefits of good design. Each chapter is full of friendly conversations that anticipate your questions and help point out the subtleties you might overlook. Along the way, you’ll pick up tips about idiomatic C++ style that will set your code apart.