Advice to Young Engineers

You have maybe been exposed to the value of a “cold email” or “cold DM” for reaching out to people you consider influential or inspiring. Indeed, mentorship is a wonderful thing, and in the last few decades the Internet and social media has opened up access for aspiring professionals/researchers/etc. to communicate with their role models from a distance.

For some unknown reason, a handful of people have decided to pick me as one of their contacts. However, in my experience many people will take this advice too literally and blast out a generic copy-paste DM with — honestly — impossible to answer questions. Some examples I’ve seen are:

“Can you send me some resources to learn robotics?”
“What skills should I focus on to land a job at X company?”
“Should I pursue hardware vs. software / industry vs. academia?”

The pseudo-intellectual answer is always “it depends”. It really does, though! Everyone has different skillsets and interests, and it would be wrong for me (or anyone) with their own biases to prescribe a roadmap without any previous interactions. You have to decide that for yourself by trial and error.

Sorry, I can’t hear you from all the way up here…

Additionally — and the reason I decided to write this article — I’ve encountered an alarming number of people that decide to exploit this dynamic for selfish reasons. This is usually some variation of people selling a product or boosting their own popularity on social media. Through my growing frustrations with influencer culture, here is my attempt at providing genuine advice for aspiring engineers.

Disclaimer: I am a robotics software engineer, and you will see that in all my examples. Feel free to use your imagination if you’re in a vastly different field.


1. Focus on Problems instead of Tools

Which programming language should I learn?
Should I buy an Arduino or Raspberry Pi?
How do I get better at Robot Operating System (ROS)?

These questions have one thing in common. They tell you that the person asking has determined that learning how to use specific tools is important, presumably to increase their employability in the future as job postings ask for this information. They also indicate that the person either doesn’t have a specific problem in mind to solve… or at least that they are not communicating it because it’s secondary to the tools themselves.

This is my first piece of advice: Think first about what problem you are trying to solve, and then look for the right tools. As my father often repeated while I was growing up (in typical dad fashion), “engineering is solving problems”. This should always be the guiding principle, and everything else follows from there.

I didn’t think this way when I began my career. For my first job out of school at MathWorks, the company at the time had upwards of 90 products based on MATLAB and Simulink. As if trying to become a Pokémon master, I attempted the futile effort of “catching them all”; that is, learning to use all the toolboxes by following their respective tutorials and checking the proverbial box that I now knew how to use that tool. I truly believed that amassing this knowledge would make me a stronger advocate for the product and therefore a better employee.

I later realized by looking at the successful sales engineers’ demos that the true power came from combining these toolboxes to show realistic applications. I remember seeing a full 3D model of a robot arm down to the mechatronics level, with a perception module that could detect graspable objects and a model-based controller that could avoid obstacles and run on an embedded system. This application maybe used 20 percent of all the MathWorks toolboxes, and yet it was far more impressive than all the individual toolboxes’ tutorials put together. Why? Because they could convince a potential customer that they could design and control a real-life system. To add insult to injury, I didn’t need to learn the remaining 80 percent of toolboxes to understand this demo!

The “eye-opening” MATLAB robotics example. Special shout-out to Carlos Santacruz who taught me a lot about what makes a good demo.
Source: MathWorks.

Don’t fall into this trap of chasing credentials by attending tons of webinars and taking tons of courses/tutorials because “it would be good in the future”. Not only is it going to be more rewarding to do something for yourself rather than following some else’s steps, but you will learn the tools in much more depth by focusing on real problems. Additionally, learning from actual mistakes will make the knowledge sink in way better than a tutorial that only exercises the well-curated “happy path”.

That said, there is still value in coursework, webinars, etc. In my experience, doing a little bit of this “passive learning” at the beginning can help you grasp the basic concepts, terminology, and key people in that field. However, you shouldn’t believe or claim that you know a topic purely by consuming rather than doing. The necessary next step is to actually apply that knowledge by working on a sizable project.

Kendrick already knew this, by the way.

2. Work with Integrity

When I’ve been involved in hiring, or generally when figuring out if I will enjoy working with someone, I look for a few traits that tell me far more than pure technical ability.

  • How do you verify that your work is correct?
  • Will you try to search for answers first before escalating a more thought-out question? Or do you need constant hand-holding? (that is, can you Google your way out of basic problems?)
  • When given feedback on your work, do you take note and process it later? Or are you simply trying to get it off your shoulders and move on?

