What Tech Stack should you target for a Job Search?
Hi everyone, it has been a while since we wrote these types of posts in the development category. We started a Tutorial series about ReactJS where we started from beginning to end with complete theoretical as well practical knowledge, but that’s just a start. We though this might be worth sharing now, as many people are currently looking for a job. As this is the time for new Students joining education institutions as well. So, this guide will help both freshers as well experienced developers for deciding a career they want to go, basically the tech stack to choose. Let’s discuss about Tech Stacks you can choose.
Intro to Tech Stack
You might be wondering what a tech stack is, so here let us explain. A tech stack refers to the combination of technologies, programming languages, frameworks, and tools used to build a software application. It’s like the foundation and building blocks of a software project.
Let say a Tech Stack is a proper meal with everything from Rice, Bread, Vegetable, Sweet dish we need to eat to make it a complete project. I know it’s a foodie example but let take another example. While building a house, there are different things to do like Planning the architecture, building the base and rooms, designing the rooms, adding electric components lights and plumbing with furniture. If a person, provides these whole services in a single contract then we can say these services combined is a Stack of services he provides.
So, what we mean to say is A Tech stack basically contains of multiple things if we talk about Software.
Key components of a tech stack
There are multiple key components of a tech stack, so here is a categorized list of things in a stack that makes the full web application or basically software development done.
Frontend
Frontend technologies are used to create the user interface (UI) that users interact with. Examples include HTML, CSS, JavaScript, and frontend frameworks like React, Angular, or Vue.js. This is the part where the designers work on things like animation, styling, graphics and more.
Backend
Backend technologies are used to handle server-side logic, data storage, and application functionality. Examples include programming languages like Python, Java, or Node.js, and frameworks like Django, Spring Boot, or Express.js. Backend basically contains the APIs, Configuration, Database connections, and storage related logic. It also handles the user authorization and security.
Database
Database technologies are ones used for storing and organizing data, indexing and searching data. Examples include relational databases like MySQL, PostgreSQL, or Oracle, and NoSQL databases like MongoDB, Redis, or Cassandra. Other than NoSQL, and SQL Databases, we do have search based databases like Elasticsearch for making efficient and fast searches in combination with SQL/NoSQL databases for efficient and secure storage. The Databases can be disk based, Dockerised or Self hosted by Database providers using APIs only.
Cloud Platform
A cloud computing service that provides infrastructure, platform, or software as a service. Examples include AWS, GCP, or Azure. Cloud or Servers generally we say, are used to host the application code, Deploy services, applications and more. Cloud platforms as well provide software services and integrations that we use to add functionality to our application.
For example, S3 Buckets from AWS for Object Storage, Google Maps integration from GCP, Gemini API for adding AI services, and GPT API for adding AI with ChatGPT support. Having knowledge of Cloud is required for DevOps work.
DevOps
DevOps stack is basically the collection of tools used for deployment, testing, automation for software development process. DevOps work usually starts from the beginning of a new project, with the process of creating a CICD pipeline that
The whole process is critical and helps companies to manage applications deployment easier, to let customers enjoy new features as soon as possible. Automation once done, does not need any work but only when there are errors or update required with commands/services for updated code. DevOps also helps Developers to test and deploy their code, thus DevOps and Development is connected.
Example of DevOps stack tools include Jenkins, GitHub CICD pipeline, Circle CI, Chef, Puppet and more. Now a days new services like Infrastructure as a Code also comes under DevOps. Examples are like Terraform, Ansible, AWS Lambda, AWS amplify.
There are also containerization technologies that makes deployments, Docker and Kubernetes. Docker is Open source and recommended for smaller projects, whereas Kubernetes are more professional and for High Traffic sites and complex projects, and for companies with Investments as requires more resources than Dockers.
Full Stack vs Normal Developers
Full Stack Developers are the ones who are expert in Both the Frontend as well as the backend, which is client side as well the server side, of a Web application. While the Tech Stack is different based on the requirements in a company and projects, the core responsibilities and skills are generally similar as both do the same work. But Full Stack can work on more areas of a web application as well different tech stacks.
Skills and areas common for both full stack and Normal Developer
How full-stack developers differ from normal developers:
Full-Stack with DevOps
A Full-Stack Developer with DevOps skills combines the traditional full-stack responsibilities with expertise in DevOps practices. This involves understanding and implementing tools and processes that automate the software development lifecycle, from development to deployment and operations. In short if a Full stack is a gold, then Full Stack with DevOps is a diamond. Also, Full stack Devs are rare, and the Full Stack with DevOps are rarer.
Key areas of expertise for a Full-Stack Developer with DevOps:
Benefits of a Full-Stack Developer with DevOps:
In essence, a Full-Stack Developer with DevOps skills is a versatile professional who can contribute to both the development and operations aspects of a software project, making them a valuable asset in modern development teams.
Choosing the right tech stack
There is not one fit Tech Stack for all needs, so it differs for each organization based on the usage and requirements, plus the level of skills needed. For example, for Data Analysis, we need to use Python because there are multiple libraries available to easily achieve those tasks. For working with AI/ML projects as well, Python is used because of libraries available like NumPy, Keras, Pandas, TensorFlow and more.
On the other hand, for creating static sites with limited information, A simple React app can be sufficient. For use with ecommerce products, and large user base, Java can be better in handling things and server load coupled with React/Angular based Frontend for SPA applications.
So, let’s see a few tech stacks based on the areas of development
Frontend Development
For frontend, mainly we recommend JavaScript based frameworks because of the popularity and simplicity. JavaScript is also used in some Backend frameworks as well with some limitations, though.
Backend Development
For most of the projects, older as well mid age, there is Java based backend because of the features provided by Java and performance. But small scale projects, as well some large projects, are using Nodejs because of benefits of JavaScript.
Most of the newcomer prefer NodeJS because of simple learning curve over Python that requires specialization. Some say Java is dead, so they don’t use Java, but in reality, Java is now more optimized for large scale projects only and to meet the needs of specific companies. Thats why people avoid Java for smaller projects. Another reason can be because of the learning curve of two languages, one Java, one JavaScript, over just using one JavaScript for both.
Full-Stack Development
We talked of things as separate before but now let’s talk of Full Stack development. Let say, me specifically being a Full Stack have worked wearing multiple hats over a specific time, during working in startups. So, I can say, Full Stack development is for ones that loves to learn multiple things and explore to expand their career. But sometimes at a point, one can decide to make a career in one tech or switch tech, so both are fine. No tech or stack is fixed, and a person should be able to change freely on his own will, so that he can enjoy what he does.
Some popular stacks you can see below:
Here the MERN, and MEAN stack are both popular and multiple companies use these stacks, but MERN stack is the futureproof as more are moving towards React based frameworks like Svelte, NextJS etc.
One issue that most of the face being Full Stack working for companies is that sometimes, in a company there is not much work for a single tech, so you work on multiple things as per need. This is why with experience of let say 3 years in a startup, you might not have 3 years exp of Python/Java alone, but a mixed things and companies sometimes only need full experience for a specific skill. This is why one need to make sure, to at least pick and work on one technology, even if you do multiple techs just to have required experience for a specific role.
A Tip, if you are in similar job, then you can do create projects on your own and gain knowledge, then you can easily answer the questions, if asked to justify the experience. That way, you can freely say, you have 2 years exp in X tech.
Mobile Development
This is for a specific purpose only as the target is mobile application. We can do both Native and Hybrid development, but companies prefer Native for performance vs Hybrid for faster development.
So, why Native and Hybrid, simply because Native tech is built specifically for mobile and they provide better performance for application development. On the other hand, Hybrid apps are meant for Web Developers who don’t want to learn a tech just for building mobile apps.
Hybrid apps use kind of hack to interact with Native libraries after final build, so they can be efficient based on how close the native code it uses.
So, companies with enough money and no budget issues, prefer native development with Swift/Kotlin/Java for mobile apps. And companies with low funds, and with more web devs prefer Hybrid apps.
One noticeable benefit of Hybrid apps is the code reusability, and less time to ship. Because they are already Web based, one can implement same logic with similar functionality in the Hybrid app easily without any extra work. This makes development of Hybrid apps easier and beneficial, as well making users get their hands on the new features fast.
On the other hand, Native apps can be delayed because of issues with tech logic not available in the native code vs the web code. So, development can be complex and takes time in most of the cases. Thats why for some products, we don’t see all the features available on the web, in the mobile version of the same product.
So now you also if you complain why this feature not yet in the mobile application, then you need to know and understand that it’s not easy to do that and might be impossible in some cases because of the native development issues.
Data Science and Machine Learning
The very popular and new trend, Data Analytics that is making everyone to go for it. Specially the new students, who are targeting to enter the industry. With many years of data gathering, and everything almost connected with apps. We have a lot of data, that need to be processed. So, companies needing specialized engineers that are known as Data Scientists are required. Data Science also require some specialized tools only and have a learning curve to it. It also requires the knowledge and love for Maths as you deal with Statistics and calculations.
Apart from analytics machine learning includes creating specialized chatbots for customer service, banking, report generation, risks identification and more. In modern healthcare, Python tech is used to create models that can recognize diseases in early stages and can also help with the treatment.
Programming smart devices like Arduino, Raspberry, smart boards, sensors all make use of Python Tech mostly.
Cloud Computing
Cloud Computing stack includes things like Hosting, Database, Managed services provided by Cloud Providers like:
Cloud computing stack basically is related to Hosting companies as well SAAS(Software as a service) providing managed Database as well softwares like Data Dog for analytics.
DevOps
The one stack where it’s not about coding, but scripting. What we means is one don’t do whole code under this stack, but small scripts to execute a specific task(s). It can be a testing related task, monitoring the application availability, or creating timely backups. Everything makes use of DevOps stack. Let us see some tools:
So, you can choose from the above listed Stacks as a deciding factor for what you want to choose to make a career. Let us also see What stacks are popular with the companies.
Popular Stacks or Technologies Companies using
We discussed a lot of different classifications for deciding the stack. Now let us discuss a few popular stacks that companies might be using.
For frontend companies prefer React/Angular, with Spring Boot/Nodejs as Backend. PostgreSQL for relational Database and MongoDB for NoSQL database. They might also need Docker for containerization or Kubernetes.
Data analytics and AI related companies use Python/MongoDB for performance stacks.
Some Deciding Factors
Targeting Company
Also based on the company size, you should decide which company to target, so you have expected work and skills accordingly.
Some Interview Preparation Tips
The hiring process is different for each company, so you need to prepare differently for each company. Some companies require you to have DSA knowledge, but if you don’t like DSA, then don’t worry, you can filter out those companies by checking if they require Hacker Rank, Leet Code or any other coding platform. let’s check tips:
Bonus Tips
Some additional information for you
Summary
So, we explored about different Tech Stacks, their usage and how companies are using. We also explained what the technologies are and how to categorize them. That must be enough for you to understand Tech Stack now and get a job. We still have so much to cover in this post, but we could not, so we will be writing another post related to interview preparation, required skills, and choosing companies.