My First Month with DiDi
Last 3 months has been the most exciting and yet challenging period of my life. I migrated from Xi’an ShaanXi to Beijing to join with a internet giant called DiDi.
DiDi used to be a ride-hailing platform with rapid growth. It was delisted from the New York Stock Exchange just five months after its initial listing due to the Chinese government’s scrutiny over the company’s information security. However, after a year of extensive security rectification, DiDi is now making steady progress. I believe that in the near future, DiDi will make a strong comeback and achieve even greater success.
Amazing Team
After arriving in Beijing, I had a brief one on one conversation with my leader Jamie Lin, where we talked about what the team is going to work on and how I can contribute to the team. After all the new colleagues arrived, we went for a team-building activity and had roasted lamb legs. During the meal, the boss mentioned some of the team’s work styles and values regarding life and work, which I completely agree with. He said
- Prioritize your personal life (work-life balance).
- The impact of technology is often overestimated in the short term and underestimated in the long term.
- In addition to focusing on compensation, personal growth is important.
- The goal is to create a virtuous cycle.
My colleagues previously worked at large companies and have high technical skills. I’m really happy to join such a team.
Personally, I’m a big fan of resources and tools that make life easy for developers. It’s those great contributions from others, that makes it possible for us to come up with more awesome creations. I saw working with DiDi, could give me the opportunity to do that in a broader and more focused manner.
Operates like a precision machinery
After first-day at work with DiDi team I said to myself - “Wow! These guys are super smart!”. It was intimidating to work with such a smart and productive team. But during the next couple of weeks, I realized it’s the process and the environment that creates the difference.
At DiDi, nobody will tell you what to do and how you should do it. You have to manage yourself. After being assigned tasks, everyone collaborated meticulously on every aspect, including environment setup, code deployment, and front-end and back-end integration. The efficiency was extremely high.
Pull-requests & Code reviews
For every task you work on, you should create a feature branch. Nobody commits directly to master. When you complete the task, you send a pull-request to merge your feature branch to master.
At this point, rest of the team will review your pull request and offer tips for improvement or discuss implications of the suggested implementation. Personally, these code reviews helped me to unlearn lot of bad practices and think thorough before arriving at a solution. These code reviews are highly subjective, so it’s important not to entangle your ego with the code you wrote.
Also, at DiDi there’s a strong emphasize on test-driven development, documentation and managing a clean commit history. As a newcomer, these practices allowed me to get a better understanding of the previous decision making and acclimate with the code-base.
Strict release process
Since we are working on B2C (consumer-facing) services, and under a large platform like DiDi, the user traffic is enormous. Therefore, building platform stability is a top priority.
Correspondingly, the requirements for my code are also high, demanding high concurrency and high availability. After submitting the code, it needs to go through meticulous testing in multiple environments before it can be officially deployed.
To even release my code to production, I need to go through a deployment exam. Only after passing the exam do I get the permission to trigger the deployment pipeline.
Connecting with other developers
What I love most about DiDi is getting to connect with lot of other developers. As I said earlier, everyone in the team has access to support channels and everyone do support. Insights you gain from these chats are invaluable. You will learn different contexts, workflows and approaches used by others. And it’s flattering to hear how others make use of it to do interesting stuff.
At DiDi, I feel I’m improving myself as a developer, while helping others to improve themselves.
PS: DiDi is always on the look for more passiontate people to join the team. If you’re yearning for a challenge, you should get in touch.