- TL;DR
- Step 0: Set goals
- Step 1: Learn
- CS Basics and System Fundamentals
- Follow my Backend roadmap
- Leveraging AI Tools & Modern Workflows
- Step 2: Build and Share
- Step 3: Apply
TL;DR
- Market research via local job boards. Identifying high-demand niches (AI engineering tools, cloud infra, data backends)
- Learn: Language basics, DSA basics, Backend, Git, Frontend, DevOps, Testing, System Design basics
- Create opportunities for yourself if none exist
- 3-4 projects, READMEs, Design Docs, Video Demos
- Document your work. Showcase your projects and artifacts on GitHub/YouTube/LinkedIn.
Step 0: Set goals
Market research via local job boards. Identifying high-demand niches (AI engineering tools, cloud infra, data backends)
Do you want to get your first job during next 1 year? Then create a plan on things you need to do, and follow it, track results monthly, update the plan and continue learning.
Understand the market — what tech stack is in demand now (how? Here. Also here.).
Step 1: Learn
Language basics, Backend, Git, Frontend, DevOps, Testing, DSA fundamentals, AI agent workflows/auditing, System Design basics (caching, queues, indexing)
CS Basics and System Fundamentals
- Data Structures & Algorithms (DSA): core CS fundamentals (arrays, hash maps, trees, linked list, graphs, Big-O time/space complexity)
Follow my Backend roadmap
MY ROADMAP: How to learn programming? 0 → MIDDLE engineer ROADMAP
How to start learning programming on your own?
- From my experience: spend 6 months learning programming (check my roadmap for learning first programming language — choose any and learn concepts fast), and then spend 1 year learning backend and building projects, 6 months growing in other areas).
Learning plan:
- Learn Backend: After learning programming with any language, then start in backend (this is what I did; you may need to change programming language to Python/Java/JS, understand how to build REST APIs, understand how to build databases the right way and understand how they work, understand how web works, how HTTP works). Why start with backend? To build strong fundamentals, to understand how data and logic works. Check https://roadmap.sh/backend.
- Learn debugging, learn setting logging and error tracing with Sentry
- Learn Git, and learn using GitHub.
- Learn frontend. Why? To have basic knowledge in frontend is nice, because in the end you are a software engineer in the end — problem solver/builder/contributor).
- Learn DevOps tech stack (basically, understand how to deploy your app in cloud — Digital Ocean, AWS, how to set up CI/CD with GitHub Actions, GitLab, Jenkins, containerization).
- Learn testing (unit, integration, end-to-end UI testing with tools like PlayWrite, learn mocking/patching).
- System Design Basics for Juniors: foundational concepts like database indexing, caching strategies (Redis), REST vs. gRPC/GraphQL, and basic asynchronous execution (message queues like RabbitMQ/Kafka/Celery)
But first, learn how to learn (watch video tutorial, read article/documentation, read a book about it).
Leveraging AI Tools & Modern Workflows
Juniors need to know how to use AI coding agents (Claude Code, GitHub Copilot, Cursor, MCP integrations) as productivity multipliers while maintaining deep critical thinking.
Emphasize the skill of auditing AI-generated code. A junior who can review, debug, and test generated code effectively is much more valuable than one who blindly relies on it.
Step 2: Build and Share
3-4 projects, READMEs, Design Docs, Video Demos
Build projects (not from book/tutorial), participate in hackathons and startup competitions — basically, create any opportunity for yourself (for example, my friend and I, started our company 🤣 and started building our own projects and participated in hackathons).
So, build 3–4 projects, could be a web app, some framework and library, CLI tool.
For each project, follow these steps:
- Write a good README: Make sure your GitHub README is clear and detailed.
- Create a design document: This should include:
- The problem you’re solving and the requirements.
- Your approach to solving the problem.
- The challenges you faced and how you overcame them.
- How the project works (data models, algorithms, and why you chose them).
- Deployment details and how to set it up.
- Testing strategies (types of tests you wrote).
- The tech stack you used.
- Publish your project:
- Record a short demo (max 5 minutes) showing the project in action. Upload this demo to YouTube, then reference it in GitHub.
- Ensure all project files, including code, documentation, and any additional resources, are available on GitHub.
Here is what I did: https://www.linkedin.com/in/rustam-z/details/projects/
Here are the project ideas: Coding project ideas for learning & leveling up programming skills
Step 3: Apply
Resume, Cold outreach template. Referral networking, interview preparation pipelines (DSA + System Design + STAR behavioral), take-home project best practices.
Create a resume, read my notes on creating resumes.
Cracking MAANG: How to write resume?
Use any opportunity you have; create the opportunity if you don’t have it (how? Hackathon, competitions).
Join local tech communities, attending meetups, and asking engineers for 15-minute informal chats/referrals.
Modern recruiters often look for direct value propositions. While messaging something reference something specific about the engineering team's current stack or tech blog post.
So, when you're confident, write a resume — including the projects you've completed as part of your experience — and start applying for jobs. Grow your network, participate in tech events to meet new people and show yourself, and prove your experience with your GitHub. Use the template below, created by Jahongir Rakhmonov, when reaching out to recruiters or engineers:
Hello,My name is <NAME>, and I am an entry-level Software Engineer. My primary focus is on backend development, and I have worked on the following projects:
1. Rockets Game – A solo game where you avoid obstacles by dodging them or destroying them with your rockets.
- Link: https://github.com/mygame
- Tech stack: Python, PyGame.
2. E-Commerce – An online shop where people can buy groceries. It also includes a full-featured admin panel for managing all aspects of the store.
- Demo: https://ecommerce.heroku.com
- Tech stack: Python, Django, PostgreSQL, Celery, React, Heroku.
3. Telegram Bot – A bot that allows users to order groceries using the APIs of the e-commerce project mentioned above.
- Link: https://github.com/mybot
- Tech stack: Python, Telegram API*
I am interested in an entry-level position at your company. While my current expertise is primarily in Python and its ecosystem, I am eager to learn new technologies. I am open to learning Java (or any other language) if that is what your company uses.
I am confident that I will grow quickly and contribute to your company's success in the near future.