Getting Started
What is Dev-Rebase?
Dev-Rebase is a collection of short guides designed to help developers learn about modern software development practices. These guides cover essential topics that are commonly expected in today's tech industry, especially when working at international companies or applying for remote positions.
How did Dev-Rebase come to exist?
I'm Mohammad Ghanem, and I created Dev-Rebase after experiencing firsthand the gap between local development experience and international tech expectations.
When I moved from Syria to Germany and started working at different companies, I quickly realized there were many practices and approaches that companies expected me to know as a developer. I had to actively learn these topics to bridge the gap in my knowledge and meet industry standards.
About a year ago, I started volunteering with the Imagine Foundation as a technical coach, conducting sessions for developers trying to enter the European job market. During these sessions, I noticed that most developers faced similar knowledge gaps for the same reasons I had experienced - their work environments implemented fewer modern practices, and the expectations were lower.
After seeing this pattern repeat many times across dozens of coaching sessions, I realized it would be valuable to collect these practices and topics in one place and share them with anyone who might find them useful. That's how Dev-Rebase was born - to help developers bridge the gap between local experience and global tech opportunities.
For who?
This guide is not a roadmap to learn programming or start in the tech world. Instead, it targets:
- Developers who already know how to program.
- Computer Science graduates with programming knowledge.
- People already working in the industry as frontend, backend, or mobile engineers.
- Anyone looking to understand modern development practices used in international companies.
If you can already program and build applications, but want to learn about industry practices, tools, and methodologies, this guide is for you.
How to use this guide?
The topics are presented in an order that makes logical sense, but you can read them in any order that works for you. Each guide is designed to be self-contained, so feel free to jump to topics that interest you most or that you need to learn for your current work. At the end of each topic, there a list of resources in English and Arabic. These resources are not exhaustive and don't cover the topic in depth, but they are a good starting point to learn more.
What topics are covered?
Core Skills - Essential technical skills that every developer needs to work effectively in modern development environments.
Deployment & Production - Tools and practices for deploying applications and maintaining them in production environments.
Learn by Doing - Practical ways to apply your skills and build real-world experience while contributing to the developer community.
Learn from Others - Resources for connecting with experienced developers and communities that can accelerate your growth.
How to contribute?
This is an open source project, and anyone is welcome to contribute! If you find a topic that is missing, contains errors, or could be improved, please feel free to open an issue or submit a pull request at dev-rebase/dev-rebase.github.io. Also, if there's a specific topic you'd like to see part of this guide, please create an issue to request it.