Ajit Kulkarni : System Architect
No one completes their B.E/ B.Tech and becomes a systems architect overnight. This is a role that can be taken up by a veteran IT professional who has acquired expertise in specific areas. Ajit Kulkarni who is Senior Principal Architect at Nuance India, is one such person. He shares with us his experience and journey as a systems architect.
Click here to check Ajit Kulkarni's LinkedIn Profile
I am working as Sr. Principal Architect at Nuance India. I have 20+ years of experience in software development. I am a techie focused on software development, design and architecture, specifically on Java and associated technologies. I have worked on large software products as well as developing softwares from scratch. I have worked across domains such as banking, finance, smart cards, PLM and healthcare. Although mostly I worked as an individual contributor, I occasionally had to perform duties of project management, scheduling, tracking, motivating the team etc. I have a decent amount of experience working in popular software development processes like scrum, CMM and ISO.
I started in a small firm as a junior developer where I got the opportunity to develop software for hospitals using C++ with graphic user interface on DOS at a time windows had just been just launched and was not widely used. I was interested in software development even before I enrolled for computer engineering for graduation. Programming was my passion from college. Building the algorithms, teaching the computer to do a job always fascinated me. With a strong foundation in C, I got attracted to the vast world of Java and open systems technologies. Given a requirement, visualizing a software solution, working on detailed implementation became my habit. I feel that architecture is still not completely understood in the industry. It keeps on motivating me as I discuss and work on architecture with various people from different backgrounds, requirements, skills, experiences and expectations.
The career of a software architect begins after one achieves expertise in software development. Many think that architecture and software development jobs are different or at least they think that architect may not need to be involved in detail implementation. But this is far from the truth. The architect is the single point of contact for every stakeholder of the software being developed ranging from client, product management, various development managers and programmers. He is responsible for the success or failure of a software that he has designed. He has to provide solution(s) for every technical problems, guide the developers and the processes.
Quite often, even when the day's work is already decided, priorities change instantly. A systems architect then has to switch between the various work items from the associated teams. Dealing with complex technical issues is part of our daily job. Communication is also a major part of daily work that includes emails and meetings. Learning and knowledge update is an essential, continuous process.
Overall the journey has been good. I started with C++, but got the opportunity to work on a slightly different client server tool called Magic. I had to work hard to jump in to the field of Java from Magic. I had to start as a Technical Lead in a Java project when my experience in Java was just around 6 months! Of course my C++ background helped me a lot to establish myself as a leader in Java over a short period of time. I got the opportunity to work with established architects and talented technical leaders in the companies that I worked.
I always enjoy arguments/discussions with great architects. I am currently developing a product for healthcare domain which is an extension to an already established product. I see myself taking over the entire responsibility of the established product and all related extended products on top of it, i.e. an entire product line in the near future.
I have a B.E. in computer engineering and then did an M.S. in software systems from BITS Pilani. I did two certifications in Java that helped me quickly grasp the demands of the initial Java projects I started working on. I also did an MBA in finance that has helped me in understanding the organizational and financial dynamics.
The inspiration to build these skills is my desire to excel at work coupled with a passion for acquiring in-depth knowledge in a systematic way. Theory and practice should go hand in hand.
Hard-core technical skills are most important followed by soft skills like communication, stakeholder management. Requirement analysis, creativity, innovation, visualization are going to be important for future growth.
Successful implementation of a solution to a complex issue is always challenging and can be counted among the best experiences as well. For example, at the beginning of my career, I enjoyed implementing the profit and loss, balance sheet for a financial accouting system. One of the best experience was designing a term deposit module for a banking application. The challenge could be implementation of a business case or it could be purely related to technology. Implementing a cluster of application nodes and the state management in a cluster was one of biggest challenges I enjoyed.
Communication with stakeholders with conflicting interests is a challenge where your soft skills are put to test. While dealing with people, one has to always think of a win-win formula where you assure others that they will win, at the same time ensuring that you profit as well.
Knowledge is the key. One has to be a continuous learner to succeed in the field of software architecture and engineering. If student wishes to pursue career in computers, then pursue computer science discipline right from graduation or even before. I have seen many people graduating in other discipline and then working in computers. Many believe that one can study in any discipline and can always switch to computers. Although this is possible, it significantly impacts the performance in the job as they lack in basics.
There is no short cut to hard work. Work smart as well as hard. Follow no one but learn from everyone.