Who Am I?
I am a roboticist with over 15 years of experience across a range of industries.
During my first year of graduate school in computer science at Johns Hopkins University, I started this blog. Fast forward to today — AutomaticAddison is the largest robotics education blog online. On this site, you’ll find hundreds of blog posts, tutorials, and guides on every aspect of robotics.
My goal is to teach you what you need to know to develop robotic systems to solve real-world problems.
During the first 10 years of my career, I was on the business side of technology turning ideas into successful and profitable products that connect with new markets and consumers. In my roles, I drew on my diverse set of skills and experiences to help companies navigate the complex demands required to build market-leading products.
I was the Chief Financial Officer of 21212 LLC, the first technology startup accelerator in Brazil. Successful companies in our portfolio included ZeroPaper (sold to Intuit (NASDAQ: INTU) in January 2015), VetSmart (sold to PetLove in September 2019, the largest online pet store in Brazil), PebMed (sold to Afya (NASDAQ: AFYA)), and MaxMilhas.
Before that I worked at SEACOM, a $700 million, 17,000 km submarine fiber optic cable that provided high speed data and broadband internet services in 23 African countries. SEACOM was the first international fiber optic cable along the east coast of Africa.
I’ve also worked at Siemens, one of the largest electronics and electrical engineering companies in the world.
I have founded several successful technology startups and have worked at Goldman Sachs, Swiss Re, Emory University, Penn State University, the University of Oklahoma, and the U.S. House of Representatives.
- Master of Science (M.S.) in Computer Science from Johns Hopkins University (expected 2020)
- Master of Science (M.S.) in Meteorology from Penn State University
- Bachelor of Arts (B.A.) in Physics and Environmental Science (double major) from the University of Virginia
At Johns Hopkins University, I studied robotics, machine learning, and computer vision.
For my full background, check out my LinkedIn profile. I enjoy making friends with people who are interested in robotics, so feel free to connect with me on LinkedIn if you found my information useful to you.
There are many problems in the world in which robotics will play a significant role in making it easier, faster, and safer for people to get things done. I love this field because of the opportunities to build the products that will push the world forward and help us achieve what is currently not yet possible…the technologies that will make the world a better place for this generation and future generations to come.
Automatic Addison is about building the future. My mission is dedicated to improving the lives of others by teaching, researching, and developing technologies to remove steps from common human activities; especially activities that are dirty, dull, dangerous, or delicate.
Robots are good at what humans are not, and humans are good at what robots are not.
- Robots are better than humans at structured, well-defined, repetitive tasks where the job is to optimize on some predefined goal (e.g. a robotic arm on an assembly line can perform a pick-and-place task for 24 hours nonstop without getting tired).
- Humans are better than robots at tasks that require common sense, social skills, empathy, innovation, listening, and creativity (e.g. sales, marketing, nursing, customer service, project management, psychology, strategic planning, troubleshooting, defining problems, etc).
Imagine what life would be like if we didn’t have technological inventions such as washing machines, dishwashers, self-checkout, cars, printers, and refrigerators?
Like robots, these technological inventions enable us to make better use of our limited time on this Earth.
- When my grandmother was a child, she had no refrigerator. An ice delivery man would deliver ice to her home on a daily basis, and if for some reason he didn’t show up, all the food would spoil!
- Before automatic printing was invented, there were people known as scribes. Their job was to copy entire books by hand. Any time you’re reading a book, you can thank printers for that.
- There used to be full-time elevator operators who would sit on stools inside elevators. These people were employed to manually operate elevators so that you got to your floor safely. Now, all you have to do is enter an elevator and push a button. No extra human intervention is necessary.
Robotics development must focus on what robots are good at — making humans more productive by taking over repetitive, tedious tasks — while letting humans do what they’re good at — handling edge cases and things that require a creative, personal touch. Robotics is about using technology to boost human performance and productivity.
Subscribe to my YouTube channel so that you can follow my journey.
Learn by Doing
Most books and courses take a bottom-up approach to teaching a particular subject.
For example, let’s say you want to learn robotics so that you can make a living build real-world robots. Most robotics courses and books teach each core robotics topic in isolation without constantly connecting each of those topics to a real-world robot.
You might first learn about kinematics…then you learn about dynamics…then you learn about control…then perception, and so on…all in isolation….until you are bored stiff and can’t take it anymore!
There might be a toy project thrown in at the end of each topic to make you feel like you understand and can apply the concepts, but such a project will often not even remotely resemble what you would encounter in the real world…say at a job where you have to earn a living building robots.
Mathematics, economics, physics, etc….all these subjects are taught this way. You never learn how to apply what you’ve learned in the real world until much later (if at all).
The problem with this bottom-up approach is that you lack any useful context about how the individual components work with each other. You’re unable to apply the learned concepts in any kind of meaningful way in the real world.
In many cases when building a robot, just a few concepts are necessary to get the job done. Learning a multitude of individual robotics topics in a bottom-up way, before getting your hands dirty on a real robot, would be overkill and a waste of time.
Think about how you learned how to drive. You learned how to drive by driving, not by learning about the theory of combustion engines or the mathematics of the forces that govern the motion of an automobile.
You learned how to speak your native language by speaking, not by studying the intricacies of nouns, pronouns, and verbs.
You learned how to code by building programs that solved real-world problems, not by studying about computational complexity or doing mathematical proofs.
You learned to swim by swimming, not by taking a course on human anatomy or fluid dynamics.
To get good at building robots, you must build robots.
To get good at machine learning and data science, you must do machine learning and data science.
To get good at computer vision, you must do computer vision.
…not just read books and study theory.
Pick up the theory and complex math gradually along your journey. In this way, you’ll have the context to understand the theoretical underpinnings of all the stuff you have built. Everything that seems super abstract now will be a heck of a lot clearer when you have a real-world project in front of you that you actually care about.
Not only is this top-down way of learning more effective and faster, but it is a lot more fun than trying to progressively master subtopics in total isolation, the way you would in a typical textbook or course.
My teaching philosophy is therefore top-down. I “teach to the problem not to the tools” (Credit: Elon Musk).
Teaching to the problem focuses on enhancing your problem-solving skills by:
- Putting each learning objective in the context of a real-world, highly motivating and engaging problem that needs to be solved.
- Hands-on learning of career-relevant skills by solving real-world problems and working on authentic, real-world projects that matter.
- Learning about a subject through active exploration of real-world challenges and problems rather than through rote memorization and lectures that require you to cram facts into your brain without real-world context.
- Integrating knowing and doing.
- Focusing on skills listed in actual job postings on Indeed.com and LinkedIn.
Look at this excerpt from the table of contents from a popular machine learning textbook:
You can see that most courses and textbooks on machine learning look like the above image. You learn a bunch of tools and techniques without any real-world context.
Instead of learning a bunch of machine learning algorithms and techniques you’ll quickly forget, how about having you learn machine learning in the context of a real-world problem?
Which would motivate you to learn more…the above image…or this:
- Predict Someone’s Ethnicity Using K-means Clustering
- Detect Fraud Using Auto Encoders
- Diagnose Coronary Artery Disease Using Deep Learning Techniques
- Screen for Autism Using Support Vector Machines
- Determine If Someone Has Breast Cancer Using Naive Bayes
- Create a Traffic Sign Recognizer Using Neural Networks
- Classify Clothing Images Using Capsule Networks
- Detect Diabetes Onset Using K-Nearest Neighbors
- Recognize Human Activity Using Recurrent Neural Networks
- Classify Images Using Convolutional Neural Networks
- Simulate a Self-Driving Car Using Reinforcement Learning
- Convert Speech into Text Using Neural Networks
- Generate Book Scripts Using Long Short-Term Memory Networks
- Predict Stock Prices Using Gaussian Process Regression
- Play Pacman Using Deep Reinforcement Learning
- Train a Self-Driving Car Using Neural Networks
It’s for this reason why I always try to connect each concept I teach to some real-world problem. You’ll retain the information way better, and you’ll have a lot more fun along the way.
Methodology for Explaining a New Concept
When possible, I like to use the following five-step process for explaining a new concept:
- Analogies: Connect the current knowledge to previous knowledge.
- Pictures and Diagrams: Draw a picture to help visualize the concept.
- Real-world Examples: Why does this concept matter? Think of real-world examples of this concept in practice, solving an actual problem.
- Layman’s Terms: Convert the complex technical jargon into basic plain language. Try to explain a concept to a five-year-old child.
- Technical Details: Dive into the technical details and theory on an as-needed basis.
“Start with the customer experience [i.e. the problem] and work backwards to the technology. You can’t start with the technology and try to figure out where you’re gonna try to sell it….What incredible benefits can we give to the customer?” – Steve Jobs
“First principles is a physics way of looking at the world. You boil things down to the most fundamental truths (what are we sure is true?) and then reason up from there.” – Elon Musk
“One bit of advice: it is important to view knowledge as sort of a semantic tree — make sure you understand the fundamental principles, i.e. the trunk and big branches, before you get into the leaves/details or there is nothing for them to hang on to.” – Elon Musk
“Slow is smooth, smooth is fast.” – Navy Seals
“If your mind is empty, it is always ready for anything; it is open to everything. In the beginner’s mind, there are many possibilities; in the expert’s mind there are few.” – Shunryu Suzuki
“What would you do if you knew you could not fail?” – Robert Schuller
“Courage is in far shorter supply than genius.” – Peter Thiel
“Fortune favors the bold.” – Latin proverb
The first reply on this post at StackExchange provides excellent advice about how to learn difficult subjects.