From Event to Action: Accelerate Your Decision Making with Real-Time Automation
The Role of IT Architect in Startup Company
1. The Role of an IT
Architect in Startups
Manoj Awasthi
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. 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.
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.
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. 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. 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. 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. 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. 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. 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. 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. 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.
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. ● 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. Read about how other technical
architects and computer scientists
across the world think.
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.
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. 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?