Download PDF

Summary

I am an engineering executive and experienced architect, developer, development manager with deep understanding and passion for creating great user experiences and API layers and development tools to facilitate great experiences. I have notable experience in creating version one software and consumer electronics with compelling user experiences.  I have a diverse background from electronics, embedded development, SDK/API design.

I also have extensive experience in product strategy, business models, and lean agile development processes.

I feel that great user experiences come from a focus on the user and a willingness to improve every level of the technology from the development tools to the frameworks and runtimes. Engaging with the developer community both internally and externally is highly important as well.

I am high energy and enjoy hiring and developing great teams. I enjoy coaching and have built highly functional teams that are collaborative and energized. I also enjoy mentoring individual contributors to become managers.

Work experience

May 2016Present

Founder

Margrave Technologies

Stealth-mode startup focusing on Augmented Reality, Virtual Reality, and Mixed reality software solutions.  Advisor and contract consulting to companies seeking roadmap planning with respect to AR/VR/MR technology.  Contract consulting for advanced problem solving and implementation of AR/VR/MR experiences.  User Experience Design consulting incorporating human factors expertise into sustainable experience design.

May 2015June 2016

Director of Engineering

DAQRI

Reporting directly to the President, built and managed a 40 person team including all software engineering on the DAQRI Smart Helmet in addition to the business development technical execution team which includes the helmet prototyping lab, solutions architects, solution applications engineering and sales technical support.  Managed $9M annual P&L. Grew global engineering team 5x in one year while maintaining delivery dates.  Traveled frequently and internationally to meet with customers, set standards of execution for the entire team, guide product roadmap direction, and constant cross-team collaboration.  Team delivered over 20 customer engagements in 9 months. Role includes all strategy, structure, budgeting, recruiting oversight, and executive communication.

Mar 2015May 2015

Chief Software Architect

DAQRI

Responsible for defining software architecture & engineering practices for DAQRI Smart Helmet.  I managed entire DAQRI Smart Helmet Software team and grew the group into a 30 person international organization with high engineering excellence and cross-organization collaboration skills.  My focus was on lean agile engineering and social responsibility for individuals and teams to communicate effectively about challenges, mistakes, quality and schedules.  Individuals grew to expect a high level of ownership and autonomy.  Role included all staffing, structure, and strategy planning, budgeting, recruiting oversight, and executive communication.

Nov 2013Mar 2015

Senior Software Engineer

Microsoft Azure Storage

Responsible for improving cloud performance by analyzing and improving a custom fast-multi-Paxos reliability issues causing latency and lower overall efficiency.  Evaluated option of moving to Raft instead of Paxos as a more maintainable alternative.  Improved logging to capture events that occurred rarely (every 6 days per 300,000 machines).  All development work was done in windows using C++.

Aug 2011Nov 2013

Senior NUI Interactions Developer

Microsoft Xbox Kinect & Kinect for Windows

Developed Natural User Interface involving skeleton tracking for physical therapy and interactive adaptive UI kiosk scenarios.  Responsible for technical specification and implementation from prototyping, iteration, and production coding.  Developed prototyping mechanism that allowed rapid development and usability testing of candidate features.

Developed leading Physical Human Interaction Zone (PHIZ) used for mapping human skeletal movement into user interface behavior.  Developed a variety of press strategies for evaluating skeletal movement and determining user's intention to press.  Evaluated many measurable prototype scenarios for optimal user performance.

Crucial for interviewing and evaluating engineering job candidates for growing the Kinect for Windows team from 10 to 50 engineers.  Shipped 4 versions of Kinect for Windows.

Shipped Kinect for Windows in 3 versions; Shipped Kinect for Xbox One

Nov 2009Aug 2011

Senior Developer & Architect Windows Phone Application Platform

Microsoft Corp

Developed early production applications to prove the frameworks and runtimes being developed before official release.Drove changes into the APIs and best practices to the external developers.Applications were built using Silverlight, C#, and Windows Phone tools.Some Azure based web services were developed but not taken to production due to lack of sustained funding.Trained and mentored 9 developers in the use of Silverlight for Windows Phone Development.

Became Technical Lead for UX Frameworks and Runtimes.Implemented features to expose key phone shell user experiences to managed apps using PSLs ad managed-native interop including API specification and API reviews.

Shipped Windows Phone 7 & 7.5

Apr 2008Nov 2009

HMI Development Manager

Microsoft Auto

