When working with other engineers, we should assume that their work will be like water flowing downstream. When they hit an impediment, it will slow them, but they will find a way around it. Their role is to build things to solve a problem. Understanding this, we should strive to build an environment where the right way to do something is the easiest way to do it. Anything that helps an engineer complete their job in a faster, easier, and better way will become a new tool or method that they will use. The greater the impact of that tool or technique, the more likely they are to use it. ...
Plan on Failure with AI
Using AI is a great way to improve your systems, but there is one very important aspect to think about: all models fail. Every AI model has some points where it will return either a false positive or a false negative. If you don’t account for this fact, then you will face this in production in very unexpected ways. To combat this, you should realize and plan on these two failure modes: false positive (it thought it was providing a correct positive answer, but it was wrong), or a false negative (it thought it was providing a correct negative, but it was wrong). Your business use case may be much more acceptable of one type over the other. In the general case of medical testing, a false positive is much more acceptable than a false negative. It’s not great to tell a patient that they might have a diagnosis (when they don’t - false positive), but it is much, much worse to tell a patient that they don’t have a diagnosis when they really do (false negative). ...
Steps to Solve a Bug Correctly
There’s a right way and a wrong way to fix a bug. Done correctly, a fix addresses the root cause, not just the symptoms, and includes a test to prevent regression. Steps to fix a bug correctly: From the telemetry, and side effect output, determine the inputs that cause the bug consistently. It is common that not enough information is available to understand the issue, add more telemetry if needed and repeat step 1. Add an automated test (at the correct level) that replicates the issue. More than one test may be necessary to fully define the “edge cases” of the bug. This is only possible if you truly understand the root cause — a test written against a symptom gives false coverage. Write the minimal code needed to make the test pass. Thought: There are many people that can aleviate a symptom, but the best solution is one that tackles the issue. Be the person that knows the “why”. ...
Why is the path beyond Sr. Engineer difficult?
The path to continue beyond Sr. Engineer is difficult for several reasons. In my experience, the difficulty stems from how career progression typically works for managers. Many managers in the technical field will start as an engineer and then continue for 3 - 5 years in which they become competent to handle larger and more complex tasks. After that period of time, the avenue of management opens up and there are opportunities to move all the way up to CEO, a long and lucrative ladder. ...