|
|
RAYTHEON
|
September 12, 2005 - Present
|
|
Senior Principal Software Engineer
|
|
Clearance: DOD Top Secret
- Software architect for the Aerial Common Sensor (ACS) proposal team to
integrate sensors to analysis and SOA based enterprise system.
Researched software architecture options and developed software component and connectivity diagrams to define the scope of the software development effort.
- Led a small software development team to create a more modular, more flexible, multi-platform productized framework for sensor simulation and developed sensor simulation software using the framework. The software was written in C++ using STL, boost libraries, Apache/Xerces, Apache/ActiveMQ and native Linux libdl() and Microsoft LoadLibrary() to support a plug-in architecture.
I developed and employed the following approach to manage the developer team and software development:
- Used Trac "Roadmaps" and "Tickets" to define tasks of tangible scope for developers.
- Constantly solicited input and encouraged discussion on how to approach each task to come up with the best solutions and develop a healthy team environment. While I often initiated design concepts and architectures, they were always reviewed and improved by soliciting developer inputs.
- Led design and code reviews to enforce good programming practices and sound logic.
- Coordinated regular meetings and telecoms to support the project.
- Our team employed UML designs in MagicDraw, dOxygen generated documentation (from C++), web based CM (Subversion) and tasking/tracking (Trac) with tight group communication, coordination and involvement. The Trac Wiki also provided us a medium for community based documentation of our software.
- Regression tests were were developed and integrated into the Cabie build system. Thus each check-in of new code was regression tested.
- Trac "Tickets" were tied to MS/Project WBS items for scheduling.
- Raytheon El Segundo representative and member of a Configuration Management (CM) Working Group for an enterprise development project.
Coordinated with many of Raytheon's divisions to manage CM between the groups, develop procedures and best practices for software CM, architecture, development, testing and deployment in computer simulation labs at various levels of DoD security.
- Installed, configured and integrated Subversion (Change Management) system, Trac (development roadmap and bug tracking) and
Cabie (continuous / nightly build and regression test), all authenticated with NIS.
For more information on installation, configuration and use, see my tutorials at YoLinux.com:
Subversion and Trac,
Cabie.
- Installed IBM Rational Clearcase change management (CM) systems on Linux
development computers.
Configured Linux computers for software development use by selecting and
installing development tools (kdiff3, gtkdiff, tkcvs, SVN, Eclipse/CDT,...)
- Ported C++/FORTRAN based simulation software from SGI/IRIX to Linux.
Developed Xerces-C based configuration file parser.
Linux based development environment includes Eclipse/CDT and Subversion.
- Active participant in a software development process improvement project
(Raytheon Six Sigma) to facilitate project's multiple security level
requirements and multi-platform development environment.
- Training:
- Ruby scripting
- Tcl/Tk scripting
- Java 1.6 and Netbeans
- Effective C++ (based on the book "Effective C++" by Scott Meyers)
|
|
NORTHROP-GRUMMAN
|
September 2002 - July 8, 2005
|
|
Software Architect/ Project Technical Lead/ Senior Programmer
|
|
Clearance: DOD Secret
- Created and updated Rational Rose UML diagrams to reflect architecture of SBIRS ground system archive software.
UML use case, sequence diagrams and class diagrams (via C++ reverse engineering) were generated or updated.
- SBIRS/SPOTS satellite payload sensor state of health software architect.
This included performing an audit of the systems, recommendations and
finally the implementation of improvements to create a stable operational
environment and create an effective development environment with the
appropriate tools.
- Software lead and programmer for SBIRS STE/HKTB/PALCOMS payload test
lab system which acts as
the host satellite interface with the SBIRS payload sensor.
Used our intranet to develop a local intranet web site to support communications among the developers.
Used MS/Visual C++ and National Instruments
NI-DAQmx API to interface National Instruments PXI/SCXI data acquisition
hardware (analog and digital) to read payload state of health sensors.
This application uses the GTK+ API for the GUI and GNOME threads which were
spawned to perform the data acquisition for display in the GUI.
Defined the XML schema and generated C++ classes using the
Gnome/libXml2
API to parse and generate DTD/XML files which store the application configuration.
Source code comments incorporating dOxygen tags were used to auto-generate
HTML software documentation and class diagrams.
Generated C++ classes and widget methods using Gnome
GTK+ cross platform GUI
API. Developed software on Linux and MS/Windows 2000/Visual C++ for
deployment on Microsoft Windows 2000.
- Architect and programmed a sockets based data distribution system for
a telemetry data stream. Project implemented CORBA
(omniORB) and C++
to provide a multi-platform API for distributed satellite analysis software
tools to request telemetry data streams.
- Architect and active developer on a coordinated, distributed, computing
software system to manage tasks for a satellite sensor ground system.
Defined Oracle database schema and generated access routines implemented using
Oracle PRO*C in C++. Software was designed with a strong emphasis on
generic and flexible software functionality with specific and detailed operation
provided by the database records and user selections.
This core philosophy of architecting software by separating specifics
from general function allows for greater software reuse and extensibility.
Object class scope defined to follow this philosophy.
- Participate in software architecture and development strategy for
Space Based Infrared Satellite (SBIRS)
state of health telemetry monitoring software and hardware infrastructure.
- Successfully integrated Linux development workstations into the corporate
Microsoft Windows network based environment.
- Lead effort to define and implement software development environment,
systems configuration and infrastructure for Unix/Linux systems.
- Evaluation of Harris OS/Comet
Satellite telemetry commercial off the
shelf (COTS) product and integration with SBIRS telemetry stream.
OS/Comet scripts and C software implementing sockets, written to accomplish
this effort.
- Training:
- ESD training for working with satellite hardware.
NASA STD 8739.7 ESD Certification
- Attended IBM training in Rational Rose UML modeling tool.
- Borland trained in Together Control Center UML modeling tool/IDE.
- Parasoft trained in C++ test.
|
|
Consultant
|
April 2001 - August 2002
|
|
Senior Programmer/ Systems Administration
|
|
- Consulting for Formfactor (part time). Linux server administration
including FTP server configuration, Tomcat/Apache JAVA servlet
web server configuration.
- Consulting for the web hosting service Spiderlink.com (part time)
- Consulting and proposal development for Cosmos Engineering. Developed plan to introduce to an Los Angeles based insurance company, LDAP for authentication and email address directory and contact list database.
- Developed the Linux tutorials web site,
http://YoLinux.com.
This popular Linux site has had rave reviews on NewsForge.com and Linux.com.
Wrote extensive Linux programming and administration tutorials for the
YoLinux.com information portal.
Web site receives an average of over 18,000 page views a day.
- Web page development for search engine ranking (SEO).
- Developed the commercially available web front-end
aWebDap
software for an online LDAP database for a fraternity alumni group.
Work entailed installing and configuring an
OpenLDAP server as well as its
content and security schema. Web front-end written using GNU C++ CGIcc tool kit and the OpenLDAP SDK on Linux.
- Software development and maintenance of the IBM Digital Media Distributor
(DMD) product. This complex project is dedicated to distributing MPEG-2 media
for major broadcasting customers from their central site to broadcast network
affiliates.
System allows media to be encoded, archived, scheduled, transmitted, tracked
and verified.
My work was concentrated on the central server using C++ on AIX
for a multi-threaded (POSIX threads) application
using DB2 and Lotus Notes C++ API classes and libraries.
- Development environment included IBM's software development
tools such as the XLDB debugger, CMVC source code control and bug
tracking system and
Zero Fault memory error
detection software.
To enhance the development environment I introduced the open source tools,
vim, ctags, xemacs and mgdiff for the AIX environment.
- Backup AIX sysadmin.
- Installed and configured complete hardware and software web site
infrastructure. Site included
a Linux web, mail and ftp server, as well as a primary and a secondary DNS.
I configured this internet site with Apache virtual name hosting,
sendmail, postfix (SMTP), pop3, mail forwarding, wu-ftp accounts, LDAP
and bind DNS.
- Responsible for securing the systems with kernel upgrades,
secure shell daemon (ssh), portsentry, tripwire, firewall rules (iptables/ipchains), proper
logging and configuration as well as preliminary content.
Disk quotas were invoked on user accounts as well as restricted wu-ftp
accounts chrooted to their web content directories.
- Configured "analog", the web log analyzer to present the
apache web logs in a graphical and web available format.
- Wrote shell scripts to automate much of the site and account management.
- Software maintenance and enhancement to existing
MS/Visual C++ NT client.
- Custom, in-house CAD system migration from SunOS 4.1.3 to Solaris.
- I investigated and demonstrated advanced features of Oracle 8 on NT for
possible implementation.
This included the Oracle application server (4.0), replication,
the creation of DLL's for external procedure calls, some OCI programming and
web serving Oracle forms.
Multimaster replication and external procedures were then chosen to be
implemented for a shipyard teaming application for which I was the programmer.
Wrote software for sockets communication between Windows NT client
and a UNIX inetd controlled process on an HP/UX server. Created
UNIX server side processes which integrated with an existing workflow system.
For this task I also created a direct interface to an SMTP e-mail server
which was callable from PL/SQL.
- Created a client-server (PC-Unix) application which works within the
JCALS workflow software environment.
This required the use of MS/Visual C++ (4.0), MFC and JCALS API
on a MS/NT PC system for the client and C on a HP/UX UNIX server.
This client/server software incorporates the
use of sockets programming for client to server communications and
the JCALS C++ classes.
- Added new functionality to a GII interactive function for
the CATIA CAD/CAM system utilizing a mixture of C and Fortran in the
IBM AIX and MVS environments.
Software added graphics in support of manufacturing functions.
- Utilized Oracle 6 in
conjunction with custom applications in
Computervision
CAD/CAM software. Wrote Oracle PL/SQL, SQL*Forms (3.0)
and Pro*C (1.3) applications. Also wrote Computervision applications
in "C" utilizing many of its native database access
and geometry routines.
- Due to the departure of a CSC employee, the state of organization
of the in-house Computervision software applications was at first
unknown and undocumented. To bring structure to the environment
I created an intranet by installing web servers
(apache) on nodes used as
code or documentation repositories
and developed web pages pointing to programmer information, source
code (CVS and cvsweb), change requests and to existing vendor documentation.
The concept was later extended to other software development projects.
HTML forms and CGI scripts were written to add dynamic code documentation
and an integrated source code control environment.
CATIA software programmer:
July 1996 - Nov. 1996
- Contract Engineer with AG Systems in Bell Helicopter MIS group.
Major task was to port software from IBM/MVS mainframe to the IBM AIX workstation.
Wrote many routines on the workstation to mimic mainframe dependencies.
- Installed an intranet based on
NCSA software to document and
organize the task. Web pages were used to document the software
with hyper-links pointing to source code on both workstations
and mainframe (served by GOPHER server). Wrote many CGI routines to
process data or to submit remote procedures from web pages.
Software Developer and Stress Analysis Engineer: May 1994 - Jan. 1995
- Contract Engineer with
B & M Associates in
V-22
Osprey Stress
Analysis group. Generated software to support structural analysis
engineers. Finite element analysis of V-22 structure using
MSC/
NASTRAN,
CATIA/MESH,
PATRAN
on IBM/AIX/RS6000 workstations.
- Software development in C on Unix of finite element engineering tools for free-body
analysis and the removal of rigid body motion from results data.
Both tools calculate data derived from NASTRAN results for display by
the PATRAN CAD/CAE package.
Software also developed to calculate and apply fuel
pressure loads to NASTRAN structural analysis
geometry model. Software
entailed the development of algorithms, usage of data structures, b-trees,
sorts, searches and broad use of C library functions.
Software Tools Developer and Stress Analysis Engineer: Aug. 1992 - Feb. 1994
- Contract Engineer with
B & M Associates in Lockheed
F-16
Stress Analysis group. Finite element analysis of F-16 structure
using
NASTRAN
and
ABAQUS.
Detailed mesh models of primary structure
were created to provide stress distributions in crack sensitive
areas. Extensive use of
PATRAN,
SDRC/IDEAS and
CATIA/MESH,
for geometry model creation.
- Development of analysis tools in C on UNIX (SGI IRIX and Convex) platforms. Use of
Silicon Graphics/IRIS GL graphics language
for display of parts and analytical results.
Software usually dealt with
large amounts of data thus requiring code profiling of execution to
analyze and optimize software for quick throughput.
SELF EMPLOYED SOFTWARE DEVELOPER Aug. 1991 - Aug.
1992
- Developed a
CATIA
GII (API)
function to read Coordinate Measuring Machine (CMM) part inspection data to
recreate measured points, curve paths or part surface data.
Software was developed for an IBM business partner for resale.
- Worked in joint effort with an IBM business partner and local
manufacturer to develop CATAPT,
a CATIA GII software to generate APT geometry
for manufacturing. This software operates as an interactive CATIA
function and supports curves and surfaces geometry for a variety
of processors to aid manufacturing. CATAPT was used by Menasco to manufacture
the landing gear for the Boeing 777.
- Software was written to act as an indigenous function within
CATIA,
a CAD/CAM package marketed by IBM for structural design and
manufacturing. Maintenance of software continues to present.
GENERAL DYNAMICS/FT. WORTH DIVISION Oct. 1984 - Aug. 1991
Clearance: Secret
Stress Analysis Group 1989 - 1991
- Senior Engineer on the National Aerospace Plane (NASP) X-30 program.
Extensive use of Finite Element Methods (FEM) techniques using
NASTRAN,
ABAQUS,
PATRAN,
and in-house software to analyze composite material structure.
Analyzed and optimized structures in extreme thermal environments
and non-linear conditions. Created many C/Unix (Convex and SGI)
based computer programs in support
of NASP's unique analysis needs, including integrating sizing
and optimization code with the
NASTRAN
model to size structure
based on internal loads.
- Developed software improvements to GD FEM mesh model generation and graphics
program and ported it to the
Silicon Graphics IRIS/4D workstations
from the VAX/VMS environment. This project required use of advanced techniques
in computer graphics, 3-D spatial transformations, SGI C/GL/Unix, mathematical
algorithms applied to CAD geometry and multivariate optimization.
CAD/CAM Engineering Programmer 1985 - 1988
- Programmed many custom software applications using
CATIA and
CADAM geometry
and database interfaces.
- Wrote custom software for geometry transfer from CADAM and CATIA
to MATRA Datavision Euclid system.
- Wrote custom application for grid generation from CATIA surfaces
for CFD aerodynamic analysis.
- Wrote wiring harness flat pattern development software using geometry
from CATIA mock-up.
- Working knowledge and experience with CATIA surfaces, solids,
Numerical Control (NC) and draw mode functions. Taught GD in-house
CATIA courses.
- Evaluated CAD/CAM/CAE systems and hardware.
- General Dynamics representative to
IGES/PDES Organization's Curves
and Surfaces geometry committee contributing to the
IGES
standard and to the mathematical definitions of geometry used in PDES.
Wing and Empennage Group 1984
- Structural design and support for
F-16
. (Extensive use of CADAM)
|