O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

The role of an IT architect in startups

Presented at SARCCOM event Saturday, 30 September 2017 at GO-JEK Head Office, Jakarta (Indonesia).

  • Entre para ver os comentários

The role of an IT architect in startups

  1. 1. The Role of an IT Architect in Startups Manoj Awasthi
  2. 2. Who is this? ● Graduated in 2004 ● Worked in some big and small systems companies ● Worked with Adobe for more than 9 years ● Came to Indonesia year and half back joining Tokopedia
  3. 3. Agenda ➔ Tokopedia Technical stack at Tokopedia. Problems we are solving. ➔ Role of a Technical Architect Many facets of an Architect. ➔ Advice for present / future architects fwiw, Some advice.
  4. 4. What is Tokopedia?
  5. 5. One of the biggest C2C marketplaces in Indonesia “Millions of buyers and sellers” Seller Platform Discovery Digital Products Advertising Logistics Promotions Customer Support “Tens of millions of product listings” Translates to hundreds of services deployed across multiple data centers.
  6. 6. Technical Stack at Tokopedia
  7. 7. Technical Stack at Tokopedia
  8. 8. Role of a Technical Architect (at Tokopedia)
  9. 9. Collaborates with stakeholders in Business & Products ● Identify business needs & help translate them into detailed technical requirements and specifications. ● Participate in prioritization: ○ Product features ○ Bugs ○ Technical debt ● Negotiate with Products & Business to ensure proper prioritization of important Technical debt component.
  10. 10. Owns one or more than one products ● A product will have functional and nonfunctional requirements. ● Architect owns the nonfunctional requirements like latency, availability, scalability and maintainability. ● S/he participates in decision on the technical stack and the design and architecture to solve the problem.
  11. 11. Helps the team design things ● Goal is to design a scalable, maintainable and extensible software system. ● Focus should be more on “what” to do rather than “how” to do. ● High level design options. Evaluate. ● Discuss pros and cons with the team and decide the approach.
  12. 12. Mentor to the team! ● Mentors and guides the engineering team on best practices, design patterns, upcoming technologies etc. ● Participates in dissemination of information using knowledge sharing sessions and motivates the team to participate. ● Engage in technical discussions on alternate ways of implementations, pros and cons of each etc. (which is the essence of architecture).
  13. 13. Acts as the guard of engineering principles ● Code is written for Humans to read and machines to execute. ● Conducts, and motivates the team to have regular code reviews (peer, over the shoulder or github PR). ● Enforce good practices in software engineering like proper unit tests, code coverage and using design patterns.
  14. 14. Researches “COTS” components ● Research and evaluate common off-the-shelf products to see whether they will be more suitable than building a new system. ● Build vs buy dilemma! ● Leverage 3rd party open source and other technologies outside of the core solution and estimate cost of the same.
  15. 15. Debugging ● Architects are also responsible to help teams debug harder issues and in the process make team learn about different debugging tools and approaches. ● Troubleshoot and perform Root cause analysis of production issues.
  16. 16. Learns and teaches effective communication ● As an Architect you will need to involve in myriads of communication with different stakeholders. ● Effective and tailored communication to different audiences. ● Implement whitepapers as needed on design & redesign efforts.
  17. 17. Hiring ● Implement effective interview process in the company. ● Assist in developing assessment tests and evaluating the same. ● Helps in assisting on hiring and most cases is an authority on yes/no decisions.
  18. 18. Advice! For present & future technical Architects!
  19. 19. Be a continuous learner.
  20. 20. “Architects look at thousands of buildings during the training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well - usually programs they wrote themselves - and never study the great programs of history!” Source: http://www.aosabook.org/en/
  21. 21. ● Resolve to continuous learning. Learn from other people (discussions), books and articles. ● Read code written by other people. ● As an architect, spend some time on new interesting stuff happening in technology. (subscribe to hackernews). ● Read about design decisions. Best places are own workplace (with colleagues), mailing lists, github issues, and books of-course. Learn, learn, learn!
  22. 22. Read about how other technical architects and computer scientists across the world think.
  23. 23. Be a mentor.
  24. 24. Learn the techniques to explain concepts in a simple manner. ● More you have to explain a concept to others - better you grasp it. ● So whether by writing a blog, trying to write some code to verify the concepts learnt or to explain to someone (or many people) in person, try to transfer the knowledge.
  25. 25. Best policy is to Lead by example.
  26. 26. Coding / Debugging ● Every technical architect who leads software development team must code and should be the role model with respect to all standard practices that he wants team to follow: ○ Write good quality code with proper documentation (technical architecture document), comments in the code and unit testing in place. ○ Technical architecture document should include high level interactions between the system and the external entities (databases, caches, message queues etc.) ● It also applies to debugging and sharing of knowledge.
  27. 27. Thank you! The world today is so connected you can reach me on many channels: Twitter: @awmanoj Linkedin: /in/manojawasthi/ Mail: awasthi /dot/ manoj /at/ gmail /dot/ com FYI: Tokopedia is hiring across and also for Technical Architects and Engineering Managers! /careers/Technology/technical-architect /careers/Technology/engineering-manager Please connect with me on mail or to hrd@tokopedia.com. https://awmanoj.github.io / Questions?