TGONext: Review and Feedback

TGONext is a project under TGONetworks that helps educate and grow “next-generation” technical leaders through mentorship. All the mentors are picked and selected by the organization and are well-known profession and leaders in the field.

The project got my attention a half-year ago. Ant, one of the most famous IT leaders in the industry and the community in Taiwan, who is also the mentor in the project, posted a message saying that they are seeking talents to join the project. I have followed Ant for a long time on social media, and admire him on his broad knowledge in software technologies and technical management. So I decided to apply for the project and wished to have a chance to meet and learn from Ant in person. Luckily, I passed the interview and have been chosen and assigned (with five other members with different backgrounds) to Ant’s group (system/software architecture profession).

The project kicked off in February and ended in June. During the time, we have six meetings. The discussion and sharing in the meetings cover many technical topics we are interested in, including, but not limited to, high concurrency service architecture, microservices, data consistency, database types and selection, system and database migration, queues, data consistency, observability, and technical debt. Most of the time, Ant shared his practical experience on each topic. Occasionally, we would start a conversation or debate if we have any thoughts on a particular topic. I was surprised (again) by Ant’s knowledge and experience. I wondered how much time does he spent studying all of this? I also amazed by some of our members that they can raise questions and share their opinions from different perspectives.

Since we only have two hours for each meeting, we have a Slack channel for offline discussion. One of the group members opened up a brilliant conversation about how to detect memory leaks in services written by Ruby. I have given my experience in doing profiling and distributed tracing in the JVM world to the group. I also learned how do people do monitoring in PHP and Ruby world. The member also brought up another discussion about how to correctly implement AAA (authentication, authorization, and accounting) in his company’s internal environment. Unfortunately, I didn’t have a chance to join the discussion.

In my opinion, technical conversations are the most critical part of this project. Since the members have different backgrounds and come from different companies, they see things from different perspectives. Through the discussion, we can learn in a way that you never thought before. For example, I never think about what is the proper way of building a robust AAA system. However, we only have two in-depth conversations (as I mentioned above) in the entire activity, which was not as I expected in the first place. Why is that? I think the biggest issue here is too many topics we liked to cover in the mentorship, but none of us are experienced enough and familiar with all these topics to support us for the discussion. All we can do is listen to Ant’s sharing with no feedback at all. Even if we have conversations on specific topics, they usually scratch the surface without further elaboration. Since we had only limited time in the meeting, I think it’s better to restrict the number of topics to a few and align our background knowledge by reading blog posts, books, source codes, or case studies. So we can have discussions based on what we have learned from the materials.

Overall, I think the outcome of this project was positive. I hope we all took away something from this project. And I would like to thank Ant for sharing his valuable and practical experience with us. I hope one day I can follow his steps and reach his level.