TAMVOES - Software Developer

May 2021 - August 2021

About TAMVOES

TAMVOES is a family health management platform. This platform allows its users to access their health information which can be input by themselves or by their doctors who have access to their medical records. This Waterloo based company is a growing startup.

Job Description

During my work term, I worked with Handlebar, HTML, CSS files in the frontend. In the backend, the Pyramid framework for Python as the API, which also consisted of database queries being used. I had various tasks during the work term, the main one was building the Dashboard for the health management platform. I had to develop the API for this dashboard which provided the information on how much a user’s profile was completed. I also developed the frontend for the dashboard which consisted of making a landing on which the users can clearly see how much of their profile is completed and what other tasks they must do to complete their profile. It also included a view of upcoming events. Another task I had was creating the FAQ section. This section had how-to guides on how to use sections of the platform such as their health profile, and journal. I also had to optimize the pages to be viewable in desktop and mobile view.

Goals

I set a few goals for myself this work term. The first one was improving my backend knowledge. While I had experience in backend frameworks such as Django and Flask, I wanted to work on a project where I implement both backend and frontend features for the clients to use.

My second goal was to participate effectively in weekly meetings. At TAMVOES, we had weekly sprints and a daily standup meeting, along with a stakeholder check in on Fridays. These standups allowed me to understand what my coworkers are doing and tell them where I am at with my tasks. I believe this was very helpful as it allowed everyone to stay up to date and ask questions if they had any.

My last goal was to improve my inquiry and analysis skills by asking more in-depth questions. Relating to the previous point, I wanted to ask more questions during meetings and discussions with coworkers. Occasionally I would also pair program with my manager which was helpful to see how everything works with each other. Throughout the work term not only did the quantity of questions I had improve, but also the quality, which meant I would ask questions that would allow me to understand more when I get the task instead of having to ask more questions later on.

Conclusion

My time at TAMVOES allowed me to meet amazing people whom I became close to and got to know more with team social events. I had the chance to expand my knowledge of the technologies that I have mentioned above. During this work term I also felt like I contributed a lot to the development of the platform because most of the tasks I was assigned made a large impact on it and was visible when it was released to the live site.

I think the goals I set for myself were all completed, but I could further my knowledge in backend frameworks. I believe these skills will benefit my next work experience because most companies have standup meetings and I can contribute to these with the knowledge I have gained. While the stack the company uses may be different from others, I think it will help me grasp the general flow of everything.

Acknowledgements

This was my first coop work term and it was fully remote. I would like to acknowledge the whole TAMVOES team for helping me throughout the way, and most notably Madison McBay, Co-Founder at TAMVOES, and my manager Gagan Singh Saroya for guiding me through the work term.

Image Credits

TAMVOES: https://tamvoes.com/assets/img/email/email-banner.png

NCR - Software Developer

September 2021 - December 2021

About NCR

NCR is a software and hardware provider for many banks, retailers, and other businesses. It is known for manufacturing self-service kiosks, pos systems and ATMS. NCR is located in Atlanta however I was working at the Waterloo location.

Job Description

During this work term I had the opportunity to work more on backend development. The framework I primarily worked with was Spring Boot in Java. My main tasks consisted of working through assigned server-side tickets some of which included bug fixes and implementing small features. I worked on the d3 banking team of NCR which focused on money movement services and digital banking. I had to familiarize myself with Docker to Dockerize the applications on which I was working throughout the term. It was also important to write test cases for the code which I had written. This allowed us to reduce errors prior to sending it to the QA testing stage.

Goals

At the beginning of my work term, I set three goals. The first goal was in the technological literacy section, it was to improve my backend development knowledge in Java API. By working on backend tasks I got familiar with the frameworks and workflow.

My second goal was improving my problem solving skills in a critical and creative thinking way and think of more efficient ways to solve the given problem. During my tasks I had to find ways to optimize certain parts of the code. There were times where there were many ways to implement a certain feature, this resulted in having to choose the most optimal one for the scenario.

The last goal was improving my communication skills. By working a larger company, the communication was different. In comparison to my previous workterms the sprints and AGILE cycles were different. The daily standup meeting consisted of dozens of people compared to my previous workterms where I had a smaller group. In this scenario I listened to everyone's daily updates however the most relevant ones to me were the ones I kept in mind while developing. This includes mainly backend and frontend developers who are working on a feature that may be related to the one I am working on. Often times it was important that I updated to the current version after sprints and pull the new features which were implemented by the others in order to keep up to date and prevent conflicts.

Conclusion

Working at NCR allowed me to experience what it is like to work in a bigger company with many different teams and projects. I was given the opportunity to further my backend knowledge and also develop new features for the D3 banking platform.

Acknowledgements

I would like to thank my manager Malathi Balu and my supervisor Noah Capoun for guiding me throughout the term.

Image Credits

NCR: D3 Image

System1 - Software Developer

January 2023 - April 2023

About System1

System1 is a dynamic, technology-driven company that focuses on data analytics and digital advertising. The company thrives on innovative solutions while prioritizing the development of its technological capabilities. System1 has a global presence and a diverse team, operating from various locations worldwide, providing an enriching and diverse work environment. My role as a software developer intern was primarily involved in full-stack development, allowing me to experience the practical applications of software development.

Job Description