I’ve worked with several junior people who are given a task, complete it quickly, and proudly return saying that it’s done and ready to go. At this point, I often ask the simple question: how do you know that it works?

If you find it difficult to answer that question, this indicates that there are misaligned incentives. Here’s my (unproven) theory: We all want to do a good job, and it’s easy to translate that to completing tasks as quickly as possible. That will certainly impress our supervisors, right? Well… no. If you’re not careful, this will lead to unfavorable outcomes:

  • Your work is actually not correct because it wasn’t checked thoroughly.
  • You end up annoying your colleagues by asking too many questions too quickly, because you don’t want to be blocked and delay completing your assigned task.
  • You end up reacting to feedback in unproductive ways because you’re rushing to “address all the comments” and move on with your day.

Let me be clear: doing a good job does not mean doing it quickly. It means patiently working through issues and feedback to come up with a good solution that you’re confident will work… and will continue working for as long as it needs to.

2a. Checking your Work

I can think of two situations in my career where I was reviewing some work that followed this misaligned incentive where the person was trying to complete the task above doing the right thing.

One of my former colleagues had recently joined our team and put one of their first examples up for review at our group meeting. They happily reported having implemented a PID controller into a simulation to regulate the position of… something (it doesn’t matter). When I asked to look at the output of the PID controller, it kept oscillating wildly between the upper and lower limit. The example “worked” in that the position seemed to track the reference signal, but the controller itself had not been tuned. Indeed, we changed the reference signal to a different, yet plausible, value and the simulation immediately went unstable! This was a classic teachable moment in checking your work.

The other occasion was more nuanced. I was overseeing an open-source project that involved a big refactor of a software component. The pull request was large and had been going on for quite a long time with back-and-forth reviews, so I think everybody was getting tired and just wanted something merged in. We decided things were good enough, so we agreed to hit the big green button and deal with the fallout later. What ended up happening was the need to put up approximately ten (yes, 10) follow-up bug fixes over the next few months. In some cases, innocent things were overlooked. In another case, some fancy new math was implemented by faithfully following the notation of a textbook, but without re-ordering the data to the way the code was actually written.

The first lesson here was the obvious one; that it would have paid off to do more testing of the code and its underlying math. However, the second lesson is about project planning and incremental progress. Because there was one monolithic changelist that burnt out both the mentee and the mentors, we allowed low-quality code to sneak through, and we directly paid the price. This is exactly why in the software world there are strong recommendations to keep pull requests as small as possible, and also to include tests with the items of work being submitted.

Check your work! Especially if you’re as bad at math as I am.
Source: WikiHow

2b. Responding to Feedback

In addition to checking your own work, anything that’s important enough will go through a peer review process. When you think of reviews, you may experience a visceral reaction such as “oh, great, even though I finished the work I’m gonna have to deal with random comments for the next few days.”

When someone provides feedback, they usually mean well. Using their own knowledge and experiences, a peer may suggest doing something differently because they believe they might save you, or the organization, some future headaches you may not have considered. Or it might be as simple as pointing out a silly typo or math error that you didn’t catch.

When you receive feedback, you don’t have to blindly accept it or defend it on the spot. Either of these responses tell me that you are prioritizing taking the path of least effort over converging on a good solution. I suggest writing down the feedback, thinking about it later, and deciding for yourself whether it is a good idea to apply it. And if you can’t figure out what to do about a specific item, it’s always worth following up with the person who suggested it to clarify any doubts. Most often, you will come up with a reasonable way to move forward.

Never take technical feedback personally. Besides the “get it done as quickly as possible” misconception we’ve covered in this section, there is another misconception that you’ve only done a good job if your work was so good that it got zero comments. If that happens, it’s not because you did the task perfectly, but rather because your peers are not interested in the work. The most experienced engineers still receive tons of conflicting feedback they need to resolve; not because they’re bad at their jobs, but because people care enough about the work that they start to imagine consuming it and picturing ways it could fail and/or be improved upon. Even if it feels like more effort (because it is), it is a good sign that your work gains enough interest to be scrutinized.

