/ Mobile: (603) 305-5081
Summary
Seven years of experience includingleadership and development of video & signal analysis algorithms, systems and tools for massively parallel computers. Prefer an innovative, fast paced, dynamic environment where I can apply my skills and imagination.Work Experience
Senior Software Systems Engineer
5/2006 – Present The MITRE Corporation, Bedford, MAResearch, design, and prototype innovative software for the military as well as help manage and guide government contractors.
- Immersive Vision: Proposed and led the development of an immersive vision system for a unmanned-vehicle that integrates a head mounted display (HMD), head orientation tracker, virtually gimbaled camera and 802.11 to create a system which makes users feel like their eyes have been transported to a remote robot.The system can support multiple points-of-view, has no moving parts, supports 3 degrees of freedom and matches head orientation instantly.
- Super Resolved Video MTI: Proposed and lead the development of a system that reduces the amount of bandwidth required to disseminate aerial surveillance video and also enhances the quality of the video images.Instead of sending full motion video, we send georegistered image chips of objects of interest (e.g. cars & people) from video sensors along with periodic key frames which show the object's surrounding area. A super-resolution algorithm is applied to combine multiple video frames to achieve a higher resolution image for enhanced object identification and tracking. This enabled higher quality surveillance video data at a fraction of the bandwidth.
- Video Indexing System: Designed and developedvideo processing algorithms andhelp manage contractors. Designed and implemented real-time feature extraction algorithms and data models for color clusters, hue histogram, shape and kinematics. The metadata and video are stored in a DB which supports queries based on location, time, and features. The interface allows users to point at an object in the video and search the DB for similar detected at different time and place.
- Next Gen HPC for Airborne Radar Processing:Co-lead for engineering initiative to evaluate parallel software and hardware technologies for next generation airborne radar mode processing.
Software Engineer
7/2002 – 5/2006 Mercury Computer Systems, Chelmsford, MAResearch, design, and implementation of software for real-time embedded multi-computer systems that are used to process a variety of streaming data. Significant work in operating systems, middleware, and tools as well as recent work in application design. Project Highlight:
- Multi-computer application Reference Designs– Implement reference application designs that are highly optimized for a Mercury Multi-computer. Image & signal processing
- Computer Aided Multi-computer Application Design(CAMAD)–Proposed and designed computer aided multi-computer application design tool with the goal of making multi-computers easier to program, decrease time to market, and achieve optimal performance. A high level description of an algorithm's data flow as well as a separate description of the multi-computer is interpreted by the CAMAD tool to help the programmer better design the multi-computer application.
- LinuxCE (Linux Compute Environment)– Helped design and implement an embedded Linux distribution. Our team took LinuxCE from concept to product. LinuxCE is tailored to run fast on the processors within Mercury's multi-computers. Initial performance was 10-100 times slower than our proprietary OS but optimizations brought LinuxCE performance above and beyond our proprietary OS all while leveraging Linux's capabilities. I helped optimize and implement user space DMA transfer libraries, Multi-computer POSIX semaphores, and TCP/IP/UDP over Race++/RapidIO fabric. Also selected and built cross-compilers, RAM Disk, and standard UNIX utilities (busybox, tinglogin, inetd, etc.).
- Reliability Availability Serviceability (RAS)– Helped design and implement RAS middleware for the PowerStream multi-computer product line which allows a programmer to detect and respond to hardware failure events. The RAS middleware talks to an IPMI (Intelligent Platform Management Interface) aware BMC (Board Management Controller) to access the status of sensors and control the hardware. For example, the application programmer can register a handler function for a "processor overheating" eventwhich detected by the BMC. The handler functions can tell the BMC to adjust the fan speed, or shutdown part of the computer and reorganize the application.
Software Research Fellow
1/2001 - 7/2002 UMass Compilers and Parallel Systems Laboratory, Lowell, MAResearched computer languages, compilers, architecture, operating systems, and applications with a focus on multi-computers. Highlights:
- Parallel Image & Signal Processing Algorithms– Developed parallel programs in C and ZPL including Edge Detection, Connected Components Object Segmentation, FFT spatial-frequency/phaseimage analysis, Synthetic Aperture Radar (SAR), low/high pass filtering, convex hull, and more.
- ZPL Compiler – Created a ZPL (Z Programming Language which is an implicitly parallel language) compiler and prototyped adding a pipelining capability to the language.
- Boot Loader – Created a XINU operating system boot loader for 486.
Education
9/2000 – 12/2003 UMass, Lowell, MA, Bachelor's Degree in Computer Science- Magna Cum Laude, Computer Science GPA 4.00. Overall GPA 3.77.
- Course Highlights:
- Graduate Operating Systems I & II
- Graduate Compiler Construction
- Graduate Theoretical Foundations of Computer Science
- Honors Intro. to Operating Systems
- Analysis of Algorithms
- Digital Logic
- Private Pilot License with Instrument Flight Training. Over 250 Total flight training hours
- Course Highlights:
- Aerodynamics
- Aeronautics I, II, III, and IV
- Principles of Navigation
- Aircraft Systems and Components
- Meteorology I, and II
- Flight Physiology
Skills
- Real-time Multi-computer (parallel) applications, middleware, and programming tools
- Computer Vision, Video & Image Processing
- C/C++ Programming
- OpenCV
- ZPL (Parallel Programming language)
- LaTeX
- Lex and Yacc
- GNU Build Tools
- Linux 2.6 Operating System Drivers Applications
- RAS (Reliability Availability Serviceability) software
- Clarify (bug tracking software)
- ClearCase, CVS (versioning tools)
- Microsoft Project (planning tool)