Here are a few different introductions of me. Pick whichever one you find the most interesting.
I am the Chief Data Scientist at Rubikloud Technologies, a venture-backed machine learning startup in Toronto. I lead a team of motivated individuals in building robust, real-world machine learning systems for enterprise retail clients. My role entails responsibilities ranging from deep technical tasks (such as building machine learning models and defining the company’s machine learning research roadmap) to establishing a mature data science practice (such as hiring bright data scientists, establishing academic partnerships, and internal/external data science education and evangelism).
I am well versed in a variety of tools (Spark/MLlib, Hadoop/MapReduce/HDFS, HBase, Cassandra, MongoDB, PostgreSQL, scikit-learn, PyMC, XGBoost, AWS/S3/EMR/EC2/Redshift/RDS, Python, R, Java, SQL) and techniques (machine learning, deep learning, generative models, classical statistics, Bayesian inference, recommender systems, clustering/segmentation, time series analysis, text mining, natural language processing, graph analysis and interesting visualizations) that allow me to slice and dice data, big or small, into something comprehensible that companies (and individuals) can understand.
I’ve lived in the Greater Toronto Area all my life. I can speak English fluently and Chinese (Mandarin) to a lesser extent. I’ve recently developed a fondness of guitar which I’m actively learning. As for sports, I’ve recently been playing a lot of badminton but I’ve been known to play a bunch of others as well. I like learning new things about a whole variety of subjects such as computers, technology, investing, magic, math, people, psychology, sociology, science, economics, entrepreneurship, software development, innovation and any other useful skills or interesting things that may come up. I use reading as my main tool to accomplish these things.
I like things simple. When things are complicated, I like to make them simpler. Simple things are flexible, so I like to be flexible. When I’m flexible, I can change. Change helps you learn, so I like to learn. When I learn, it makes things simple again.
I was a sessional lecturer at the University of Toronto from 2014-2015 teaching Algorithms and Data Structures (ECE 345) in the ECE department. ECE345 is a third year course in computer engineering teaching the basics of algorithms and data structures.
I received my PhD in Electrical and Computer Engineering from the Department of Electrical and Computer Engineering, University of Toronto in 2013. I received my Master of Applied Science (MASc) in Electrical and Computer Engineering from the University of Toronto in 2009, and my Bachelor of Applied Science (BASc) in Computer Engineering (co-op) from the University of Waterloo in 2007.
My research during my PhD revolved around developing innovative software tools to automate various aspects of the hardware design cycle using classical artificial intelligence (AI) techniques. In particular, I designed new algorithms and methods for automatically debugging and verifying digital circuits and systems using formal methods.
- Some examples of what we cover in ECE345: sorting/searching, heaps/search trees/hash tables, dynamic programming/greedy algorithms, amortized analysis, basic graph algorithms/shortest paths, and introduction to theory of computation and NP Complete problems.↩