Creation of ACM Cloud

danieltherealyang
tech@ucla
Published in
5 min readMar 13, 2024

With the explosive growth of cloud providers like AWS, GCP, and Azure, and with them development tools like Terraform, Kubernetes, and new open source software powering the entire cloud ecosystem, developing a foundational understanding of cloud computing is essential to any aspiring software engineer. However, as students here at UCLA, we noticed a disturbing lack of presence both in the practical “software engineering” side as well as in the academic “computer science” side — especially in contrast to more flashy topics like Machine Learning. In an attempt to learn about cloud computing and the distributed systems theory that powers it, we searched for any relevant classes or student-led extra curricular clubs but found our efforts fruitless. We’re Satyen and Daniel and being the passionate cloud computing enthusiasts we are, we were inspired to create a place for those seeking to foster their skills. We welcome you to ACM Cloud, an organization dedicated to all aspects of cloud computing.

Daniel (Left) and Satyen (Right)

We began working on ACM Cloud in Spring 2023, intending to officially launch our first track in Fall 2023. We initially reached out independently to the ACM President (then IVP) Sujay to see if we could create a new initiative dedicated to cloud computing. Since we both coincidentally were interested in the same goal, he put us together and we then started working on conceptualizing an idea for what the new initiative would be like. Our initial plan was to create an intermediate project track that would be highly theoretical and autonomous, targeted towards students with a solid grasp of programming fundamentals. In our week by week specification, each week listed possible features and implementation approaches, with the final design up to each individual group. The project specification was complemented with a runnable sample project with basic feature implementations meant as an example, rather than as a code skeleton. By providing participants with no fixed requirements on their implementation approach or required features, our philosophy was to give them the hammers and nails (theoretical conceptual knowledge) and let them build whatever they wanted. We structured our project track, by dividing our two hour weekly sessions, with the first hour covering essential theory and the second hour providing time for a group. The focus of this project track was to implement a distributed system from scratch with Docker. We very quickly realized that this structure was problematic, for two main reasons:

  • We assumed and advertised the project as an intermediate track where people would already know a programming language and how to use Docker, or at the very least be experienced enough to pick up the tool after an hour or two.
  • Reality: Most of the people who went to our GM were beginners and had very little experience with programming and had a hard time even navigating the command line.
  • We structured the track as a group project track and had them form groups during the first week, similar to how UCLA IEEE structures their projects. This decision was made in order to avoid the common problem of dwindling participation throughout the quarter and provide an incentive for people to interact with other participants.
  • Reality: First time attendees tend to ghost very quickly as they try out different clubs and figure out which ones they are interested in. This basically created a cascade effect where the group project became solo projects. With the project guidance intended to be collaborative, we found ourselves having to pivot to accommodate the decreased attendance.

The core of the issues faced during Fall quarter stemmed from attempting to launch an intermediate project track without first creating a core group of dedicated members or a way for beginners that are interested in cloud computing to slowly build up their skills to a point where they would be able to actively contribute in activities that require higher technical competence. To address this, we launched an Amazon Web Services (AWS) track targeted towards beginners for Winter 2024.

When designing our AWS workshop track, we wanted to teach participants essential concepts of working with cloud and to foster strong working knowledge of working with AWS. To cover a wide breadth of commonly used cloud services (including virtual machines, server-less, databases, CI/CD, and infrastructure as code), we framed the track around a guided project of developing and deploying a full-stack application. Learning from our meeting structure the previous quarter, we planned to spend the first third of our time motivating and introducing the required AWS services, would provide about an hour of work time for participants to follow a step by step guide using those services, and planned to conclude with a guided walkthrough building upon the full-stack application.

Rolling out our track during Winter quarter, we were glad to see our efforts paid off — interest was at an all time high and students were sticking around, even through midterm season. Capitalizing on our growth, we took this time to recruit for interns, expanded our reach through a faculty research panel, and hosted a variety of smaller socials for club members. Our new interns (Aryan, Nick, Shlok, Simon) also managed to continually increase their involvement with managing the administrative work as well as making and presenting content for our workshop track throughout the quarter, lightening our workload and allowing everyone to spend more time focusing and planning for further improvements to the organization.

Simon
Shlok
Nick
Aryan

For the future of ACM Cloud, we envision having a total of four branches, where each quarter we run two tracks, one for beginners and one for intermediate programmers, allowing new members to learn about cloud computing and gain exposure to our organization. For dedicated members looking to expand their skills, we plan to run both a technology consulting group and a research group. Through this structure, we will be able to allow beginners who may be interested a way to build up their skills to an appropriate level while also enabling advanced members to continue pursuing their interest in cloud, regardless of whether they favor practical application or academic theory.

--

--