Journey from Software Developer to Software Architect

Chunting Wu
3 min readDec 6, 2021
Photo by Karl Pawlowicz on Unsplash

The exciting 2021 is almost over, let me review my architect journey. Actually, I had been an architect in embedded system before, then I decided to change my career to the cloud service and backend development. After working and studying for years, I gradually changed from an engineer to a principle engineer. At the beginning of this year, I made my mind to be a backend architect. And finally, the dream comes true.

In retrospect, I feel the change of professional position went smoothly. Therefore, I will review what I have done and will be done for your reference.

Why changing to architect

People often ask me why I want to be an architect instead of being a developer. There are two main reasons,

  1. Programming language can never be learned. New languages will appear every once in a while and become popular, e.g., golang. Even the existed languages are still enhanced and become unfamiliar like C++11, C++14, C++17, then C++20. On the other hand, the software engineering is much more constant. The core design of data stores, architectures, distributed systems are classic. In other words, mastering these technologies has a relatively high return on investment.
  2. When I was a developer, every time a clean architecture is written, it becomes a mess soon. Cross referencing, circular referencing, etc. are everywhere, I cannot stop it even being a staff engineer. It is better to become an authority and make rules instead of actual development.

What is R&R of architect

“Managers are not confronted with problems that are independent of each other; but with dynamic situations that consist of complex systems of changing problems that interact with each other. I call such situations messes…Managers do not solve problems, they manage messes.”

Some f-Laws from Ackoff, R. L., H. J. Addison and S. Bibb. 2007. Management f-Laws. Triarchy Press Ltd.

The same applies to architects.

  1. Find out the root cause of the intractable online problem and hand it over to an engineer to solve it.
  2. Monitor and clarify system bottlenecks, find ways to optimize and improve.
  3. Educate and guide the development team to improve everyone’s skills, such as the low-level details of the database, SOLID principles for the system design, etc.
  4. Participate in the requirement meeting on the product side and propose a reasonable estimated schedule and change scope.
  5. Improve development process like CI/CD pipelines, design review meetings, trunk-based development, etc.
  6. Participate in seminars and survey new technologies, techniques, and methodologies.

From above description, we can find an architect does not solve issues completely; instead, the core value of an architect is simplifying the process whether it is an issue or a product requirement.

How to be an architect

In order to be an architect, there are some properties helping the position change, and I find those properties really work.

  1. A lot of reading, you must have the habit of reading. Work process books, professional technical books, and management books are all essential. You have to be greedy.
  2. A lot of thinking, there is no code or architecture that cannot be optimized, and finding a reasonable improvement way is the responsibility of an architect.
  3. A lot of communication, the architect is not the person who actually does things, and (s)he must be able to guide developers in a timely manner while establishing authority.
  4. Stay motivated and optimistic. The work of the architect is very heavy. You have to deal with a large number of people and issues every day. If you don’t manage your mood well, you can easily fall into frustration.

These four properties are useful, even though you don’t want to be an architect, you still can grow yourself up on the career path of a software engineer. At least, thanks to these properties, I have been able to change from an embedded system engineer to a backend architect successfully in 10 years.

Afterword

Being a software architect is pretty interesting. I have no assigned or dedicated jobs in my organization, what I have to do is finding an issue and trying to fix it. All my tasks are assigned by myself. I can schedule my tasks in a proper way and be free to study from any resource. This is my journey in past 10 years, and you can write your own story on your career. It would be great if you could share with me.

--

--

Chunting Wu

Architect at SHOPLINE. Experienced in system design, backend development, and embedded systems. Sponsor me if you like: https://www.buymeacoffee.com/MfGjSk6