5 Key Lessons Learned as a Software Engineer at Freelancer.com
I worked at Freelancer.com as a full-time software engineer, building projects for a native Android app with 5M+ downloads in Google Play. I also led the development of Freightlancer Android app. Freelancer.com is the largest freelancing platform with 50M+ users.
The world of work is changing rapidly, and the future of work is becoming increasingly digital. The rise of remote work and the gig economy has led to a new paradigm in how we work, and the demand for flexible and scalable work solutions has never been greater.
Working remotely and freelancing enable meaningful work.
"One of the greatest advantages of being a freelancer is deciding whom you want to work with. You can reach out to companies whose vision aligns with your own and get to work on a wide variety of exciting projects."
I believe that the future of work is remote, and freelancers will play a big part in making that happen. Freelancer.com is one of the major platforms to do just that. Freelancer.com is the largest freelancing platform with 50M+ users.
Helping build the Future of Work
In 2018, I had the opportunity to work at Freelancer.com as a full-time mobile engineer, building projects for a native Android app with 5M+ downloads in Google Play. Also, I led the development of the Android app of Freightlancer when Freelancer.com acquired Channel42.
Freelancer.com is a fantastic place to work if you're looking for learning experiences, given how they value training and the personal growth of individuals and teams.
Below are some of the key takeaways I value the most from this work experience:
1. Taking ownership
Building features for projects like Freelancer and Freightlancer apps has allowed me to take ownership of several product features like Local Jobs, Portfolios using experimental back then: Flutter Add-to-App, Jetpack Compose migrations using libraries like androidx, data-binding, constraint layouts to the core features, among many others.
💡 Take responsibility for what you build. It represents who you are as a developer, more so as a person.
2. Over-communicating issues
No, these are not always about meetings! I'm talking about surfacing lingering or critical issues. If there's anything that needs attention, you should communicate it immediately in emails and chat, and don't wait for the next meeting. Otherwise, send meeting invites thoughtfully if you need time to resolve matters effectively.
There are a lot of tools you can use as a reminder or to make meetings more fun. Ultimately, it all comes down to addressing the urgency, having meaningful discussions, and acting on them.
💡 Focus on over-communicating critical issues and make synchronous meetings count.
3. Slow builds mean less productivity.
I built features on large codebases with 40+ shared modules, thousands of lines of code, and 10+ people merging diffs daily. Build times can sometimes be painful and slow our productivity. Every slow build execution feels like an income lost to the business. I helped reduce our Android build times by up to 38%.
I also learned Docker, Jenkins, and other cloud-native CI/CD platforms like GitHub Actions on the side. Now, I'm using many of these tools to automate most of my new projects' workflows.
💡 Invest in learning how to improve your team's developer experience, not just the product you are building.
4. Learning intentionally
Even for a company the size of Freelancer.com, things are always moving quickly, and technologies are evolving rapidly. Whether learning new best practices or methodologies or grabbing a new book to read and a cup of coffee on a Saturday afternoon — don't stop learning. While at it, make it fun, or you can do it with your friends!
In early 2019, I was introduced to Flutter, and I was so amazed by how close the performance came to the ones I'm writing in native Android. I read and learned resources related to Flutter. Now, I'm working on several Flutter projects and teaching others to use Flutter and Dart to accelerate their app development.
💡 Stay curious, don't let the status quo get in the way.
5. Pushing back on the shiny objects
Have you ever dropped something important in your work of this "new thing" out of a whim? Hopefully not. Such a situation is called Shiny object syndrome. Learning new or trendy ideas are ways to stay curious but don't drop everything and lose focus on your present work. For example, it took us some time to carefully migrate and use Android Jetpack Compose libraries for our apps.
💡 Stay focused on business needs. Carefully evaluate the use of new technologies/tools with your team.
Overall, it has been great to work with smart and talented people at Freelancer.com and stay true to our goal to change people's lives worldwide.
If you have any questions about working on a freelancing platform like Freelancer.com or Upwork, email me!
Long ago, I would spend most of my free time learning and working on side projects to fast-track my career and financial goals. But things changed when my responsibility grew and my priorities changed. So, I had to do something to stay on track.
It's been a few years since I started working as a professional software developer. I was lucky enough to join companies that operate at a different scale – from startups and SMEs to public companies. All while balancing my personal life with work and the developer community.