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)