Lead Web Developer

AIChe ITB SC

My first experience leading a team in a semi-professional capacity to build a website from scratch

July 2022 — July 2023

Summary

My first time leading a team in completing a semi-professional project. Here, I had to develop a new website for ITB AIChe Student Chapter to replace their old website.

Developer Diaries

The main task at hand is to develop a new website for the organization that replaces the old janky one they had. Although technically I'm placed in this position for a year, work practically concluded by September because the website was finished by that point. There were no work to be done in terms of maintaining the website. This was mainly due to my use of DatoCMS to store the content in the website, which made it so that people within the organization do not have to go through me to change or add new content to the website.

Choosing the Tech Stack

In the previous hobby projects that I have done, I chose their tech stack based on what tech stack I want to learn through doing the project. However, unlike those projects, this website that I am making will actually go into production to be used by people who are looking up AIChe ITB SC through their search engine. Thus, I needed to select a tech stack that is actually appropriate to the website's use case of being a mostly static homepage.

I consulted my friend, Arsa, who were (and is) much more experienced in web development than me (all-around superb guy by the way). He mentioned a framework (or more appropriately named meta-framework nowadays) for mostly static pages that was very new at the time, called Astro. After watching videos about the framework (such as this excellent one from Fireship) and reading about the framework itself on their homepage, I was convinced. The main feature that stuck out to me was the fact that by the default it didn't ship any Javascript to the client, making it extraordinarily fast compared to other frameworks. The previous website that AIChe ITB used was an incredibly bloated WordPress site with garbage lighthouse metrics, so I wanted the new website to have as much improvement as possible in that department. Moreover, the framework is quite flexible due to the ability of developer to use other frameworks (e.g. Vue, Svelte, React) on top of it for certain components. I ended up only using Svelte for the dynamic components of the website, mostly because I really liked to use Svelte at the time. But knowing that I had the options to use other frameworks at any point during development were nice.

At present, Astro is a great meta-framework for making static pages. In fact, I use it to make this personal site. But I sorta regret using it for this project because it was just too bleeding edge, leading to my team to encounter some bugs with the framework itself during development. During most of this project's development time, Astro was still in beta. It wasn't until early August that Astro officially launched their 1.0 version. The aforementioned bugs did vanish once we upgraded the Astro version at the tail-end of development, but still there were certain features and creature comfort available in other frameworks that was not yet available in Astro. It should've been obvious to me to not use novel untested libraries/frameworks/tools for production. The development of this project taught me that lesson somewhat harshly.

Leading a Team

This is not my first time becoming a team leader, but it is my first time becoming a leader in a project like this. It's definitely a new experience that is not at all similar to making something on your own, even with a small team of only 4 people (including me). Among other things, I learned about delegating tasks to others, dealing with merge conflicts, assisting and supervising members in their task, etc.. One particularly eye-opening experience is handling a team member mistakenly merging an unstable PR straight to master instead of into development. This wasn't actually that big of a deal since the website was still in development and thus, have not yet been released yet. Still, it taught me how accidents could happen and how to handle them professionally.

Communicating with Non-Technical People

As the lead, I am the one that has to communicate with the stakeholders of the organization in the development of the website. By the nature of the organization, I am dealing with undergraduate students of chemical engineering from my own university. Fortunately, it wasn't that hard to do on the basis that there weren't that much to communicate since the project was still relatively simple.

That said, it has to be emphasized that this skill, of communicating to people outside of our field within our occupational capacity, is not a skill that should be taken for granted. This is especially true in retrospect after hearing from my lecturers (shoutout in particular for Mr. Windy, my lecturer in my socio-informatics course) of various cases of people in my profession failing to do this. It's a very valuable soft skill because in the real-world, you often have to work with people from different technical backgrounds, especially when you exhibit a high rank within the company you're working in. But to get better at it, you kinda have to practice and exercise it by actually doing it. Such is the reason why I always look forward for opportunities where I get to work together with people from different backgrounds.