Front-End Web & Mobile

Meet Our MLH Fellows of Summer 2022

AWS Amplify is a complete solution for quickly and easily building full-stack applications on AWS, and is dedicated to building open-source libraries and fostering a community for front end developers. As part of our effort in fostering an open-source community, we collaborate with Major League Hacking who offers the MLH Fellowship, which brings together talented student developers from all over the world.

These student engineers are paired with mentors in open source and provided guidance on contributing. This summer we had the pleasure of working with two students.

We began the fellowship with a hackathon project which is composed of requirements and user stories that encourages fellows to explore the Amplify framework and learn to build a full stack cloud application backed by AWS services such as Amazon Cognito, AWS AppSync, and Amazon Simple Storage Service (Amazon S3). They were then prepared, with a better understanding of the Amplify developer experience, to tackle issues and contribute to the codebase and documentation.

GitHub Project Board

Screenshot of GitHub Project Board

Figure 1 – Screenshot of MLH Summer 2022 Cohort’s GitHub Project Board

During this cohort the students focused on Auth and Storage related issues. They worked on issues label “good first issue”, small feature requests, and documentation changes opened in our JavaScript and Docs open-source repositories.

Meet with the Amplify Fellows

Picture of MLH Fellow, Amelia

Figure 2 – Photo of MLH Fellow, Amelia Hill

Amelia Hill, USA
Computer Science Graduate @ Santa Monica College

Picture of MLH Fellow, Ahilash

Figure 3 – Photo of MLH Fellow, Ahilash

Ahilash Sasidharan, Canada

3rd Year Computer Engineering student @ Toronto Metropolitan University

What they worked on

Amelia Hill

During the Summer 2022 MLH Fellowship, I worked on the AWS Amplify JS Open-Source Library. For our first assignment, my teammate and I built and deployed a Post-Comment Application that we called NotReddit using Amplify. Although the primary purpose of the assignment was to provide us with a thorough introduction to using the Amplify Framework and some of the Amazon Web Services that Amplify integrates with or leverages under the hood, it also served as the segue to one of my first open-source contributions to the Amplify documentation.

“How are the Post and Comment features for the NotReddit application coming along?” asked Chris during our second MLH Fellows- AWS Amplify Maintainers meeting.

“Although we were able to implement the functionality for those features, it took a longer time than it should have because the documentation was not really clear to me” I said.

“What do you mean?” asked Chris.

“In my opinion, the instructions on how to implement the ‘has-many relationship’ between the tables are not really user-friendly” I answered.

“Hmm…I see your point” conceded Chris, after looking over the mentioned section in the documentation.

“So, re-write that section, and then submit a pull request with your proposed changes. If your version is better written and more accessible to users, then our reviewers will approve it, and it will get added to the official documentation” suggested our Amplify manager, Arundeep.

“Really?” I asked.

“Yes. Go for it! Continual improvement, user or community contribution – these are some of the key aspects of the open-source model”, Arundeep enthusiastically explained.

Additionally, the assignment served as preparation for us to work on the Amplify JS open-source repository and to better grasp the issues that developers might encounter while using Amplify. For example, while attempting to deploy the NotReddit application on Amplify Hosting, I encountered a persistent OAuth – URI redirect issue that required two extensive trouble-shooting sessions with our mentor, Chris, to track down the source of the issue. Under Chris’ tutelage, I learned how to methodically and effectively approach a problem that a user might potentially encounter while using Amplify.

Ahilash Sasidharan

Throughout the summer, I worked on various issues in the amplify-js repository across the Storage, Auth, and Signer packages. I thoroughly reproduced them and collaborated on a few of them with Amelia. I triaged issues allowing me to create pull requests for both the amplify-js and amplify-docs repos. While also developing documentation for issues, I only triaged detailing my findings to help AWS Amplify engineers address them in the future. While reaching out to AWS Amplify users through GitHub when necessary to help resolve issues.

What they learned

Amelia Hill

After becoming more familiar with the Amplify landscape, I was able to work on several documentation issues, some GitHub issues, and a feature request. Although I gained myriad of important hard technical skills from working on these tasks, some of the most impactful skills that I learned and utilized were not necessarily technical in nature.

As a fellow, I developed a better understanding of the open-source model and an appreciation for documentation. For me, the AWS Amplify and the AWS documentation in general served as the starting point and the most reliable resource for providing both the insight to understanding user issues and the solution to resolving those issues. With this realization, I progressed from someone who read documentation casually to glean the basics to someone who now carefully reads documentation as a first measure.

Most significantly, however, I became a more proficient and adaptable learner, as well as a stronger collaborator and communicator. Utilizing and further developing my communication and collaboration skills were paramount to helping me to sustain growth and momentum. From interacting with my globally-distributed MLH teammates to help each other solve problems, to participating in code reviews with the Amplify project maintainers and implementing their feedback for improvement, to “listening to” user issues and trying to help resolve them – effective communication and collaboration served as the glue that adhered everything together and ensured a successful fellowship experience.

Ahilash Sasidharan

Throughout the summer, contributing to AWS amplify, I learned a lot about contributing to open source and collaborating with others. I now better understand the process in which I can look at a GitHub issue for an open-source project and start working on making a meaningful contribution.

This process taught me the importance of taking feedback and iterating on work. I also better understood the need to reach out to others for help when you get stuck on a problem in a team. I feel more comfortable doing so after being pushed to reach out by our AWS Amplify maintainers when we needed help throughout the summer.

I have learned a lot through the fellowship, and it has given me the confidence to contribute more to open source in the future. I’m thankful for the opportunity to work with the AWS Amplify team.

Looking to get involved?

The Amplify team is always looking to work with more contributors. You can take a look at our repos and keep an eye out for the “first time contributor” and “good first issue” labels. We try to keep our Issues well groomed. Also, you can respond to issues or PRs with your interest in contribution. This will allow our engineering team to communicate with you and provide feedback directly. Additionally, our Discord community has a section dedicated to contributor discussion.

Lastly, you can learn more about the MLH fellowship here.

About the authors:

Chris Bonifacio

Chris Bonifacio is a Developer Experience Engineer on the AWS Amplify Team. Chris works across several teams with a focus on JS and Data, and triages issues to ensure that bugs are identified, prioritized, and fixed accordingly. He also provides code-based and architectural solutions to developers building scalable applications with the Amplify JS libraries. In his free time Chris enjoys playing guitar, piano, and watching artsy films.

Arundeep Nagaraj

Arundeep (Arun) is a Developer Experience Manager for AWS Amplify working on resolving problems and architecture challenges for front-end developers. You can follow Arun on Twitter at @arun_deepn