Lead all development activities for user experience and frameworks for Ford Sync and next gen automotive infotainment platform. I manage 14 developers distributed in Japan and Redmond.  Activities include strategy, planning, design, recruiting, employee development, ensuring engineering excellence.

  • Merged development teams from Redmond and Japan to form a single cohesive international development team.
  • Managed 15 person UI/HMI international development team delivering Runtimes and Frameworks used by Ford, Honda, Hundai/Kia, Pioneer, Panasonic, and others.
  • Successfully lead team to ship 3 CTP releases to customers in 2009.
  • Provided overall direction for Automotive HMI Tools and Platform development.
  • Lead team to deliver complete UI/HMI development experience, desktop tools, a native C++ programming extension for XAML on Windows Automotive which included hardware 2D and 3D acceleration support for maximized performance.
  • Coordinated efforts with teams in others groups and divisions.
  • Guided technical negotiations with customers in Japan.
Mar 2007Apr 2008

Senior Software Engineer

Amazon

Designed and developed sitb-images web service to deliver page images for over 900,000 books from Amazon's S3 storage service to the "search inside the book" reader.  This included analysis of existing systems, needs, and costs; writing a proposal for the new system and costs associated with three risk management options.  Developed and maintained scripts to migrate 80TB of data from 25 legacy storage servers to Amazon's S3 storage service.


  • Service delivered 220 million book page images (over 90 terabytes) using RESTful web service.
  • Service was deployed world-wide and included caching of images for Europe, Asia, and Americas.
  • Service is self-diagnostics with logging, dashboard, and notification which identify the traffic, failure modes and frequency, and other useful metrics.
Feb 2005Mar 2007

Senior Software Development Engineer

