GREGORY IPPOLITO

(310) 702-5469 (cell)
Email: Greg2 at the domain of GregIppolito dot com


OBJECTIVE

Lead a technical team or participate in the design and/or development of C++/Java based applications on Linux or Unix. Would like to focus on the design and development of applications for internet/intranet, database environments, engineering 3-D CAD/CAM applications, scientific or graphics software.

SKILLS

SUMMARY

Over 20 years of experience in C/C++ software design and development on Unix, PC, mainframe and supercomputing platforms. Complete product cycle development from architecture to delivery with expertise in a diverse range of technologies and industry settings. Strong emphasis on software architecture and object oriented methodologies for elegant design, component reuse, extensibility and maintainability. Extensive experience in application programming for client server and distributed systems (sockets,Unix/inetd,CORBA), internet/intranet, Unix server administration, web site development (HTML and CGI programming), databases (Oracle, DB2, MySQL), workflow (JCALS), computer aided design/manufacturing CAD/CAM (CATIA,CADAM,Computervision), and structural analysis CAE (PATRAN,SDRC). Extensive programming of engineering CAD/CAM and analysis software applications. Software development using C/C++, C++ STL, Fortran, Oracle Pro*C and mixed C/Fortran environments on UNIX and MVS. As a member of LILAX (Linux at LAX: See May 12,2001 LDAP presentation), LULA (Linux Users of LA.) and ECLUG (Eastern Connecticut Linux Users Group), I have shared and enhanced my technical expertise with Linux. I created, maintain and provide content for the Linux information portal, YoLinux.com [Linux tutorials]. Experienced in Microsoft Visual C++ (4.0-6.0) and MFC on NT, Windows 2000 and XP. My strongest proficiency is on the Unix and Linux platform with UNIX and open source development tools.

PROFESSIONAL EXPERIENCE


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.


INTERNATIONAL BUSINESS MACHINES (IBM) (Global Broadcast Solutions Group - relocated from Santa Monica to Baltimore) July 2000 - March 2001
Contract Programmer with Sai Software Consultants, Inc..

  • 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.


MEGAWEBHOST.COM Jan. 2000 - present
Webmaster/ Developer

  • 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.


COMPUTER SCIENCES CORPORATION (CSC) (Technology Management Group) Nov. 1996 - Dec. 1999
Contract Software Programmer with AG Systems.

  • 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.


BELL HELICOPTER

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.


LOCKHEED FORT WORTH COMPANY
(was General Dynamics/Ft. Worth Div.)

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)

EDUCATION

Project Management Certificate Program, 2004 (10/2003-10/2004)
University of California at Irvine

Fall semester of courses (C++ and Object Oriented Programming, Algorithms and Data Structures) in Computer Science and Engineering, 1995
University of Texas at Arlington

MASTERS OF SCIENCE MECHANICAL ENGINEERING, 1984
University of Michigan, Ann Arbor MI

BACHELORS OF SCIENCE AEROSPACE ENGINEERING, 1983
University of Michigan, Ann Arbor MI

BACHELORS OF SCIENCE MECHANICAL ENGINEERING, 1983
University of Michigan, Ann Arbor MI

IBM RS/6000 training in AIX, AIX internals, AIX administration, LAN communication, and OSF MOTIF. An IBM short course in SQL was also attended.


http://www.yolinux.com/resume.htm