Profile Lucas Sta Maria

I'm a final year Computer Science and Mathematics student at Northeastern University interested in programming languages and developer tooling.

(λx.x x) (λx.x x)

UFDS

Background: in June 2021, a mentor from UFDS Mentoring approached plam, my dev team. UFDS Mentoring is a free mentoring service for competitive programming, and they wished to enhance their services after acquiring more mentors for the next season. Their name originates from the Union Find Disjoint Set data structure, more commonly known as Disjoint Set Union. My dev team plam consisted of three other members: Leo Lee, Edward Wibowo, and Vir Chaudhury. UFDS Mentoring asked us to build a platform that enabled them to teach more effectively.

UFDS Mentoring is an effective organization for mentoring newer competitive programmers. They have qualified team members who have participated in an array of national and international contests, such as INOI, SGP NOI, APIO, IOITC, and IOI. Through the work we've done together, along with their dedicated team, we've effectively helped numerous competitive programmers perform well in their national contests. Many have moved on to national teams and international contests.

I worked on both parts of the project: the UFDS Mentoring homepage and the UFDS Training platform.

I was the primary developer for the UFDS Mentoring homepage. As such, I was given free rein over the technologies used for it, selecting Vue.js, Nuxt, and TailwindCSS. Leo and I agreed on choosing a "playful" appearance for the page, sourcing free illustrations to make the site appealing. We aimed to share:

  1. What does UFDS Mentoring have/do?
  2. Expand and support that header.

We achieved this by concisely listing explicit benefits and data to support our claims. We wanted to convert website views into registrations for the program. We also added site previews with the Open Graph Protocol and Twitter Cards.

The UFDS Mentoring homepage is statically generated with Nuxt and deployed to Firebase for hosting. Vir handled the deployment.

ufds_100.png
Figure 1: Achieving 100 on Lighthouse for UFDS

The second component I worked on was the UFDS Training platform. We (plam) built the platform with React and Next in TypeScript, using the Evergreen UI React framework and Firebase for the backend and user authentication. The platform hosts lessons and problemsets for UFDS Mentoring's members.