Aaron F. Endelman
Greetings! I'm a senior-level software engineer
My strengths are in
I love to solve complex problems, and
I'm especially interested in pursuing scientific research.
I spent the first year following the layoff interviewing at many companies, but without receiving any offers. Since then, I've acquired a 3D printer and have created and printed various 3D designs using OpenSCAD and Simplify3D.
The printer is typically controlled via a USB cable by software on a PC. I've studied the Raspberry Pi family of microcontrollers, and have created a WiFi interface to the 3D printer using the little $10 Pi Zero W board, which runs Astroprint under Linux. With FreeVPN installed on the Pi and on my Thinkpad, I have a remote screen with a web UI that I can use to upload files and control the printer.
A natural follow-on to learning about the Raspberry Pi was learning and experimenting with the Arduino microcontroller. I've completed various tutorial-level circuitry and the associated C++ code; my actual interest is robotics experimentation, possibly pairing an Arduino and a Pi, with the Arduino serving as an actuator controller and sensor reader, and the Pi making decisions based on sensor data and sending actuator commands to the Arduino. I'm particularly interested in cooperative and emergent behavior between small, identical robot modules.
Wrote the Current Connections report page, central to displaying drill-down data for hundreds of web connections simultaneously. Although internally complex, the user interface itself is simple and easy to use.
A reported excess of UI engineers in the newly-formed company resulted in layoffs. Within six months, nearly all the non-UI engineers from my group were also let go. These layoffs occurred just as the economy was going into a recession, and it took me two years to secure employment.
Researched and prototyped an open-source replacement for the EnVision PlotTool, using Gnuplot as the server engine. PlotTool displays 3D representations of silicon wafer electrical and functional test results.
Added enhancements and bug fixes to the GUI layer of EnVision, a multi-million-line software package that controls the company's ATE (automated test equipment) hardware. The EnVision GUI comprises a set of about 20 Motif/X11 applications running on Linux and Solaris, with the source code under ClearCase control, and the facility ISO 9001 compliant.
Designer and developer for Certify product since shortly after project inception. Certify is a multi-FPGA partitioning tool for EDA engineers that runs on Windows, Solaris, HP/UX, and Linux platforms; in 2004 it was in its sixth major release.
Major accomplishments: designed and coded Analyst Connectivity View tool, Trace Assignment UI; augmented UI to support hierarchical boards; ported 32-bit Altera and Xilinx mappers to 64-bit systems; sped up UI by orders of magnitude, using profiling to tune third-party code; enabled unattended UI testing.
Coded in C, C++, and TCL, using Microsoft Visual C++ on Windows; ported to Unix via MainWin and Sun/HP/GNU development tools. Incorporated Rogue Wave Objective Grid and Objective Toolkit classes with standard MFC. Wrote Perl scripts to help analyze profiler output; used Purify to help identify memory leaks.
Partly to fully responsible for early Unix releases of Certify and its progenitor, Synplify, and for the adoption of CVS as the company-wide versioning tool.
Architect, designer, and developer, from project inception through FCS, of Java-based WebSniffer, winner of the 1998 ComNet New Product Achievement Award for Most Innovative New Product or Service. This monitoring tool performs web site performance and fault detection and analysis, was developed under Windows NT and Solaris, and runs on Internet Explorer and Netscape. Contributed broadly to the design, helping to flesh out the internal architecture of host agents and data repository. Responsible for all tabular displays in the GUI, including an original design for the main Alarms table; it displays large amounts of information in a manner easy to comprehend and navigate. Coupled Alarms table to expert solutions guide. Lead role in defining our software development environment: Visual Café Pro and MKS Source Integrity.
KORG R&D, Milpitas, California.
(5/95 – 9/96)
Developed C++ code for embedded system in state-of-the-art music synthesizer. Emulator ran on Sun; target system ran on 68340. Emphasis on GUI development and code optimization. Occasional Macintosh programming using THINK C/C++.
ADAC LABORATORIES, Milpitas, California.
(12/94 – 3/95)
Ported Pegasys medical imaging software from standalone SunView to networked XView window system. Emphasis on color, fonts, and graphics code, using the X11 library (Xlib). Integration of Unix system calls with XView notifier code. Heavy use of make and CVS.
Integrated Programming Environments Group (1991 - 1994).
Lead developer for integration of Emacs editor with SparcWorks programming environment for C and C++ on Sun Unix 4.x and 5.x (Solaris). Responsible for overall design, coding, and testing, including UI design, interprocess ToolTalk protocols, and Motif look-and-feel compatibility. Automated nightly Emacs builds with C-shell, Bourne-shell scripts. Wrote contract with major university for joint development effort. Regularly integrated university and in-house code releases using SCCS and TeamWare. Managed university- and locally-contracted employees. Maintained, enhanced C/C++ CallGrapher/ClassGrapher product, using XView, Xlib.
Symbolic Computing Group (1987 - 1991).
Engineered object-oriented software tools for Symbolic Programming Environment (SPE) for Sun Common Lisp. Contributed, over multiple releases, to all product phases: from conception through Alpha, Beta, and First Customer Ship. Conceived, designed, coded entire Code Stepper tool. Using PostScript and Lisp, implemented portions of NeWS-based window system. Designed, coded portions of Emacs Editor, interpretive Listener, Data Inspector, and Window Debugger. Ported portions of SPE to LispView, a Common Lisp Object System (CLOS) interface to the XView/Xlib window system. Led SPE and Lisp projects on occasion. Co-authored major paper on SPE that appeared in two publications.
Consulting Services Group (1986 - 1987).
Designed and implemented, in C, portions of a state-of-the-art foreign-exchange trading system for a major Wall Street bank. Provided Lisp prototyping services; extended Lisp/SunView window system interface.
Provided Lisp software assistance, technical problem resolution. Responsible for pre-sales and post-sales customer support. Visited customer sites to resolve otherwise intractable problems. Wrote: "General problem solver" implementation; animated logic circuitry model; simple natural-language parser. Guest teacher by invitation at Symbolics West Coast Education Center. Received Symbolics Special Recognition Award.
Hardware: "Homebrewed" a 68008-based microcomputer, featuring 8K EEPROM, 8K RAM, hex keypad, 2 serial ports, from a textbook description. Built amateur radio transmitters, receivers, and test equipment. Hold Advanced-class license KK6QH.
Designed and taught an intensive 2-day course in object-oriented programming for Symbolics customers, and an intensive 5-day Lisp Machine Site Administration course.
Designed and taught a 14-week Amateur Radio course, culminating in testing for FCC Novice and Technician licenses. Student pass rate on FCC exam was 100%.
Skills Summary of Aaron F. Endelman
191 E El Camino Real, Space 160, Mountain View, CA 94040-2715