Be a competent engineer, not just a coder
The best engineers I know are very good spokespeople, architects, entrepreneurs with good customer understanding along with their technical skill
Hey it’s Denis. I’m starting a series called Software Engineering Fundamentals to give you a strong base of knowledge for 2024 to build from over the next few weeks. The series will have a strong overlap with our live streams on WED/THU.
Seasons of your engineering career
Spring
Engineers are not born, they are inspired. By some snippet of code, a game or bringing to life something interactive only with a few lines of code, link: Conway’s game of life. By the way, that’s John Conway, not Melvin Conway whom you might know from Conway’s Law
As an enthusiast you build your craftsmanship as a passion. You are solo. You build things that are practical to you. Potentially share it with others—but as always, building tools is more fun for you than they are to use for some third party.
You think each goal is as simple as you started, imagining you can build wonders in a few hours of coding… that is until you spend your first weekend debugging.
Summer
The enthusiasm blooms and becomes a vocation. You find a job. Engineer, junior, intern, coder, analyst. This is your first time in a professional setting, potentially with team members or other open source collaborators.
You get challenged a lot. Not just on skill. But on ideas, style, design and most importantly knowledge and understanding. You felt you are fast when working alone and now things slow down significantly because you have to deal with people.
This has a natural solution: invest more time into honing your craft. Become better at your IDE. Get a better machine. Type faster. Learn the framework more intimately. Learn testing and give up quickly as it’s a can of worms. Buy books, only to be befuddled by all the different paradigms available.
You settle for architecture and low-level patterns. There is structure and symmetry in how ideas can be shaped. This calms you enough to distract from the chaos that working with other team members bring. Though you like exchanging ideas with them, just not have them judge your code.
Autumn
Very few make it this far. Those who do realised there was a certain nobility to learning how to work well with others. How to be humble in the face of challenge and feedback. And how to give kind feedback in return.
Rather than elegance in code as an art form, as an autumn engineer you focus on the quality of work. Process flow and business value become a priority. You realise the thought that goes into what you build and why you build it has a much deeper effect on the code than your design.
You double-down on testing and honing your craft at writing and modeling. You find the hard problems that are hard due to human nature, not complexity. The disciplines in your craft start feeling like sports. Like a discipline. A workout habit that your body resists. At first.
You learn to say no. People look up to you for leadership and guidance. Even when you are not ready for it. Especially when you feel you aren’t. You are aiming for titles such as engineering manager, tech lead, staff engineer, founding engineer, even startup CTO.
Yet you are still close to the craft.
Winter
Reality sets in during winter. The year’s harvest has to feed you. You realise most of your work was for naught. Your tools, code and applications are only being used as much as they solve real problems to real users.
This is shocking. But also liberating. You saw codebases get destroyed overnight from company bankruptcies and abandonment. You saw pieces of code be maintained for over 10 years because they solved some obscure, unexpected problem. You wrote that. And you wish you hadn’t.
You realise just how much the customers and business strategy controls your craft. That business is all this was ever about. To delight customers. And to figure out how to shape and craft that delight in better ways over time. You learn the true meaning of Agile.
You wince at the idea of how misguided your old self seems to you now, following all those rules and principles blindly. You start mentoring others, understanding the value that their collective experience and growth towards where you are now will benefit your customers.
And yet, you have decades of experience in your technical skill. But you need to start a new spring: entrepreneurship, business, accounting. Customer obsession and developer well being becomes your new field that you nurture. You feel at the top of your game.
But it’s just another beginning.
Join the Live discussion
Excerpt for today’s stream:
Do we not understand technology enough and get stuck? Or are there different reasons for staying stagnant and sometimes frustrated?
👉 Human-Skills, or #softskills, are more important than most think. The summary of all humans in a team and company determines the outcome, and it’s not only about the technology skills.𝗪𝗵𝗲𝗻?
𝗪𝗲𝗱𝗻𝗲𝘀𝗱𝗮𝘆 (𝗧𝗼𝗺𝗼𝗿𝗿𝗼𝘄) 16CET / 3pm GMT / 10am EST / 7am PST