Kristopher Johnson
E-mail: kris@kristopherjohnson.net Web Site: https://undefinedvalue.com/

Summary
Over 28 years of experience developing distributed systems and user applications for the transportation engineering, lottery/gaming, and enterprise mobile software testing industries, including service as lead developer for multiple projects. Experienced with iOS and Android development, Microsoft Windows, macOS and UNIX software development in C#, Objective-C, Swift, C++, Java, JavaScript and other programming languages, with relational database technology, embedded systems, and distributed systems.
Skills
Operating Systems	iOS, Android, Windows, macOS, Linux, Solaris/SunOS, AT&T System V UNIX, QNX Neutrino, VxWorks, OpenVMS, OS/2	
Programming Languages	C#, C++, C, Objective-C, Swift, Java, JavaScript, TypeScript, Python, Perl, Ruby, Visual Basic, Forth, Bash	
Development Tools	Microsoft Visual Studio, Apple Xcode, Android Studio, Eclipse, Java SDK, GNU compilers and toolchains, Borland C++ Builder, IBM VisualAge C++	
Distributed Systems Technologies	REST services, web services, CORBA, DCOM, RPC, .NET Remoting, sockets, TCP/IP	
Component Technologies	.NET, Java EE, ActiveX/OLE/COM, Dynamic Link Libraries and Shared Objects	
Database Systems	PostgreSQL, Oracle, SQL Server, SQLite, MySQL, InfluxDB, Microsoft Access/Jet, Paradox	

Experience
Feb 2015-Present Senior Software Developer Mobile Labs Atlanta, GA

