I am a Computer Science enthusiast.
My job preference is full-stack software developer.
Here are some technical skills that I have:
My job preference is full-stack software developer.
Here are some technical skills that I have:
- Programming: Java, C/C++, C#, JavaScript/TypeScript, Rust, Python, Dart, Assembly
- Web: HTML, CSS / SCSS, XML, PHP, jQuery, React.js, Vue.js, Express.js
- Mobile: Android, iOS (Objective-C), React Native, Flutter
- Database/Testing: MySQL (SQL), MongoDB (NoSQL), JUnit5, Chai, Mocha, Cucumber, Cypress, Selenium
- Cloud: AWS, Firebase
- Tools/Environments: Git, Node.js, Postman, Docker, Kubernetes, Github Actions
| University: | University of British Columbia (UBC) |
| Year: | 4 |
| Degree: | Honours in Computer Science, Software Engineering Option |
| Average: | A |
| Extra: | UBC Dean's List, Trek's Excellence Scholarship (for top 5%) |
View my transcript
Software Developer, SAP (full time, co-op)
September 2021 - Current
September 2021 - Current
- Engaged in the development and maintenance of multiple repositories for the App Center product in SAP Concur, with involvements in the MERN stack and Docker containerization
- Experienced responsibilities of a QA by reconstructing the unit tests, integration tests, and E2E tests, which are integrated into the development pipeline
- Participated in the deployments into multiple data centers with Kubernetes
- Documented the full API endpoint set used in the project with OpenAPI (Swagger) and common user stories with diagrams
- Presented short demos for features or addressing issues frequently in biweekly sprint meetings
Computer Science Research Assistant, UBC (full time, co-op)
May 2021 - August 2021
May 2021 - August 2021
- Understood the information required by the Prusti project (a Rust verifier collaboration between UBC and ETH Zurich) and considered different designs for data representations of a Rust program
- Reconstructed the internal representation used in Prusti to become multi-layered, which allows the encoding of Rust to Viper (language used for verification) to be more gradual and robust
Mobile Software Developer, PDFTron (full time, co-op)
September 2020 - April 2021
September 2020 - April 2021
- Enhanced and maintained React Native and Flutter wrapper for PDFTron SDK, mainly in Java for Android, Objective-C for iOS, JavaScript/TypeScript for React Native and Dart for Flutter
- Wrote Python scripts for higher automation in mobile development cycle
- Contributed to and supported technical documentation for PDFTron's products
- Provided customer technical support (customer tickets, Github issues) related to mobile SDK
- Participated in technical/design reviews and group problem solving activities
- Link for Github Account
Computer Science Teaching Assistant, UBC (part time)
September 2019 - June 2021
September 2019 - June 2021
- Assisted students in course materials during labs and tutorials
- Designed pre-class assignments, quizzes and exams for the courses
- Answered questions asked by students on online forum (piazza).
- Courses: CPSC 313 (Computer Hardware and Operating Systems), CPSC 210 (Software Construction), CPSC 121 (Models of Computation), CPSC 110 (Computation, Programs and Programming).
IEEEXtreme Programming Competition 13.0
October 2019
October 2019
- During a day, participants go through a set of programming challenges, which are mostly about algorithm designs and data structures.
- Team (with 2 other members) ranked 1st among 55 teams in Canada, and top 5% globally.
- Results are posted on their website (team code is c0der).
Employee Directory Viewer (8-person, project manager)
January 2021 - April 2021
January 2021 - April 2021
- Applied a combination of waterfall and agile methodology, built a serverless employee directory application for Associated Engineering
- Contained a search page with filters and sorting function, a detailed employee information screen, a dynamically generated org chart, and contractor information editing page
- Implemented front-end with React.js and Material-UI, which is hosted in S3 buckets and connected to the C# back-end and AWS database through API gateways
- As the project manager, regularly hosted meetings, documented plans, requirements and progress in JIRA to ensure high work flow
- Link for Demo on AWS
Application Manager (3-person)
January - April 2020
January - April 2020
- Constructed a website for mobile application analysis with database support, which provides functions such as rating, sorting and viewing application in user-defined order
- Built client-side using HTML, CSS, JavaScript, server-side using PHP and query handling using SQL statements
Fundamental Racket Compiler (3-person)
January - April 2020
January - April 2020
- A functioning program that parses Racket codes and translates it into executable x86 instructions by passing through more than 20 levels of compiling, which is entirely written in Racket/Scheme
- Explores multiple low-level aspects of Racket, from basic data structures such as vectors and pointers, to complex code structures such as recursive function calls with local variables of varying life-cycles
UBC Campus Explorer (2-person)
September - December 2019
September - December 2019
- A full-stack project which enables effective querying of the metadata about UBC course/room, with a back-end programmed in TypeScript with Node.js. RESTful API calls were built with Express.js
- Applied greedy algorithm to support course scheduling by maximizing enrollment rate and minimizing distance between occupied buildings
Task Manager (1-person)
January - April 2019
January - April 2019
- Wrote an application in Java to manage user-defined tasks
- Grouped or sorted the tasks using urgency, date, and used JSON in the process of parsing information
Online Team Communication Tool
Dec 2020 - current
Dec 2020 - current
- An online platform which allows team members to communicate and send files under configurable channels in real time
- With Node.js, front-end was built using React.js, while back-end was built with Express.js and MongoDB
Android 2D Platformer Game
April 2018
April 2018
- A 2D ninja platformer game on Android, implemented in Android Studio using Java
- Arts and music were created using Photoshop and Musescore
| Phone Number: | +1(778)321-7782 |
| Email Address: | shukan.yang@alumni.ubc.ca |
Resume (full)
Resume (1 page)