Practice
Data Structures and Algorithms
Machine Coding Round (LLD)
System Design & Architecture (HLD)
Frontend UI Machine Coding
Resources
Career Advice and Roadmaps
Data Structures and Algorithms
Machine Coding Round (LLD)
System Design & Architecture (HLD)
Backend Development
Frontend Development
Project Ideas for Software Developers
Core Computer Science
Companies
SDE Jobs & Internships
Interview Questions
Compare Companies
IDE
Online IDE
Collaborative IDE

Non-developer to software developer roadmap | QA, SDET, Tech Support, Embedded Engineer

Gaurav Chandak
Gaurav Chandak
Disclaimer: This article was written few years ago and may no longer be relevant as software engineering has changed a lot in the last few years. This is what may be more relevant now: Future of Software Engineering - Gaurav Chandak

Software Engineering Roadmap - Comprehensive Guides

  • Roadmap for 1st and 2nd Year College Students
  • Beginner to Advanced Roadmap for college students
  • Service-Based Companies to Product-Based Companies
  • Non-Developer to Software Developer Roadmap
  • Interview Preparation Roadmap - DSA, Machine Coding, etc.

While there is nothing wrong with working as a non-software developer, many want to switch to SDE roles generally for the following reasons:

  • Extremely better pay
  • Better work
  • More ownership of the product

Let's take the example of the difference in salary for non-developer roles vs software developer roles. Freshers in non-developer roles are mostly paid 3-5L per year whereas SDEs at product-based companies easily earn double of that. The big tech product-based companies and top startups pay 4-5 times of that. It is obvious for most engineers to look up to joining as a software developer at a product-based company.

But it is not easy to get there. It is not very difficult as well. It requires a different kind of preparation and a lot of hard work. The right amount of hard work in the right direction can make it easy to achieve that if done consistently.

This document is for self-preparation. Check out SDE Bootcamp if you want to:
  • fast-track your preparation through hands-on learning, and,
  • have engineers from top product-based companies teach and mentor you

Let's look at the different interview rounds and a roadmap on how to prepare for these rounds to switch from a non-developer role to a software developer role.

Interview Stages for SDE-1 roles at product-based companies

Resume Shortlisting

Most job openings receive 100s to 1000s of applications. It is not possible for a company to interview everyone who applies. To reduce the number of interviews, Recruiters and Hiring Managers shortlist only those resumes which stand out or match the most to the job roles.

Most applicants get rejected at this stage.

If you have done decent projects, have created a good resume, and applied for the correct role, you should be able to get through.

Exploratory Call

This stage generally involves talking to a recruiter regarding past experience and current expectations. If you have done good development work either on your job or through self-projects and have done sufficient research about the company and the roles before the call, this round should be pretty easy to clear.

Machine Coding Round/LLD/Take-Home Assignment

Companies like Uber, Flipkart, Swiggy, Udaan, etc have started hiring through the machine coding round as the first round. This round checks your coding and low-level design skills. It requires you to design and code a solution to a generic problem using best coding practices especially object-oriented programming. Most candidates get eliminated in this round.

Problem-Solving, Data Structures and Algorithms Round/Online Coding Round

Most product-based companies hire primarily through a data structure and algorithm interview. The basic idea of this interview is to test your problem-solving skills through your ability to figure out the right data structures and algorithms to solve logical problems. It is highly unlikely to get into a product-based company without being decent at DSA.

Hiring Manager/Bar Raiser/HR/Behavioral Round

This is usually the final round in most cases. You are judged on a mix of technical and non-technical competencies. Good projects and articulating your experience the right way may help you clear this round easily. Make sure to do sufficient research about the role before this round. Apart from the in-depth discussion on your projects, you might be asked puzzles, basic DSA questions, SQL queries, basic OOP, and other theoretical concepts

How to prepare for SDE roles at product-based companies?

Learn to Code + Practice online coding

Learn to code with a strong focus on foundations. Suggested Languages: C++ or Java. You should aim to get so comfortable in coding that if you’re told the high-level solution, you should be able to code it without much thinking.

Online coding is very different from how we are generally used to code in college classes or on the job. Practice a few basic questions on an online coding platform to build comfort.

Learn Object-Oriented Programming (OOP)

OOP is a very important programming paradigm that is generally used in almost all product-based companies. It is also tested in the machine coding and low-level design rounds. Having a good understanding of OOP concepts and some hands-on practice can help you get prepared.

Learn DSA Foundations

DSA Foundations is one of the most important topics in Data Structures and Algorithms.

You should learn how to calculate the time and space complexity of a solution. Many people avoid this step and face difficulty in optimizing their solutions.

Also, learn how to think and code recursively as recursion is a concept used in many algorithms and with almost all major data structures. Divide and Conquer is the next topic that you should learn next after recursion. Practice questions that require you to use recursion and divide and conquer.

Learn Basic DSA + Practice

Spend most of the time learning and practicing DSA.

Try to learn concepts and build comfort in these topics by practicing questions related to:

  • Array, Linked List, Stack, Queue, Binary Tree
  • Searching, Sorting, Hashing, 2 pointers

Do not memorize stuff. Do not read solutions to increase coverage. Build foundations and try to solve problems yourself.

