In industry specific forums, I often see questions like “what certification do I need to do to become an architect?”. The simple answer is that you don’t need a certification to become an architect. It may help, but it takes a lot more to become an architect.
You can’t just only study to become an architect. The best way to become an architect is to start thinking and acting like one. You need to start asking the right questions.
Interviewers ask open-ended questions like:
1. Can you describe the architecture of the application you were recently involved in? or Can you describe the baseline architecture of your recent application?
[Hint: Tiers, Layers, Source/Target Systems, Integration Styles, Protocols used HTTPS/TCP/SOAP/Proprietary, Data exchange formats e.g. JSON/XML/Proprietary, Synchronous/Asynchronous, request-response Vs. fire-and-forget, non-blocking I/O, reactive programming, SQL Vs NoSQL, etc.]
2) What are your most proud of achievements? What were your involvements?
[Hint: Designing a mission critical system that handles 250+ concurrent requests, Designing a near real-time system with low latency response times, etc ]
3) How do you keep your knowledge up to date?
[Hint: Books you read, Blogs you follow, GitHub projects you developed, articles you wrote, your blog, open-source contributions, and other online presence.]
4) Can you describe the non-functional requirements that you addressed in your last project?
[Hint: Capacity planning, security, scalability, maintainability, auditing/logging, archival strategies, choice of integration strategies, choice of tools & frameworks, devising test strategies like performance testing, cross browser compatibility testing, penetration testing, etc, disaster recovery plan, coding standards, and so on. ]
5) How do you evaluate the code quality of others?
6) Technical questions on design approaches, alternatives, pros/cons, and trade-offs. Often no right or wrong answers, but your technical know-how and reasoning skills will be under scrutiny. 75+ Java Architect FAQs.
7) What architectural documentations did you produce?
[Hint: Baseline architectural diagrams & patterns, naming standards & process guides, non-functional requirements guide, capacity planning & infrastructure requirements document, etc. ]
Expect drill down questions based on the answers you provide. These questions can reveal a lot about your passion, enthusiasm, attitude, communication skills, problem solving skills and technical strengths. As an architect you need to bridge cross functional teams (E.g. developers, testers, business analysts, stake holders, support & operational staffs, ), and you need to be able to communicate at different levels both technically & non-technically.
Java Architect Road-map
Here is my take on the road-map to become a Java/JEE architect.
- Learn to draw high-level conceptual and UML diagrams: Know the various architectural styles, JEE layered multi tier architecture, and various integration styles. You must be confident to draw these diagrams on a white board with regards to the actual application you had worked on or how you would go about designing a new application in question.
- Learn to ask the right questions — what if …? how about …?, design alternatives, pros vs cons, tactical versus strategical, strategical vs political, weight the risks against the benefits, build vs buy, etc. Ask questions pertaining to the 16 key areas. Think in terms of scalability, transactional boundaries, best practices, exception handling, development process improvement, etc.
- Get a good handle on the 16 key areas and proactively apply these key areas.
- Look at things from both business and technical perspective: architects form a bridge between many cross functional teams like business analysts, stake holders, project managers, developers, testers, infrastructure team, operational and support staff. Know your target audience and learn to convey technology to the business non-technically and the business requirements to the techies technically.
- Learn to look at the big pictures and also pay attention to details where required.
- Get a well rounded hands-on experience. For example, client side, server side, application integration, full SDLC, etc. Nothing beats experience, and you can proactively fast-track your career by learning from others’ experience via good books, blogs, industry specific web sites, and helping others on the forums.
- You don’t have to be the “jack of all trades” but as a technical leader and a bridge between various cross functional teams, you need to have good soft skills to make things happen by engaging the right teams and expertise. The key soft skills to have are communication, interpersonal, leadership, analytical, negotiation, and problem solving.
So, the combination of all the above can transform you into an architect. Stay visible at your current work and behave like an architect to get a foot in the door. Ask the right questions and contribute in team meetings and crisis sessions to prove your capabilities. It is much easier to step up in your current role by proving your capabilities than applying for an entry level position without any prior experience.
Ready to step up?
Latest posts by Arulkumaran Kumaraswamipillai (see all)
- 15: Spark joins with Dataframes & SQLContext - December 17, 2017
- 14: Spark joins with SQLContext & JavaPairRDD - December 16, 2017
- 13: Spark inner & outer joins in Java with JavaPairRDDs - December 16, 2017
- CAP theorem interview Q&As - December 16, 2017
- 00: ♦ Creating a Tree from a list & flattening it back to a list in Java - December 13, 2017