Press enter or click to view image in full size
I am not very good at articulating myself but please bear with me, as I comment on the quality of work most of the software developers end up doing for most of their lifetime. If you are a software developer, who has spent around 4–8 years of her/his lifetime stroking keys on a computer, trying to amaze the world with the wonders of technology, you are the one, I believe, who is going to relate to this post the most. I will begin by sharing a realization that struck my mind 5 years ago, that coding is not just about creating something and feel like God, but it is also about creating something meaningful. Something which could actually make the world a little better place to live. I might sound too philosophical but back then, working at one of the world’s largest conglomerate, I was constantly questioning myself as to whether the work I was doing was changing the world for good or was it is just filling the pockets of the top 1% of the 1%, or at the least my pockets.
To get started, realize the kind of work you have been doing, just retrospect on all the features you have ever delivered, all the services you have written, and all the awesome systems you have architected over the years. What were those for? If your code has just enabled your organization to make money more efficiently or to keep selling people the things they actually never wanted or to keep spying on every action of users to sell that data to companies that manipulate these people into buying their products. Then, my dear fellow coder sister/brother, you have not written the code that matters. Not saying its immoral to do any of these, but for people like us, who are blessed with a skill to tell the computer what to do and change the world, it is highly essential that at least at some point in time in life we write code to touch as many lives as possible in a positive way. Not as a moral obligation but as a responsibility to give back to society, at least for those who are underprivileged but have the right skills and talent but lack the platform to monetize them. Otherwise, I am sure one day, you will also find yourself sitting behind a screen, feeling hollow inside, that you wasted your superpowers.
I might share all the wisdom in the world but, what have I ever done for humanity which makes me eligible to ask others to do the same? And, I can proudly say, I have spent 4.5 years writing code, iterating on PRDs, architecting complex systems, refactoring large codebases, scaling systems, which has touched the lives of thousands of humans, and has enabled them to live a respectable life. I got the chance to do all of this at my current organization UrbanComapny (UC). Before joining UrbanCompany, many such professionals were earning around ~10000 Rs/month, and now some of them even make more than 100 thousand Rupees per month, with an average of ~35000 Rs/month. Not only that, some of them were able to get out of the bad loans, poor living conditions, and even sometimes from bad marriages. You can go through the blog “Humans of UrbanCompany” to know how UrbanCompany has changed their lives directly. And believe me, these are just a few examples. To validate further you can go through another blog about the culture@UrbanCompany, where you can find what measures UrbanCompany took to help partner sustain during the COVID-19 pandemic.
I really don’t want to boast about how, as engineers, we have been constantly solving both real-world and hard engineering problems to create a marketplace that provides the best home service experience. You can always visit our tech blog “Engineering @ UrbanCompany” to learn more about the same. But I want to touch more upon how the work my team does affects the livelihood of a partner and ensures that the customer has a delightful experience.
My team works on partner job allocation, which inherently is an NP-Hard problem. This implies that a perfect answer may not exists and we have to make trade-offs between partners’ economics (travel cost, idle time between jobs, gross/net earnings, etc.), marketplace economics (cost of manual intervention, total incentives, cost of late delivery, etc.), and customer delight (highest rated partner, ETA, minimum wait time, availability of favorite partners, etc.) while maintaining the overall fairness of the marketplace. This also means, that there is an infinite scope of tuning the system to find the right balance between the objectives at any given time. I have spent the last 4.5 years at UrbanCompany, working just on this, and yet we have just scratched the surface. And our team at UC has sworn to solve the problem by going much deeper and building solid platforms and automated strategies to achieve such objectives in the coming months. This post is my warcry to all the developers out there, who want to take on this challenge, and solve not just the most complex engineering problems, but also the real-world problem, directly affecting the livelihood of our partners. If you heed my call and want to be the part of the tribe, DM me on LinkedIn with your resume attached.
Eligibility Criteria:
- 4–8 years prior engineering experience in building distributed systems
- Bachelors/master’s in computer science from top tier Engineering School
- Proven ability to work in a fast-paced environment
- Fanatic about building scalable, opinionated, high-quality, secure, and reliable data products.
- Zeal to write code that matters.