Joshua C. Shepard
Software Developer, Architect, Engineering Manager
SUMMARY
Veteran software developer and manager with wide-ranging experience - from programming languages and tools to frameworks to web applications (front to back and in-between) to modern mobile devices to custom hardware.
Experience leading and mentoring developers and leading teams to the successful delivery of software.
Expertise in designing, architecting, implementing and delivering software systems and applications - with a focus on the practical and the art of “getting things done”.
SKILLS
- Wide-ranging expertise with modern software systems, including client, server, mobile and web technologies
- Extensive experience with a large variety of programming languages, including C, C++, C#, Objective-C, Java, Python, JavaScript, Go, Swift, Kotlin, assembly language and more
- Knowledge of systems and platforms including Microsoft Windows (Win32/64 and .NET), UNIX (Linux, BSD including Darwin), Mac OS X, iOS, Android
- Team management and leadership
- Excellent communication skills
- Strong written skills for audiences both technical and non-technical
- Software tools expert
CAPABILITIES
- Design and develop high performance features/applications in a variety of programming languages and operating environments
- Quickly learn new technologies/languages/systems and begin to work in new areas/code-bases
- Analyze existing and competing systems with an eye toward forward-thinking and planning
- Set-up and guide software teams to success
- Strong background in computer software and hardware
- Extensive knowledge of and experience with the software lifecycle, focusing on the practicalities and realities of shipping software
EXPERIENCE
Engineering Manager, Software Architect at Bowers & Wilkins
Menlo Park, Ca. 1/2016 - 12/2019
As a Software Architect and Engineering Manager for Bowers & Wilkins, I designed, implemented and led teams responsible for frameworks and applications running on custom ARM-based, wireless-centric hardware products. These included a wirelessly mesh-networked video/HDMI-multiplexer with touchscreen remote control, and the Bowers & Wilkins Formation® wireless speaker system (www.bowerswilkins.com/formation).
Achievements include:
- Led the team responsible for the frameworks and application layer for the Formation® wireless speaker system.
- Designed and implemented the software systems, frameworks, hardware abstraction layers and end-user application for a touchscreen remote control. This started with the creation of a custom Linux OS and included the entire software stack - hardware support (touchscreen, accelerometer, physical buttons, speaker, BLE, WiFi), OpenGL/graphics, host communication layer/protocol, porting of in-house libraries and the end-user on-screen application. The application stack was designed for maximal testability and could be completely tested using hardware abstractions prior to actual hardware availability. The final prototypes were fully functional prior to the cancellation of the product.
All of my accomplishments at Bowers & Wilkins were achieved while working remotely from Washington state.
Senior Architect - Mobile Solutions at EveryMove Inc.
Seattle, Wa. 10/2015 - 12/2016
Architect working on mobile solutions - app and server-side - for a new enterprise-grade health and wellness program.
Responsibilities included:
- Mobile app and server API design and development
- Documenting mobile development code, processes etc.
- Managing the GitHub repository
- Managing builds and releases
- Coordination with the development team, designers, product and management
Software Design Engineer at Microsoft Studios, HoloLens group
Redmond, Wa. 5/2015 - 10/2015
Worked on the systems team for Skype for HoloLens, a product used by scientists and astronauts at NASA and the JPL. (Yes, we put one on the ISS and Scott Kelly used it - it was awesome!) I helped tackle low-level issues such as crashes, memory leaks in 2nd party components (e.g. sound systems and video drivers) etc. as well as all-around development and bug fixing for the HoloLens version of Skype.
Lead Mobile Engineer at EveryMove Inc.
Seattle, Wa. 4/2014 - 5/2015
Responsible for:
- Architecting and overseeing mobile application development - Designed and architected the Android application and wrote much of the code for both iOS and Android apps (~20% and ~65% respectively)
- Building a mobile development team - Interviewing and hiring
- Mentoring and directing junior mobile developers
- Managing the GitHub repository (code reviewing and merging check-ins, branching etc)
- Managing automated builds
- App releases
- Coordinating with back-end developers, designers and product managers
- Day-to-day mobile development
Independent Software Engineering Consultant
Seattle, Wa. 6/2007 - 4/2014
Projects completed for Microsoft, the U.S. Government, Caesars Entertainment, Savers Corporation and others. Have worked with Counterpunch Software, Juice Creative, ChannelReady, Front Point Strategy etc.
Projects have included:
- A Mobile Application (iOS and Android) and back-end design and infrastructure for the Number 3 ranked Hotels/Casinos/Resorts company on the Fortune 500
- A Secure management console for Amazon Web Services (AWS) Cloud infrastructure for use by agencies of the federal government
- Comparative market analyses of Software Development tools and platforms
- The Web site for a “Customer Membership” program for an international retail chain
Senior Software Development Engineer, Technical Lead at Microsoft Corporation
Redmond WA. 5/99 - 5/2007
Accomplishments include:
- Technical lead for the Visual C++ IDE team
- Helped implement an all new Project and Build system for C++ in Visual Studio 2002
- Spear-headed the expansion of enterprise-level features for the C++ Project Build system in Visual Studio versions from 2005 and 2008
- Founding member of the Visual C# team - Responsible for the C# Project and Build system in Visual Studio 2002 and 2003
- Senior member of the “Proteus” team - responsible for data storage, format and analysis for the IntelliTrace (“back-in-time”) debugger for Visual Studio 2010
Senior Consultant for Professional Data Exchange
Redmond, WA. 2/98 - 5/99
Contracted as a Software Development Engineer in Test for the Visual C++ team at Microsoft Corporation.
Software Developer at University of Washington, Civil Engineering Dept.
Seattle, WA. 6/97 - 10/97
Took over and completed a foundering software project that the university had undertaken for the Federal and State Departments of Transportation. This application calculated the stability and integrity of highway bridges that span waterways and was used in the field by engineers in transportation departments across the country.
PROJECTS
Personal projects include:
“Deva” - A complete multi-paradigm scripting language with C-like syntax. It includes a REPL-type shell environment, bytecode compiler and executor and a command-line debugger. It includes an extensive set of tests, utilizing a self-hosted test harness (i.e. written in ‘deva’). It consists of ~14,000 lines of C++ and is portable to Unix-like environments. (It has been tested on Mac OS X, Linux and under Cygwin on Microsoft Windows). The source code is available at http://bitbucket.org/jcs/deva.
“Jaknife” - A software and hardware navigation system for yachts and sailing craft. Jaknife consists of:
- The Jaknife server consists of a small stand-alone WiFi access point running custom software to multi-plex incoming hardware connections (marine devices connect via the NMEA0183 standard which utilizes two-wire serial connections) including GPS, AIS (vessel detection and identification), depth sounders, speedometer etc and send them out over WiFi to connected Jaknife clients.
- The Jaknife client program runs on Android and iOS (with rudimentary PC and Mac versions) and talks to the server via WiFi. It loads and renders S-57 format vector nautical charts (an international standard) which have been converted into its own format (for load-time efficiency). It utilizes either the vessel’s GPS or, if that is unavailable, the mobile device’s GPS to track and display the vessels position and orientation. When connected to an AIS radio system it also renders the position and orientation of other AIS-equipped vessels. Objects on the charts (chart features, hazards to navigation etc) are both displayed on the chart and queryable for further information. The user interface of the Jaknife client is completely custom and supports pinch-to-zoom, drag-to-pan and a very easy-to-use but powerful command paradigm.
I have navigated thousands of miles using Jaknife as my means of charting and navigation. (Source code is not public, but is available on request).
PATENTS
Systems and methods for varying software build properties using primary and supplemental build files
U.S. Patent 7,802,228 - Issued
Integration of external tools into an existing design environment
U.S. Patent 7,657,869 - Issued
Reusable customized project system
U.S. Patent 7,685,563 - Issued