Front-End Web & Mobile
MLH Fellows Spring 2021
This post was written by Matt Auerbach.
Last Spring, we welcomed our third cohort of students from the MLH Fellowship powered by Major League Hacking. We were a part of the inaugural cohort last Summer, 2020 — you can read about the experience here.
In this cohort, we welcomed four students to our CLI team to work within our open source community to reproduce customer issues, solve bugs and build new features based on customer feedback. We tracked their work on a public GitHub project board to stay in the true spirit of OSS. The fellows closed over 40+ GitHub issues, which directly impacted our customers.
Meet the Amplify Fellows
Raj Rajhans
India
Computer Engineering Undergraduate @ Vishwakarma Institute of Technology, India
“Keep Building!”
Gita Alekhya Paul
India
Computer Engineering Undergraduate @ SRM Institute of Science and Technology, India
“Coffee to Code, that’s how I function!”
Pawan Ashish Kolhe
India
Information Technology student @ Amity University Mumbai, India
“I’m in love with the JavaScript ecosystem!”
Aditya Sharma
India
Computer Science student @ SMVDU, India
“Born to develop!”
Fellows describe their projects
Raj Rajhans
During the fellowship, I worked on 25+ issues and pull requests across AWS Amplify CLI, JS and Docs repositories.
At the start, I worked on small beginner-friendly issues and bug fixes which helped me gain a deeper understanding about the codebase. Matt, Ammar, and his team were very supportive and cleared any doubts I had regarding the codebase. As the fellowship progressed, I worked on more and more interesting issues. At the end of the fellowship, I worked on writing unit tests and improving test coverage for the CLI repo.
Gita Alekhya Paul
During the three months of the MLH Fellowship, I have contributed to the Amplify CLI repository, working on 5+ issues. Beginning the journey by reading the codebase, I was a little overwhelmed by the size of the monorepo. Initially, I started by fixing some minor documentation errors related to pathname resolution. As I went deeper into the codebase, with help from my mentors from the Amplify Team and the other fellows, I was amazed at how the whole ecosystem worked.
After getting comfortable with the code, I started working on the DX changes to the Amplify init workflow. I added validation and error handling to the init workflow. I also worked closely with the mock utility and helped close some issues related to it.
Moving on, I worked on the multi-environment module of the Amplify CLI, removing redundant questions and updating test cases. During the exploration of the multi-env module, I too discovered a bug in the Nexpect library and helped solve it.
Pawan Ashish Kolhe
I spent the Spring of 2021 contributing to the AWS Amplify CLI project. It was a great experience interacting with members of the Amplify team as they helped us a lot to understand the project better.
My journey began with a major contribution to the repo’s contributing documentation which makes it easier for new contributors to get up and running with a development environment. During this phase, I got familiar with the project structure and the various tooling used in the monorepo. I worked on reproducing various customer issues, finding a solution to the issues, and opening a PR to resolve the issue if required. There was an issue related to GraphQL Schema which I enjoyed debugging along with another fellow.
Aditya Sharma
During the MLH fellowship, I’ve been actively working on multiple packages, including: Authentication, Lambda functions, and GraphQL transformer in the AWS Amplify CLI project.
At the beginning of the program, I started exploring how Amplify CLI uses multiple AWS services under the hood to develop backend for cross-platform applications. I started with easy issues, then moved on to debugging and fixing complex bugs towards the end of the program. My contributions to the graphql-key-transformer got referenced in the following release. I wrote unit tests for the functionality I added to ensure proper working of the same.
During the fellowship, our team also observed some pain points developers face while contributing to the Amplify project. We came up with some technical docs, which explain the inner workings and structure of the project code in detail. This will help many new developers contribute to the Amplify CLI project.
Learnings
Raj Rajhans
I had used Amplify in personal projects before. It was fascinating to take a look under the hood and see how the magic happens. Interacting with Amplify CLI team members, in regards to my PRs, taught me best practices and how to write production grade code. Working with such a rich codebase greatly increased my knowledge about the JavaScript & TypeScript ecosystem.
On top of the technical skills, I learned a lot about communicating effectively with peers, managing asynchronous communication with peers working across time zones, and solving problems together as a team. It was an amazing experience that I will always cherish. I am grateful to the AWS Amplify CLI team and MLH for providing such an invaluable opportunity.
Gita Alekhya Paul
The fellowship introduced me to the AWS Amplify ecosystem and how it strives to make backend deployment easier for developers, allowing them to focus on the business logic. I have been extremely grateful for this opportunity and can’t thank MLH and AWS Amplify enough. It has been a blast for the three months I worked with the Amplify Team; always reaching out to help us and teach us so much on the way. I have never learnt so much in such a short span! Getting to collaborate internationally showed how OSS has no boundaries. Sync-up meetings were fun-filled and highly educational. Getting to work with the fellows was a great experience!
Apart from this, the fellowship introduced me to how huge monorepo codebases worked, and taught me how to develop and maintain production-level code. AWS Amplify CLI polished my TypeScript fundamentals after working on this project. I even learnt a lot about bug triaging and writing tests. I will always treasure all the memories I made along the way and miss all the sync-up meetings!
Pawan Ashish Kolhe
It was my first time deep diving into a major open source project and I’m glad I got this opportunity, as I was always a bit intimidated by open source projects of this scale. The fellowship has definitely made me more confident in contributing to more open source projects, and even creating my own.
The Amplify CLI project made use of TypeScript, Lerna, and various other libraries and tools that taught me how production-level code is developed and maintained.
During the fellowship, I learnt a lot about using AWS Amplify in my own projects and the various AWS services it leverages behind the scene, such as AppSync, Lambda, and CloudFormation to make it all work. The skills I’ve learnt while working on this project will be valuable throughout my life and will form a strong foundation to my career as a Software Developer.
Aditya Sharma
I learnt about a lot of new open source technologies and software development techniques while working on the Amplify framework. I was new to AWS when I started working on the project and came across a lot of new AWS services.
Towards the end of the program, I became familiar with several AWS services. I gained the confidence to work on big open source projects, which are maintained as monorepos, and learnt some advanced debugging techniques from the Amazon team members. The software development lifecycle followed in the Amplify CLI team helped me understand how huge companies like Amazon work on large scale projects. I learnt about Continuous Integration using CircleCI while exploring the Amplify CLI architecture.
My biggest takeaway from these past few months has definitely been the importance of learning how to effectively work in a distributed team, where a lot of the people you are working with have very different time zones.
All in all, I’m grateful for being given the opportunity to work on a project I feel passionate about with such amazing people.
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” label. We try to keep our Issues well groomed. Also, you can respond to issues or PRs with your interest for contribution. This will allow our engineering team to communicate with you directly. Additionally, our Discord community has a section dedicated to contributor discussion.
Lastly, you can learn more about the MLH fellowship here.