From Noob to Pro: Journey of a Software Developer/Engineer

Hello there! Here is me back again writing my second medium article. If in case you missed it, check out my first medium article on “Communities” in the Venture Capital ecosystem here (although unrelated to this one).

Context

I started my professional career with IBM India as a Java Application Developer in India Software Labs. In my 5+ years of professional career, whenever I interact with undergraduate students in meetups/community events/webinars I am often posed with the question: “What’s the journey of a software developer/engineer?”.

Having come from a technical background and starting a career as a software engineer myself, I thought of penning down my learning that could help anyone build his/her career for tomorrow.

This article is an attempt to detail the career ladder for a software engineer/developer in the IT industry — types of companies hiring for software engineers, types of roles, career path, usual CTC for these roles, skill set required for those roles.

Note: This article is mostly relevant for more traditional companies and might not fit well with startups. Also, the salary range mentioned later in the article is just for reference and definitely should not be considered as a benchmark.

Companies that hire

Well, there are a plethora of companies that hire software engineers. I would classify them mostly into two types:

  • Product-based companies
    Simply put, product-based companies have their own products to sell. Some names include Adobe, Amazon, Amdocs, BMC Software, Cisco, Facebook, Google, Hewlett-Packard (HP), International Business Machines Corporation (IBM), Intel, Intuit, McAfee, Microsoft, Paypal, Redhat, etc.
  • Service-based companies
    Service-based companies may or may not have their products, but their primary business is service. They work for other organizations or we can say they are clients of Product Based companies. Some names include Infosys, Wipro, TCS, Cognizant, HCL, Tech Mahindra, L&T, Mphasis, Mindtree, C-DAC, Cybage, Cyient, Thoughtworks, KPIT Technologies, etc.

Honestly, I never debate on product-based companies vs service-based companies and usually leave it to the individual to figure out as per his/her interests and skill-sets.

Read more here on the difference between a product-based company and a service-based company.

The career path of a software engineer

Note: Below career path is generic in nature and applies to most of the companies/startups and most individuals in the IT industry. However, it might differ slightly from company to company in terms of work experience, skill-set required, exact job title, and job responsibilities.

1. Software Engineer

  • Years of experience required: 0–3 years experience
  • What they do: Build quality software in a timely fashion based on client specifications. Launch and debug applications
  • Skills required: Programming languages, operating systems, algorithms, and databases

2. Senior Software Engineer

  • Years of experience required: 3–6 years experience
  • What they do: Build software and coach other developers/engineers
  • Skills required: Basic architecture, advanced code design, coaching, and training.

3. Tech Lead

  • Years of experience required: 6–9 years experience
  • What they do: Oversees a team responsible for the planning, execution, and success of complex software solutions.
  • Skills required: Advanced architecture and system design, project management.

4. Engineering Manager/VP of Engineering

  • Years of experience required: 9–13 years experience
  • What they do: Build process for teams, champions product thinking, and provides technical leadership.
  • Skills required: Advanced architecture and system design.

5. Chief Technology Officer (CTO)

  • Years of experience required: More than 13 years experience
  • What they do: In charge of the organization’s technological needs and R&D, uses technology to enhance products and services for external customers.
  • Skills required: Hiring, people skills, strategic thinking.

Career options for a Software Engineer

For the above career path, the following are the career options I can think of which a software engineer/developer can choose from and climb up the ladder based on work experience and skill-set he/she possess.

Back-end, full-stack, and front-end engineers still saw the highest demand, making up more than half of all interview requests for software engineers, as per Hired.com’s State of Software Engineers 2021

1. Back-end Engineer

  • Role description: A back-end engineer is generally responsible for building the structure of a software application. They’ll primarily spend time writing business logic, server scripts, and APIs that will eventually be utilized by front-end developers and UX designers.
  • Average base salary of a back end developer in India: ~ 7–8 LPA
  • Usual CTC Range: ~ 3 LPA to 18 LPA
  • Skill-set or experience required in following languages: Python, PHP, Node.js, Go, Java, C++

2. Front-end engineer

  • Role description: A front-end engineer, also known as a front-end web developer or designer, selects, installs, and tests the user interface elements of a website. The front-end developer focuses on the look and feel of the site, along with its functionality.
  • Average base salary of a front end developer in India: ~ 5–6 LPA
  • CTC Range: ~ 3 LPA to 12 LPA
  • Skill-set or experience required in following languages: JavaScript, CSS, HTML
  • Popular companies hiring for such roles: TCS, Accenture, Sapient, Capgemini, HCL, Cognizant, Freshdesk

3. Web full-stack engineer

  • Role description: A full-stack developer is a web developer or engineer who works with both the front and back ends of a website or application — meaning they can tackle projects that involve databases, building user-facing websites, or even work with clients during the planning phase of projects.
  • Average base salary of a full stack developer in India: ~ 6–7 LPA
  • CTC Range: ~ 4 LPA to 14 LPA
  • Skill-set or experience required in following languages: JavaScript, CSS, HTML, Angular, React, Django, Python, Java, Node.js, Go, MySQL
  • Popular companies hiring for such roles: TCS, IBM, Vassar Labs, Nuclei, Report Garden, Accenture, Wipro, GALE Partners, Infosys, Cognizant Technology Solutions, Oracle Schlumberger

4. Mobile developer

  • Role description: Mobile developers specialize in mobile technology such as building apps for Google’s Android, Apple’s iOS, and Microsoft’s Windows Phone platforms. For this reason job titles for this type of role also include Android developer and iOS developer.
  • Average base salary of a mobile developer in India: ~ 4–5 LPA
  • CTC Range: ~ 2 LPA to 14 LPA
  • Skill-set required or experience in following languages: Kotlin / Java (for Android) and Swift /Objective-C (for iOS)
  • Popular companies hiring for such roles: Jio, Solution IT, TCS, Cognizant