Microsoft Visual Studio
  • responsible for the overall user experience of the layout and design aspects of the new visual designer for WPF within Visual Studio ("Orcas" Version)
  • designed and implemented an adorner architecture that allows multiple coordinate systems to coexist and be concurrently used to declare adorner placement in terms of multiple content controls  (See my blog: http://myfun.spaces.live.com/blog/ )
  • designed and implemented an extensible alignment aides architecture that provides support for snaplines, padding alignment, standardized UI spacing, and other alignment features
  • designed and implemented performance tools to measure UI responsiveness and drive performance in the visual designer

  • supported the growth and development of less senior engineers; including code and design reviews and career mentoring

  • my contributions include architecture refinement, technical design, specification, implementation and optimizations in C#, XAML and WPF
Aug 2002Feb 2005

Senior Sotware Development Engineer

Microsoft Forza Motorsport 1

Lead development of Art/Content pipeline to be used by 40 artists and 20 developers

  • evaluated existing pipeline tools, wrote documents explaining tradeoffs, held meetings to discover and specify needs
  • content pipeline included export plug-ins for 3DSMax, external XML file format, XML art compilers, and component linker to assemble binary art packages into composite binary files
  • developed code for integrating streaming system into Xbox game code
  • designed and built the core UI form and control framework
  • framework included in-game and PC side form layout editing, a managed state stack, split-screen support, nested calls and returns, in-game debugging overlays showing control position and safe-title areas, current UI state stack and form state and form layouts saved to text file for easy source control management
  • designed and implemented audio engine and authoring tools.  Combined knowledge of graphics geometry and audio system to invent  a system for generating audio environmental reverberation from graphics geometry using Xbox graphics pipeline. (See patent #20060075885 )
  • optimized authoring tools to cut budget man hours by 1/3
  • designed, implemented, and evangelized libraries for debugging overlays, debug keyboard accelerators, and PC side debug console eventually used by all Forza developers
  • ·Read product reviews: http://games.teamxbox.com/xbox/902/Forza-Motorsport/
  • All development was in C++ for Windows and Xbox
Apr 2001Aug 2002

Senior Developer Support Engineer

Microsoft Xbox Advanced Technology Group

worked with internal and external customers debugging and solving problems

  • wrote sample code; documented work-arounds, best practices, and whitepapers
  • evangelized best-practices; wrote samples that demonstrate uses of Xbox APIs 
  • did performance analysis on games and recommended solutions for performance bottlenecks
  • designed a UI framework for a sample Xbox racing game including UI state management and Xbox Live Statistics
Jan 1998Apr 2002

Senior Software Development Engineer

Microsoft Windows or Automotive

developed UI controls and applications for 3 versions of Windows for Automotive. 

  • Lead technical vision and development effort extensible skinnable controls API that allowed OEMs to easily customize the UI appearance to meet their needs. (See patents: 6677962, 6704032, 7257776, 20050120361 )
  • created Visual Studio wizards to allow rapid prototype creation and testing UI on AutoPC devices
  • helped to adapt the skinning architecture for the SUI (Speech UI) team
  • evangelized new API’s and wizard within the team and outside Microsoft
Mar 1997Dec 1997

Developer/Architect (consultant)

National Automobile Dealers Association (NADA)

designed and lead development of  an electronic “Blue Book”, dealer customer tracker, and vertical application API’s and controls

  • lead all aspects of this project for client National Automobile Dealers Association (NADA)
  • created a 3 tier design with C used for database access; C++/MFC for custom control development; and VB for dealer specific vertical application
  • coordinated hiring for 4 developers and lead development team
  • developed a multi-threaded web spider engine for gathering content from targeted web sites for offline indexing, analysis, and retrieval
  • web spider created using C++, MFC for web crawling; and COM and MSMQ for work queuing; and MAPI for status management and user driven work requests.
Sep 1996Mar 1997

Development Lead/Architect

Ifusion.com
  • Designed, hired development team, and lead development of content authoring tools for a push media internet service to compete with PointCast
  • implementation used C++/MFC
  • features included web site content crawling and extraction, indexing, and storage of content articles
  • designed lead development of authoring environment and tool for content retrieval and reformatting for delivery
  • development lead for 3 developers
May 1995Sep 1996

Senior Architect/Developer (consultant)

technical lead for a pen-enabled(tablet) GUI data collection, storage, and analysis software for control and optimization of cellular telephone networks

contract began well into the project that was behind schedule and making little progress

  • project was developed using MFC by a team who had no experience with the environment
  • My initial review outlined causes for the stalled development due to MFC misuse. 
  • I proposed a solution where I would work exclusively in the code-base for 5 days re-factoring all components to make proper use of MFC. 
  • I then mentored the developers over several months on the proper use of the MFC classes.
  • I designed and implemented system to store gathered cell network state information using GPS coordinates.  This system allowed for the fast retrieval of data by location or by cell tower antenna segment. 
  • Client was LCC, a leading cellular telephone consulting and analysis equipment company.
Apr 1993May 1995

Lead Software Development Engineer

AC&E Ltd.

designed and developed video conference schedule and control software

  • UI allowed for simple user complex video conferencing hardware.
  • implementation was in C++ and MFC

developed DCME/SONET/ATM operations control software for NEC

  • This software required modeling of racks of NEC network hardware, management of configuration, user interfaces for simplifying configuration, and real-time status monitoring and display. 
  • development was in C++ and MFC;

I was architect and lead 3 developers .

Mar 1991Mar 1993

Software Developer/Architect/Electrical Engineer (consultant)

Haliburton/NUS Training
  • developed multimedia interactive training courseware for NUS/Halliburton
    • implementations in C++, MFC, Tencore(script), and Visual Basic
    • courseware included interactive control of control of video laser disc and video overlays
  • designed and built student progress tracking software
  • designed and built electronic controllers for prosthetic arms
Feb 1990Mar 1991

Software Development Engineer

Hughes Associates
  • implemented multi-media interactive training simulations for accidents involving C-141 and F15 aircraft
  • program won awards from industry trade organization IVIA
  • implemented real-time simulation of Airbase attack preparedness and management
  • virtual reality "cave" simulator for firefighter training with tracked fire hose nozzle.
  • contract for  Department of Defense
  • implementation in C, C++, and Basic
Aug 1986Jan 1990

Software Developer/Project Manager

  • implemented various image manipulation and management tools and libraries
  • customers included NASA, DOD, FBI
  • implementations in C, Basic, database scripting languages

Skills

Technology Strategist

Strategy advising to help teams find opportunities where their products and roadmaps intersect with forecasted technology evolutions.  I have shipped over 20 commercial products in my career and held various roles from developer/architect to engineering executive.  I have been with multiple startups and taken each success and failure as an opportunity to learn about business, engineering, process, communication, and team building.  Now as an expert in augmented reality and virtual reality I enjoy advising companies and teaching them about the present technology and expected evolutions and helping them fine their synergies.  

Engineering Executive

Lead global engineering teams up to 45 people, across time-zone, cultural, and language barriers.  Used balance of agile and waterfall approaches to deliver many production consumer hardware/software platforms.  Managed $9M annual budget including product development and consulting services. Delivered over 20 Augmented Reality solutions to industrial customers. 

Human Factors Design

Skilled at applying principles of design and human anatomy and physiology to natural user interfaces including head-mounted-displays for Augmented Reality and Virtual Reality

Chief Software Architect

Experienced from hardware interfacing, operating systems, frameworks, development tools, communications, and cloud systems.  (chips-to-cloud)  As a diverse engineer I have had a wide range of experiences in all aspects in designing end-to-end solutions and products.  As a technology leader I am able to hire and manage the best in each area and fully leverage their depth of knowledge.  The greatest strength of a generalist is a constant curiosity and willingness to learn an dive deep where most needed.  

Unity 3D Architect/Developer/Trainer

Unity 3D is currently the defacto tool for building mockup and production Augmented Reality solutions.  I have built add-ons, libraries, and tools for use in Unity 3D.  I have taught developers and designers how to better use Unity.  And I have taught advanced programming concepts to current developers.  

XAML
I was the first developer on the XAML designer built into Visual Studio (Cider).  I was the development lead for a 14 person Human Machine Interface(HMI) team for Microsoft Automotive.  I led the development of a XAML UI stack built from Silverlight 5 that included 3D object classes from WPF and was programmable from C++ native code.  This platform was shipped in Windows for Automotive 7.0.  For the Windows Phone application platform I formed a team developing hero applications to drive and refine completion of the application development experience.  I flew to many destinations to coach and mentor 3rd party application developers on best practices for official carrier application development.
Optics Hobbyest

Optics is revolutionizing computing and human interface.  My work on HMDs has lead me to be very interested in this area.  Understanding the optical characteristics of combiner types, light-field generators, Spatial light modulators, holographic Fourier transforms and the human eye have allowed me to improve 3D users experiences and software development tools to streamline 3D UI creation. Even a modest skill level in optics has vastly improved my ability to work better with optics experts.

Software Development Lead
C/C++
Natural User Interface
Technical Project Management
Linux Development
XBox Development
WindowsPhone Development
Database Design/Implementation
Windows Development
C#
Software Developer

Contact, Patents, Publications

LinkedIn Profile: http://www.linkedin.com/in/richoncode

Patent: Dynamic adjustment of user interface based on user positions

20140132499 http://www.google.com/patents/US20140132499

Techniques for adjusting detail and scope of user interface based on proximity of user to the display.  Sample implementation was implemented using visual state manage of in XAML and used Kinect SDK to track the user's position.  Transitions between visual state were animated with fluid layout classes.


Patent: Establishment of a pairing relationship between two or more communication devices using various active and passive mobile sensors

US8843649 B2 http://www.google.com/patents/US8843649

A variety of methods for pairing multiple computing devices.  Techniques can use many variations of passive and active pairing using many combinations of device hardware and sensors.  This resulting in pairing methods that are optimal for different pairing needs ranging from one-to-one to many-to-many.


Patent: Method and system for automatically generating world environmental reverberation from game geometry using embedded GPU and Audio HRTF DSP.

7606375 https://www.google.com/patents/US7606375

Reverberation parameters for one or more positions of interest are derived from graphics data used for displaying a computer-generated environment. For each position of interest for which reverberation parameters are desired, environmental parameters including distances and the hardness of features in a range of interest and at points on cubemap faces are automatically determined from the graphics data. The environmental parameters are stored with the graphics data and associated with each position of interest. Upon rendering of the computer-generated environment, reverberation property set values usable by a reverberation engine are calculated or interpolated between predetermined values according to the environmental parameters. Thus, values such as reverb, reverb delay, reflections, decay time, reflection delay, and other reverb parameters are automatically calculated, subject to selective operator tuning, and provide realistic reverberation effects in the sounds heard by a user who is experiencing the rendered environment.

Reading List

Here are some of the non-technical books I have read.

The Hardware Startup, Thank You for being Late, The Lean Startup, Lean UX, Real Time, Zero to One, Blue Ocean Strategy, The Culture Code, Managing Transitions, Business Adventures, How Google Works, Business Stripped Bare, The Goal, Everything is Obvious, "Thinking fast, thinking slow," Peak, Tribes, Pocket MBA: Leadership and Vision, "Silos, politics, and turf wars," Seven Habits of Highly Effective People, Innovation and Entrepreneurship, The Discipline of Innovation, Extraordinary Leadership, Small is the New Big, The Dip, Think Big Strategy, Getting Stuck, Crucial Conversations, Crucial Confrontations, Simplology, How to Drive Your Competition Crazy, Positioning, Punk Marketing Manifesto, Meatball Sundae, The Speed of Trust, The Second Coming of Steve Jobs, Overcoming the Five Dysfunctions of a Team, "Using Evangelism to Sell Products, Companies, and Ideas." iWoz, The Three Signs of a Miserable Job, Executive Voice Trainer, Speak Up With Confidence, How to Win Friends and Influence People, Eight Ways to Build Collaborative Teams, The Starfish and the Spider, Excellence in Business Communications.

Interest

  • Software & Hardware
  • Electrical Engineering
  • Skydiving, Hiking, Skiing
  • Juggling

  • Community Building
  • Puzzles
  • Engineering Excellence 
  • Organizational Excellence
  • Writing and Speaking
  • Reading research papers on human perception and cognitive development