Professional advice for new engineers
2019-04-02 09:57 by Ian
There has been much ink expended on this topic by people who have thought about the subject more thoroughly than I have. So I won't rehash it here, and I won't pretend my list is complete or will fit all circumstances. I am, however, obliged to adopt some explicit ethical principles in the course of my work, and I've received/developed a great deal of good advice that my formal engineering education either glossed over, or failed to mention entirely.
What follows is a set of perspectives and principles that I have collected at what might be considered the midpoint of my life as a practicing engineer. I've adopted some of them from antiquity (the Hippocratic Oath, the Delphic Maxims), and recast them for my craft. Others are a reaction to particular dysfunctions which I've observed in the wild. Feel free to adopt or discard them. But for whatever it's worth, they have served me well in professional life.
- If you can't already do so, learn to deliver a firm and confident handshake.
- "Simple" and "Easy" are orthogonal ideas. Making things simple is rarely easy. Complexity is fun, and might be justified. Don't over-complicate things. It's easy to do.
- Cultivate deep intellectual roots outside of engineering. Revolutions in science and engineering are often precipitated by applied knowledge from other domains.
- Stagnation is death.
- Almost every consequence of any given action is by necessity "unintended".
- Failure is a potent teacher. Analyze all of your failures as impartially as you can manage.
- Find people that you can argue with. Argue against ideas, and not against men.
- The less vulnerable you are to ignorance, the greater your vulnerability to arrogance and vanity. Keep it in check.
- Don't shirk definition, and be prepared to define words that you use. I had a professor of logic once explain it to me this way: "90% of argument and disagreement is over definition. Even if those arguing don't themselves know so."
- There is rarely a "best" way to solve a problem. "Best" is one of those words that needs a set of Values as an operand. Before you criticize the quality of another engineer's work, you must understand his constraints and the values he held when he undertook it. To do otherwise is to risk committing something akin to slander.
- Your knowledge is never complete. There is always someone who knows more about a given domain than you, and that's ok. Learn from them and improve. Lean on them where appropriate. Humility is a precondition for improvement.
- You are never above teaching others. As you get better at anything, gradually your value to others shifts from implementing to teaching. Teaching is a force multiplier. Most of your knowledge is not original to you, and failure to pass it on is a disservice to your teachers, and to the knowledge itself.
- Arrogance is an especially terrible trait in a teacher.
- Your first responsibility is to the Truth. Not "the Truth as you understand it". You will often be wrong. You must be willing to admit mistakes and have your notions of what is True upended at any moment, and by anyone, for any reason. Never take it personally. Even if it is.
- Documentation is often more important to the product than actual working code. You won't be on this job forever, and the engineer that has to fill your shoes will benefit from insight into your thinking, whatever form that takes for you. Moreover, if you leave a codebase alone for three months, it may as well have been written by someone else. Wrong documentation is worse than no documentation because at least the latter condition is honest. Explain yourself to yourself.
- Respect process. Even if you choose to ignore it. Understand any rules you consciously decide to break, and be prepared to justify your actions.
- Make friends with the grey-beards and give them due respect for having survived (or even produced) the grounds that you now stand upon.
- With respect to the lay public, you are
only marginally less-trustedmore trusted [EDIT for the year 2022] than a medical doctor. If you tell a man your bridge will hold his weight, you'd better damn well have a good justification for the statement. Be conservative in your promises. You may not have asked for the trust, but if it has been given, you are obliged to live up to it, reject it explicitly and frankly, or violate it. There is not a 4th possibility. - Honor your NDAs and the trade-secrets that have been entrusted to you.
- You have no way to predict what will happen to the things you release into the world. Nor do you have control over the ends for which your work may become a means. A "weapon" is just a "tool" without an implied "intent". You owe it to yourself to not knowingly create the means to ends you disagree with. If you think you might feel about your work as Oppenheimer did about the nuclear bomb, maybe you should let Edward Teller build the nukes.
- Give your full respect to the sales and marketing people. They might not be technical, but they do what you cannot/will not. Remember: You are the cost center. They are ultimately making your paycheck possible. Condescension is not justifiable. If ever they come across as obsequious, remind them of these facts. You will have life-long allies.
- A company invests a lot of money in good engineering talent, and few things are as economically mobile. You owe your employer/customer a certain amount of fidelity. The form this takes is highly personal and circumstantial, but for what it's worth, I won't allow myself to quit a job until I've turned a product, instituted a process, or otherwise made myself worth my cost.
- Don't curse in your code. The abusive, cathartic, and idiomatic functions of profanity clash alongside dispersonal statements of logic, and while a writer might intend to curse emphatically, a reader might interpret it dysphemistically (or vice versa). That is: Truth doesn't require exaggeration, and profanity (while sometimes amusing) hurts clarity more than imparts it. But what the fuck do I know? Curse orally all you like. You will anyway.
Previous: Coulomb Cranked Creature Candle
Next: Room temperature CO2 reduction catalyst