There is an adage in my field that aptly summarizes this section. “There are two types of software in this world: Software people complain about, and software people don’t use.”

To be clear, veering into the right is the bad thing here.

3. Substance over Engagement

[Content warning: Hot takes]

We began this post by highlighting a positive aspect of social media: giving you access to inspiring people with whom it would otherwise be very difficult, if not impossible, to have a conversation. However, it is no secret that social media also has some highly concerning drawbacks.

The problem is that the vast majority of social media platforms incentivize engagement, because that is a quantifiable, yet fatally flawed, proxy for success. The corporate world refers to this as a Key Performance Indicator (KPI). The engagement KPI is a numeric quantity that doesn’t care about the value of the content. If it gets a lot of “likes” and “reposts”, it means engagement is up. In fact, some leaders (who may also lead electric car and commercial spaceflight companies) have gone as far as relaxing their tolerance for hate speech and bots on their platforms and then proudly asserting that their engagement has skyrocketed. Again, optimizing for the wrong thing.

What I’m trying to say is that you should be wary of influencers, “top voices”, and similar people who lull you into a false belief that effort is actually not needed to be successful. You may encounter claims such as:

Become a machine learning expert in just 5 hours with my course!
If you’re not using X technology, you’ll become obsolete in the next decade.
Subscribe to my newsletter and I will send you my whitepaper on productivity hacks.

These all have something in common: They are playing to your insecurities and/or sense of urgency to give something away in exchange for instant gratification. In the previous section, I outlined the perils of rushing the finish line and doing a sloppy job. This is really no different, with one exception: instead of you innocently acting under the wrong incentives and being corrected by more experienced peers, there is an external actor that is actively trying to revert your thinking towards those wrong incentives for their own benefit. They are possibly trying to gain more popularity to elevate their status on social media (which in turn helps them get better opportunities online and in the real world), or they may be trying to sell a product. Ultimately, these people see you as an accessory to their own success and, if you’re lucky, do so in a way that at least gives you valuable information. You can treat them as sources of entertainment, but please don’t think they can replace actual education.

There is an important distinction between journalism and education. Tech news sources like Hacker News, TechCrunch, and IEEE Spectrum, reviewers like MKBHD, or podcasts like Hard Fork are all fine because they provide information and/or entertainment without making any promises that you will gain any tangible expertise or qualifications out of it. Similarly, there are actual influencers who forthrightly operate as news and entertainment sources. I am specifically warning you about people who claim you can somehow develop expertise by taking shortcuts. My warning is doubled if these shortcuts are only available through some kind of transaction — be it money, personal information, or requesting engagement on social media.

As far as education goes, there are two types of people you should pay attention to:

  1. Those sharing their knowledge out of goodwill: If someone is developing content that is freely available, either on their spare time or because they are already funded, this is generally a safe bet. That person’s success has nothing to do with your engagement, so there is a high probability that their intentions are good. You should, however, acknowledge that there is a surplus of low-quality and even flat-out wrong information on the Internet. There are no guarantees and you should always cross-check your sources. My blog posts are no exception.
  2. Those selling something without resorting to ridiculous claims: You can’t become a machine learning expert in 5 hours, but you can probably learn the basics of neural networks with PyTorch in that time. You can’t buy a course that makes Google automatically hire you, but you can buy a course that includes extensive practice in data structures and algorithms. You can’t buy software that reduces your time to market by 6 months, but you can buy software that automates camera calibration procedures. You get the point.

A good “sanity check” when considering what content to spend time and/or money on is to ask yourself: did this help me achieve something in real life? If you scrolled through an influencer’s page while having your morning coffee and “liked” a bunch of interesting short videos, then maybe that was entertainment but not education — again, this is okay if you treat it as such. On the other hand, if you found an open-source repository or purchased a course that helped you fix some long-standing problems at school or work, that’s a much better indicator of true educational material.

Who will you follow — left or right?

Some extra comments regarding the “spiciness” of this section:

  • I am not suggesting you are disallowed from selling yourself or your product. I am just saying you should make your intentions clear. If you are selling something, don’t masquerade it as advice or thought leadership: be factual about what you or your product offer and establish trust with your audience. This will pay off in the long term, which I can personally vouch for in my experience with software sales and marketing.
  • If you genuinely are trying to help others, I assume you will take no issue with this section. If you do take issue… maybe it’s time to look inwardly?