My role as a software developer intern at System1 was a challenging and rewarding experience. My main tasks involved developing and implementing software solutions using ASP.NET in C# for backend development, and Angular for frontend development. This role required robust understanding of these technologies, most of which I learned on the job, with a solid foundation of general practices from my previous experiences.

Goals

Before starting the internship, I set several goals that I intended to achieve during the work term. My primary aim was to gain technological literacy in Angular and C#. To do this, I planned to actively engage in tasks that involved the use of these technologies, intending to complete the majority of my assigned tickets without needing assistance.

Additionally, I aimed to improve my oral communication skills, particularly during standups, planning sessions, video demos, and written documentation in Jira tickets. This was aimed at enhancing my ability to communicate effectively with my team and other stakeholders in the company.

Lastly, I sought to enhance my critical and creative thinking skills, particularly in problem-solving. My goal was to solve problems in the most efficient and optimal way possible, by completing complex tickets and improving my creative thinking and problem-solving skills.

Reflecting on my work term, I successfully accomplished my primary goal of gaining technological literacy in Angular and C#. I can confidently say that I am now able to handle a majority of tasks independently, thanks to the hands-on experience I gained at System1. This was made possible by the support I received during the work term from my colleagues and supervisor that helped me understand the new technologies and coding conventions that came with this position. By listening to how my team members communicated during meetings, my communication skills also improved. I received positive feedback from my team members on the clarity and effectiveness of my communication during standups and planning sessions. Regarding my problem-solving skills, I have seen a significant improvement. I have successfully completed several complex tickets, and seeing my code require little to no revisions to be implemented. The practical experience of solving real-world problems has greatly enhanced my critical thinking and problem-solving abilities.

Conclusion

In conclusion, my internship at System1 has been an enriching and rewarding experience. The skills and knowledge I have gained will undoubtedly be beneficial in my future work experiences. While I am continuing to improve on my existing abilities and new abilities, I am confident that I am better equipped to face future challenges in my career.

Acknowledgements

I would like to thank my manager Chris Dekker, and my teammates Matt Potts, and James Lemieux for answering my questions, pair programming and helping me throughout the term.

Image Credits

System1: Ramp Image

Ripple - Software Engineer

May 2023 - August 2023

About Ripple

Ripple is a cutting-edge fintech company specializing in blockchain technology and digital payment protocols. Ripple is dedicated to revolutionizing the way money Is moved across borders, making transactions quicker, cheaper, and more secure. Ripple boats a global footprint with offices in multiple countries around the world and partnerships with hundreds of banks. My role at Ripple was Software Engineer Intern. While my primary focus was work on the backend, I had the opportunity to work with full-stack development as well for my project.

Job Description

As a Software Engineer Intern, the project I was assigned was to develop and implement a robust Feature Flags system. Feature Flags are a powerful tool that are used to enable certain functionalities in an application without requiring a full deployment cycle. This allows teams to test new features in a controlled manner, perform A/B tests, and gradually roll out changes to a subset of users. During my internship I was responsible for the full development cycle of the Feature Flags system. Given a Technical Design, I had to make modifications and plan the implementation and documentation.

Goals

For my internship, I set three goals that I wanted to accomplish during the work term. My first goal was to improve my knowledge of Java and Spring Boot. To achieve this I had to understand how to implement the Feature Flags in the backend system. I was going to measure my success by my ability to complete more complex tickets and the positive feedback I received on the quality and efficiency of my code.

My second goal targeted my ability to break down larger tasks into smaller, more manageable ones. I planned to participate actively in team meetings and learn methods of splitting user stories into smaller tasks. The success metric for this goal was my demonstrated ability to efficiently create smaller merge requests that were easier for team members to review.

My third goal was to enhance my personal organization and time management skills by learning to create timelines for project deliverables. I sought to familiarize myself with project management tools and techniques, planning to establish timelines for smaller components of larger tasks. I was going to measure my success by how well I adhered to the timelines and feedback I received from team members and supervisors on the accuracy of the time estimates.

Reflecting on my work term, I believe I performed well in accomplishing my primary goal of improving my technical knowledge of Java and Spring Boot. By having to design and implement the feature flags system in the backend, I had a chance to learn how new microservices and endpoints are created and integrated into an already large API. I am now confident that if I am given a similar task in the future to implement an API to do certain tasks in Java Spring Boot, I can carry it out all the way throughout.

Conclusion

In conclusion, my internship at Ripple has been an enriching and rewarding experience. The skills and knowledge I have gained will undoubtedly be beneficial in my future work experiences. While I am continuing to improve on my existing abilities and new abilities, I am confident that I am better equipped to face future challenges in my career. For my second goal, I believe I met this because when I started my project for the internship I was given one big ticket and I had to create subtasks which I found manageable. By doing this I learned the importance of measuring a ticket by the points it takes to complete and make smaller tickets if one is too large. This helps the team see the progress I am making because smaller tickets are moving across the Jira board as opposed to one ticket staying in one column for a few days. Lastly my goal of improving my organization and time management skills was also successful. To work on this during my internship, I tried to create timelines and set due dates for deliverables. As this was a project that I was trying to complete by the end of my internship, there were no specified timelines for when smaller tasks were due. I tried to create these timelines by breaking down the tickets and figuring out when they should be done by.

Acknowledgements

I would like to thank my manager Harsha Bhat, and my teammates Angel Gutierrez and Ryan Coughran.

Image Credits

Ripple: Ripple Logo

DevCycle: Feature Flags