Journey from Technical Lead to Technical
Architect
0
By Ajitesh Kumar on November 6, 2013 Architecture, Software Engg
What is road to becoming a technical architect is a tricky topic, many wants to know. Especially,
this is of interest largely to senior developers and technology leads. Let me give a shot at this. I
would love to hear your comments in this regard:
Technology vs Thought Leadership: Technical lead is primarily responsible for
exploration and implementation of technology (tools & frameworks) to solve a
particular set of problem in hand. He also plays a crucial role in doing proof-of-concept
in related with adoption of newer technologies. The person on this role also acts as a
mentor and guide to individual team members in terms of adoption of technology.
However, technical architect is responsible for not only providing technology leadership
similar as technical lead, but also provide thought leadership in terms of adoption of
newer technologies (tools & frameworks) in near future to solve similar problems in
the most effective manner. In addition, he, at times, gets associated with multiple teams
to provide solutions to the entire applications, unlike technical lead whose primary
responsibilities lies with a single team in most cases. Thus, if you have been acting as a
technical lead, and wants to board the technical architect boat, start getting involved in
key design decisions of different teams. Show your willingness to explore take on
problems from different teams, run extra mile and provide them with solutions. You shall
surely go to the next level of becoming an architect.
Knowledge of Architectural Frameworks: It is always helpful to get hang over one or
more architectural framework such as TOGAF which enables a person to approach the
architecture & design of one or more applications in entirely different manner. From
TOGAF perspective, a person learns to think of multiple different viewpoints of
architecture using matrices,catalogs and diagrams that he may be required to create based
on project stakeholders. These viewpoints primarily involves consideration of following
different aspects of architecture:
1. Business architecture
2. Application architecture
3. Data architecture
4. Technology architecture
Thus, if you are planning to wear the hat of technical architect, it is high time that you get
yourself aware of at least one architectural framework such as TOGAF.
Great Communication: Great communication is another must-have of a technical
architect. This is primarily because of the reason that you as a technical architect may be
involved in doing regular communication with some of the following stakeholders:
1. Internal team involving developers/testers, project managers, technical leads,
senior management etc.
2. External stakeholders such as architects, technical leads, project managers and
senior management etc.
Thus, if you believe you are not the best of the communicators, start working on your
communication including oral and written manners.
Faith in Yourself: If you are the one who lacks faith while proposing solution, you have
to work on developing faith. This is because most of the times you have to propose newer
technologies including tools & frameworks and you may be required to convince various
stakeholders explaining why you believe in your proposed solution.
Lot of Patience: A technical architect may have to go through lot of iterations on his
proposed architecture/design based on the feedback of different project stakeholders. If
you lack patience, you may want to start meditating
Technical Architect Interview Questions
0
By Ajitesh Kumar on November 6, 2013 Architecture, Interview questions
Today, I happened to take an interview of a 9 years experienced guy in java technologies
working as a senior tech lead in one of the global software services companies. Following are
some of the questions that were discussed:
1. Define reliability and its different attributes.
2. If customer mentions reliability as one of the most important non functional requirements,
what architecture and design strategy would you recommend to the team to achieve a high state
of reliability?
3. If given a set of business requirements, what are done of the key steps you would undertake to
reach uppity lowest most level of designing classes, interface etc? How would you identify and
design data model?
4. What are key steps for putting architecture and design around application security
requirements?
5. What is difference between performance and scalability? What is linear scalability and how
could you achieve the state of linear scalability?
6. What are code smells?
7. What are test smells?
Web Services
Different protocols for web services -
XML-RPC (RPC) - Its a simple, portable way to make remote procedure calls over HTTP.
An XML-RPC message is an HTTP-POST request. The body of the request is in XML.
A procedure executes on the server and the value it returns is also formatted in XML.
Procedure parameters can be scalars, numbers, strings, dates, etc.; and can also be complex record and list
structures.
HTTP request is send. No WSDL.
([Link]
JSON-RPC (RPC) - All transfer types are single objects, serialized using JSON.
[Link]
JSON-RPC is lightweight remote procedure call protocol similar to XML-RPC
SOAP (SOA, needs WSDL)
SOAP like XML-RPC, but lot more features, requires WSDL.
REST
SOAP uses interfaces and named operations to expose business logic. REST uses (generally) URI and
methods like (GET, PUT, POST, DELETE) to expose resources.
Managing Session in Web Services
Normally, a JAX-WS Web service is stateless: that is, none of the local variables and object values that
you set in the Web service object are saved from one invocation to the next. Even sequential requests
from a single client are treated each as independent, stateless method invocations. Enabling stateful
support in a JAX-WS Web service requires a minimal amount of coding on both the client and
server. And there can be several approaches. Like what we can do is - Inject WebServiceCOntext in
Web service Impl class. We can access the HttpSessionObject from WebServiceContext. Save objects in
HttpSession using setAttribute, and can later retrieved using getAttribute. (Check for more details -
[Link]