Eric Theis work email
- Valid
- Valid
Eric Theis personal email
- Valid
Specialties: C, C++, Java, UNIX, Linux, kernel, device drivers, embedded, Android, firmware, realtime, data acquisition, motion control; requirements analysis, system architecture, system design, software design, Implementation and test; 802.11ad; Object-Oriented Programming (OOP), Agile Development, Board Support Packages (BSP), JTAG, PCs, x86, ARM.
-
Senior Embedded Software EngineerBlue Origin May 2020 - Aug 2024Working on the BE-3PM and new BE-7 rocket engine controllers.
-
Senior Embedded Software EngineerEchodyne Corp Mar 2017 - Apr 2020Kirkland, Washington, UsPerforming design, development, integration, testing, and delivery of the embedded software/firmware for a new cutting edge radar system. -
Senior Embedded Software EngineerBendixking Jul 2016 - Mar 2017Working on next-generation "glass" cockpit displays for small to medium sized aircraft.
-
Senior Staff Firmware Engineer (Contract)Varian Medical Systems Oct 2015 - Jun 2016Palo Alto, Ca, UsContractor, Triple Crown Consulting.Investigated and solved a variety of issues in an extremely complex medical radiation therapy system, used in large hospitals for cancer treatment. Took over a project to refactor the subsystem controlling the multi-leaf collimator, simplifying and clarifying the hardware abstraction layer in preparation for a new design (Rhapsody, VxWorks, C++).Once familiar with the system, I focused on the subsystem controlling the linear accelerator and the related motors and electronics which generate and control the X-ray treatment beam. As every issue was very complex, and correct behavior is absolutely essential, I wrote a small document describing each issue in detail, and the solution implemented. I was also called upon to triage issues uncovered in manufacturing and in the field, recommending further diagnostic actions, or isolating the issue to a specific subsystem and passing the issue to the appropriate expert. The system used a Windows PC for the operator control system. It communicates via TCP and UDP to each of 10 distributed single-board ‘nodes’, each running VxWorks 6.9. Each node contained an Intel-based SOM, linked via PCI to an on-board XyLinx FPGA, which in turn used a proprietary protocol over 10baseT cabling to communicate with the subsystem-specific controller board in the treatment room. The nodes’ FPGAs embed a MicroBlaze soft ‘core’ to drive their dedicated tasks. The entire system has more than 10 motor driven axes, which produce synchronized motion and radiation delivery under realtime software control. The beam generation node was unusually complex, in that its dedicated controller in turn communicates with multiple sub-controllers via CANbus, a number of sensor signals, and current-loop safety lines. -
Senior Firmware EngineerNitero Mar 2014 - Aug 2015Developed and debugged firmware for a new 60 GHz IEEE 802.11ad Wi-Fi module, as part of a small firmware team in a startup environment.The firmware was standalone (no RTOS), coded in C using the ARM tool chain, ARM DS-1 hardware debugger, via its Eclipse front end. The host systems ran Android, Ubuntu Linux, and Red Hat Linux using custom PCIe device drivers.The chip was a mixed-signal low power solution, designed for mobile devices, such as smartphones and tablets. It contained ARM 9 cores, communicating over the AXI bus with a number of embedded modules, including a PCIe interface, tightly coupled memory (two types), custom packet transmit/receive controllers, an interrrupt controller, clocks, timers, GPIOs, I2C devices, a serial debug port, and various other special-purpose devices.The firmware implemented the entire 802.11 wireless link layer protocol for the new 60GHz bands. Host Linux drivers used DMA over PCIe to communicate to the ARM processors. The ARM processors used direct access to memory-mapped registers to control the various modules on the AXI bus, and thus the RF hardware.Participated in architecture, design, interface design, development, debugging of the firmware, as well as multiple Wi-Fi Alliance "Plugfests", testing our equipment's interoperability with that of other vendors. Expanded, refined, and debugged the prototype beaconing and wireless beacon interval (frame) timing, including considerable tuning requiring use of a scope and logic analyzer. Implemented the entire IEEE 802.11 beam-forming and beam-refinement protocols (aka "Sector Level Sweeps"). Modified an Android video driver and overhauled a custom kernel module, so they can grab frames and send them over a wireless LAN at high speed for display on a sister system. Performed extensive debugging of all aspects of the system, including identifying and characterizing multiple obscure issues with both software and hardware.
-
Senior Staff Software EngineerPolycom May 2011 - Jan 2014San Jose, California, UsArchitected substantial innovations for the platform software for the next generation high-end video conferencing systems: A hardware abstraction layer, video source and sink abstraction, IPC message passing scheme, and XML/XSD based shared configuration service. Implemented the prototypes of the hardware abstraction layer and video source/sink abstraction layer. Supervised development of the production versions of both subsystems, overseeing and mentoring resources both local and in Beijing. Developed a general system service, abstracting multiple platform-dependent operations. Supervised development of, provided technical guidance for, and helped debug two Linux video device drivers, developed by contractors in India. Fixed a multitude of system level bugs, including driver issues. Worked with hardware engineers to trace GPIO and I2C problems to the part level. Wrote the software command specification for a new video camera.On another project, developed and implemented an architecture to integrate an Android GUI app with existing (non-Android) processes handling audio, video, and telephony. Helped debug issues communicating with the audio DSP, and the Windows-based configuration app via USB.Products were standalone embedded systems based on the TI Netra processor (ARM), running Android 4.0 (ICS), developed in C, C++, Java and JNI, Google Protocol Buffers over Linx, and various script languages. -
ContractorTexas Instruments Dec 2010 - May 2011Dallas, Tx, UsSupporting the transition from from Android Froyo to Gingerbread on TI's OMAP 4430 platform. Supporting Motorola's bring-up of TI's Gingerbread port on a new Droid platform. Debugged various kernel, device driver, power management, and multimedia issues. Automated a suite of power management tests. -
ConsultantLg Mobile Electronics Jul 2010 - Dec 2010Seoul, KrDebugged Linux kernel, device drivers, and Board Support Package (BSP) for Qualcomm chipset, reproduced and characterized elusive bugs (passed to the vendor for fixing), for final release testing of LG's new Optimus smartphone. Reviewed and documented the I2C and GPIO drivers for a BSP documentation package. Led a small project which re-engineered the phone's "charging mode", using C and JTAG support. The phone runs Google's Android 2.2 (Froyo) release, on Qualcomm's MSM7627 chipset. The chipset uses an ARM 9 processor for the modem (mobile telephone) functions, and an ARM 11 processor for the Android OS, other devices (display, USB, etc.), and the Java-based applications. They communicate via RPC and shared memory. -
Lead Software EngineerBoeing Mar 2009 - Jun 2010Arlington, Va, UsLead software engineer for the Electrical Ground Support Equipment (EGSE) forNASA's new Ares 1 manned rocket. The system is primarily used to check out theInstrument Unit Assembly (IUA) during assembly of the rocket. The IUA containsvirtually all of the 'brains' of the rocket. It is located just behind the SpacecraftAdapter (which is just behind the Orion capsule), and just forward of the secondstage. The EGSE talks to the rocket via eight gigabit Ethernets, nine 1553 buses,two RS-488 discretes, and four other discrete lines. The software is engineered as a distributed system, with intependent components communicating via the OMG's Distributed Data System (DDS). -
Technical InstructorUcla Extension Oct 1995 - Mar 2009Los Angeles, California, UsTaught various courses (Introduction to UNIX/Linux, Intermediate UNIX/Linux, UNIX/Linux Shell Scripting, Advanced C Programming, X/Windows/Motif programming, Solaris System Adminstration I and II), both at UCLA and on-site for companies. Performed system administration, reconfigurations, and troubleshooting for the UNIX computer labs. Completely overhauled the existing UNIX courses and lab systems. Developed and teach new courses. Consistently rated in the top 2% of instructors by students, and receive frequent requests from students to teach other classes. -
Senior Software Engineer / Instrument I&T LeadJet Propulsion Laboratory Apr 2008 - Feb 2009Pasadena, Ca, UsSupported all Electrical Ground Support Equipment (EGSE) used for the assembly, integration, and checkout of NASA's Aquarius instrument. The EGSE includes all hardware that connects to the instrument, and the software that drives it: The spacecraft simulator (PC), the 1553 bus, two racks of equipment for powering, monitoring, and controlling the instrument, three PCs running custom software that control them, and a Sun workstation. Developed a socket interface between two existing applications. Diagnosed and resolved a host of issues relating to all aspects of the EGSE: Windows sysadmin and networking issues, set up backups, fixed bugs in the controlling software (C, C++), wrote scripts to automate various operations, wrote a new LabView script, and enhanced existing ones. Systems were PCs running Windows XP, Centos Linux, Sun Solaris (UNIX), interconnected via a multilevel local Ethernet network. The various systems run applications based on C, C++, and LabView, and MatLab. -
Lead Integration Engineer / Instrument I&T LeadJet Propulsion Laboratory Jan 2007 - Mar 2008Pasadena, Ca, UsLed a team responsible for all Electrical Ground Support Equipment (EGSE) used for the assembly, integration, and checkout of NASA's Orbiting Carbon Observatory (OCO) instrument. This includes: The 1553 spacecraft bus, an RS-422-based interface to a Solid State Recorder simulator system, power from computer-controlled power supplies, as well as two discrete signals used to indicate spacecraft events. Diagnosed and resolved a host of issues relating to all aspects of the instrument electronic intefaces, spacecraft and instrument commanding, telemetry, testing, and operations. Became the primary EGSE and instrument operator, writing procedures and training all other instrument operators. Also resolved issues with the Optical Calibration equipment (OGSE), including a balky heliostat system, and LabView and IEEE 488/GPIB issues. Systems were PCs running Windows XP, Red Hat `and Centos Linux, Sun/SPARC workstations running Solaris (UNIX), and a PowerPC running VxWorks, all interconnected via a multilevel local Ethernet network, gatewayed to the JPL-wide network. The various systems run applications based on C, C++, and LabView. -
Senior Software EngineerJet Propulsion Laboratory Jul 2006 - Dec 2007Pasadena, Ca, UsDesigned and developed interface 'bots' to control the flight computer and other equipment for the Mars Science Laboratory (MSL) rover, during development. Computer was a RAD-750 running VxWorks; the control bot was written using Tcl/Tk and Expect under Red Hat Linux and Solaris. The bots were part of the Bench Test Equipment for debugging, exercising, characterizing, and calibrating the flight hardware. The bots handled controlling the power, downloading and booting VxWorks, starting the test software, issuing commands to VxWorks and the development software, and monitoring and logging any messages emitted by any of these elements. This software interfaces with an existing body of software derived from other missions. -
Senior Software EngineerJet Propulsion Laboratory Jun 2005 - Jul 2006Pasadena, Ca, UsDeveloped significant modifications to and new features for the Rover Sequence Editor (RoSE), which is used daily by NASA's Mars Exploration Rover (MER) mission for controlling the two rovers currently active on Mars. These modifications expand RoSE's abilities, specifically to adapt it to two new NASA Mars missions: The Mars Polar Lander '06 (aka "Phoenix") launching in 2006, and the Mars Science Laboratory (aka "MSL": A new Mars rover, launching in 2009). The work required coming up to speed on Java very quickly, then making modifications to the existing Java and XML. Half of the work involved incorporating the existing standalone RoSE into the existing Eclipse environment for the MSL mission, as part of their Extreme Programming team. -
Lead Programmer / Cognizant EngineerJet Propulsion Laboratory Jul 2001 - Jun 2005Pasadena, Ca, UsCognizant Development Engineer (CDE) for the Simulation (SIM) subsystem of the Advanced Multi-Mission Operations System (AMMOS). Developed metacode for and generated a wide variety of complicated testing datasets for a number of flying and upcoming NASA spacecraft. Added additional functionality to SIM to handle new CRCs, Turbo encoding/decoding, Pseudo-randomization, and various other capabilites. Performed substantial rewrite of the system, removing old design flaws and greatly incresing its capabilites by making it object-oriented (to the degree possible), using C, C++, and Perl. Assisted in the multithreaded design of the Data Accountability Subsystem (DAS). -
Senior Software Engineer / Usb Development Team LeadSun Microsystems Nov 1998 - Jul 2001Palo Alto, Ca, UsLed one of two teams in the development and integration of a new device driver and multithreaded kernel I/O framework for Universal Serial Bus (USB) support into Sun's flagship SVR4 UNIX (Solaris 7, Solaris 8, Solaris 9). Coordinated and participated in Sun's demos and testing at a USB Implementor's Forum in Milpitas, CA. Fixed a number of driver and kernel bugs related to USB support (in C). Wrote extensions to the standard Solaris debugger to support debugging the USB framework and drivers. Wrote extensions to a system administration utility providing dynamic display, configuration control, and software hotplugging of USB devices, which required careful kernel interaction. -
Software Engineer, Operating Systems GroupTeradata Oct 1997 - Nov 1998San Diego, California, UsWith another, converted a group's software repository from CVS to ClearCase, making the numerous necessary Makefile changes and other fixes along the way. Took over and overhauled a project for revamping the group's software packaging, making extensive changes to the project's installation scripts and procedures, making it both considerably more straightforward and more robust. Fixed numerous bugs in the group's product, including one that required careful interaction with the internals of the File I/O subsystem in the standard C library (libc). -
Senior Software Engineer / Kernel I/O FrameworksSun Microsystems Dec 1993 - Oct 1997Palo Alto, Ca, UsDebugged, tested, and integrated various SCSI and Ethernet device drivers for Sunsoft’s multithreaded Solaris x86 (SunOS) Unix (SVR4), for PC 386, 486 and Pentium systems, with ISA, EISA, and PCI buses. Wrote a Solaris driver for the AMD PCscsi PCI/SCSI chips. Rewrote the Solaris 2.4 kernel module which provides PCI support so that it provides virtually all of the new Device Driver Interface (DDI) functions from Solaris 2.5. Wrote the documentation for this. Rewrote, debugged, and tested the device drivers for SPARC systems for Fast Ethernet (100baseT), Token Ring, and FDDI to use a generic STREAMS device driver module. -
Manager, Research And Development (Contractor)Seebeyond Apr 1994 - Aug 1994UsCreated and implemented Quality Assurance, directed cleanup and ship of a very late (and buggy) product version, calmed down customers, created a bug-tracking system, organized existing development staff, hired a new GUI programmer. Implemented policies to prevent similar situations in the future. Provided primary direction in the requirements, design, and schedule for the next two major releases of the company's flagship product. -
Software EngineerJet Propulsion Laboratory Nov 1992 - Dec 1993Pasadena, Ca, UsDesigned (with others) software for a system which performs complex analysis and calibration for NASA's Deep Space Network. Designed and implemented the front-end GUI, in such a way that it pulled together existing disparate parts of the system with minimal coupling. System is Sun/SPARC S-bus based, with both a VME-bus interface (for A-to-D converters) and an HPIB (IEEE 488) bus interface (for instrument control and Data Acquisition). A VME-based SkyBolt processor is used to perform Digital Signal Processing (DSP) in realtime. The software consisted of multiple interdependent processes written in ANSI C, X-Windows (X11R4), and Motif, running under SunOS (UNIX) on a SPARCStation 2. NASA/JPL has since applied for patents on the system, and the system has won a NASA new technology award.
Eric Theis Skills
Eric Theis Education Details
-
California State University, NorthridgeComputer Science
Frequently Asked Questions about Eric Theis
What is Eric Theis's role at the current company?
Eric Theis's current role is Senior Embedded Software Engineer - Looking for my next challenge!.
What is Eric Theis's email address?
Eric Theis's email address is er****@****hoo.com
What schools did Eric Theis attend?
Eric Theis attended California State University, Northridge.
What skills is Eric Theis known for?
Eric Theis has skills like Embedded Systems, Device Drivers, Unix, Perl, System Architecture, Linux, Software Development, Software Design, C, Debugging, Operating Systems, C++.
Free Chrome Extension
Find emails, phones & company data instantly
Aero Online
Your AI prospecting assistant
Select data to include:
0 records × $0.02 per record
Download 750 million emails and 100 million phone numbers
Access emails and phone numbers of over 750 million business users. Instantly download verified profiles using 20+ filters, including location, job title, company, function, and industry.
Start your free trial