This write-up offers insight into technical consulting. You’ll understand what a technical consultant is, the skills required to be one and how you can become one.
So, without further ado. Let’s get started.
What is a technical consultant?
A technical consultant, an IT consultant or a software consultant are, more or less, the same role in IT with subtle differences. I’ve written a detailed article on IT consulting. Give it a read.
A technical consultant helps businesses with the implementation and performance optimization of different components of their application architecture and infrastructure with the help of the right technology and software development approach. This helps businesses hit their goals in and with optimum time and resources.
Besides this, there are a lot more things involved in technical consulting. Let’s understand this better with the help of an example.
Understanding the role of a technical consultant with the help of an example
Imagine an MMO (Massively Multiplayer Online) game developed as a monolith dealing with billions of events in a stipulated time. The devs try to stream the event data from the monolith to a data warehouse for analytics, monitoring, etc., through a few data pipelines.
The engineering team struggles with the exponential influx of data and events with the sudden rise in the game’s popularity. The architecture has several bottlenecks; throughput is low and doesn’t scale as per the requirements.
The business calls in a technical consultant skilled in this specific domain to help them deal with the flood of events. Now, here the role of the consultant will be to comprehend the domain, use cases, project requirements, application architecture, infrastructure, etc., and communicate with the engineering team and stakeholders, advising them on the right architecture and technology, project timeline, etc to achieve the desired system behavior.
After the discussion, they (the consultant, stakeholders and the engineering team) collectively create an action plan and start with the development process that may involve splitting the monolith into modular monoliths or microservices architecture in addition to implementing the event-driven architecture leveraging state-of-the-art event streaming tech like Kafka, Apache Flink, Azure Hub, Google Pub Sub, etc.
The consultant will work with the team to design how the events from different sources move into the data pipeline, how the data is processed, maintaining data quality for effective analytics, monitoring, the implementation of related business logic and observability around the data flow. This involves, keeping an eye on how the processed event data is stored and made available to the end users including business people.
The whole process would involve proper documentation, writing functional specifications, data modeling, thorough code testing, stress testing, implementing chaos engineering, picking the right infrastructure, databases, data storage and cloud design patterns related to event-driven architecture and such. The consultant oversees the entire development workflow weeding out the bottlenecks in the development process.
This is how with their domain expertise, a technical consultant would help the business migrate from the monolithic architecture to a scalable event-driven architecture with efficient data ingestion pipelines.
If you wish to understand the intricacies of building real-world distributed systems like Netflix, Hotstar, YouTube, NewYork Times etc., from the bare bones. This includes getting an understanding of different components of application architecture, cloud infrastructure, picking the right database, data model, application architecture and much much more. Check out the Zero to Software Architect learning track that I’ve authored for IT and technical consultants that helps them master distributed application architecture starting right from zero.
Technical consultant skills
A technical consultant may help a business end to end on their application stack, from the UI to the database or they may be skilled in specific domains and application components, just like we helped the business above with our expertise in building event-driven and data-streaming applications.
The business might call in other consultants to help optimize their data storage, server infrastructure, network architecture and so on.
Before taking a technical consultant on board, businesses typically interview the consultants to gauge if they fit their project requirements; like interviewing them on their past professional experience, industry and domain knowledge, and technical challenges they tackled earlier as a technical consultant.
Besides technical skills, a technical consultant needs to have good communication skills to understand the business requirements and satisfy the client with effective solutions. They often also have to coach the engineering team, helping them comply with various processes and industry best practices either remotely or by traveling onsite.
How can I become a technical consultant?
The requirements to become a technical consultant are similar to that of an IT consultant. You can read them here.
You need to have a degree in computer science, IT, software engineering or a related discipline.
Hands-on industry experience in building software/leading engineering teams is invaluable for a technical consultant role.
You should keep tabs on industry trends, the latest technologies, software-building best practices, etc.
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.
This is pretty much it. If you found the content helpful, consider sharing it with your network for better reach. I am Shivang, you can read about me here. I’ll see you in the next blog post. Until then, Cheers!
Shivang
Related posts
Zero to Software Architecture Proficiency learning path - Starting from zero to designing web-scale distributed services. Check it out.
Master system design for your interviews. Check out this blog post written by me.
Zero to Software Architecture Proficiency 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.
Recent Posts
- 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)
Follow Me On Social Media