My abilities are flexible and I would be suited and find enjoyment in any of the following positions.
Desired Position - Senior Computer Programmer
Working with large complicated code/systems. I enjoy creating and/or porting, debugging, implementation, optimization of systems.
Desired Position - System Administrator
Working with many different operating systems in a secure environment. I would like to do part-time programming, scripts, assembler, or higher level languages.
Desired Position - Director of Computing and/or Networking
Managing a computer center with different operating systems in a secure environment, supervising personnel.
Desired Position - Principal Engineer
Leading the development and/or maintenance responsibilities of a software project.
Job Experiences
BRECIS Communications Corp. 02/2001 - 09/2003
Embedded chip company with three ethernet MAC's, encryption engine, MIPS32, Voice processor, PCI connection, etc.
Senior Software Engineer
- Ported to MMU-less MIPS processor - Linux and OpenBSD, user programs (SNMP, DHCP, DNS, etc.), and c library.
- Semi-automated module porting in cross platform development environment.
- First implementation of fork() for a MMU-less processor.
- Production of Processor Performance Guide showing improvements to next generation chip architectures.
- Optimized ethernet performance by doing instruction and memory bandwidth timings (5x performance increase).
- Developed scripts for SQA to test different configurations.
Efficient Networks Incorporated, bought by Siemens. 07/2000 - 02/2001
SDSL/ADSL and ethernet routers for small business or home.
Senior Software Engineer
- First implementation (in the world) to securely allow multiple NetMeeting sessions to traverse through a NAT router.
- Modified H323 to work with NAT to allow multiple input and output sessions for H323 video and voice.
- Set up SQA methodology for verification of all NAT control streams with bootable OpenBSD CD's.
University of Minnesota 03/1981 - 12/2000
A wide range of responsibilities, beginning as a computer programmer, onto supervising people, then as the first full-time employee of a new department University Networking Services.
Computer Network Development/Operations Engineer
- Expert for solving complex problems related to operating systems and system administration, network configurations, protocol situations, and even bad network cards.
- Analyzed and prioritized mission critical computer systems at the University (DNS, time server, bootp/dhcp, NDS, e-mail, X.500, payroll, registration, budgeting, PeopleSoft, WWW, Building Security and Automation Control) for implementation of robust, secure and restricted public access of services.
- Network statistics, including wall sized maps (6' by 46') and monthly public handouts showing all (130,000+) interfaces on routers, bridges, hubs, gateways with bandwidth and errors. Data analysis of SNMP data (collected 24x7, 425mb/day) with C programs and Perl scripts to ensure service levels were proactively maintained.
- Web forms with perl scripts to handle form inputs.
- Computer packages ported and fixed.
- CVS software change control setup and used, training, etc.
- Test, evaluate, analyze network products for performance and future use on multi-protocol networks.
- Data from 1980 in RAIMA database.
- Daily configuration auditing to determine mistakes in network device configurations and verifying security protocols were followed.
- First full-time employee of department University Networking Services.
- Level three escalation of customer service problems.
- Assisted other departments with setting up computer networks.
- Set up and maintain Kerberos server for securing computers.
- Part of a rotation to do DNS adds/moves/changes and similar tasks.
- Represented University at big Ten networking meetings, public talks on projects to directors and department heads of other institutions.
- Facilitated and documented a TQM team that resulted in the first major computer network upgrade at the University, stressing reliability with fast mean time to repair.
- Succeeded in convincing University Administration that significant spending is needed to upgrade or replace network devices each year, with a three year life span for network components.
Supervising System Software Programmer
- Supervised five full-time and two student programmers, performance reviews, hiring, and firing.
- Assigned staff to evaluate beta releases of software for emergency fixes, and to isolate and identify new problems.
- Kept a large Unix system running 24x7 with 7,000+ accounts.
- Wrote and evaluated bids for computer system upgrades and software.
- Security measures implemented to record timestamped input from users.
- Represented the University of Minnesota at Usenix conferences.
- Benchmarked and evaluated many different types of Unix systems using modified telnet that would simulate 256 users typing.
- Succeeded in giving vendors large problem lists to correct.
Senior System Software Programmer
- Cray and Cyber 205 programming.
- Evaluated and modified an alternative Operating System (CTSS).
- Attended meetings at Livermore.
- Analyzed many dumps on Cybers, Cray and Vax.
- Helped train in new hires.
- Programming for the Data General front end to the Cray.
- Cray usage statistics graphed via DISSPLA package.
- Taught Introduction to Cray Assembler Language class.
System Software Programmer
- Installed tieline application for communication with the State.
- Created program to dump a Xerox 9700 print queue in an unusual format.
- Installed X.25 into 2550's by backstitching several years releases.
- Wrote a PLATO style editor to work on DEC/Cray/CDC Cybers.
Consultant for Susan C. Pagnac Sr. 09/1983 - 12/1985
Sub-contracted to Honeywell S&RC.
- Ported Fortran libraries & programs from Honeywell Level 6 to VAX/VMS.
- Created graphics editor for simultaneously modifying 1024x1024 images.
- IR video taken three degrees apart on a tripod, loaded and edited for smooth panning in real-time for a 180 degree view using a joystick.
- Learned not to walk in the desert at noon during the summer.
Fairlight Instruments, Sydney Australia 07/1980 - 10/1980
Build and sell Digital Music Synthesizers.
- Improve the music language for their digital music synthesizer.
- Simplified music language and add glizzando and portamento.
- Lengthy debugging of their I/O and interrupt queues resulting in changing from interlocked queues to circular with in/out pointers.
- Became comfortable with multiprocessor interrupt problems.
Minnesota Educational Computer Consortium 07/1979 - 07/1980
Department of the State of Minnesota.
EDP Programmer
- Simulated two TDM's (time division multiplexor) with an Apple II and synchronous modems, as a precursor to doing it on the ACC UMC-Z80.
- Learned VAX/VMS and wrote a device driver for ACC's UMC-Z80.
- Converted an obsolete Kronos operating system to NOS.
- Worked with 2550 front ends and synchronous I/O cards.
Regency Caroll LTD. 03/1978 - 07/1979
Plato Terminal and peripheral manufacturing company.
- Wrote software so that hardware could be tested and sold.
- Wrote floppy disk subsystem (formatting, directory structure, etc.)
- Drivers and modifications for Okidata printer, plasma panel display, touch panel keypad, and summagraphics bitpad.
- Wrote bank sign terminal software with time/temperature, etc.
University of Illinois 09/1975 - 09/1978
Senior Computer Programmer
- Maintenance and development of 300+ Plato system lessons.
- Optimized calculation parser for both speed and memory size.
- Created easy to use graphics editor.
- Security and privilege checking and recording code.
- Several conversion programs to change all lessons on the system when the TUTOR language changed its format (many thousands of programs).
- Performed demonstrations.
- Delivery and integration of releases to CDC in Arden Hills.
University of Illinois 06/1973 - 09/1978
Junior System Programmer
- Maintenance and development of many Plato system lessons.
- Answered questions from users.
Springfield High School 09/1969 - 06/1973
- Wrote a file printer for Tutor and created cross reference tables.
- Studied IBM DOS, Macro 11, Pascal, BAL, Autocoder and Fortran.
- Wrote computer games, and football program for the school.
Old Hobby of Digital Computer Music Synthesizers 07/1971 - 09/1978
- Wired up two versions of a piano keyboard, drilled PC boards, stuffed and soldered boards, wrote drivers and playing routines, attended conferences and gave demonstrations.
- Wrote a program that displayed notes on the screen and changed their time values as the piano keys were held down. Multiple keys could be held down at once and for different time durations.
- Wrote several compilers to translate character music source into something the synthesizers desired.
- Last music compiler was five passes with features: macros and micros, random number generator, expressions, key signatures, etc.
- Typed in the first movement of Beethoven's sixth symphony adding cresendos, accelerandos and all the various music notations, for playing and plotting.
Skills
Creative individual that learns quickly, self motivated, detail-oriented toward problem solving by analyzing, auditing, and persistence. Team facilitator that supervises, delegates, includes diverse people working on a project.
- Supervised and mentored people, facilated meetings.
- Assisted with tracking down inappropriate or illegal use of computers.
- Historical SNMP for 130,000+ interfaces, 450mb/day, for over a decade.
- Statistical analysis for network usage, security, capacity planning.
- Perl scripts to verify cisco router configurations correct.
- Linux kernel expert that everyone came to for help.
- Made Linux fork() system call work without Memory Management Unit.
- Added NAT capability for multiple NetMeeting (H323) connections.
High Level Software
C, C++, Perl, sh/csh/bash shell scripts, Tutor, Fortran, PostScript, Pascal, Basic
Machines and/or Assemblers
MIPS, PowerPC, Sparc, Intel/AMD processors, Apple, 68000, 680x, 32x32, Encore Multimax, CDC, DEC VAX-11, Honeywell L6, Cray-2, Cray-1, 6502, Z80, 8085, 8080, SCMP, PDP, IBM, SmartBits, Adtech, JTAG debugger
Operating Systems
SunOS, Solaris, Linux, BSD (Open/Net/Free), CDC operating systems, VMS, Windows, Plato
Software
CGI, TCP/IP sockets, embedded processors, device drivers, DNS, SNMP, ASN.1, Client/Server, HTML, porting, QIP, CVS/RCS, DISSPLA, vi, Raima database, GNU tools (gcc, gas, etc)
Security
OpenBSD, SSH and SSL, Kerberos, data auditing, Netflow, maps, System Administration, LISA and SANS, network statistics
Networking Equipment and Protocols
Ethernet, Bridges, Hubs, Cisco routers & switches, LAN/WAN, UDP/TCP/IP, H323, OSPF, BGP, IGRP, EIGRP, DECNET, AppleTalk, IPX
Publications
"Read-Only Server on a Bootable CD", http://www.daemonnews.org/200106/bootable_CD.html Describes the process for creating a customized bootable CD for both the FreeBSD and OpenBSD operating systems. The CD can then be used to run a secure server that can't be modified.
"How to Create a Network Map", ConneXions, Volume 7, No. 6, June 1993. Explained why auto network maps of large networks will not work on X displays, which leads to either zooming or wall size paper maps.
"Experiences in Networking at the University of Minnesota", pp 36-45 in Proceedings of SUUG November 1991. Included fishbone diagrams on problems that can happen on ethernets, token rings, appletalk/phonenet, and data networks in general.
Additional Training and Certificates
TQM Facilitor training, Fore Installation Configuration Operation, Cisco Routers and LAN switches, CTI voicemail software internals, Raima Database internals, BSD and System V kernel internals, Cray Operating Systems Internals
Continuing Education
Conflict Resolution, Energy and the Environment, Project Management, Supervisor Training, Russian
References available upon request.