4. Acknowledge that lifespans are finite

In my 20s, I had a list of “robotics stuff I wanted to learn” and seriously thought I was going to systematically make my way through it over a decade or two of experience. Over time, I uncovered some problems with this strategy… if you can even call it that:

  • As I learned more, I also discovered more things I didn’t know about, some of which I added to my list. It quickly became overwhelming, as evidenced by a period in my mid-20s when I took an absurd amount of Coursera classes in all sorts of random topics. Unsurprisingly, I’ve forgotten more than half of that material because I never had to use it again.
  • As I became older, I found I had less time and energy to devote to learning compared to my university years. However, as my friend Joe Schornak pointed out while we were chatting about this content, we also become more efficient at learning due to our accumulated experiences. That sort of balances things out, although one does end up getting more selective about what to spend time on.
  • New work is still being published all the time! Think, for example, what it must be like to have been an AI expert 10 years ago, disappeared under a rock, and reemerged today.

So unfortunately, we can’t amass endless knowledge as individuals. We all have a finite time in this world, and even within that time we also have other things to take care of besides pure pursuit of knowledge. (That’s right, some of us have lives too!) This means 2 things:

  1. While you may have loads of professional interests, you practically have to pick a modest subset of things to learn well, and leave the rest to a more cursory understanding. This is where the notion of the T-Shaped engineer and its ridiculous variants (see the image below) comes in. The point is that over a career you can only grow a fairly limited set of deep expertise “tendrils”, and that’s okay!
  2. Following the previous point, you need to rely on other people. In the present, this means collaborating with others whose T-shapes (or M-shapes, or whatever) don’t fully overlap with yours. Particularly for cross-disciplinary fields like robotics, this is the only way to build the complex systems that are in demand. That, or you’re a perpetual hobbyist. Looking to the future, this also means we have a responsibility to transcend individual lifetimes by teaching the next generation(s) what we know and letting them improve our techniques with fresher energy and more up-to-date skills.
Different shapes of engineers… totally unscientific, but it’s a good illustration.
Source: Ihor Bekh, Innovecs

5. Give back!

So you’ve made it through a challenging task and learned something new.

Did someone help you get there? Make sure to thank them! Everybody loves to hear how they positively influenced somebody’s life. I recently met up with some kids I mentored 7 years ago (who are of course now adults). They are both attending great universities in STEM programs, and have a bright future ahead of them. Even if I played a tiny part in their development, it was incredible getting to catch up with them and seeing how far they’ve made it, and how much farther they will go in the years to come.

Pay it forward! Once you’ve learned, try to make materials to help others — be it blogs, videos, open-source code, a talk at your school or job, etc. First off, this helps you solidify your own knowledge and looks great on your resume. Also, we always compare ourselves to people we think are better than us, but necessarily there exist people who are not. Or should I say: not yet if you can do something about it! These same kids I mentioned in the previous paragraph have done their own share of mentoring in the 7 years since I first met them, so I couldn’t ask for a more perfect example to highlight the importance of keeping this information flowing down the generations.

Some corny stock image to drive the point home. Are you feeling inspired yet?
Source: Sharon Lechter

Conclusion

I acknowledge the hypocrisy of this article — someone posting content that warns you about other people’s content. So I will double down: there are those who have become popular due to the impact of their work, and those who have become popular because they know how to extract engagement from online platforms but are not inherently providing any real value. I ask that you keep a critical eye on what you see out there.

To offer some key takeaways:

  1. Don’t rush into checking a bunch of boxes. Do less things, but do them well and with a concrete problem to solve.
  2. There is no recipe or shortcut. Hard work pays off, and anyone telling you otherwise has an ulterior motive beyond helping you.
  3. Once you’ve made it to the other side, give back to those who have yet to make it across.

Thank you for reading! I hope you’ve found something here to think about and help you improve.

2 thoughts on “Advice to Young Engineers

  1. 非常感谢您的分享,我是一名来自中国的刚刚入职的新手机器人工程师,您的经验无论是从生活还是工作都给我以很好的鼓舞!再一次,向您致敬!

Leave a Comment