(Formerly Mobile Labs, LLC, before its acquisition by Kobiton in October 2020)	Involved in design, development, maintenance, and support of a suite of enterprise mobile application testing products for iOS and Android. Using macOS, iOS, Swift, Objective-C, Xcode, Windows, Visual Studio .NET, Android Studio, C#, C++, Java, JavaScript, TypeScript, .NET, Mono, CMake, HTML, and CSS.
Development tasks include reverse-engineering of undocumented protocols, file formats, and operating system libraries, and maintaining compatibility with older versions of iOS and Android. Learned about internals of iOS, Android, and WebKit. Implemented components and test applications for iOS, Android, Windows, and macOS. Integrated components into tests with Appium, Xcode's testing frameworks, and HP UFT. Used IDA Pro and Hopper disassemblers and Wireshark protocol analyzer for reverse engineering.
Accepted interim Team Lead role January-August 2019 while company searched for a new Director of Software Development. As Team Lead, prioritized and assigned development tasks to team members, managed technical-support escalations and assisted customers directly when needed, worked with sales and marketing departments, and was responsible for deliverables and releases. Used JIRA for internal issue management and ZenDesk for coordination with support team and customers. Interviewed candidates for Director role.	
Sep 2006-Feb 2015 President/Principal Engineer Capable Hands Technologies, Inc. Suwanee, GA	Providing software development and IT consulting services to clients in multiple industries.
Design and implementation of mobile applications for iOS and Android for traffic engineers, ITS maintenance staff, and for the general public, using Apple Maps, Google Maps, and ESRI ArcGIS map APIs, distributed via the App Store, Google Play, and internal enterprise servers. Tools used include Xcode, Objective-C, Swift, Eclipse, Android Studio, and Java.
Front-end and back-end design and implementation of web sites using Node.js, AngularJS, OpenLayers, jQuery, Backbone.js.
Participating in requirements gathering, design, and implementation of a JBoss-based application that supports the Gaming Standards Association’s G2S and S2S protocols for managing gaming machines.
Added support for multiple gaming machine protocols for Scientific Games video gaming site controllers. Site controller software was mix of C and C++, running on Fedora Linux. Site controller software communicated with gaming machines using RS-422-based serial communications, and with remote host using TCP/IP.
Developed cross-platform (Win32 and Linux) C++ libraries for internal use at Scientific Games. Tools used included Visual Studio 2005 and gcc/g++ compilers, Visual SourceSafe, CVS, Python, SCons, CMake.
Designed and implemented system for downloading and installing new software releases from Windows servers to remote Linux-based terminals. Tools used included Python, Visual C#, Microsoft SQL Server 2005, rsync, Cygwin.
Gathered requirements and initiated design and development of new generation of network infrastructure and management software at Scientific Games. Involved TCP/IP and serial communications with a variety of vendor-specific protocols.
Developed JacksOrBetter video poker game for iPhone OS using Cocoa Touch/UIKit and Objective-C, for distribution via Apple’s App Store. Also developed web-application variant of JacksOrBetter, using HTML, CSS, JavaScript, jQuery, and WebKit.
Developed open-source Menubar Countdown application for Mac OS X, using Objective-C and Apple Xcode IDE.
Assisted internal development team at Reuters in resolving issues for a major software release. Added necessary features, diagnosed and resolved defects, and tested new functionality. Tools used included Visual C++ 6.0, ATL, MFC, ActiveX controls, Subversion, VMWare, Windows crash dump analysis.	
2010-Jan 2013 Consultant Innovative Employee Solutions	Provided software development services to TransCore, LLC. 
Lead developer of UDOT Traffic application, a public traveler information app for iOS and Android promoted by the Utah Department of Transportation.
Design and implementation of mobile applications for iOS and Android designed for traffic engineers, ITS maintenance staff, and for the general public.
Network communications with remote sensor equipment and recording of data to central databases, using C#/.NET and native C++/Win32 applications and components.
Maintenance of ActiveX-control-based legacy applications using C++, MFC, ATL, and .NET	
Jul 2003-Sep 2006 Software Engineer Scientific Games Alpharetta, GA	Designed, implemented, installed, maintained, and supportted Windows- and QNX Neutrino-based embedded software for point-of-sale lottery terminals, automated lottery ticket vending machines, and lottery network components, using Visual C++, Windows XP, and Windows XP Embedded.
Design and development lead for lottery terminal product development group.
Served as lead software developer for new product prototypes. Oversaw requirements specification, design, implementation, and deployment.	
Sep 2002-Sep 2003 Independent Contractor Duluth, GA	Provided consulting services to former employer. Provided technical support and advice, participated in design for further system development, developed and reviewed project proposals and documentation, assisting in development of Windows-based, .NET-based, and CORBA-based system enhancements.
Developed open-source Remoting.Corba library, using Microsoft Visual C# .NET, which fosters integration between CORBA and .NET Remoting applications by providing an implementation of the GIOP/IIOP protocols.
Developed COM component and ASP page for a Pocket PC handheld, providing remote control of a television set from customer’s web server over a wireless network, using eMbedded Visual C++.	
Dec 2002-Feb 2003 Independent Contractor Magnet Communications Atlanta, GA	Identified and corrected memory leaks in C++ ColdFusion/VisiBroker connector components and in other CORBA server applications, using Microsoft Visual C++ and Visual Studio.
Updated makefiles and created Korn shell scripts for building and deploying Solaris version of web-based banking application with C++/CORBA and Oracle back end.
Assisted with upgrade of Rogue Wave SourcePro library version.	
Dec 1999-Feb 2002 Principal Engineer TransCore Norcross, GA 	Lead architect and lead developer for CORBA-based Information Exchange Network pilot project for Los Angeles County Department of Public Works. Designed and led development of a Windows- and CORBA-based system for second-by-second traffic data distribution and system control over a wide-area network with numerous sites. Oversaw installation and acceptance of delivered system. Development using Microsoft Visual Studio tools (Visual C++ and Visual Basic), TAO, VisiBroker, and Oracle.
Attended Southern California regional integration forum meetings and advised clients on architecture and other technical matters. Developed proposals for expansion of the above-described system.
Involved in company's participation in CORBA-based transportation industry standards activities (NTCIP). 	
Aug 1998-Dec 1999 Senior Systems Engineer Gardner Systems Duluth, GA 	Designed and implemented a CORBA-based event notification service used by traffic management system components to communicate with one another and to drive real-time graphical displays, using Microsoft Visual C++ and TAO. 
Designed and implemented a CORBA-based system component for exchanging local traffic system data with regional agencies in southern California. 
Played a major role in design and implementation of a DCOM-based system that controls freeway message signs and reacts to adverse weather conditions. 
Designed and implemented CORBA-based system for interactive control of remote closed-circuit television cameras from desktop computer, using Visual C++ and TAO. Maintained CORBA-based applications written in C++ using VisiBroker, Orbix, and TAO, for Windows and UNIX (Solaris) operating systems.
Played a major role in company-wide software development process improvement activities. These included reorganization of the company's source code version control system, creation of scripts for automatic builds of software, definition of programming style standards, and documentation of procedures. 
Acted as team leader for coordination of development activities between several programmers across the country. 
Participated in development of national standard for CORBA-based exchange of traffic flow data between control centers in multiple jurisdictions. 	
Aug 1992-Aug 1998 Systems Engineer TransCore Norcross, GA 	Designed and implemented a geographic map display, using the Microsoft Foundation Classes and the Active Template Library with Visual C++. The display depicted real-time traffic flow data for the entire city of New York, using ActiveX controls. 
Designed and administered the relational database used by New York City's Vehicular Traffic Control System, using Oracle running on an OpenVMS-based system. 
Designed and implemented database server processes and data access components used by traffic management system components running on various operating systems (NT, UNIX, VxWorks, OpenVMS, and OS/2) using the GNU toolset, Microsoft Visual Studio, and other vendors’ development environments. 
Designed and implemented several OS/2 applications using IBM's VisualAge C++ development tools and the Versant object-oriented database system. These included an application for centralized monitoring and control of freeway ramp meter controllers for the city of Milwaukee, and an application for the viewing and editing of traffic hazard information for the state of Minnesota. 	

Location
Currently living in the Atlanta, Georgia area. Willing to travel.
Education
University of Georgia, Athens, GA B.S., Computer Science, June 1992

Georgia Institute of Technology, Atlanta, GA
M.S., Computer Science, December 2022 (expected graduation date)
Other
U.S. citizen.
References available on request.