How we got hundreds of Sri Lankans coding with freeCodeCamp at Google I/O
The tech industry in Sri Lanka is at an inflection point. Software exports have grown 120% annually since 2008, driven largely by overseas demand for IT consulting and software development services.[^1] But the island nation of 21 million people is facing a severe shortage of skilled developers to fuel this growth.
One recent survey found that 69% of Sri Lankan tech companies face difficulties filling open positions, with software engineers, web developers and mobile app developers being the most in-demand and hardest to hire.[^2] At the same time, youth unemployment hovers around 21%,[^3] indicating a glaring skills gap between education and employment.
As the co-founder and CEO of Fidenz Technologies, a software development firm based in Colombo, I‘ve experienced these challenges firsthand. When the company launched in 2012, we decided to invest in training high-potential undergraduates through an in-house program called Fidenz Academy. But as demand for our services grew, it became clear that we needed a way to scale up our junior developer training.
Discovering freeCodeCamp
In early 2017, I came across freeCodeCamp, an open-source web development curriculum and global community of self-study coding learners. I was impressed by the interactive, project-based approach and the fact that anyone could access the full stack development training for free.
What really drew me in was the supportive community behind freeCodeCamp. Campers (as freeCodeCamp participants are known) connect with each other on forums, chat rooms, and local study groups to get help and collaborate on projects. It‘s an ethos of peer-to-peer, participatory learning that resonated with my own experiences as a self-taught programmer.
At the time, freeCodeCamp was relatively unknown in Sri Lanka. The platform had just two study groups in the country with a combined 400 members. I realized that introducing more Sri Lankan aspiring developers to freeCodeCamp could be game-changing – providing access to a world-class coding curriculum while plugging them into a global support system.
Building excitement with {code_blooded}
To put freeCodeCamp on the map in Sri Lanka, the Fidenz team hatched an ambitious plan to launch a new initiative called {code_blooded} at the Google I/O Extended Sri Lanka conference in May 2017. Google I/O Extended events are hosted by local developer communities around the world to coincide with the main Google I/O conference in California. The 2017 Colombo edition was slated to bring together 2,300 developers and tech enthusiasts for two days of talks, workshops and product demos.
We envisioned {code_blooded} as a coding competition that would challenge participants to complete as many freeCodeCamp exercises as possible in a set timeframe. To pull it off, we needed to:
- Create a clone of the freeCodeCamp platform that could host a private leaderboard
- Modify the curriculum to include new custom challenges
- Deploy the app on scalable architecture to handle the expected traffic
- Add real-time support to help participants troubleshoot issues
With just one month before the conference, our team of six developers got to work. We decided to build the platform, dubbed codeCampChallenges, using the MERN stack (MongoDB, Express.js, React, Node.js) to align with the freeCodeCamp curriculum.
After forking the freeCodeCamp repository on GitHub, we built new features like user registration, private leaderboards, and an admin panel. We also added 85 custom coding challenges, including 5 advanced algorithm problems, to ensure the content would be difficult enough for a five-hour competition.
Here‘s a simplified architecture diagram of the platform:
graph LR
A[User] --> B[React Frontend]
B --> C[Express.js API]
C --> D[(MongoDB)]
C --> E[Admin Panel]
C --> F[Leaderboard]
C --> G[Custom Challenges]
To guarantee the app could handle the anticipated surge of traffic, we load tested it using Artillery to simulate requests from 1000 concurrent users. We then deployed the frontend and backend on Heroku, using Auto Scaling to automatically adjust the dyno count based on traffic.
As a final touch, we integrated LiveChat into the app so our engineers could provide real-time support to participants during the competition. With the codeCampChallenges platform ready to go, all that was left was to announce {code_blooded} to the Sri Lankan developer community.
Launching {code_blooded} at Google I/O Extended
On May 18, 2017, the big day arrived. I had the honor of introducing {code_blooded} to the 2,300 attendees at Google I/O Extended Sri Lanka and officially opening registration for the freeCodeCamp coding competition.
The response was incredible. Within minutes, over 200 developers had signed up to participate. As they began diving into the challenges, our support team was flooded with requests on LiveChat. We ended up answering 314 troubleshooting questions over the course of the 5-hour competition.
When time was up, we tallied the leaderboard and announced the winners. The top scorer was Ashan Beruwalage, who completed an astonishing 85 challenges – almost twice as many as the second place finisher. For his coding prowess, Ashan won an expenses-paid trip to Google‘s Asia headquarters in Singapore.
Competition by the numbers
Here are some key stats from the {code_blooded} coding competition at Google I/O Extended:
- 204 registered participants
- 5 hours of coding
- 13,467 challenges solved
- 66 average challenges solved per participant
- 85 challenges solved by the winner
We also surveyed the participants after the competition to get their feedback. The results were overwhelmingly positive:
- 95% said they enjoyed the competition format
- 89% said they learned something new from the challenges
- 92% said they planned to continue using freeCodeCamp after the event
One participant summed up the impact of {code_blooded} perfectly:
"This was an awesome initiative to get more people excited about coding. I‘d never used freeCodeCamp before but now I‘m hooked. I can‘t wait to keep solving challenges and building projects."
— Janith Kasun, {code_blooded} participant
freeCodeCamp in Sri Lanka by the numbers
In the year since we launched {code_blooded} and introduced freeCodeCamp to hundreds of new developers in Sri Lanka, the community has flourished.
Here‘s a snapshot of freeCodeCamp‘s growth in the country:
Metric | May 2017 | May 2018 | Growth |
---|---|---|---|
Registered users | 412 | 3,218 | 782% |
Monthly active users | 84 | 977 | 1,163% |
Study groups | 2 | 11 | 550% |
Study group members | 447 | 2,231 | 499% |
Forum posts | 21 | 467 | 2,224% |
Challenges completed | 3,665 | 94,271 | 2,574% |
Projects completed | 32 | 614 | 1,919% |
The data shows the incredible rate of adoption freeCodeCamp has seen among Sri Lankan developers. In just 12 months, the number of registered users has grown by nearly 8X to over 3,200. Even more impressive is the 11X jump in monthly active users, indicating that these new campers are highly engaged with the platform.
The number of study groups has also increased more than 6X, with the largest group in Colombo now topping 800 members. These local communities have been integral to supporting campers and driving the viral growth of freeCodeCamp through meetups and hackathons.
Scaling the freeCodeCamp model
As a full-stack developer and entrepreneur, I‘ve been blown away by the effectiveness of the freeCodeCamp model. The combination of a well-structured, project-based curriculum and a passionate, open-source community is a powerful formula for inspiring new developers to learn to code.
One key ingredient is the emphasis on hands-on practice and building real-world projects. This is a critical bridge from theoretical learning to practical skills that are valued by employers. Another is the collaborative nature of the community, which encourages campers to help each other, share code, and build relationships.
At Fidenz, we‘ve fully embraced these principles in our own training programs. Fidenz Academy now uses freeCodeCamp challenges and projects as the foundation of its curriculum for entry-level developers. We‘ve seen the confidence and competence of our trainees grow exponentially as a result.
Looking ahead, our goal is to empower as many Sri Lankans as possible with coding skills through freeCodeCamp. To that end, we‘ve launched a university outreach program to introduce freeCodeCamp to Computer Science and Engineering students at four major campuses this year. By connecting these students with the global freeCodeCamp community, we believe we can accelerate their learning and career opportunities.
We‘re also doubling down on supporting the freeCodeCamp study groups in Sri Lanka to foster local connections and collaborations. Later this year, we‘ll be hosting the first-ever freeCodeCamp Sri Lanka hackathon to bring hundreds of campers together to build projects for nonprofits and local businesses.
Ultimately, our vision is to establish Sri Lanka as a regional hub for freeCodeCamp and a launching pad for a new generation of skilled, entrepreneurial developers. With partners like Fidenz and the momentum of the {code_blooded} movement, I‘m confident we can get there.
If you‘re interested in bringing the power of freeCodeCamp to your community, we‘ve open-sourced all the code for the codeCampChallenges platform on GitHub. Feel free to fork the repo and adapt it for your own coding competitions and events.
You can also check out Fidenz Academy to learn more about our approach to developer training, and join the freeCodeCamp Colombo study group to connect with the local community.
Happy coding!
[^1]: Sri Lanka Association of Software and Service Companies[^2]: Lanka Software Foundation
[^3]: Trading Economics