Cal Crowley email: crowleycal at netscape dot net EDUCATION --------- B.S., Computer Science - The Evergreen State College, Olympia, WA - 1987. EXPERTISE SUMMARY ----------------- Virtualization Technologies: VMware, MS Virtual PC, Sun/Oracle VirtualBox. JMS (Java Messaging Service), JBOSS, Web Services, and Windows NT Services. Migrating Windows Server 2000 Software to Windows Server 2003 R2, Migrating UNIX Software to MS Windows NT/2k/XP/Win7, HTML/Javascript Web development, C/C++/Java/C# Applications/Services Software Development and SysAdmin work. Extensive: --------- * Windows Server 2003 R2 and Solaris 10 x86 tight Security lockdown scripts. * Coding programs/GUIs/services/scripts in C/C++/Java/C# and shell scripts. * Porting software, across operating systems and hardware architectures. * Object oriented, reusable, UNIX networking client/server software in C/C++. * System V InterProcess Communications (semaphores/shared memory/messages). * Multiprocess UNIX apps, threads, and signal/message/event driven systems. * Distributed data systems using UNIX client/server models (X, BSD Sockets). * UNIX System and Network Administration (Solaris, HP-UX, AIX, Linux, SYSV). Moderate: -------- * Link Layer network programming (RARP clients: HP-UX LLA, Sun NIT & DLPI). * DBMS (Informix, Oracle, Sybase) forms, triggers; conversion coding in C++. * HP Starbase (with the X11 driver) graphics application maintenance in Ada. Hardware & Operating Systems ---------------------------- Extensive: --------- * Intel pc's running Solaris x86, Linux, Windows NT/2k/XP/2k3r2/Vista/Win7. * Sun SPARC's running Solaris, and Sun Motorola 68k Sun-OS 4.x.x platforms. * HP 9000 series 200, 300, 400, 700, and 800 machines running HP-UX. * IBM RS-6000 workstations running AIX. * Wicat Motorola 68000 (m68k) platforms running V7 or System V UNIX. * AT&T 3B2, PC7300 (3B1), PC6300+ boxen running UNIX System V Release 2. Moderate: -------- * DEC Vax under Ultrix (BSD4.2 UNIX). * NextStep; Desqview/X, Microsoft Windows 3.x; Apple MacIntosh OS X. * Data General MV10000, MV8000 mini-computers under AOS/VS. Languages, Tools & Databases ---------------------------- Extensive: --------- * Java, C#, C++, C, X/Motif, gcc, make,(F)LEX, sh, ksh, (t)csh, cflow, adb, xdb, gdb, dbx, HP Softdebug, (g)prof, Saber-C (CodeCenter/ObjectCenter), UIM/X (HP Architect), Teamwork, Framemaker, vi, sed, grep, awk, find, Perl, Tcl/Tk, Informix and ESQL/C, SQL, nroff (-man macros), regex, ed. Moderate: -------- * MS Visual Studio, YACC/Bison, Ada, HP Softbench, Oracle(SQL*Forms), emacs, Sybase, MESA & sc (spreadsheets), Intel assembler(MASM), Pascal, Fortran. Networks & Protocols -------------------- * HTTP, SMTP, DNS/BIND, TCP/UDP/IP, Telnet, FTP, POP3, X Window protocol, NFS, RARP/BOOTP/DHCP, RIP(gated), NIS+, PPP, ARP, TFTP, Sun RPC, DCE/RPC. Works-In-Progress, Latest Projects & Expanding Abilities -------------------------------------------------------- * JMS (Java Messaging Service), JBOSS, Web Services, C# .NET Framework. * HulaBats -- a collection of UNIX-like commands for Windows. * josh - Java job shell, a UNIX-like shell coded in Java. * Objective-C programming for Apple Mac OS X. PROFESSIONAL-TECHNICAL EMPLOYMENT --------------------------------- Sr. Software Engineer Northrop Grumman - Technical Services 10/95 - present ------------------------------------------------------------------------------ Most Recent Activities ---------------------- Was employed at Northrop Grumman Corp. Technical Services in Lakewood, WA as a Software Engineer on the DCGS-A v3 Weather project working with JMS (Java Message Service) within JBOSS, and Java Web Services. Programming was in Java. VMware administrator for the team installing and maintaining VMware ESX Server on IBM Blade Center stacks and other standalone Intel based hardened servers. Previous Activities ------------------- * a Lead Technical Software Engineer for the IMETS ABCS 6.x system Involved in porting and enhancing a Windows Server 2000 fielded IMETS system over to the Windows Server 2003 R2 platform, integrating U.S. Army Research Laboratory (ARL), PSL and NGC developed weather software into a consolidated weather intelligence product called the Integrated METeorological System or IMETS, for short. Programming languages used were: Java, C++, C# and Perl. * IDAS (IMETS Data Acquisition System) Developer Lead developer of the IDAS system. Hardware: Sun Ultrasparc 10 (4 nic), Intel Xeon Server (4 nic), IBM T41 laptop (3 nic), Dell d800 (3 nic). Operating system(s): Sun Solaris 9 (both sparc and x86) and 10 (x86). Software consisted of three primary Java applications: the controller GUI, the data distributor, and the data disseminator. Also, there were various supporting ksh scripts for launching and configuration. IDAS could feed weather data from AFWA to up to 18 IMETS weather workstations (or more if setup in a daisy chain configuration). It was primarily used in the IMETS school houses or classrooms, and in the developer and test labs. * Weather Data Emulator Developer of software that used canned data to emulate data feeds from various weather data acquisition devices such as the TMQ-53[4] over RS-232 (serial) connections. Programming language was Java. * McChord AFB Wireless Surveys Member of the team that did the Cisco wifi access point placement surveys for the wireless network roll out on McChord AFB. * Miscellaneous SysAdmin Assignments Spent some time TDY doing specialty Sun Solaris System Administration assignments at a couple of remote Army and Air Force bases in Arizona and California. Major Accomplishments --------------------- Initial work began with a straight port of the Block I IMETS system software fielded on HP 9000 s380 machines running HP-UX 8.0 to the Army's Sun Common Hardware/Software (CHS-II) platform -- Sun SPARCstation 20's running Solaris 2.4. After nearly finishing a port of a rather large X/Motif Digital Mapping system in C/Fortran/Perl developed over several years by a diverse group of DoD contractors, the decision was made to abandon the port due to delayed CHS-II hardware delivery schedules, and move on to the next generation IMETS. The work evolved onward from there, developing integration "glue" code, and Java GUI development for current/future (Solaris/Windows) cross platform use. Solaris system administration duties: installing Solaris(Sun-OS 5) operating systems; tuning kernels, file system partitions and swap space; installing software products (such as C/C++/Fortran compilers and Sun Java releases, Redhat Cygwin, GNU tools, PC and MS-Windows emulators and office products); cloning disks; doing backups; setting up a Configuration Management mirror; coordinating development/integration efforts with other IMETS developers &c. Other Past Activities ---------------------- Solaris kernel tuning (proved Informix recommended shmmin parameter wrong!). Developing/maintaining the Communications and Messaging Systems interface. UNIX network administration of the developer lab and office LAN, including administering Internet gateways and Web proxies. Upgraded to UltraSPARCs. Initial prototyping of a quick and dirty first generation menu system in Tcl/Tk led to the design of a next-gen X/Motif menu/program launcher system developed in the C language. Other phases of the project were COE software foundation integration, system building, segment development and testing. --------------------------------- C++ Programmer for BEST - at AT&T Wireless Services, Kirkland WA 6/95 - 9/95 ---------------------------------------------------------------------------- Previously, a C++ contract programmer working for BEST on the AT&T Wireless (McCaw Cellular) Axys Conversion Development Team in Kirkland, WA. The work was performed on HP 9000 Series 8x0 mini-computers from a networked NextStep Object Oriented development environment using HP's C++ compiler/translator under HP-UX v9.04. Major Accomplishments --------------------- The majority of the work focused on C++ programming assignments related to database conversions. IBM EBCDIC legacy database files were converted to bcp loadable format to populate the next-generation Sybase client/server system. Several versions of the conversion program were developed and executed simultaneously to convert the McCaw Cellular markets throughout the U.S. over to the new system. Also, did some HP-UX kernel tuning work for them. Other Activities ---------------- Testing the C++ code, performing mock conversions -- both of which required extensive use of SQL, and some knowledge of cellular telco business cases. --------------------------------- Software Engineer BDM Federal, Inc. - (Omnibus) Ft. Lewis, WA 7/94 - 6/95 --------------------------------------------------------------------------- Previously, the lead Software Engineer working on an interface between the Army Forward Area Air Defense Command Control and Intelligence System (FAAD C2I) and the Air Force Contingency TACS (Theater Air Control System) Automated Planning System (CTAPS), an interoperability task on the Omnibus DoD contract at Ft. Lewis, WA. Work was primarily on the Sun Microsystems SPARCstation 2 in C and Perl with X11 under Sun-OS 4.1.3. HP-UX LLA RARP code was migrated to use Sun's STREAMS based NIT for the ethernet side of the interface. The asynchronous side of the interface used PPP dial-up. Major Accomplishments --------------------- Other work for BDM focused on modifying all the Makefiles of one huge C^3I system so that the sources could be compiled for either X11R4/Motif1.1 or X11R5/Motif1.2 under HP-UX v9.05. Needed to make several modifications to the C language sources to get a clean, error free build, of course. Earlier C language programming tasks included porting the Domain Name Service (DNS) BIND package ('nslookup') to Desqview/X, and adding a plot- ter status query service to the X11 version of the Army Maneuver Control System (MCS v10-X). Completed an Ada language coding assignment to to evaluate adding full-screen support for a HP super-high resolution monitor to MCS v10-X using X and the HP Starbase graphics package. Other Activities ---------------- Performed all the System Administration duties required to get the office HP 9000 s375 workstations newly upgraded to HP-UX 9.03 back up to speed using HP's System Administration Manager (SAM) and UNIX command-line tools. Example: because there were no Sun tape drives available that could read a DAT tape that only the HP tape drives could read, modified all installation shell scripts to break up a very large release package and copy it from DAT tape to two HP Magneto Optical (mo) disks. Then, mounted the HP mo disks to the Sun SPARCstation 2 using NFS, and proceeded to complete the instal- lation onto the Sun hard disk. Basically, system administration activities. --------------------------------- Engineering Applications Programmer/Analyst II Boeing Computer Services - Seattle, WA 9/89 - 7/94 -------------------------------------------------------------------------- Past member of The Boeing Company's Structural Dynamics Laboratory's Prism data system development (~10 person) team. Responsible for the design and implementation of a client/server package to push data from shared memory on client data acquisition hosts over to display servers using C++ (Object Center and cfront), ANSI C and BSD sockets on HP 9000 s715 and s380 boxes running HP-UX 9.03, and to IBM RS-6000 machines running AIX. Major Accomplishments --------------------- Distributed Shared Memory Services (3/94 - 7/94): As architect and sole implementor of client/server processes that distributed data from shared memory on acquisition hosts to display servers, had day-to-day responsi- bility for all major architectural decisions for this piece of Prism. On this project, proved that C++ would be an acceptable Prism develop- ment language. The clients, a server slave process, and the BSD TCP/IP stream socket transport layer library were all coded by me in C++. Data Management Services (9/92 - 3/94): Designed and implemented the Data Management Services to save data from shared memory into Prism files and to reload Prism files back into shared memory. A X/Motif GUI (Graphical User Interface) served as a front-end to the 'save' and 'load' processes. Shared Memory Management Services (9/89 - 9/92): As designer and chief implementor of the 'shm_mgr' server and its client application interface C library, had day-to-day responsibility for a majority of the architec- tural decisions for this Prism package. A complicated semaphore set and shared memory index listing services were some of its key features. This project grew in importance until it was one of the core components of the Prism data system. Other Activities ---------------- Assistant systems administration, Usenet News administrator, UUCP setups. Configuration management and Makefile system maintenance, C library develop- ment and maintenance, X/Motif programming and dialog design. Ported the Prism data system to the HP 9000 s700 and IBM RS-6000 RISC machines from its base HP 9000 s300 m68k platform. Also, developed two configuration file editors with Motif and UIM/X, and designed the easily extensible, editor dialog component used by their GUI successor. As member of USENIX and SAGE, attended USENIX conferences yearly to bring leading edge UNIX System Adminis- tration and R&D technologies (Perl, Tcl/Tk, SLIP, automount) back to the lab. --------------------------------- Software Engineer Logicon RDA - Tacoma/Ft. Lewis, WA 10/87 - 9/89 -------------------------------------------------------------------------- Programmer on the Omnibus, TACCIMS, and TACCS-K software development projects out of the company's NW Regional office under DoD contract to the U.S. and Korean Armies. Duties included software design, development, documentation, and maintenance support primarily in C (with some C Shell, MS-DOS Batch and Oracle/Informix SQL programming) under UNIX and MS-DOS. Major Accomplishments --------------------- Omnibus meant interoperability (3/89 - 9/89): much of the work centered around getting different Army computer communications sub-systems to com- municate with each other. Integrated an engineering corps PC software system with the main UNIX MCS C^3I system by pushing messages into the appropriate queues across MS-DOS and UNIX file systems, and developed a data entry form with editing and validation capability in C so the message header (ie. destination field, etc.) could be filled in by the user. Also, designed and coded a message stream parser/filter in C for a network snooper and data analysis system. With another programmer, added the capability to send 8-bit binary files, as attachments wrapped in uuencoded tar bundles, via the existing 7-bit ASCII SMTP email system. (This was similar to how MIME-encoded attachments are sent in today's email systems.) Other Activities ---------------- Database development using Oracle SQL*Forms and Informix ESQL/C. Initial design and documentation work on an email sub-system (old Mil. Std. 2167A). Configuration Management related work: ported the Revision Control System (RCS) from UNIX to MS-DOS, converted all the sources of a major C^3I system over from SCCS to RCS, coded a "safe" suid root RCS command wrapper in C, and built X11R3 from sources using Imake for HP-UX v6.2. --------------------------------- Programmer/Analyst The Evergreen State College - Olympia, WA 3/87 - 9/87 -------------------------------------------------------------------------- Successfully completed a 6 month software forms development contract for the Academic Computing Department and the college's Computer Center. EMPLOYMENT WHILE ATTENDING COLLEGE ---------------------------------- Technical Support (1986 - 1987) --------------------------------- Worked at TESC on the Administrative Technical Support staff. - In offices and in the library, installed and configured the following: IBM PCs and compatibles including hardware components such as memory chips, hard drives, and floppy drives; printers and printer drivers; software packages such as Lotus, Word Perfect, MS-Word, R-Base, &c. - Manned the help desk supporting the college's staff. Computer Consultant (1986 - 1987) --------------------------------- Manned the help desk in the campus Computer Center supporting the students operating the following platforms ... - IBM PC and compatible computer software, compilers and printers. - Data General MV10000 AOS/VS mini-computer editors, compilers, SPSS-X. - Apple Mac Write, Draw, and Paint types of software and printers. COMMERCIAL TRAINING COURSES --------------------------- "SANS Security Course 505 - Securing Windows", SANS Institute, 2006. "Windows 2000 OS Optimization and Troubleshooting", Learning Tree, 2003. "SL-275 Java Programmming Language", Sun Microsystems, 03/30/2001. "McCabe Metrics Integrated Quality/ReEngineering", McCabe & Assoc., 1999. "Integration 97 (for Windows NT and UNIX)", Microsoft/HP/Tech Data, 1997. "Introduction to Ada 83 for Software Engineers", AdaWorks, 1994. "Perl 5.0", USENIX (Summer) Technical Conference, 1994. "Tcl/Tk", USENIX (Summer) Technical Conference, 1994. "UNIX System V R4 Internals", USENIX (Winter) Technical Conference, 1993. "C++ Programming", Boeing Computer Services Education Division, 1992. "Network Programming Using BSD Sockets", Hewlett-Packard, 1992. "Motif Programming", Hewlett-Packard, 1991. "Berkeley Services/NFS System Administration", Hewlett-Packard, 1990. "Structural Analysis", Boeing Computer Services Education Division, 1990. "HP 4792A LAN Troubleshooting", Hewlett-Packard, 1989. "UNIX System V Release 2 System Administration", AT&T, 1986. PROFESSIONAL ORGANIZATION MEMBERSHIPS ------------------------------------- USENIX, the UNIX and Advanced Computing Systems Professional and Technical Association SAGE, The System Administrators Guild SECURITY CLEARANCE ------------------ Clearance: information may be provided on a need to know basis. HOBBIES/OUTSIDE INTERESTS ------------------------- Snorkeling, x-c-skiing, hiking, guitar-playing/singing/songwriting, fishing, Alaska, Big Island/Maui/Kauai, sailing, canoeing, birding, forestry, ecology, conservation, and volunteering: Sierra Club work trips, Habitat For Humanity. PREVIOUS CAREER (NOT COMPUTER RELATED) -------------------------------------- 10 seasons (1977-1986) with the U.S.D.A. Forest Service in Bonners Ferry, Idaho; Troy, Montana; and Hoodsport, Washington. Last Position held was Fire Engine Crew Foreman supervising a 6 member initial attack fire crew. (Actually, I used a computer on the job for the first time at this last position by maintaining my crew's time sheets on a Data General AOS/VS MV8000.) URLs OF POSSIBLE INTEREST -------------------------------------- Public Info About IMETS &c --------------------------------- [1] http://en.wikipedia.org/wiki/IMETS [2] http://www.fas.org/spp/military/program/met/imets.htm [3] http://findarticles.com/p/articles/mi_m0IBS/is_4_28/ai_94538577 [4] http://www.youtube.com/watch?v=gBPhZtUGPhQ