Michael M. O'Rourke
Houston, TX
http://www.theworld.com/~morourke
********@********.***
Skills:
Extensive experience writing full featured end-to-end programs, both
trivial and highly complex, using C and Perl in the finest Unix traditions
(daemons, multi-process, client/server, pipes/sockets/fifos, signal
handling, object-oriented).
Very good consideration of program flow, efficiency, simplified usage
paradigm (i.e. minimal/zero/automated user setup), testability, and
longevity (well written code should last for at least a reasonable time).
Can work from formal or informal specifications/wishlists, meet ambitious
scheduling and work with a minimum of supervision on or off site.
Have long been considered by peers and management as a willing mentor,
concerning language internals and software architecture issues.
General Notes:
While my main interest and forte is non GUI applications and infrastructure
with Perl and C, it serves to point out the breadth of technology to which
I am reasonably well versed. If I don't know it, I will as I am an avid
researcher. Among these are (in no particular order):
Microsoft XP apps/registry (configuring/editing), qmail, sendmail, exim,
DNS, NIS, RPM, Apache (various modules), CPAN, Solaris, Linux (all
flavors), BSD, Oracle, Postgres, MySQL, the entirety of the GNU world, RFC,
W3C, ssh & friends, rsync, Python, Objective-C, Java, Smalltalk, Ruby, RCS,
CVS, SVN, GIT, Bugzilla, Fogbugz.
Experiences:
Nov 2008 to present
In preparation for new opportunities as well as general research and
technical curiosity, I have
been studying (in no particular order): RT, cloud computing (Wmware Zen),
current Linux kernel code base, Moose/MOP, AJAX/javascript/DOM, Weblogic,
SharePoint, and a host of other topics which may be needed in future
positions. I should also mention these SECS I, SECS II, GEM, and HSMS
communication techniques which are on my to read immediately list.
In addition, I have kept up with my code writing skills as there is always
some piece of an idea that I tend to commit to code in some way.
May 2008 to Nov 2008 -- cPanel of Texas, Inc - Perl Application Developer
Using: Perl, make, subversion
Contributed to cPanel's product with new Perl modules, test suites,
codebase refactoring, development tools, and patience.
The rest of these were all in the MA/NH locale.
Mar 2006 to Apr 2007 -- Verizon - Consulting Eng.
Using: C, Perl, Oracle, make, Java, javascript
Working on the Content Aggregation Integration Platform portion of
SuperPages, I have written a new highly scalable web spider in Perl. The
depth of understanding in the implementation of the so-called SuperPagesBot
has been other than trivial.
This application is tightly bound to Oracle via Perl's DBI interface.
It is a 'well behaved' robot in that it considers site rules based on
robots.txt and meta entries. This application was designed, developed and
first used live in mid May 2006. It now has been through the rigors of use
since then and is becoming more robust.
While the world of web-site development remains in flux and likely will
continue, the SuperPagesBot development has encountered and answered many
of the hardest questions, effectively.
In the development of this application, many long term needs have been
addressed. Namely automation and association/reuse especially with regard
to the many useful Perl packages I have written.
Jan 2003 to Feb 2006 -- independent
Using: C, Perl, make, javascript, cgi, Apache
Consulting to mid level companies with real needs for 24/7 available,
smart, extensible solutions for their businesses.
While I had limited success forming these alliances, I did offer solutions
other than the extreme limitations posed by Windows. Put forth were
recommendations for Linux servers, Apache, combinations of
Java/Ajax/SOAP/javascipt et al, with specialized Perl and database
(postgres) influences, operational modes without the need for point and
click interfaces.
Not surprisingly, some people actually find that things ought to be simpler
than current environments are interested in providing.
Mar 2001 to Nov 2002 -- Terra Lycos, Inc. - Principal Eng.
Using: C, Perl, make, cgi, javascript
Wrote numerous reporting scripts for statistical analysis. Some of these
programs were additions to existing reporting infrastructure while others
were completely new.
Designed a complete registration inventory process for the direct marketing
team. It featured a versatile web based frontend, automatic data transfer
mechanisms, and a postgres backend for a large data set (~50 million
records).
Solved a number of other time and availability problems related to the
registration database. The overall changes led to near 50% improvement from
the existing methods.
Designed a near real-time filtering program for tracking users. This design
was all Perl, featured redundancy and automation and ran from several data
centers.
More general contributions - perl packages, portability issues (Linux,
Solaris, IRIX), and tools to aid the other ops folks.
Jul 2000 to Feb 2001 -- SilverBack Technologies, Inc. - Principal Eng.
Using: C, Perl, make, Java, Object Oriented Techniques
Designed and implemented a complete extensible solution for the lcd display
of their newest hardware appliance. The design featured a cleanly
instrumented daemon using a domain socket server, an easy to use and
powerful client based api, and a device independent functional abstraction
layer.
This interesting project was delivered with complete and easily understood
functional specifications and numerous real coding examples, for api users,
test and qa groups alike.
Offered direction and probable solution input for a series of trivial and
not so trivial coding techniques and philosophies for other software
engineers there.
Serving as a project lead for one of the next generation projects begun in
late October 2000. This role encompasses management of a small team,
ensuring milestone dates, and providing significant architecting and design
of a key area of the product while espousing more cognizant system level
approaches to Silverback's product in its entirety.
Nov 1999 to Jul 2000 -- independent
Using: C, Perl, make
Working with Apache and mod_perl, database designs, tutorials. Reference
reading rfc and w3c recommendations. New and useful ways of using Perl.
Automata.
Nov 1998 to Nov 1999 -- sabbatical
Oct 1997 to Nov 1998 -- IronBridge Networks - Principal Eng.
Using: Perl, C, Verilog, WVO/Powerview, make, sh, csh, patience
As employee 10 in this startup company, my main focus was to design the
hardware process infrastructure, though my tasks were many and varied,
particularly in the first months.
General duties taken on were system administration, server selection and
application license procurement.
The infrastructure featured the following concepts, largely written in
Perl. version control atop CVS verilog/schematic tools with extensive
automation corporate hardware database
Jan 1997 to Oct 1997 -- BBN - Eng.
Using: Perl, C, Verilog, Cadence Concept, sh, csh, make
Provided tool writing expertise for a hardware design process in need of
improvement. Developed a method for generating schematic part bodies from
the verilog representing the block. Added the ability to map pinouts of
programmable devices.
Wrote 'golden' data generator programs to test data path segments of the
design. These generators featured the ability to set timing skew as a
significant test against the specification.
Served as an advisory to porting and programming language issues.
Nov 1996 -- Bay Networks - Eng.
Using: Verilog, Perl
Wrote tasks and functions in verilog to drive chip level verification. Also
provided some extraction utilities in Perl.
Jun 1996 to Sep 1996 -- Boston Technology - Sr. Eng.
Using: C, Perl, Clearcase, make
Identified bottlenecks within a Clearcase based process environment for a
mature software product. Made recommendations for their resolution and
implemented code to realize these solutions.
Added new and better automation to the overall build process methodology in
Perl and C.
Provided multi-platform compiler and tool building support.
Jul 1995 to Apr 1996 -- Teradyne - Eng.
Using: C, Perl, sh, csh, ksh, make
Added toolsmith support to the process team for a large scale hardware
development effort, dealing with requests from hardware designers, software
peers and management for useful programs provided in C, Perl and sh/ksh, as
appropriate.
Deployed LSF batch queuing with license monitoring extensions. Also wrote a
license usage pictorial by providing front end data gathering and
formatting to gnuplot.
Jun 1994 to Jul 1995 -- independent
Using: C, make, Perl
My earliest considerations of Perl as a viable language with its kitchen
sink use of other Unix favorites and readily written as if C, excepting
some of Perl's capabilities at the time.
Unix started to be far more appealing, to me, as an engineering platform
than alternative operating systems.
Feb 1994 to May 1994 -- Simplex Time Recorder - SW Eng.
Using: C, Archimedes, make
Designed the database internals and interface functionality for an embedded
hardware design. Code size and processor limitations were implicit
considerations.
Nov 1992 to Jan 1994 -- independent
Using: C, make
Designed different useful and not so useful programs, mostly DOS based.
This was largely my transition period from hardware to software related
design (aka hacking).
Aug 1992 to Oct 1992 -- DuPont-Imagitex - Design Eng.
Using: Abel, OrCad, C
Designed a DSP controlled illumination servo, test software and associated
specifications for a flatbed scanner.
Sep 1990 to May 1992 -- Optronics - Eng.
Using: Abel, OrCad, ksh
Hardware design of screening engines for precision plotters. Several
projects completed during this job.
Implemented a modest version control system for firmware and wrote
transport scripts to provide release media among Unix, Vms, and DOS
platforms, via network connections.
And, it was a little bit fun.
Jun 1990 to Aug 1990 -- Voicetek - Test Eng.
Using: C, ksh
System configuration and test using C and ksh scripts. The setup enabled
realworld simultaneous operation over network and serial line media.
1982 to 1990 -- various - Sr. Tech
Worked with graphics, printing devices, medical electronics and had
significant exposure to small signal noise and data conversion as a senior
level technician at the following in reverse order.
Dennison, Kodak, Bard, Analogic.