: Hitesh Dhingra - Software Consultant
Software consultants works with a business to understand their technical requirements and will accordingly suggest software solutions to them or provide a road map to develop software that is customized for their specific needs. Such consultants can either work independently or with a software consultancy. We speak with Hitesh Dhingra, who falls in the first category:
I am working as an independent software consultant with major focus on technical architecture and mentoring. I provide consulting to engineering teams on platform architecture, set up technical vision for their products and advise them on various technical aspects. Additionally, I am involved in technical mentorship, trainings and recruitment. I have over 14 years of experience in leading product development and managing technical platforms.
My career focus is to work with organizations in transforming their product development approach by making correct technical choices.
Since the time I graduated from IIT Kharagpur in 2001, I have been involved with start-ups and new product development. The freedom that one has while building a new product, in terms of exploring various technical solutions, co-relating results with business outcomes and learning at every step of development, is what keeps one motivated. There are various opportunities available for an independent consultant such as working with different teams, different technologies and software development processes. I get to learn from every assignment and that helps me in enriching my experience.
For someone who is fine with taking challenges, ready to learn at every opportunity and open to take accountability full on, technical mentorship is the best career to follow. True, this can occasionally get exhausting and might sometimes require long hours. However, it has never been a deterrent for me. Instead, it is quite satisfying to see the team you mentor, building products that they can be proud of! Additionally, consulting provides you the opportunity to work with many people from varying backgrounds. This in itself is a great learning experience. It teaches you skills like managing expectations upwards and downwards, handling conflicts and mitigating challenges and/or risks.
Typically I start my day by checking my calendar for engagements for the day. Usually, I work with multiple engineering teams so I try to divide my focus for the day based on engagement with individual teams. After I make a fair plan for the day, I work by ticking stuff off my to-do list. Apart from the scheduled meetings, I also invest time in ensuring that the teams have no technical blockers, reviewing their algorithms or code, setting up ad-hoc training sessions and in recruitment activities that the client organization has set for me. I usually end my day by taking notes for the next day.
My journey since my first job has been a roller-coaster ride, but a very satisfying one. For the initial part of my career, I was very focused on learning as much as I could. Not all decision go well and especially when you yourself are in a learning phase. However, all of such instances helped me understand technology and business better. Now, I take more calculated risks as now I am accountable for technical platforms at a much larger scale.
Five years from now I see setting up my own software consultancy firm.
I believe that my graduation in engineering from IIT Kharagpur was the best training that I had. Being with smart and creative people around you helps you in developing the skills that are useful in the longer term. However, being open to learn new technologies, attending technical symposiums and being engaged with technical groups ensures that you have all the right skills to get better at technology consulting.
According to me, strong technical inclination, structured thought process and logical problem solving are the most important skills one should have to excel at driving technical decisions. Soft skills like communication and inter-personal skills are also key to work with teams from varying backgrounds.
There have been many experiences that I would count as positive and encouraging. Every time a new product is launched, where I have contributed either as the primary architect or by influencing technical decisions, it feels special. Similarly, there are times when it is difficult to get moving. In many instances, the engineering teams work with preconceived assumptions and as an architect it gets tough to make them change their decisions. In such cases, I need to work up a strategy to approach and debate. I would count this as a challenge any architect would face more than once!
I would recommend prospect students to focus on basic algorithms, optimizations and thinking out-of-the-box for solutions. One should be really good at problem solving, understanding the problem, coming up with more than one solution, choosing which works best for a given situation and then optimizing it. Choosing the programming language to implement the solution comes later. I would recommend students to focus on the logic rather than the language or tool.
There’s no alternative to hard work. Even smart people need to invest smartly in order to get the best out of their intelligence. The more time you invest in learning and experimenting, the better your results would be. Finally, never stop learning. Technology updates every fortnight, and so should you!
Hitesh can also reached at his LinkedIn profile - https://www.linkedin.com/in/hdhingra