IT consultant: How do I become one? Explained with a real-world use case
This article takes a deep dive into the world of IT consulting. I’ll discuss what an IT (Information Technology) consultant is, their responsibilities, the skills required, how you can become one and more.
So, without further ado. Let’s get started.
What does an IT consultant do?
The role of an IT consultant is to offer their technical expertise and domain knowledge to businesses enabling them to go from idea to production, i.e., launch their product, in and with optimum time and resources.
IT consultants help businesses at many levels. For instance, helping them: with the right technology stack and application architecture for their product, implementing development best practices, eliminating bottlenecks in the development workflow, offering insights into best practices to be followed for product development in different domains like telecom, retail, fintech, travel and hospitality, etc. This typically comprises complying with the respective industry regulations, adhering to data security, data locality, user anonymity regulations and such.
Let’s understand this further with the help of the application infrastructure stack and a real-world use case.
The diagram above shows the application infrastructure stack comprising layers such as the physical infrastructure, platform software, cluster layer and application software.
An IT consultant would typically consult the business end to end on all the layers, from the UI to the cloud infrastructure that the application will run on or a few specific layers. It all depends on the business requirements and the expertise the consultant has.
Mainly an IT consultant helps businesses end to end and then specific consultants come in to help with the implementation of specific layers, such as the database consultant, network architect, infrastructure specialists, engineering and product management folks and so on.
Let’s dig into this a level further with the help of a real-world example.
Understanding the role of an IT consultant with a real-world example
Imagine a business has to implement an online food delivery service like Uber Eats, Zomato or Swiggy. An IT consultant will work with their client to understand the requirements and scope of the project. This would include the traffic the system is expected to receive, the geographic regions the business will operate in, the amount of data the application is expected to handle, the rate of data growth, etc.
Project requirements typically include all the functional and non-functional requirements of the project. Based on this, the consultant will provide the client with a realistic picture of the time it would take for the project to go live, the associated costs, the fitting technology, architecture and infrastructure to run the system.
As an example, consider our food delivery app has different modules/domains/bounded contexts (whatever you want to call it) such as order management, handling payments, user subscriptions, inventory management, etc.
A consultant, based on the input given by the stakeholders, could advise them to begin with the microservices architecture right at the start as opposed to building a monolithic or a modular monolithic architecture and scaling out later. This will also involve a discussion on the fitting technologies to design a loosely coupled system deployed on specific or multiple cloud platforms like AWS, GCP, and Azure, keeping vendor lock-in as minimal as possible.
This initial brainstorming with the consultant will avert the business from wasting significant time and resources in refactoring code at a later point when migrating from the monolith to a microservices architecture or moving to an open-source tech from a proprietary cloud tech as the business gains traction.
If you want to take a deep dive into all this understanding different application architectures, technology stacks, databases, components involved when designing the architecture of an online service with case studies, application infrastructure, distributed system design and much much more. Check out the Zero to Software Architect learning track, that I’ve authored for IT consultants, product owners/managers, developers and anyone who wants to understand web application architecture including how applications are designed from the bare bones.
Moving on. After the initial discussions and been given the green light by the stakeholders, the consultant will work with them and the IT team to strategize the project implementation following industry best practices. This will involve:
- Proper documentation
- Version controlling all the dependencies, libraries, scripts (build scripts, test scripts, etc.), database schemas, static content, environment configurations, infrastructure configurations, project documentation and other relevant files
- Identifying domains and bounded contexts for implementing various services
- Creating high-level and low-level design documents
- Tracking the development time and costs
- Ensuring efficient code deployment workflow, application monitoring, end-to-end testing, chaos engineering and compliance with industry regulations, etc.
As the development of the product goes on, the IT consultant works closely with the architects, the dev team and the stakeholders to ensure the development goes in the right direction. They set up regular checkpoints every sprint, a few sprints or a quarter to ensure the project takes the expected shape.
A consultant will continually monitor product development, look for bottlenecks in the development process, and try to eliminate them as soon as possible to maintain the development velocity.
If the product is massive, like an enterprise project, the consultant could also work with the engineering team to build a proof of concept before they go all in to develop the product. A proof of concept helps us get a closer, more hands-on view of the technology and the primary use case implementation. We get an insight into the pros and cons of the technology we use, its performance, or technical limitations if any.
This helps with the learning curve if we’re working with entirely new tech. Additionally, the non-technical people, like the product owners, stakeholders, etc., have something concrete to play with and base their further decisions on.
Now, let’s talk about the skills an IT consultant should possess.
IT consultant skills
A consultant should be familiar with the application stack (right from UI to the deployment infrastructure) and relevant technologies and stay on top of the industry trends.
Industry certifications relevant to their skill set, like AWS, GCP cloud certifications, PMP (Project management certification), SAFe Agile certification, etc., are always good to have and give you an edge in the market.
Nothing is better if a consultant has industry experience, like having worked as a solutions architect, engineering manager, full stack developer etc. It confirms you have hands-on experience with product development.
Besides the technical skillset, an IT consultant should be self-motivated to upskill themselves continually and proactive in coming up with solutions to problems without much guidance. The industry loves individual contributors 🙂
They should have strong communication skills enabling them to effectively communicate with the customer understanding their requirements and providing cost-effective solutions, ensuring customer satisfaction.
A consultant should have the ability to collaborate with teams and lead the development process.
Educational background, like having a degree in information technology, computer science or software engineering, is often an essential requirement for this role. After all, a grip over the fundamentals is important.
How do I become an IT consultant? IT consultant roadmap
Get a degree in information technology, computer science, software engineering or an IT-related domain.
Start reading on software architecture, distributed systems, cloud computing, databases, DevOps, etc. Gain a thorough understanding of the application stack. For instance, for a given use case, you should be able to advise your client on the right platform the application should be deployed on, whether the serverless backend works best, or whether we need more control over the infrastructure. Do we need a mobile app, or just a responsive website will work? If you need to implement a mobile app, what technology and system architecture would suit best to implement it and things like that.
Learn to design distributed systems from the bare bones. Understand how things work behind the scenes, like how distributed transactions work, how databases handle exponential data growth, automated code deployment workflow from the developer’s machine to the bare metal server, application deployment infrastructure, how cloud deploys our applications across the globe in different continents and availability zones, how distributed applications maintain data consistency when deployed in different geographic regions, etc.
My Zero to Software Architect learning track prepares you for just that. Do check it out.
Besides all this technical stuff, having an understanding of project management, product development methodologies, including the best practices in the space, is always an added advantage. I continually write stuff on all this on this blog. Here are a few articles that you should read:
- A comprehensive list of articles on real-world distributed systems on this blog.
- How many developers do I need for my startup?
- A practical guide to picking the right cloud provider for your application
- Product development roadmap – Insights into the process of developing new products from the bare bones
Do I need to know how to code to become an IT consultant?
Not necessarily. Not all IT consultants know how to code. But does coding knowledge gives me an edge in this domain? Definitely, yes.
Coding knowledge helps you understand the intricacies of technologies and building and scaling software systems. You will be able to understand things like application performance, data compression, code optimization, etc., way better than someone who doesn’t know how to code.
A bit about my experience as an IT consultant
Hello there, I am Shivang. As an independent consultant, I’ve helped businesses build scalable services with fitting software design and technology. This included helping them improve their development processes resulting in better code quality, maximum test coverage, minimal bottlenecks, less technical debt and fewer bugs.
Additionally, I’ve helped businesses improve sales with better product discovery with unique marketing strategies in their space and spiked user conversions by consulting them on enhancing the user interface, aka, landing pages based on the end user’s browsing behavior keeping an eye on the page performance.
I have more than a decade of industry experience designing and developing scalable web systems, right from idea to production. Having worked for some of the industry giants in different domains such as E-commerce, Fintech, Telecom and Travel & Hospitality, I’ve designed, developed, and maintained code, as well as worked in the production support for systems receiving millions of hits every single day.
My last job was at HP as a full-stack developer in their Technical Solutions – R&D team.
Here are a few certifications that I have:
- Certified SAFe Practitioner by Scaled Agile, Inc.
- Oracle Certified Java Programmer
- Oracle Certified Web Component Developer
- Certificate in E-Commerce by TCS Business Domain Academy
If you want to read more about my professional experience or want to say hello!, here is my LinkedIn profile. Cheers!
If you found the content helpful, check out the Zero to Software Architect learning track, a series of three courses I have written intending to educate you, step by step, on the domain of software architecture and distributed system design. The learning track takes you right from having no knowledge in it to making you a pro in designing large-scale distributed systems like YouTube, Netflix, Hotstar, and more.
Zero to Mastering Software Architecture Learning Path - Starting from Zero to Designing Web-Scale Distributed Applications Like a Pro. Check it out.
Master system design for your interviews. Check out this blog post written by me.
Zero to Mastering Software Architecture is a learning path authored by me comprising a series of three courses for software developers, aspiring architects, product managers/owners, engineering managers, IT consultants and anyone looking to get a firm grasp on software architecture, application deployment infrastructure and distributed systems design starting right from zero. Check it out.
- System Design Case Study #5: In-Memory Storage & In-Memory Databases – Storing Application Data In-Memory To Achieve Sub-Second Response Latency
- System Design Case Study #4: How WalkMe Engineering Scaled their Stateful Service Leveraging Pub-Sub Mechanism
- Why Stack Overflow Picked Svelte for their Overflow AI Feature And the Website UI
- A Discussion on Stateless & Stateful Services (Managing User State on the Backend)
- System Design Case Study #3: How Discord Scaled Their Member Update Feature Benchmarking Different Data Structures
CodeCrafters lets you build tools like Redis, Docker, Git and more from the bare bones. With their hands-on courses, you not only gain an in-depth understanding of distributed systems and advanced system design concepts but can also compare your project with the community and then finally navigate the official source code to see how it’s done.
Get 40% off with this link. (Affiliate)
DataCamp offers courses, skill tracks, and career tracks in data science, AI, and machine learning. With interactive exercises, short videos, and coding challenges, learners can master the data and AI skills they need.
With the data engineering courses, you can learn how to design and create the data infrastructure businesses need to scale and master one of the most lucrative skills worldwide. Check out the website here. (Affiliate)