
Sam MacPherson
Verified Expert in Engineering
Software Developer
Toronto, ON, Canada
Toptal member since February 23, 2017
Sam has over fifteen years of programming experience. He primarily does web development as a full-stack engineer, but is flexible and open to learning new things. Sam routinely deals with high traffic websites, and is comfortable dealing with solutions at scale.
Portfolio
Experience
- SQL - 11 years
- HaXe - 8 years
- Amazon Web Services (AWS) - 5 years
- CSS - 5 years
- JavaScript - 5 years
- HTML - 5 years
- Node.js - 3 years
- React - 1 year
Availability
Preferred Environment
Git, Atom Text, Windows
The most amazing...
...thing I've built is a cross-platform virtual dom library for web development in the Haxe language. It is on my Github account under haxe-dom.
Work Experience
App Developer
Sexual Assault Center of London
- Built a hybrid app that allows victims of sexual assault to collect evidence by providing them with step-by-step instructions.
- Built a cryptographically signed package that contains a verified timestamp of when the data was collected to be used in legal proceedings. The packages are stored on S3.
- Worked directly with social workers and a prosecution lawyer to design the app.
- Worked with an external company to match the app design with the website they developed.
Web/App Developer
Throw Away Games, Inc.
- Built a hybrid app using the Ionic framework called RelNuz. It is publicly available on Android/iOS.
- Worked with both a designer and a back-end developer. Design was provided via CSS files and example HTML.
- Contributed to the back-end PHP/Laravel service which supports the App API as well as the website.
- Made changes to an Ionic open source plugin to get a video camera recording instance running without switching out of the app.
- Built a web tool for viewing a 3D avatar created from cameras in real life.
Developer
Real-time Graphics
- Built a windows application in C# that delays broadcast video and can upload the delayed stream to various RTMP endpoints.
- Built a windows application to monitor nine video feeds and freeze when the user taps the screen. This is being used for televised poker games.
- Provided on-site development and web stream management for televised poker games going out to Poker Central and CBS.
- Built a web app that reads in a poker game play-by-play file and reconstructs the visuals of the game on an HTML canvas element using the PhaserJS framework.
- Built a web tool to filter for tweets containing certain hashtags and allow an operator to mark them to go live-to-air.
- Provided ongoing consultation and development work to the owner of the company.
CTO
SandBoxd, Inc.
- Built the SandBoxd.com web app, which is a gaming portal for browser-based games. The app and its games run on both mobile and desktop.
- Built a virtual dom library for Haxe which is being used by SandBoxd to allow rendering pages on either the client or the server using the same code.
- Built a push message server for chat and real-time notifications on the SandBoxd web app.
- Built a multiplayer game called EverWorld, which is a real-time, infinite world MMORPG.
- Built a public API for games developed on SandBoxd.
- Built SDKs for the API on Java and JavaScript.
- Built and deployed hybrid apps for EverWorld on Google Play and the Apple App Store.
Web Developer
Bombardier, Inc.
- Built a web service that allows employees to bid on jobs they want to work.
- Built the algorithm that selects the weekly job each employee is to work based on the union/company collective agreement.
- Built a similar system to allocate vacation weeks for each employee for the year.
- Expanded the system to manage the supervisor's call list for overtime work based on eligibility for the job.
- Provided ongoing client support and maintenance for this system.
Web Developer
GSXP, LLC
- Built a video platform using Node.js and React.js with full server-side rendering.
- Built the back-end using Node.js and Express.js with a commonly shared model and view layer between the client and server.
- Used Redux for managing the state.
- Designed and set up all services to run on Amazon Web Services.
- Services are designed for large amounts of traffic by use of caching and CDNs.
- Backed by a MySQL database in Amazon RDS.
Web Developer
Lollipop
- Built an interactive vehicle creator for the chevrolet.com website using the Fabric.js framework.
- Worked with a UI designer to convert the example images he sent into SASS.
Co-founder
GigaBlast Games
- Developed a multiplayer, 2D shooter game called Pawn using Flash. The server was built using SmartFoxServer.
- Managed and operated a website PawnGame.com which hosted millions of players.
- Worked with the owner of CrazyMonkeyGames.com, who did promotion for the game on his site.
- Built a sequel multiplayer, 2D game called Pawn: Tactics using Flash and Apache MINA in Java.
- Built a third multiplayer, 2D game called Zed using Haxe compiled to Flash.
- Built a game asset management tool using Java and Swing.
- Dealt with security and obfuscation to prevent or deter cheating in all games.
- Implemented a hash-based pathfinding algorithm for fast pathfinding in the Zed game.
- Wrote a lighting GPU shader for Zed which cast shadows on walls when objects obscured your flashlight.
Experience
PeerFact.zip
You can run it by extracting the zip, then going to Chrome://extensions/ in the Chrome browser and checking the "Developer Mode" box in the top right. You then press the "Load unpacked extension..." button and select the containing folder for the extension. After this is done, posts from a preset domain list will automatically be visibly flagged on your news feed.
For example, posts from Theonion.com/ will be flagged as satirical.
Please note this extension uses DOM selectors to find where the posts are, and it may break when Facebook re-compiles its code.
Travel Planner
Education
Bachelor of Science Degree in Computer Science (Minor subject: Physics)
University of Waterloo - Waterloo, Ontario, Canada
Skills
Libraries/APIs
Node.js, React, Fabric, jQuery, WebGL, Three.js
Tools
NPM, Gulp, Atom Text, Git, Grunt, Vagrant, Flash, Medialooks Platform SDK, Sequelize
Languages
HTML, HaXe, CSS, JavaScript, ActionScript 3, Java, SQL, Sass, Less, Python, Bash, C, C#, Objective-C, PHP
Storage
Amazon DynamoDB, NoSQL, MySQL, MongoDB
Frameworks
Phaser.io, Ionic, Express.js, PixiJS, Bootstrap, AngularJS, Apache MINA, Laravel, Chrome
Paradigms
Object-oriented Programming (OOP), Concurrent Programming, Functional Programming
Platforms
Android, Linux, iOS, Amazon Web Services (AWS), SmartFoxServer, Windows
Other
Browsers, Cordova
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring