A rant on what we do NOT need

This is a rant that has been in the making for a long time and will not impart any knowledge. If you put architect in your title and get triggered easily, then please stop reading. This is a rant about the cult that has taken over engineering organizations at large enterprises. The cult demands toeing the line, using the magic words, reciting the norms, and thinking inside the box. What am I talking about? It’s the culture of conformity. The culture of Software Architects.

The committee of architects believes it’s their god-given right to dictate to people how to do their jobs. After all, the masses must be civilized and educated. These software “architects” are a term stolen by the software development community. What a disgrace to an earnest and diligent community of professionals that builds the infrastructure that houses our ignorant colleagues.

The fake software architects in our industry make it their life’s mission to make other people’s lives harder because it’s not about solving problems but massaging their own egos. They talk a big game but cannot build anything of reasonable complexity within time constraints. They have a complete lack of empathy and appreciation for artistry and aesthetics, which is a plague on engineering culture.

If not architects, then what do we need? Staff engineers.

What is a Staff Engineer

Staff engineering is the beginning of a new journey in the software engineering career ladder. It’s an alternative path to the traditional management track, which commits you to being a wise wizard who gets to wield the staff and perform magic. Just kidding, but it’s true. It signifies that you aren’t looking to ditch your craft because of stereotypes while still growing beyond a seasoned engineer to achieve a higher impact. Probably the most important trait is a shift in mindset that prioritizes contextual solutions over the most shiny-looking ones, taking into account factors that cannot be measured, like team dynamics, business functioning, and ease of operations.

How do you up-level

  1. Chase Asymmetric Impact - A lot of senior engineers try to focus on maximizing output in the statistical sense, working harder, longer, and delivering more story points. But the reality is that humans have limits, and after a certain point, this strategy becomes unsustainable. So what can you do? Prioritize work that can unlock potential gains down the line, the things that may not be visible as of now but could enable a lot of things to be built around it only if that one roadblock was removed.
  2. Be Glue - Connecting the dots between disparate systems. A typical enterprise has tons of teams and projects, all often working in silos. Integrating these can unlock lots of benefits, and building automation can deliver even more significant value than the tedious work of manual processes. These tasks are often invisible, but they are the ones that keep the gears turning within a large enterprise.
  3. Ensure Standards and Maintain Quality - This is a tricky one. Most people that try to do this follow an approach of nitpicking. Why is that variable named like that? Why not write this line like that? Don’t be that person. Yes, variable names need to be descriptive, but they don’t need to be perfect. Code comments are a real thing and should be leveraged when necessary. Push people to write tests not by mandating it but by showing them the benefits a comprehensive test suite brings. Define standards while allowing space for people to express themselves.
  4. Learn to segregate the Subjective from the Objective - There are 100 ways to do things. Some better, some worse, but it’s important to understand the metric. Performance and cost are objective metrics, whereas maintainability, modularity, and testability are subjective metrics. Weigh if doing a thing a certain way has a downside which is objective or subjective. Argue on the objectives and let go of the subjective unless it’s a significantly bad-looking PR. Use your judgment, considering time constraints and impact constraints, because you can always come back later and clean up. The code is not written in stone.
  5. Mentor - It’s simple: if you push yourself, you can 1.5x or even 2x your output, but at the expense of your hobbies, mental and physical health. Or you could focus some of your time to improve 3 other juniors, and combined together, the same impact could be achieved. Mentoring is also one of the best ways to give back to a profession which is still relatively new.