One of the key facets of personal leadership is the ability to adapt and learn. It allows one to stay ahead of upcoming challenges, help the team and engage in proactive leadership. I just started working on a new project to design highly scalable architecture and here is what is helping me to build learning in this space –
1. Hands on building SaaS based application
I started designing and building a SaaS based application as part of my weekend project. I did few long coding sessions and the time spent was well worth it. Most of the mistakes were done when I succumbed to the temptation of just making it work. The exercise provided me deep insight into issues and challenges of building a SaaS based application.
2. Meeting startups
Many startups are formed as a proof-of-concept product and cannot really afford to over engineer the product till they see traction in traffic. Once they see traction and funding, they make leap and bound progress in their architecture and are very aware of cutting edge work. Hearing their technology journey and how they are identifying and resolving initial design flaws was a great learning experience.
3. Meeting technology advisers at venture capital firms
I met senior technologist from couple of top venture capital firms. Their perspective on building scalable SaaS products was invaluable – how to bring scalable practical thinking in the design process, how some of the successful companies are implementing scalable strategies and how some of them have avoided redesigning their system by staying ahead of potential problems and issues.
4. Online resources
There are several online resources but these two are my favourite presentations on this subject – 7 Stages of Scaling Web Applications provides a very good overview and Scalable Web Architectures: Common Patterns and Approaches provides a very comprehensive coverage on scalability. And you can never run short on interesting reading at All Time Favorites at highscalability site.
5. Leveraging past training
After moving past design philosophy, I also started looking into some of the past trainings that I attended on building blocks for highly concurrent design and other from an application programming perspective. Many of the concepts started to make sense.
6. Books
I recently bought a copy of Scalability Rules: 50 Principles for Scaling Web Sites. It is a reading in progress. I may buy another book or two to keep as a reference. Having written a book myself I know how challenging it is for a book to keep pace with rapidly evolving technologies. Suggestions are welcome on any good books available on this topic.
7. Brainstorming with smart people
White board discussion with smart people around you help you make great progress in learning and validating your learning!