Resume for
SARIR KHAMSI
Email: sponge at futureone dot com

home


Skills Summary

Skills: Programming Languages

Since

Usage

C++

1994

frequent

Python

2003

moderate to frequent

Perl

1995

moderate to frequent

C

1987

frequent, the first 8 years

Java

1997

very light and intermittent

UNIX shell (bash mostly, tcsh when I have to)

1997

frequent

Emacs Lisp

1995

light and intermittent

LaTeX

2006

light

XML

2000

very light study at home

HTML (not really a language)

1996

moderate

make (sort of a language)

1990 something

light

 

 

 

Skills: Operating Systems

Since

Usage

LAMP: Linux, Apache, MySQL PHP

2004

light usage (frequent MediaWiki usage/maintenance)

Windows NT/Win32 operating system programming

1993

moderate to frequent (project dependent)

Tornado/VxWorks embedded, real-time programming

2002

moderate to frequent (project dependent)

UNIX (SunOS/Solaris, HP-UX: some POSIX)

1992

project dependent

8086 real-time embedded, ISA bus structure

1989

project dependent

 

 

 

Skills: Other Stuff

Since

Usage

Visual C++ (.NET)

1993

moderate to frequent (depending on project)

UML design tools:  Rational Rose, Borland Together Architect

1997

moderate to frequent

UDP/TCP sockets, including IP Multicasting

1997

intermittent, sometimes frequent

ObjectBench

1996

light (just for one project)

GNU tools (gcc/g++, etc)

1995

moderate to heavy

 

AVAILABILITY

Tucson, AZ is the only area I am interested in, unless something amazing comes along.

EDUCATION

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 Engineering

September 1982, University of Massachusetts at Amherst

EXPERIENCE

Senior Principal Software Engineer: Raytheon, Tucson, AZ

July 2001 – present

Member of the Advanced Programs department performing a variety of software tasks both in embedded and non-embedded environments.

 

Oct 2005 – Present

Working on a DARPA funded project that requires a small plane to fly around, relay real-time images, and display them to the user. This work involves coding for a simulator, embedded software, and a ground controller. The buzzwords include: C++, Python, bash, OpenGL, image processing, Subversion (for configuration management), and MATLAB.

 

Jan 2005 – Sep 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.

Graduate Classroom Work

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.

PROGRAMMING TOOLS

Rational Rose, Borlan/TogetherSoft’s Together/Control Center, Tornado/VxWorks, 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.

 

INTERESTS

Music, creative writing, soccer, and skiing.

REFERENCES

Available upon request

MISC.


Last modified: $Date: 2006/04/03 05:08:15 $