Education

Bsc. Computer Science (Honors), University of Victoria

Mobile App Development

Android Apps

Experience building mobile applications for android devices using the Android Development Kit.

Currently in the process of releasing Trivia M on the google play store.

Performance-Oriented Programming

Experience using :
• SIMD Intrinsics to manually vectorize code on Intel machines
• OpenMP for parallelisation on multi-core machines
• CUDA to expose massive yet work-efficient parallelism on Nvidia GPU's

Mathematical Optimization

Linear Programming

• Experience formulating linear programs to solve problems given their descriptions
• Able to programatically implement the Simplex Method and Revised Simplex Method


Developed a LP solver using the simplex method for a University Project. Currently working on parallelizing the solver, available on my Github. 

Web Development

Websites, Web Applications

• Experience using the React-Redux framework to create fluid web applications
• Able to create responsive websites using HTML, CSS, Javascript 

Data Mining

Machine Learning

Utilized libraries such as NumPy, SciPy and sklearn for :
• Classification of data with decision trees/random forests, naive bayes, nearest neighbor etc.
• Association analysis via FP-growth and A-Priori
• Cluster analysis using K-means and Hierarchical clustering
• Cross-Validation for evaluation/optimization of various models

 

Networks

Good understanding of Networking concepts including but not limited to:
• Application Layer - HTTP, DNS
• Transport Layer - UDP, TCP protocols
• Network Layer - IP addressing, routing algorithms.


For a project, implemented a custom transport layer protocol similar to TCP-UDP. Available on my Github.

Security Engineering

• Understanding of basics of Cryptography
• General knowledge of Database, Network and Web Security
• Can recognize and analyze security vulnerabilities in software-intensive systems
• Experience modeling security threats and designing defences

Software Testing

Automated Testing

• Able to construct automated test suites implementing specification-based and/or structural testing
• Experience using JUnit via IntelliJ IDE to extensively test java programs using parametrized tests, mutation testing, property-based testing, design-by-contracts, mock objects and test doubles etc.
• Familiar with web-testing via java's Selenium library

Programming Languages