Portfolio / Case Studies
Extensively featured on:
- $1,184,000 annual revenue potential
- 7,200+ peak weekly total Facebook reach
- 84.6% of riders were “Happy” or “Very Happy” with the service
The Kingston Rocket was a low-cost bus company I founded and ran as CEO. We served students travelling between Toronto and Kingston and reduced prices by running school buses instead of coach buses and by running only on weekends when students would be going home.
I was solely responsible for the technical backend of our company’s payment system, and also took the lead on our marketing strategy. By paying special attention to the copy and design of email newsletters, I was able attract 2,500 subscribers on our email list, which resulted with the email channel producing the highest conversion rate out of all other marketing channels, including our Facebook page which had a peak weekly total reach of over 7,200 people. At our peak, we served almost 400 students per trip—enough to fill 9 buses!
After a successful first trip, we expanded the business as the London Rocket to service students travelling between London and Toronto. However, as our popularity spiralled into mainstream news, our competitors Greyhound and Coach Canada pursued legal action against us on the grounds of a pre-existing monopoly in the industry, forcing us to close the business.
In their notice of intervention, Greyhound estimated our annual revenue potential at $1,184,000 had we continued the business. (“$974,000 annually on the London-GTA Corridor”, and “$210,000 annually on the Kingston-Ottawa Corridor”)
At FutureAdvisor/BlackRock I advised on new software systems that would allow FutureAdvisor to develop technology capable of supporting millions more Americans on its online platform who are looking for advice in saving for retirement.
Bill is an entirely rare individual. I’ve been very lucky to meet and work with some incredibly bright and talented people in my life, and Bill is absolutely near the top of the pack.
Viewable at atlassymposium.org
- 44% net profit margin in first year of conference
- 400+ delegates attending in 2014
- 82.6% of delegates would invite more friends to attend the event
Atlas Symposium is an annual conference I founded in 2011 that helps high school students decide on their post-secondary options. We do this by hosting a debate between the top schools in Ontario in a one-day conference.
The debate is hosted between student panellists who answer the questions that applicants care about: classmate personalities, social lifestyle, and campus culture. This information is not covered by traditional sources of information like recruitment offices, websites, and brochures. Students can now get all their questions answered with the honest opinions of current students rather than spending hundreds of dollars and taking a week off school to drive around the province visiting open houses.
With this project, I transformed Atlas Symposium’s website into the primary marketing tool for raising awareness of the conference and closing sales. The new landing page design lead to a 22% increase in email sign-ups over the old landing page design. My ongoing involvement with the conference involves managing a team that quadrupled attendance in the fourth year of the conference, and secured sponsorships with CPA Ontario, LinkedIn, and Sun Life Financial.
Source code on GitHub.
In my Master’s of Computer Science at the University of Texas at Austin, I completed coursework focused on deep learning, computer vision, reinforcement learning, parallelization, linear algebra, and optimization. Below is a selection of projects from my coursework.
Computer Vision Projects
In our Deep Learning class, we built deep neural networks in pytorch to develop vision systems for the racing simulator SuperTuxKart, which is an open-source clone of Mario Kart. Below are two selected projects from the course.
Self-Driving Go-Kart Racer
I built an agent which uses computer vision to drive a go-kart autonomously in the SuperTuxKart game using only the screen image as input; it has no other knowledge about the game.
The model is built in pytorch and is a fully convolutional network using an encoder-decoder structure with batch normalization to process the image and predict an “aim point”, which is an xy-coordinate of where the kart should drive. I coded a controller to handle the steering, acceleration, braking, and drifting of the kart based on this predicted aim point.
Autonomous Hockey Player
In a team with three other classmates, we built two autonomous hockey-playing agents in the SuperTuxKart game to score goals against opposing teams from our class. The instructors ran a tournament between every team’s agents and we finished in 3rd place among 16 teams.
Our general strategy was to have one agent focus on scoring the puck into the goal, and leave the other agent to focus on tracking the puck location as accurately as possible and communicating this information to the first agent. This strategy is built around the idea that one agent with perfect information would perform better than two agents with imperfect information.
Each agent processes its camera input using a fully convolutional network that we designed similar to the U-Net architecture with residual connections from ResNet. This allows our agents to detect the puck location and drive behind it to dribble the puck into the opponent’s goal.
Reinforcement Learning Projects
In our Reinforcement Learning class, we read the textbook Reinforcement Learning by Sutton and Barto and implemented several RL algorithms to solve problems from the book. Below are two selected projects from the course.
I also wrote an in-depth review of what I learned from the textbook, and posted my detailed notes on my bookshelf.
I coded an agent to solve the CartPole problem from OpenAI Gym. In CartPole, a pole is balanced atop a cart and the agent moves the cart to prevent the pole from falling. The agent gets a reward of +1 for every timestep that it keeps the pole upright.
My agent uses the REINFORCE policy-gradient learning algorithm, with a baseline function. To estimate the policy function, I trained a neural network in pytorch with linear layers and ReLUs to predict the best action based on the current state.
I coded an agent to solve the MountainCar problem from OpenAI Gym. In MountainCar, the agent tries to drive a car up the mountain to the right starting from the valley below. However, the car’s engine is not strong enough to drive directly up the mountain, so it must drive back and forth up to build up momentum.
I solved the problem 3 times using different techniques:
In the first solution, I implemented an n-step semi-gradient TD(0) algorithm to determine the action at each state. To estimate the value function, I implemented tile coding with linear function approximation.
In the second solution, I implemented n-step semi-gradient TD(0) again, except this time I performed policy evaluation by training a neural network in pytorch with linear layers and ReLUs to estimate the value function.
In the third solution, I implemented the true online Sarsa\((\lambda)\) algorithm to generate a state-action function directly, and used tile coding to generate the feature vector.
Play Battleboat here.
Voted top 10 on Hacker News on September 21, 2014
Source code on GitHub.
Viewable on Heroku
This is a full-stack project I created that shows information about movies using the Angular.js framework. I also built a back-end database written in Flask (Python 3.4) that caches results in order to enable faster load times, and to decrease the reliance on a third-party API for movie data. This also enables the user to return to their search results later via a permanent link.
Source code on GitHub.
Giv2Giv is a nonprofit crowdfunded endowment platform that distributes the income from the user’s investment to the charities they want to support. The charity receives grants from the endowment every 90 days for life.
Giv2Giv needed front-end code for large sections of the website, and I created an entirely new UI for them including a primary user dashboard and an interactive HTML5 animation on the landing page that succinctly informs the user about how Giv2Giv works, leading to increased user engagement.
Source code on GitHub.
Bill is friendly and enjoyable to work with, bringing a “can do” attitude to the table. Most importantly, Bill has an insatiable curiosity. In my work as a C-level executive building teams from a wide range of applicants, I cannot stress how desirable this singular trait is.
Bill was presented with an immature stack of unfamiliar technology. He was able to quickly research, integrate and subsequently extend several technologies […] His dedication allowed the team to meet a key deadline with a product that eclipsed the specifications. Throughout the process, the other members of the team benefited greatly from his energy, ability and acumen.
Saxon is an international oilfield services provider based in Calgary, Canada. They have over 3,800 employees and operate in 11 countries around the world.
The client had no existing resources for the front-end other than design assets and it was up to me to deliver code for the entire website—working only from a design spec.
I worked with a back-end developer to create a mobile-responsive HTML5 for Saxon that would deliver a consistent user experience across all devices. For this project in particular, I made sure to do extensive cross-browser testing for the website to ensure that the company would retain its professional image on older browsers that are more prevalent in the industry.
Grocery Match is an Android app I developed for a client in Toronto. The app lists weekly deals at Canadian grocery stores, and you use the app to get discounts on the featured products based on the store’s price matching policies.
The app gets its data via an API that connects to a Ruby on Rails backend. This was the first native Android app that I made for a production environment, and I was excited to manage the entire product lifecycle with the client. After I helped the client identify the business case for creating an Android app, I worked with the client through the entire process: from design, to coding, to deployment.
I can vouch for Bill in that he is one of the most talented full-stack programmers that I know. He takes a pragmatic approach to his design of code that optimizes the workload of the developers while providing excellent functionality for the user.
With his diligent approach to all aspects of the application, Bill was communicative with our team and often offered best practice solutions to the problems at hand, as well as solutions to problems which potentially may present themselves as obstacles down the road. He has the ability to see the application and business from a “big picture” perspective due to his extensive knowledge in computer programming and ability to communicate with his peers in both a technical and non-technical capacity.
Bill has a great knowledge of the latest technologies and has adapted to the mobile development space at lightning fast rate which has left a permanent good impression in my mind. He can work on any technology and development environment and will be a great asset for any organization.
I worked at Market IQ to help develop a stock trading system that uses natural language analysis of real-time news events broadcast on Twitter, blogs, newswire services, and other sources to guide stock purchase decisions.
By analyzing the event-driven, online machine learning systems and applying various techniques (such as kernel methods) to improve the algorithms, I was able to increase classification accuracy of predicted stock direction by 12.7% despite a noisy input dataset.
Additionally, I conducted due diligence on target North American companies in the technology sector by preparing research reports and constructing discounted cash flow models to determine if the valuations generated by the algorithm are within a realistic range.
I loved the energy that Bill brought to the team at MarketIQ and the enthusiasm he brought to the team.
Bill has a keen willingness to learn, and can pick up knowledge that he didn’t have before and apply them to his work within a short timeline. For example when we gave Bill the task of finding an automated method of performing technical analysis, Bill took the initiative to do the necessary background research in order to understand each pattern, how they are identified, and the broader implications of the emergence of a pattern in the market.
He shows his dedication to his team as he is continuing to help us in our customer acquisition process even after his official work term has ended, by leading product demos with prospective institutional customers.
Bill is a very talented and balanced individual […] he was able to explain advanced mathematical concepts with clarity and passion. These concepts were later helpful in enhancing our statistical models. He was effective at performing statistical analysis on large datasets to uncover correlations that proved extremely helpful in modeling.
At Stone Canoe I developed a new account management strategy that helped the company transition from serving small customers with budgets less than $10,000 to serving high profile corporate clients with budgets larger than $100,000.
I worked directly with senior management giving bi-weekly financial projections, informing them on industry forecasts, seasonal sales trends, and results from capital budgeting projects to allow management to make informed capital allocation decisions.
I can confidently say that Bill played an important role in helping us create forecasts, predictions and better understanding the financial model of our business.
The work that he did helped us make key employment decisions, along with understanding implications of investments and expenses.
He was extremely clear and helpful in taking us along the path to understand how to make sense of the data. He was a great resource to help translate realistic recommendations with a solid backup for his suggestions.
His sharp eye helped detect trends in our finances that allowed us to reconsider spending in certain categories, and the adjustment of our billing rates.
His enthusiasm, initiative and willingness to always be available to answer any questions promptly, with full explanations were very much appreciated.
I would highly recommend Bill to anyone, he is a great addition to any team.
I had the wonderful opportunity to work closely with Bill Mei and benefit greatly from his reports and advice. His commitment to our organization’s success and his conscientious work ethic are commendable.
Bill started in late summer 2011 just when Stone Canoe Inc. changed direction, shying away from advertising agency projects and becoming an agency for ourselves working with direct clients. This business shift meant changes in operations, hiring decisions and growth plans. Bill’s guidance throughout the process allowed us to make the transition smoothly during this crucial time in our company’s history.
In the past, our books and capabilities only allowed for week-to-week projections as we finish projects. This is where Bill came in. With up-to-date books, his analytic and trend reports were not only accurate, but for the first time ever, gave us a clear picture of where our inefficiencies lie and how to remedy them.
With Bill, the reports always have context, allowing us to make informed business decisions, and allowing us to handle the responsibility of having larger budgets and higher pressure clients. We’re now looking at quarterly financial reviews, planning at least 3 months in advance.
Bill’s attention to detail in his financial analysis and his stellar communication skills in explaining important financial metrics make it easy for us to fully understand our revenues and our costs. We were able to take corrective action after his analysis identified an undervaluation in our billings.
For the 2011 year end, Bill was prompt with his reports allowing us to jump into our taxes sooner with 2012 planning. Our tax accountant said, “In my 30 years of working, I have never received year end financials this early before.” Needless to say, Bill’s enthusiasm gave our company a leading edge.
Moving forward, I only regret that I cannot continue working with Bill, benefiting from his advice and leadership. I would recommend Bill Mei without reservation.
3rd place overall award by Intuit
Stradio is an app I developed for the Intuit Small Business Hackathon in Toronto which won 3rd place out of hundreds of other developers. Stradio helps small businesses manage their independent contractors. It brings invoices, work tasks, contracts, contact information, and deliverables into one unified dashboard so you can easily manage relationships with your contractors. Based on McKinsey and MBO Partners estimates, independent contracting will grow by over 40% over the next 5 years, representing a multi-billion dollar opportunity for businesses who need tools to manage a modern workforce based on contracting.
Viewable at billmei.github.io/stradio
“Best use of payments API” award from PayPal
The Pineapple Project is an application that helps subsistence farmers in developing nations make informed decisions on which crops to plant. Due to the scarcity of information available, farmers risk planting a less optimum species or variety of crop, exhausting limited land and resources needed to support the farmer’s diet or income.
The Pineapple Project works by geo-locating the user to determine basic planting conditions such as expected rainfall, temperature, humidity, altitude, and other variables. The user can also refine the information by inputting information specific to their land plot, such as soil type, incline, and amount of shade. The application uses this data to generate a ranking of the crops most likely to be viable, allowing the farmer to make a more informed planting decision.
I worked with a team on this project during a 24-hour hackathon at AngelHack Toronto, using a rapid-development strategy that allowed us to ship the product on three platforms (web, mobile HTML5, and iOS) while still maintaining the attention to detail present in a high-quality product. My role involved designing and coding the public landing page on the web platform in order to drive downloads of the mobile app.
Source code on GitHub.
“Most monetizable product” award from FreshBooks
Viewable at vidhub.co
Vidhub is a live video annotation service that allows you to insert comments on a video as it is playing, allowing you to refer to these comments at the specific timestamp while the video plays. It is currently incredibly difficult for video editors to share comments and questions with other people involved in a video project, resulting in a disrupted workflow when teams of employees have to work together to produce a video. Vidhub aims to resolve this issue by allowing everyone involved in video production to bring their comments to one place on an easy-to-use app.
I worked with a team on this project during the hackathon at the Canadian Undergraduate Technology Conference and my role involved wireframing the user-interaction, then putting together the design architecture and finally implementing on the front-end HTML and CSS.
Source code on GitHub.
I helped the Sales Canvas team accelerate development of a React / Redux dashboard for their CRM platform. I implemented an account prioritization algorithm and a Microsoft Office 365 integration in a Node.js back-end to attract the company’s first paid clients.
Viewable at billmei.github.io/SimpleBlackScholes
Voted #1 on front page of r/finance on Reddit on March 24, 2013
The Black-Scholes formula is a mathematical model used in finance to determine the theoretical price of a stock option. Surprisingly, there are no well-designed online Black-Scholes calculators—all of the results I could find on Google either lacked features (such as reporting intermediate calculations, or allowing an input for dividends), or were confusing to use (e.g., unclear whether to input time in days or years). My objective with this project was to create an app that would guide user behavior primarily with design cues, in order to fix these user experience problems. As shown in the next screenshot, the form validation events respond dynamically to several cases, giving the user context-sensitive feedback.
The validation errors are designed to gently tell the user what went wrong and exactly how to fix it. By conveying instructions to the user only after they are done interacting with the application and not presenting all the information up front, the user feels smarter when they learn how to use the application without any help. This is also reinforced through implicit design cues rather than explicit text; for example, the monetary input fields are prefixed with a $ symbol to make it obvious what should go in the input field without explicitly telling the user what to do.
If a user inputs a value that is outside the range of what would be considered realistic, the application continues anyway instead of crashing and reminds the user of what’s going on just in case they mistyped a number. In some cases, it’s natural to omit a number, and certain fields (e.g. the dividend field) have default fallbacks so the user isn’t jarred if they forget to enter a certain value.
Source code on GitHub.
I developed this Google Chrome extension in 2013 to hide the number of likes and shares on Facebook posts in order to encourage you not to compare yourself to other people. My philosophy behind developing this application is that Facebook should not be a popularity contest. I believe that when you share something, you should share it because you care about your friends, and not because you just want to have the most number of likes on your post. Hiding the likes and shares on posts, comments, and news feed items lets you have a meaningful conversation instead.
Source code on GitHub.
FitHub is a mobile app that ensures you have proper form while exercising to help reduce injuries from weightlifting. It works by analyzing your body geometry through machine vision and I developed it with a team of six over a 48 hour hackathon at the Queen’s Startup Summit.
As the only person on the team tackling business development, my role was to create a revenue model, marketing strategy, and distribution plan and present it to a panel of judges at the conclusion of the hackathon.
RC Gamification Consulting approached me to create a logo that would feature prominently in all of their branding, both online and offline. I worked with the client through a process of identifying the core values that the business wanted to communicate, and embodying those values into a visually memorable symbol supported by a wordmark. The client wanted a modern look on a classic “game” concept, and I used this metaphor to model the logo after a badge that reminds the viewer of online gamification techniques.