Mark Frazer tel: 416.699.4570 email: mark@mjfrazer.org location: Toronto, Ontario www: http://mjfrazer.org/~mjfrazer I am interested in system, server and application software development for *nix and embedded platforms. I excel at software architecture including gathering functional and interface requirements, system level planning and partitioning, down to data structure and network protocol design. I enjoy engineering and am an excellent programmer. I communicate well and am pragmatic. I rank my familiarity as either 4 (expert), 3 (above average), 2 (average), or 1 (novice) with the following: C(4), C++(4), sh(4), make(3), BitKeeper(3), unix(3), perl(2), Java(2), Python(2), SCCS(2), Apache(1), SQL(2), Matlab(1). I am skilled in multi-threaded and real-time programming and in network and device protocol design. I learn quickly. Professional History Opteon Corporation, Boston, Massachusetts (Dec 2003-current) - digital camera manufacturer for high frame rate and high fidelity applications such as factory automation and digital microscopy - also build various automation perpherals which interact with cameras - development of functional requirements a protocols for new products - designed and developed linux 2.6 device driver for cameras controlled by asynchronous messaging protocol: zero-copy dma transfers, MT & SMP safe - character driver with ioctl for launching requests and select-like poll for request completion status, supports multiple concurrent users with access controls, debugging info through klog and sysfs, full manual page docs integrated into source and extracted via awk & sed scripts - development uncovered hardware incompatibilities with PCI-X backplane on development host, suggested and implemented diagnostic tests - MT async request based cross platform C++ API library + inline docs - handle based C API library wrapped C++ library - gnu-make for OS specific source and common source - use of namespaces, smart pointers & reference counted objects, object factories and templates, interface classes, compiled under g++ and MSVC - wrote cross platform device demonstrator GUI application with wxWidgets - independent device and display management threads - cameras up to 120 FPS display realtime on local machine to several SPF via ssh tunnelled X - set up bugzilla + php reports, php front end to camera firmware revision control and build, server monitoring via email and mrtg, misc *nix admin - remote debugging and testing of hardware -- telecommuting from Ontario Soma Networks, Toronto, Ontario (1998-2003) - broadband wireless (3G-ish) equipment manufacturer, converged voice/data - Soma developed a wideband CDMA base station and reference design CPE - The software was envisioned as a telephony and data platform, much like unix is a software platform, to allow service providers to run their own software on a deployed network. Consists of platforms for call processing and data services. - joined as the 5th employee, company maxed at 250+, I kept technical - Soma initially consisted of a technical whitepaper and business plan - grew software team up to 60+ developers, very interesting experience - developed a lot of initial software implentations - system design, high level hardware, all levels of software design - including technology evaluation, vendor selection, licensing terms - interviewing and hiring software/testing dev/leadership positions - No one I hired was fired or laid off. Recruited several stars. - knowledge transfer with PLM and marketing, team leadership (10 people) - Once PLM group was in place, they often required guidance on product capabilities and expectations for future capabilities. - Was "lab lead" for group responsibe for OS, QoS, upgrade, boot time configuration, device drivers, high availability, etc, for 18 months - Moved to full time software architect after finding a better lab lead - customer interaction, development scheduling, patent submission - inventor on 8 patent submissions - Voicemail for Wireless Systems, filed in US, CA, JP, EP, MX, IN, CN, AU - Communication Structure for Multiplexed Links, filed in US, CA, AU, CN, EP, IN, JP, MX - Data Communication Channel, filed in US, CA, AU, CN, EP, IN, JP, MX - Communication Structure with Channels Configured Responsive to Reception Quality, filed in US, CA, AU, CN, EP, IN, JP, MX - Flash Memory Update System, filed in CA, international PCT application - Method and System for Real-Time Power Allocation, filed in US, CA, and EP - System and Method for Reliable Transport in a Computer Network, filed in CA (so far) - System, Apparatus and Method for Uplink Resource Allocation, filed in US, CA - kernel and user space development for Linux based CPE and base station - character and network Linux device drivers for ARM and x86 - user space code: from daemons, utilities, and libraries in C, to Perl CGI's for OAM&P, to call processing software in C++ and Java - from no specs and no plan to telco deployment, pass the duct tape please - Also worked on network management, air link management and MAC layer protocols, link adaptation and diversity scheduling, authentication, application distribution and configuration, diagnostics, data compression and protocol proxying, reliable realtime signalling - selected documents - Soma Authentication Architecture - Amosphere Software Architecture - Soma System Architecture LaTeX Template - Soma Engineering Note LaTeX Template - Ethernet Client Support Architecture - NetPort Software - SOMA Short Engineering Note LaTeX Template - PC-NPM Configuration - NPM Modem card software interface - NPM Memory Usage - NPM Disk Subsystem - Ethernet Modem Framing Format - Base Station Modem driver architecture - NPM Operating Scenarios - NPM Booting and Boot Configuration - Software Upgrade Architecture - QoS Architecture - IP Address Management - Amos Reliable Transport API (ARTAPI) - Amos Reliable Transport (ART) Engineering Requirements - Proposal for Amos2 Services Architecture - Amos Version 2 Service Creation and Execution Architecture - ART API - Popcatch & Zipcatch: POP3 proxying and TCP connection compression - Configuration Token XML DTD - Config Service Database Schema Visualization - Configuration Service Architecture - AmosSphere Latency Note - Fast BDCH Rate Adaptation - Fast Rate Adaptation and Multiple User Diversity for the BDCH Trilogy Software, Austin, Texas (1998) - enterprise software for sales force automation, configuration management - hired as developer, resigned after 4 months to help start Soma University of Waterloo, Waterloo, Ontario (1991-1998) - MASc (Elec Eng) funded by NSERC PGS-A & UW academic awards - MASc on convex modeling of, and parallel implementation of interior point solver for, analytic VLSI placement: 2 conf papers, 1 invited talk - MASc co-supervisors: Bruno Preiss and Andrew Kennings - ~86% course average, TA'd ECE 150, 250, 251, 427, 428, 429 - BASc (Comp Eng), ~86% course average, 'outstanding' coop evaluations - undergrad RA with parallel and distributed systems group - coop terms: embedded 680x0 software for frame relay terminals, minor digital and analogue circuit design, i860 & x86 machine vision software, flying tomatoes This document is online at http://mjfrazer.org/~mjfrazer/resume/