Resume

Brandon Slack's Resume
Brandon Slack
Software Engineer
brandon.slack@gmail.com
Permanent Address:
572 Perth Ave
Toronto, ON, Canada, M6N 2W7
Phone: (647) 825-1238

Skills

Technical
  • Experienced with C, Obj-C, C++, Java, and PHP (familiar with SQL, HTML/XHTML, Javascript, DOM, AJAX, Python, Perl/CGI, Haskell, Eiffel, Shell scripting, and tcl/tk)
  • Experienced with Qt 4/5, Carbon/Cocoa/Cocoa Touch, Android SDK, Android NDK Development Frameworks
  • Experienced with networks, wireless networking, and routers (including various router operating systems)
  • Experienced with Mac OS X, iOS, Android, Windows 7/8/10, Linux (Debian/Ubuntu/Gentoo/Arch variants), Unix Environments (using Bash, tcsh, and zsh)
  • Familiar with MIPS, ColdFire and the 18xxxx PIC family
  • Possess excellent analytical and problem solving skills, attained from a variety of life experiences and computer science courses

Relevant Experience

Principal Client Engineer Employment - QuickPlay Media Jan 2016-Present
  • Responsible for architecture / continued development of protected media playback library across multiple platforms (Roku, UWP, iOS, Android, Web)
  • Responsible for architecture of customer plugins (dynamic ad insertion, cloud bookmarking, etc.)
  • Responsible for code reviews and planning of features
  • Involved in architectural decisions for end-to-end solutions of protected playback
  • Involved in the development and support of client-side customer engagements
R&D Client Side Team Lead / Technical Architect Employment - QuickPlay Media June 2013-Jan 2016
  • Aiding in the development of libraries for various media applications.
  • Responsible for continued development of client side libraries for communicating with media server backend
  • Responsible for planning and architecting cross-platform designs for all client side devices (mobile, tablet, set top boxes, etc.)
  • Responsible for code reviews and planning
  • Responsible for implementations on iOS, BB10, and Android Devices
  • Planned, Architected, and oversaw major re-architecture/refactoring or client side libraries to better suit recent technology advances and requirements
  • Re-wrote exposed iOS and Android networking interfaces to increase encapsulation and unify internal networking calls
  • Re-wrote Playback Controllers for both Android and iOS which managed interactions with third-party agents and players
Consultant Employment - New Toronto Group Oct 2011-May 2013
  • Constructed Official BlackBerry 10/PlayBook Tablet OS Game Design Course
    • Utilized OpenGL ES 1 (by request) to construct a course around a 3D dimensional pong game
    • Taught best design practices for games (focused on cross-platform modularization, run-loops, etc.)
    • Demonstrated how to interact with the Native BlackBerry 10 C APIs (BlackBerry Platform Services and Window Manager)
  • Constructed Official BlackBerry 10 Cascades Course
    • Taught students how to use Qt 4.x (MOC, Signals/Slots, Parent-Child Tree, Threads, etc.)
    • Taught how to utilize BlackBerry 10 UI Controls
    • Created demonstration weather application that attempted to utilize all BlackBerry 10 features (push services, custom components, audio, etc.)
  • Supervised a team of two and aided in the construction of sample applications for the BlackBerry 10 System using both WebWorks and Cascades
  • Independently designed and wrote C POSIX compliant library for reading/writing BlackBerry Backup files (used on Mac OS X, Windows, QNX)
  • Provided frequent estimates for various projects using various technologies (Windows 8, iOS, BlackBerry 10, Android, etc.)
  • Travelled to various countries teach technical courses
  • Created a rich multimedia streaming application for BlackBerry 10 that is installed on many consumer devices
  • Aiding in the creation of a generic rich media streaming application (iOS and BlackBerry 10)
  • Note: Was contracted out to QuickPlay Media for 5 months
Software Developer Employment - Research In Motion Sept 2009-Oct 2011
  • Aided in design/architecture of Mac Desktop Software 2.0
    • Restructured to use modular components (static libraries and frameworks)
    • Re-design resulted in a reduced number of calls by 30%
  • Independently designed and wrote the BlackBerry Device Manager for the Mac which shipped with every PlayBook
  • Independently designed and wrote PlayBook-Mac Communication Stack
  • Independently designed and wrote C POSIX compliant library for reading/writing BlackBerry Backup files (used on Mac OS X, Windows, QNX)
  • Designed all Mac OS X PlayBook features (Backup, Connectivity, Device Switch, Media Sync, Recovery, Restore, Update)
  • Wrote the following BlackBerry Desktop Software features for both PlayBook and BlackBerry phone devices: Backup, Connectivity, Media Sync, and Restore
  • Wrote Mac Development scripts to automate builds, maintained XCode project files, and Mac Desktop Installer
  • Aided in debugging and fixing issues with the BlackBerry USB Device Driver
  • Aided other teams outside of regular responsibilities
    • Gave presentations about competitive developer tools and websites to Developer Relations and other high level teams
    • Created automated scripts to generate Hybrid CDROM ISO for QNX/SCM
    • Created Mac BlackBerry Debugger tool to aid testing teams in collecting logs and diagnosing issues
  • Promoted during first year of employment to highest non-managerial technical position
Prototyping Software Engineer Employment/Intern - Apple Inc. (EPG/PAE) Jan 2007-Apr 2007 (Intern), Sept 2007-Dec 2007 (Intern), May 2008-Aug 2009
  • Developed device drivers and daemons for prototype hardware
  • Developed embedded software for PIC 18xxxx device that acted on sensors providing data through analog inputs
  • Developed test frameworks / tools to aid in mobile testing that interacted with AVR board
  • Developed software to interact with Mac OS X Core Audio architecture
  • Improved performance of algorithms for PIC prototype hardware
  • Researched and implemented new image processing algorithms
  • Worked with vendors to create new device drivers (USB and Serial) for the Mac OS X platform
Computing Science Tutor Intern - University of Waterloo (ISG) May 2006-Dec 2006
  • Developed scripts to facilitate marking of student assignments
  • Developed timed AJAX based test system that allowed for compiling and running code through a web interface
  • Conducted weekly labs to students and answered questions they had throughout the term
  • Marked student assignments and ran marking meetings
Computing Assistant Intern - University of Waterloo (ACO/IST) Jan 2005-April 2005
  • Developed and implemented a web based 'Service Request' system (mysql, php, javascript)
  • Developed a web based account generation system to create accounts on UNIX and Windows systems (mysql, php, perl)
  • Created and taught various services for new Students including services for Microsoft Excel/Access/Visio and Home/Security training
Software Developer Intern - Wind River Systems May 2004-Sept 2004
  • Created a graphical benchmark and message integrity verification tool to be used with a new communication protocol called TIPC
  • Created a test suite / statistic components for TIPC

Education

Bachelor of Software Engineer Software Engineering - University of Waterloo Sept 2003-May 2008
Notable Courses:
  • ECE 354 (Real-time Operating Systems)
  • CS 343 (Concurrent and Parallel Programming)
  • CS 489 (Human-computer Interaction)
  • CS 488 (Computer Graphics)
  • CS 444 (Compiler Construction)
  • SE 463 (Software Requirements Specification and Analysis)
  • SE 464 (Software Design and Architecture)
  • SE 465 (Software Testing and Quality Assurance)

Activities and Interests

  • Learning to speak Japanese
  • Raspberry Pi Development
  • Human-Computer Interactions and Input Devices