Learn Development + Build Projects

If you are not already developing software in your current job then learn to develop software. That's what you are going to do on the job as well. Good projects also help your resume get shortlisted and gives you an edge in Hiring Manager interviews.

Try to build good projects that help you learn as well as help your resume stand-out. You do not want to build projects that are there on everyone's resume.

You can do fullstack web development or mobile development. I suggest doing fullstack development in the interest of time and also because most of the open roles are for fullstack developers.

Build your resume and LinkedIn profile the right way

Once you've learned and practiced basic DSA and made a few development projects, you can start applying to startups and mid-sized companies. To get calls from these companies make sure that your resume and LinkedIn is built the right way.

Learn Intermediate DSA + Practice

For the top tech companies, you need to be good at intermediate DSA as well.

Intermediate DSA topics:

  • Greedy, Backtracking
  • Strings, Tries & Bit Manipulation
  • Set, Map, Heap
  • Dynamic Programming
  • Graph

These topics are considerably difficult. If you do it well, you can easily get into one of the top tech companies.

Learn Theory (DBMS, OS, Networks)

Learn other core CS topics like DBMS, OS and Networks. These are essential topics and may be asked in any interview. You would not want to get rejected in an interview because of that. Learn Intermediate SQL as well while learning DBMS.

Practice Machine Coding and SQL

Once you are done with DSA, OOP, core CS and projects, start preparing for other interview types. Practice 5-7 Machine Coding Questions in a timed-manner to easily clear the machine coding rounds at Uber, Flipkart, Swiggy, Udaan, etc.

Also, get your hands dirty with SQL. Hiring Managers or other interviewers might ask you to write some SQL queries.

Interview Practice (timed tests, whiteboard/paper, and mock interviews)

When you are almost about to start giving interviews, it is timed to prepare in a setting that mimics an actual interview. There are 3 things that you need to do for the same:

  • Timed tests: You will get 30-45 minutes for a question during the interview. It is better to practice a good number of questions through timed tests to get used to solving problems fast.
  • Code on whiteboard/paper: During onsite interviews, in most cases, you won't get access to a computer. You will have to write code on a whiteboard or a paper. Coding on it is very different from coding on an IDE. Practice on either of the two for a couple of days.
  • Peer-to-peer mock interviews: Mock interviews can help you find and fix all the common mistakes before going for an actual interview, You can give peer-to-peer mock interviews on Pramp or InterviewBit or you can find a helpful friend.

Start Applying (Referrals, Job Portals, Email, etc)

Start applying in parallel with the above step. Look for referrals on LinkedIn or through your connections. You can also look for jobs on popular job portals or company career pages. Another effective method is to find the email addresses of recruiters (in the case of big companies) and founders (in the case of startups) and sending them a cold email with your application.

You can read more about getting off-campus placements here: How to apply for off-campus placements (jobs/internships)?

This document is for self-preparation. Check out SDE Bootcamp if you want to:

  • fast-track your learning through hands-on learning, and,
  • have engineers from top product-based companies teach and mentor you

Please reach out to me on WhatsApp at if you have any questions.

If you prefer video then you may want to watch this webinar where I've used this article as reference:

Gaurav Chandak
Gaurav Chandak
Gaurav is the co-founder of workat.tech and has previously worked at Flipkart and Microsoft. He intends to actively contribute to the future of education through workat.tech.
Related Content
Get a Software Engineering Job/Internship - Ultimate Guide
How to crack interviews at top product-based companies? | Skills required for product-based companies
Awesome Project Ideas for Software and Web Developers | Resume
SDE Bootcamp - Become a software engineer at a product-based company
Practice Data Structures & Algorithms
Learning Resources
Interview Prep Resources
Blog
  • Career Advice and Roadmaps
  • Data Structures & Algorithms
  • Machine Coding Round (LLD)
  • System Design & Architecture
  • Backend Development
  • Frontend Development
  • Awesome Project Ideas
  • Core Computer Science
Practice Questions
  • Machine Coding (LLD) Questions
  • System Design (HLD) Questions
  • Topic-wise DSA Questions
  • Company-wise DSA Questions
  • DSA Sheets (Curated Lists)
  • JavaScript Interview Questions
  • Frontend UI Machine Coding Questions
Online Compilers (IDE)
  • Online Java Compiler
  • Online C++ Compiler
  • Online C Compiler
  • Online Python Compiler
  • Online JavaScript Compiler
Topic-wise Problems
  • Dynamic Programming Interview Questions
  • Linked List Interview Questions
  • Graph Interview Questions
  • Backtracking Interview Questions
  • Arrays Interview Questions
  • Trees Interview Questions
Company-wise Problems
  • Amazon Interview Questions
  • Microsoft Interview Questions
  • Google Interview Questions
  • Flipkart Interview Questions
  • Adobe Interview Questions
  • Facebook Interview Questions
DSA Sheets (Curated Lists)
  • Top Interview Questions
  • FAANG Interview Questions
  • Most Asked Interview Questions
  • 6 month DSA Practice Sheet
  • 3 month DSA Practice Sheet
  • Last minute DSA Practice Sheet