Hey Everyone! My name is Ava and I am a 3rd Year Computer Engineering Student at Queen’s University. I am a young and energetic software developer with a passion for learning. I am currently focused on learning
about building modern applications through the use of containers and serverless frameworks, and web development. Please take a look at my portfolio to get a better understanding of my work as a developer.
LinkUp Education is an ongoing project that was started and co-developed as part of the HackHer hackathon that was run by Queen’s Women In Computing. We decided to create a service for students to find peers to work with, as this is more challenging given the current pandemic. The students can register, sign in, view courses for their school and filter by program. Students can post an ad within a specified course stating what they are looking for. These ads are viewed by other users, and they will have an option to “match” with the poster, indicating that they are interested in working together. Upon a match (both users must consent), contact information will be shared.
The frontend was built using ReactJS and ReactRouter and hosted with AWS Amplify. The frontend, our API and Cognito user pool are connected through Amplify. The service is deployed to Netlify via a GitHub continuous integration pipeline.
For the backend, we decided to try something unfamiliar to each member of the dev team - creating a REST API using AWS Serverless. We wrote lambda functions to handle the required API routes. Serverless was used because we wanted to experiment with something new, but also because of easy deployment and testing, as well as it is highly scalable. Not only is deployment handled using a single command, but it also creates and connects AWS resources with ease. Regarding testing, with the use of a serverless API, each function can be individually tested using sample payloads from the front end. This way, we were easily able to determine if we had expected functionality. Finally, when LinkUp Education blows up with tons of users overnight, AWS lambdas will be triggered as required, so the backend will be able to hold up.
Shout out to my co-developers Brent Champion and Chris Gauthier.
Trend Micro Canada - Internship
My internship at Trend Micro Canada was pivotal to my growth as a developer. Prior to this role, I had no experience working on large scale development projects and I was on the Container Security team - a topic I had never heard of. It was a daunting challenge at first, but an amazing experience overall.
I was responsible for automating the performance testing for the Smart Check product. This project started by learning the theory behind Kubernetes, Docker and containers, Terraform, and I had my first exposure to Amazon Web Services. During the internship, I built a Jenkins scripted pipeline that created a containerized environment for the testing, connected to Smart Check and spun up Amazon EKS clusters using Terraform. I also took a Docker in Docker approach in order to isolate a Docker registry of test images inside the Dockerized environment. This pipeline was designed to execute and report findings upon each update to Smart Check.
I am grateful to have had the opportunity to intern at Trend Micro Canada. The Container Security team is composed of knowledgable and talented developers who I am very lucky to have learned from and shadowed during my time at the company. I am thankful for the experiences and relationships formed at Trend Micro and I am excited to apply this knowledge to future endeavours.
IT Operations Manager
My role as the IT Operations Manager for the Engineering Society of Queen’s University is to support and maintain all existing infrastructure. This includes 30+ websites, web servers, load balancers and databases. To do so, I hired a team of 9 peers to work on various support tickets as the arise. Some of the goals for the EngSoc IT Operations team for the 2020-2021 school year were increasing security on our infrastructure, writing proper documentation and implementing a ticketing system.
Security has been a concern within EngSoc IT for some time. Most of our past security issues have been related to Wordpress bugs, and we knew we were experiencing another security breach when mysterious files were appearing in our web directories. As the staff of the Engineering Society is turned over every year, we decided to go with a solution that would benefit the future and this was implementing Plesk to host our websites. The main benefits in doing so was for automatic Wordpress updates and antivirus scanning, the owners of the websites have more freedom, as well as eliminating future headaches for the IT team. The task was completed by delegating websites to the team members to manually copy them from our old web servers onto Plesk, and tracking progress via a Kanban board. Overall, this has been a good decision as we have had significantly less security issues since implementation.
Prior to this school year, the little existing documentation was not on a shared drive/editing service, making it extremely difficult to maintain updated information. To change this, my director and I implemented and wrote content for an EngSoc IT Wiki website. This included information on all of infrastructure and its purpose, how to set up a server, website, database, etc. It also includes common trouble shooting tips for common tickets, and a more in depth discussion on larger issues we have faced. All team members have full editing access to add information as they see fit when working on a task. This will allow next years team to get off to a running start.
An on going project within our team is to implement a ticketing system where anyone interacting with the Engineering Society’s infrastructure can request support. This project served as an experimentation project for the team as we learned about email services and played with containerizing the service and changing how we were hosting it. We are finally at the stage where we can start adding users and promoting the service.
Since taking on this role in April 2020, I am grateful to have exercised my soft skills in addition to expanding my technical knowledge. I have been responsible for managing weekly meetings for my team, keeping track of their progress on tasks, and ensuring that deadlines are met. This helped me to gain a new perspective on working in a team setting and I am grateful for having experience in a leadership position.