5. Game/graphics engineer

  • Role description: A game engineer is a software developer that produces video games. Some game engineers work independently, creating smaller games meant to function on a mobile phone or computer. However, to produce games for consoles or performance gaming computers, one must generally work for a larger game design company.
  • Average base salary of a game/graphics engineer in India: ~ 4–5 LPA
  • CTC Range: ~ 2 LPA to 20 LPA
  • Skill-set or experience required in following languages: C/C++, C#, Unity, GPU graphics
  • Popular companies hiring for such roles: Sumo digital

6. Data engineering

  • Role description: Data engineers are responsible for finding trends in data sets and developing algorithms to help make raw data more useful to the enterprise. Data engineers are often responsible for building algorithms to help give easier access to raw data, but to do this, they need to understand the company’s or client’s objectives.
  • Average base salary of a data engineer in India: ~ 8–9 LPA
  • CTC Range: ~ 3.6 LPA to 20 LPA
  • Skill Set or experience required in following languages: Python or R, SQL, Data science toolkits NumPy, Pandas, SciPy, scikit-learn, Big Data technologies: Hadoop, Hive, BigTable, Cassandra or relevant
  • Popular companies hiring for such roles: Amazon, TCS, IBM, Infosys, Jio, Accenture, General Electric, Capgemini, Cognizant, Fractal Analytics, HCL

7. Quality Assurance/Test/Automation Engineer (SDET — Software Development Engineer in Test)

  • Role description: Quality Assurance Engineers are responsible for assessing the quality of specifications and technical design documents to ensure timely, relevant, and meaningful feedback. They are involved in planning and implementing strategies for quality management and testing.
  • Average base salary of a QA engineer in India: ~ 3–4 LPA
  • CTC Range: ~ 1.8 LPA to 9 LPA
  • Skill Set or experience required in following languages: C#,.NET, Java or other programming languages, Knowledge of various test methods & corresponding tools like MS Test, NUnit, TestNG, Selenium WebDriver, etc.
  • Popular companies hiring for such roles: Amazon, Cybage, Dassault Systems, HCL, Oracle, Talentica, Flextronics, Capita India, Fidelity Investments, Synerzip

8. DevOps Engineer

  • Role description: DevOps Engineer is somebody who understands the Software Development Lifecycle and has the outright understanding of various automation tools for developing digital pipelines (CI/ CD pipelines).
  • Average base salary of a DevOps Engineer in India: ~ 6–7 LPA
  • CTC Range: ~ 3.4 LPA to 20 LPA
  • Skill Set or experience required in following languages: Source control: Git, Bitbucket, SVN, Infrastructure automation: Puppet, Chef, Cloud: AWS, Azure, Google Cloud
  • Popular companies hiring for such roles: TCS, Accenture, Amazon, IBM, Cognizant, Amdocs, Infosys, Wipro, Oracle, HCL, SAP Labs, Citrix, Thoughtworks, Nagarro, Zycus Infotech, Jio, Dell

9. Algorithms/Science Software Developers

  • Role description: This field involves a lot of research and a Ph.D. or at least a master’s degree. Their job role involves reading a lot of papers, doing research every day to turn academic concepts and theories into real-life solutions. They come up with new algorithms or optimize an existing one.
  • Average base salary of an algorithms developer in India: ~ 6–7 LPA
  • CTC Range: ~ 3.2 LPA to 20 LPA
  • Skill Set or experience required in following areas: highly quantitative problem-solving skill, Optimization, fine-tuning, quantum computing, and in-depth research
  • Popular companies hiring for such roles: Microsoft Research, Google Brain, Open AI, Facebook Research, Amazon, ISRO

10. Embedded System Developers

  • Role description: Embedded System Developers write very low-level code that powers the system. Most people do not consider this one as the coolest job but think of a refrigerator, printer, oven, or toaster kind of electronics items which also require a programmer’s brain to develop its functionality and make your life easier.
  • Average base salary of an embedded system developer in India: ~ 4–5 LPA
  • CTC Range: ~ 1.9 LPA to 10 LPA
  • Skill Set or experience required in following languages: Java, XML, Perl, Python, Shell Scripting, C/C++, Assembler
  • Popular companies hiring for such roles: Qualcomm, Intel, Tata Elxsi, ARM, Cisco, Robert Bosch, Whirlpool

11. Cloud Developers

  • Role description: Cloud Developers is a fairly new term in the market. Today most of the applications are on the cloud so these engineers’ job role involves planning, designing, managing and implementing applications on the cloud. They are responsible for the whole cloud infrastructure of a company, its maintenance, and implementation.
  • Average base salary of a cloud developer in India: ~ 7 LPA
  • CTC Range: ~ 1.6 LPA to 60 LPA
  • Skill Set or experience required in following languages: Linux, Database, Cloud platforms
  • Popular companies hiring for such roles: Microsoft, Google, HP, Apple, AWS (Amazon Web Services)

Tip: Do check Glassdoor once while applying for any company/role or if you need a salary reference for any specific role.

That’s it, folks! Hope this article would have been helpful. Thanks for your time, thanks for reading! :)

Feel free to connect with me on Twitter. Have suggestions for my next blog topic? Send them away on Twitter DM. :)

Enjoyed this post? Give it a 👏 below and follow me to get updates on upcoming articles.

ACM’s Distinguished Speaker | Developer Relations @ Google India | International Speaker — AI/ML/Cloud | Tech + Communities + Edu + Design + Startups