Robert Kelly graduated from Embry-Riddle Aeronautical University earning a Bachelor's degree in Computer Science and a Master's in Software Engineering.
As a software engineer with over 20 years of professional experience, he has worked in a variety of software development roles in the defense, mobile phone, and augmented reality industries with a focus on wearable and handheld device technologies.
Currently, Robert Kelly operates in a technical leadership role for Nvidia Corporation.
To obtain a senior principal software engineering role in either the defense or law enforcement equipment sectors.
Nvidia Corporation, Senior Camera System Software Engineer: February 2021 - Present
Our team provides the eyes of autonomous vehicles, robots, medical devices, and more. We are building a real-time, safety critical, image processing stack including firmware, kernel, and userspace components. Our work is highly interdisciplinary, combining software engineering, physics, signal processing, computer vision, and more.
Magic Leap Inc., Principal Software Engineer: July 2015 - February 2021
Works closely with technical team members and management across multiple teams in the development of both embedded device and host machine software. Apart from product development, responsibilities also encompass rapid prototyping, resulting in proof-of-concept software implementations, detailed specification of software requirements, as well as guiding the efforts of junior engineers. Areas of concentration involve interprocessor communication, inertial measurement, power management, audio control and routing, fuel gauging and battery charging.
Zebra Technologies Corporation, Principal Staff Software Engineer: February 2012 - July 2015
Involved in the development of embedded software solutions for the enterprise mobile computing market. Apart from overseeing the development of platform software performed by offshore partners, responsibilities also included identifying key areas of innovation and developing ideas to create opportunities within the semi-rugged, industrial handheld space.
Research In Motion Inc., Radio Protocol Stack Developer: March 2011 - February 2012
Developed UMTS radio protocol stack software for the BlackBerry line of smart phone devices. Responsibilities included requirements analysis, software design and implementation. Introduced to various WCDMA-related concepts such as open and closed loop transmit power control, handovers, and the relationship between signaling and non-signaling layers of the radio protocol stack. Worked closely with RF engineering team to ensure SAR-related requirements were met.
General Dynamics C4 Systems, Senior Staff Software Engineer: March 2009 - March 2011
Completely designed and implemented both Linux PC-side and device-side software to flash multiple OMAP3530-based devices simultaneously over USB. Ported a CC1101 PAN driver onto a Linux/OMAP3530 development platform. Developed backlight control and keypad drivers. Successfully integrated TI-WL1271 WLAN, Bluetooth, and RF Kill drivers into Android 2.1.1/OMAP3530 development platform. Integrated the Power SGX drivers into an OMAP3530 Linux-based software platform. Possess an understanding of the Linux kernel power management strategy as well as many other hardware features of the OMAP3530.
Motorola Inc., Senior Staff Software Engineer: April 2000 - March 2009
Developed several drivers for multiple Windows Mobile-based (OMAP2420 and OMAP3430) platforms. Developed software for the CN620, Motorola's first Windows CE-based GSM/WLAN handset. Developed the Accompli 009's email firmware which included POP3, SMTP, and DNS protocol implementations. Developed C++ implementations of the TripleDES and RSA encryption standards as well as the Diffie-Hellman Key Exchange algorithm. Other responsibilities apart from product development include requirements gathering and analysis, software design, and software prototyping.
FedEx Corp., Software Engineer: May 1999 - April 2000
Developed object-oriented client-server software for Federal Express' World Revenue System. Responsibilities also included software design of Java clients which interfaced with a Tuxedo service and source-level debugging of C++ code.
The Boeing Company, Software Engineer: January 1998 - April 1999
Developed software part-time in the C and Java programming languages under Boeing's Payload Ground Operations Contract at Kennedy Space Center. Responsibilities included the design and implementation of CGI programs as well as internal Website development and administration.
Embry-Riddle Aeronautical University, Web Development Manager: January 1998 - April 1999
Supervised and directed a staff of two in the administration of the Embry-Riddle President’s Office Web site. Developed software for the President's Office as well as the University's Department of Communications. Received full stipend and tuition waiver to pursue Master of Software Engineering degree at Embry-Riddle Aeronautical University.
Embry-Riddle Aeronautical University, Software Developer: May 1997 - January 1998
Lead software engineer in charge of developing Common Gateway Interface and backend database software for the Volusia County Property Appraiser's Online Database System. Responsibilities included requirements gathering, design, implementation of C/Pro*C programs, Web site and Oracle RDBMS administration.
Master of Software Engineering Embry-Riddle Aeronautical University Date of Graduation: April 1999
Bachelor of Science in Computer Science Embry-Riddle Aeronautical University Date of Graduation: December 1997
Kelly, Robert P. et al. 2012. Method for Preventing Co-Channel Operation with Radar Systems. U.S. Patent 8,179,862 filed 2007, issued May 15, 2012.
A method for preventing co-channel operation with a radar system includes the steps of setting a state of a first communication channel to active, connecting to a first wireless access point on the first communication channel, passively scanning at least a second communication channel for communication from a second wireless access point, setting a state of the second channel to active if frames are received on the second channel, determining whether an elapsed time since frames were received on at least one of the first channel and the second channel has exceed a predefined value, and in response to the predefined value being exceeded for at least one of the first channel and the second channel, setting the state of a corresponding one of the first channel and the second channel to passive.
Programming Languages: Very strong in C. Experienced in C++ and Java.
Embedded Operating Systems: Linux, Android, RTEMS, Windows Mobile 7, Windows Mobile 6, Windows CE 4.2
Communication Protocols: PCIe, USB, SPI, I2C, UART, SDIO
CASE Tools: Git, GitHub, Gerrit, Jira, ClearCase, ClearQuest