Work Experience:
Software Engineer - Elemy
March 2022 - Present- Implemented internal tools for primary launch of product using a Kotlin back-end with a GraphQL database and creating cross-team microservices and collaborated deeply with front-end for data modeling
- Presented several design proposals regarding data models, database structure improvements and full queries/mutations
- Re-designed logging and alarms for the codebase using Datadog to improve product monitoring
- Helped production level debugging during initial launch of product
- Optimized runtime for several APIs through architectural changes and major refactoring while maintaining backwards compatibility for several platforms
Software Engineer - Slalom Build
June 2021 - March 2022- Used AWS suite of services such as DynamoDB, Lambda, API Gateway and CodePipeline to build and deploy APIs
- Developed lambda and step functions in NodeJS, Typescript and Java (legacy maintenance) for a payment processing application and E-Commerce application and runtime was optimized for scaling situations (such as Black Friday)
- Created automation scripts and developed the CDK to allow packaging and deployment of a pipeline for several environments (Dev, QA, staging, prod, etc.)
- Tested and debugged deployment pipelines as well as live lambdas and step functions for clients on short-notice basis
- Designed and implemented architectural changes regarding the flow of data through the API
Software Developer - Environment and Climate Change Canada
May 2019 - September 2020- Maintain and develop web apps written with Angular displaying meteorological data, used by Canadians everyday
- Built 2 major components of brand-new web app front-end, one using ag-grid and Highcharts for data analysis and other using OpenLayers (GIS) to track objects and place them on a map
- Used Angular, RxJs, Node.js and Material
- Daily meetings (Scrum), monthly releases and in-depth code review
- Worked on back-end components, mainly an in-house search system and then introduced many new features for accessibility, updating it to Angular from basic Javascript/jQuery and HTML
- Presented several meetings regarding feature development and key deliverables
- Integrated every build on a Jenkins server and did monthly log checks for errors on Kibana
- Executed SQL queries and helped design data payloads for use in the front-end applications
Education:
University of Toronto - HBSc Double major in Chemistry and Computer Science, Minor in Mathematics
September 2016 - PresentRelevant Courses:
- Development Courses: CSC108 (Intro to Computer Programming), CSC148 (Intro to Computer Science), CSC207 (Software Development), CSC309 (Web Programming), CSC343 (Databases)
- ML and A.I. Courses: CSC311 (Machine Learning), CSC384 (Intro to A.I.), CSC413 (Neural Networks)
- Theory Courses: CSC236 (Theory of Computation), CSC263 (Data Structures and Algorithms)
- System Tools and Low-Level: CSC209 (System Tools), CSC258 (Computer Organization), CSC376 (Fundamentals of Robotics)
- Mathematics: MAT223 (Linear Algebra), MAT232 (Multi-Variable Calculus), MAT344 (Combinatorics), MAT388 (Modeling of Biological Systems), STA256 (Probability)
- Chemistry: Pretty much every course that has to do with Physical (thermodynamics), Inorganic (metals) and Analytical (statistics) Chemistry
Programming Languages:
- For Web Development: HTML, CSS, JavaScript, TypeScript, XML, SQL, Dart, PHP
- For Back-End Development: Kotlin, Node.js, Java, C++
- Databases: MongoDB, neo4j, GraphQL, SQL, DynamoDB, PostgreSQL
- Web Frameworks: React, Angular
- Python and its Packages: Python2 and 3, NumPy, PyTorch, MatPlotLib
- Lower-Level Languages: C, Assembly
- Miscellaneous: LaTeX, R, Bash Scripting
Professional Software and Agile Experience:
- Git: Used for every academic assignment, as well as heavily used at ECCC for version tracking.
- Jenkins: Used as a pipeline for some academic projects, as well as used at ECCC for all the logs regarding the builds that were pushed.
- Kibana: Used at ECCC to check for error logs as well as data payload statuses in various components.
- Scrum: Plenty of experience in both a professional and academic environment, with regards to daily standup as well as weekly sprint updates towards the final deliverables.
Professional Software and Agile Experience:
My personal projects can be viewed on GitHub (through the link above) and my professional projects can be discussed in more detail in an interview.