Resume for Sarir Khamsi
Email: sponge at futureone dot com
|
Skill |
Since |
Usage |
|
C++ |
1994 |
frequent (developed and teach intermediate and advanced classes) |
|
Java |
1997 |
light and intermittent |
|
Python |
2003 |
moderate to frequent (developed and teach intro classes) |
|
Perl |
1995 |
moderate, till I learned Python |
|
C |
1987 |
frequent, the first 8 years |
|
UNIX shell (bash) |
1997 |
moderate |
|
Rational Rose, Borland Together/Control Center (UML design tools) |
1997 |
moderate to frequent |
|
VxWorks embedded, real-time programming |
2002 |
moderate to frequent |
|
Generic Modeling Environment (GME) 3.x |
2004 |
light |
|
Windows NT/Win32 operating system programming |
1993 |
moderate to frequent (project dependent) |
|
Visual C++ (.NET) |
1993 |
moderate to frequent |
|
UDP/TCP sockets, including IP Multicasting |
1997 |
intermittent, sometimes frequent |
|
UNIX (SunOS, Solaris, HP-UX) |
1992 |
project dependent |
|
HTML |
1996 |
moderate |
|
8086 real-time embedded, ISA bus structure |
1989 |
project dependent |
|
ObjectBench |
1996 |
light |
|
XML |
2000 |
very light study at home |
|
Linux |
2003 |
light to moderate |
|
Apache, MediaWiki (w/ PHP & MySQL) |
2004 |
light usage (frequent Wiki usage) |
Harvard Extension School/Harvard University, Spring 1995 - Windows NT Programming, Fall 1995 - Object Oriented Programming in C++
MIT/Lowell Institute, Fall 1993 - Spring 1994. C++ Programming, X-Windows System Programming
Masters
Degree in Electrical Engineering
May
1989, Worcester
Polytechnic Institute, Worcester, Massachusetts.
Graduate classwork: radars, image processing, digital signal
processing, matrix math, filter theory, electromagnetics, numerical
analysis, complex variables and linear systems.
Bachelors Degree in Electrical EngineeringSeptember 1982, University of Massachusetts at Amherst
Senior Principal Software Engineer: Raytheon, Tucson, AZ
July 2001 – present
Position: Member of the Advanced Programs department performing a variety of software tasks both in embedded and non-embedded environments.
Nov 2009 – present
Killer Bee: Designed and developed message passing framework in C++ (with Boost components) under Linux for project’s mission computer. Co-designed flight software in C++ under VxWorks to host guidance and auto-pilot algorithms for real-time flight system.
Mar 2009 – Oct 2009
Provided technical input and C++ training to simulation team. The simulation included 6DoF and scene generation components.
Sep 2005 – Feb 2009
CCLR: Design and developed ground station software, in C++/Win32, to display near real-time images for target tracking via fiber-optic datalink to a small autonomous vehicle.
Jan 2005 – Aug 2005
Designed and developed a new build (compile and link) system, written in Python, to replace an out-dated UNIX shell script-based system. This implementation included a highly configurable design, with logging, built-in help, object serialization, and a flexible initialization file format. It was developed under Cygwin and deployed under Solaris 9.
Apr 2004 – Jan 2005
Worked with Vanderbilt University’s Generic Modeling Environment (GME) tool to design a Domain Specific Modeling Language (DSML) for a signal processing chain challenge problem. This was part of a research capture strategy to investigate leading-edge modeling technologies for application to real-world problems.
Jan 2004 - Apr 2004
Designed and developed a message-passing architecture for a distributed test system. This was very similar to the NetFires project mentioned below with the addition of a more flexible scripting engine. It was written in C++, using the Win32 API, sockets, multi-threading, and object-oriented methodologies.
July 2001- Jan 2004
On the NetFires project tasked to design and develop the ground software for a launcher. Responsibilities included:
Software technical lead and chief architect for development under Windows 2000 in C++ (the architecture included such components as: multi-threading, TCP & UDP sockets, synchronization classes, and IPC to name a few)
Designed and developed networking code (TCP sockets) for a missile radio in an embedded, real-time environment
Mentoring junior engineers
Interface a C++ program with a Java program (including some Java programming)
Currently involved with investigating emerging technologies in Model Driven Architectures (MDA)
Accomplishments: 2001 - present
Designed and developed all of the architectural code for a launcher system of networked computers
Received Raytheon’s 2002 Excellence in Technology award
Published an article titled “A Class for Handling Shared Memory Under Win32” in the May 2003 C/C++ Users Journal
Developed an advanced C++ training class for Raytheon Learning Institute
Submitted three invention applications as a pretext for a patent application
Gave several presentations on various C++ topics, sockets, regular expressions, and the Unified Modeling Language (UML)
Made major contributions to the existing C++ coding standards
Wrote several Perl scripts that generated about 40% of the architectural components in C++ (for the NetFires project)
Senior Software
Engineer: Raytheon,
Kwajalein, Marshall Islands (direct hire)
June 1997 –
June 2001
Member of Systems Engineering group tasked to
upgrade a range safety system using an Object Oriented (OO),
multithreaded design in C++ under Windows NT in a distributed network
environment. Responsibilities included:
Software lead for NT development
Design, develop, test, integrate and document (MIL-STD-498) OO software written in C++ under Windows NT with aid of Rational Rose using UML notation
created C++ class hierarchies for Win32 API system calls including mutexes, events, semaphores, named pipes, TCP and UDP Multicast sockets, asynchronous I/O, memory mapped files, multithreading and multi-process control
made frequent use of the Standard C++ library, including the Standard Template Library (STL)
Developed tools for Configuration Management (CM), software development and testing using Perl
Gave presentations to customer and co-workers.
Major accomplishments:
Designed and developed most of the C++ classes for the architectural components, including thread and process creation and synchronization, inter-process communication
Purchased and maintained the group's file server running NT Server
Developed procedures for design and code reviews
Helped to architect a system design that was highly maintainable and enabled large amounts of code reuse with consistent interfaces throughout.
Accomplishments beyond required responsibilities:
Developed Web pages, in HTML, for internal use
Created GUI-based programs in Perl/Tk to aid development, system test and develop user-friendly interfaces
Started research into XML for use for uniform data collection and processing.
Senior Software
Engineer: Motorola,
Chandler, AZ (contractor)June
1996 - June 1997
Member of Payload Software team for the
Iridium Project. Responsibilities included:
C++ programming under SunOS UNIX for a software development phase to add satellite (payload) communications functionality for embedded PowerPC processors
Used ObjectBench as an object oriented design and simulation tool
Performed white box testing on added functionality
Designed and developed a testing environment in Perl, including libraries and coding standards to place the satellite into an initial condition as a prerequisite for testing.
Accomplishments beyond required responsibilities:
Developed Web pages, in HTML, for internal use
Wrote small Java applets for automating tasks and
Gave classes and presentations on GNU Emacs, Perl and regular expressions.
Senior Software
Engineer: The
MathWorks, Inc., Natick, MA (direct
hire)May
1995 - May 1996
Member of the PC development group.
Responsibilities included:
Designing internal tools in Perl 5, C, C++ and Bourne & bash shells under Windows NT, 95 and UNIX for the build and test process of software development
Fixing bugs in the core MATLAB product for a major release
Evaluating and installing software for development and UNIX to Windows NT/95 connectivity
Consulting with the PC network group on Windows NT file server structure for a new LAN
Major accomplishments:
Introduction of Samba for UNIX to PC connectivity
Promotion of Perl as a good cross-platform scripting language
High level of documentation for processes and creation of a "Frequently Asked Questions" document.
One project involved writing a directory synchronization program in C++, using Visual C++, for cross-platform (UNIX and Win95/NT) use.
1994-1995
Object
Oriented Programming (OOP) in C++ Class Project:
Design and
development of an object oriented, multithreaded program on Windows
NT using the Win32 API to (mathematically) process arbitrarily large
data streams with delayed execution. OOP and C++ features included
encapsulation, polymorphism and exceptions.
Windows NT
Class Project:
Design and development of an object oriented,
client/server remote file viewer written on Windows NT in C++ using
Win32 API features including Inter-Process Communication (IPC) via
named pipes, multiple threads, Structured Exception Handling (SEH),
synchronization via events, memory mapped files and dynamic linked
libraries (DLL).
Note 1: Started using Windows NT in November 1993
Note 2: Total time at MIT Lincoln Laboratory: January 1983 - May 1995
Associate Staff Member:
Massachusetts Institute of Technology - Lincoln
Laboratory, Lexington, MA (direct
hire)September
1993 - April 1995
Responsibilities included:
Design and development of test software for an experimental communications satellite using
C++
X-Windows (X11R5), Motif (1.2)
UIM/X (graphical development tool)
under UNIX on a Sun SPARCstation running Solaris 2.3. Functionality included:
graphical user interface design
data logging
serial port communication
network communication via TCP sockets
instrument control via Ethernet-to-IEEE 488 (GPIB) converter
data display/plotting.
Design and development of bi-directional serial communications delay simulator written in C++ under UNIX to simulate typical satellite transmission delays.
January 1993 - April
1993 and July 1994 - August 1994
Design and development of a
Microsoft Windows 3.1 program in written C and C++ to display
satellite telemetry in real-time, developed under Windows 3.1 and
Windows NT 3.1 using the Windows SDK and Visual C++ 1.5. Program
functionality included Multiple Document Interface (MDI) techniques,
flexible data display, date logging and RS-232 I/O.
May
1989 - August 1993
Design and development of software for an
experimental optical satellite's acquisition and tracking sub-system,
written in C and Intel assembly language, on an IBM PC using DOS and
VRTX (a real- time and multitasking operating system). Program
functionality included mechanical shutter control, real-time software
servo loop control of mirrors, spiral scan pattern calculation and
generation for acquisition and tracking and boresighting
procedures.
March 1992 - December 1994
System
administrator for an HP-750, multi-user UNIX workstation involving
operating system updates and maintenance of HP's Microwave Design
System (MDS) microwave CAD software.
January 1983 -
February 1989
Management of a Hewlett-Packard HP-1000
multi-user mini-computer system including developing and debugging
instrument control (GPIB) routines in FORTRAN, to perform automated
Radio Frequency (RF) sub-system tests on an EHF communications
satellite.
March 1989 - May 1989
Support and
modification of post launch tests, also in FORTRAN, on a VAX/11-730
running VMS.
C++, C, Perl 5, Python, HTML, Java (some working knowledge), and UNIX shell (bash), Emacs Lisp.
Microsoft Windows 3.x/NT/2000/XP, UNIX/Linux, (Solaris and SunOS), VxWorks
Subversion, WindRiver's WorkBench, Rational Rose, Borlan/TogetherSoft’s Together/Control Center, ObjectBench (with Shalaer-Mellor methodology), Microsoft Developer Studio .NET/Visual C++, GNU Emacs, lint & Gimpel's PC-lint, NuMega's DevPartner (BoundsChecker, TrueCoverage), Microsoft CodeView, MultiScope (Windows 3.x debugger), RCS, VSS, and CVS (version control), UNIX make and UIM/X graphical user interface builder tool for X-Windows/Motif.
Music, creative writing, soccer, skiing, scuba diving
Available upon request
US Citizen (yes, I speak English :-)
Secret level clearance
Homepage: http://www.futureone.com/~sponge
Last modified: $Date: 2010/12/20 03:39:04 $