Tom Rodman - Ideal Job
- GNU/Linux infrastructure; GNU and Open Source application stack
- possible roles:
- bash shell, korn shell, or perl scripting
- Linux System Administration/Automation/DevOps
- Jira/Atlassian administration
- Software Configuration Management (Subversion)
- java/ant build and deploy; Continuous Delivery
- support Linux, and: ECAD or MCAD engineering apps on Linux
engineering workstations
- QA/Testing: write shell or perl test scripts
- industries I will work for: ``bricks and mortar.. Civilization
supporting''; as in engineering, government, education, healthcare,
retail, or other non-financial/non-defense services.
- top aspects of next job
- GNU/Linux infrastructure; GNU and Open Source application stack
- 15-50% of work involving bash and/or perl scripting
- relationships/engineering culture: collaborative: `put it on the
wiki', cross training, in-house tools
- minimal tradeoffs: less than 20% of job on any combination of
Microsoft, AIX, HPUX, or Solaris
- minimal Microsoft Windows, AIX, Solaris, or HPUX
responsibilities/dependencies - my passion is GNU/Linux
- budget/leadership: strong business sponsor for the workgroup; strong
technical vision
- day to day:
- root access to Linux server(s), or personal workstation
- able to write shell and perl scripts to improve and automate on
going work and processes
- engineering work culture, customers should include software or
hardware engineers
- should involve: bash and perl or python scripting
- new job will `grow my career'; position me for better job
- minimal Microsoft Windows responsibilities/dependencies - my passion
and investment is in GNU/Linux
Tom S Rodman Skills Assessment
Estimated literal elapsed hours/focused-work hour totals:
Units below are wall clock hours of focused work, or study where noted. None are credit hours. Small numbers mean
beginner level.
- shell (bash, sh, ksh): 11000+, bash since 1995
- GNU/Linux, misc GNU tools: 10000+
- basic perl: 5000+
- GNU make: 3545
- awk: 4005
- Linux/UNIX System Administration: 2720 (since 1988; Linux since 1996)
- ant: 700+
- Software Configuration Management (SCM): 4000+
- managing cron jobs: 400+
- GNU screen: 10000+
- yum, rpm: 320+ (as end user)
- svn (Subversion [CollabNet/Linux;cygwin]): 1900+
- ElectricCommander: 30
- m4: 400+
- jira: 210+
- confluence: 200+
- rsync: 110
- python: 100
- mercurial (hg): 12
- C: 133
- cygwin: 350+
- apache: 45
- PL/SQL queries: 40
- MYSQL, SQL self study: 28
- tomcat: 10
- XML: 30
- bamboo: 70
- cruise control: 20
- crowd: 20
- fisheye: 10
- vim: 7000+
- emacs: 100
- AIX system admin: 60+
- HPUX system admin: 200
- posting questions to Usenet: 300+
- HTML: 35
- jetty: 20
- NFS: 220
- bind: 100
- NIS: 75
- sendmail: 150
- mhn: 250
- iptables: 40
- xen: 3
- git: 2.25
- vmware: 5
- LDAP queries: 25
- PostgreSQL: 20
- openmake meister: 25
- UNIX System Internals, posix: 45 (book-study)
- Data Structures & Algorithms: 4 (book-study)
- msys: 25
- exim: 25
- Java Ant Build & Deploy: 1900
- websphere: minimal
- eclipse: none
- Release Coordination/Management: none
- perl XML modules: 0.5
- perl CGI: 5
- perl creating Object Oriented code: 3
- maven study: 6
- markdown: 12
- pandoc: 7
- gnome (as end user): 15
- TSM backup: 20
Hour by hour, I work in GNU screen, w/several interactive bash shell
commandline sessions; and in a tabbed-terminal-vim session w/many
open files. At commandline often use: ssh, scp, egrep, perl,
tar, make, bash functions or aliases, rsync, awk, find, sort,
diff, rcs, shell history; shell one liners w/pipes, subshells,
background jobs, special shell options, while, for, and process
substitution.
Tom S Rodman Key Skills
- Scripting:
bash, Korn, and Bourne shell scripting;
perl,
awk,
sed,
make,
m4,
python,
expect,
tcl,
msdos batch (cmd.exe),
cgi,
strong w/regular expressions
- Web:
Atlassian Confluence wiki markup, HTML, basic Selenium
- Languages:
bash shell, korn shell (tested: high end of 'advanced'), perl (tested: just below 'advanced'),
m4, python, pascal, fortran, basic; some involvement: C, curses, SQL, PL/SQL,
CSS, XML, YAML
- Configuration Management; SDLC Tools:
Mecurial hg, Subversion svn, cvs, RCS, SCCS, Jira, make, bamboo, cruise control, ant, diff, patch, sdiff, some work w/autoconf,
Telelogic Synergy (SCM http://en.wikipedia.org/wiki/Telelogic_Synergy), Telelogic Change (problem tracking)
- Databases:
Exposure to:
PL/SQL w/perl DBI and toad, MySQL, postgresql, and Informix;
- Operating Systems:
GNU Linux, HPUX, AIX, GNU tools under AIX, RHEL, Fedora, Centos, 90s era SUNOS, Windows Server: NT
3.51 and all versions through Windows 2003, (7 various UNIXes)
- Services:
sendmail, NFS, iptables, DNS (bind, named), apache, NIS, ntp, cups, crond, dhcpd,
sshd, spamassassin
- general skills: svn third party code drops, 3 file code merges, merge conflict analysis, ant java build troubleshooting
Tom Rodman: Tools, Shells, Languages
- expert:
- [ ali at atq atrm awk basename bash bc cancel cat chkconfig chgrp chmod
chown ci co colrm comm comp cp crontab d2u date df diff
dirname dist dmesg dos2unix du echo egrep env exportfs false fgrep
file find fmt fold ftp gawk getopt grep gunzip gzip
halt head hostid hostname id kill less ln locate ls make man
md5sum mkdir mktemp more mv next nmh passwd ping ps
pwd rcp rcs rcsdiff rdate reboot rlog rlogin rm rmdir
rsh scan scp 'GNU screen' script send sh shutdown sleep sort
split ssh stat strings su tac tail tar tee telnet test time
top touch tr true tty u2d umount uname uncompress uniq unix2dos
unzip uptime vi vim wall wc wget xargs xterm yes zcat zip
- experienced:
- a2p adduser ash aspell batch bunzip2 bzip2 chfn chroot chsh
cksum cmp col conv convert cpan cpio crond dd ddrescue dig dir
dnsdomainname domainname dump dumpe2fs e2fsck ed editrights eject
ethereal ex expand expect expr fdformat fetchmail find2perl
finger formail fsck getfacl ghostscript gimp gnuplot groupadd
groupdel groupmod groups gs HTML iconv info ispell join keychain
last LATEX ldapsearch look lp lpq lpr lpstat lsof lynx m4 mail
mailx mhbuild mhlist mhshow mhstore minicom mount mutt named
netstat nfs nfsstat nice nisdomainname nl nmap nntp nohup nslookup
ntfs-3g ntpd ntpdate ntpq od packf par perl pg pgrep Pnews pppd
pr printf procmail pwck rcvstore rpcinfo rdist red resize restore rev
rexec rmail rpcinfo rpc.mountd rpc.nfsd rpm rsync rxvt rz SCCS
sdiff sed sendmail seq setfacl setsid sftp showmount sha1sum spamassassin
ssh-add ssh-agent sshd ssh-host-config ssh-keygen startx stty
"svn mkdir/import/add/ci/co/export/rm"
"svn stat"
"svn diff"
"svn log"
svnlook
"svn ls"
"svn cp"
"svn mv"
sync
sz talk tclsh telinit traceroute trn tune2fs tzselect units
unlink updatedb useradd userdel usermod uucp uudecode uuencode
vigr vipw vimdiff vmstat watch wdiff who whois wiki wireshark xauth ypcat
ypdomainname yppasswd ypset ypwhich yum
- occasional:
- alternatives apt automake autom4te blkid cc diff3 free fuser gcc gpg hexdump
httpd install ip iptables irssi killall logrotate losetup lsusb lpc lsdev lsof lvcreate lvs markdown merge
mkfifo mknod mountpoint mysql naim namei nc newer pandoc patch pvcreate
realpath s2p shar since smartd strace svnadmin svn cleanup svn switch tcpdump
tic tidy tput vgchange
vgcreate wish write yaml
Tom Rodman Key Strengths
- I'm a process oriented, IT engineering generalist, problem
solver/troubleshooter w/wide experience & knowledge; used to the
unexpected.
- Strong in bash shell scripting. 25 years of shell scripting; 18
years of bash; 22 years of basic perl. Open Source project:
http://trodman.com/blog/#uqjau
- Strong skills at the command line w/hundreds of GNU/UNIX utilities. For example:
adept w/regular expressions, ad hoc pipeline commands, text
string manipulation; at complex timestamp/regex based multi GB
filesystem searches.
- Strengthfinder 2.0 results:
http://letstalkpersonality.com/strengthsfinder/reflecting-themes/strengthsfinder-ideation/Ideation,
http://letstalkpersonality.com/strengthsfinder/reflecting-themes/strengthsfinder-strategic/Strategic,
http://letstalkpersonality.com/strengthsfinder/reflecting-themes/strengthsfinder-intellection/Intellection,
http://letstalkpersonality.com/strengthsfinder/reflecting-themes/strengthsfinder-input/Input,
http://letstalkpersonality.com/energizing-themes/strengthsfinder-adaptability/Adaptability.
See: http://en.wikipedia.org/wiki/Now
- Have years of tagged, organized, and regex searchable personal
technical notes, under revision control.
- Conservative, risk aware, my "best practices": careful/workstep level
planning; logging system changes and daily work; all application
and system config files under revision control. Believe in cross
training, in sharing skills (thru wiki or 1:1); a backup person
and a backout plan.
- Actively automate admin tasks w/scripts and cron, avoiding
hardcoding, providing script commandline options and config
files, reusing code w/in script function libraries.
- Strong troubleshooting, problem solving, and analytical skills.
I dig in/focus, define the problem, study, simplify, write "on
the fly" scripts and run complex commnand line checks to divide
and conquer mysteries. Many years experience getting answers by
posting "intelligent questions" to forums.
- Strong vim (editor), 'Gnu Screen', ssh, and shell commandline skills
at the UNIX terminal.
Tom Rodman Accomplishments
- Created and maintained production shell or perl
scripts for: system administration, software configuration management, account
management, mail, time/date scheduling, text parsing, log file
analysis, file-system permissions and DACLs, log rotation and
purging, backup, recovery, TEX, ssh, application monitoring,
network file syncing or xfer (rsync, scp, ftp, wget, telnet,
expect), HTML, disk diagnostics/file-system checking, LDAP queries,
code metrics, scheduled jobs, software builds, SCM database sessions
and queries, OS-process management, file-system management/monitoring,
and search.
- Created wrapper script to standardize logging and metrics for cron
jobs across multiple servers, collecting STDOUT and STDERR below
a single directory with subdirs named after the job; reports and
logs job exit stat in a standard format; self purging or rotating
logs; creates flag file to detect unfinished, killed or hung jobs;
supports env var assignments and second-level meta-quoting at
command-line for "long 1 liner/no file" cron jobs.
- Did an extensive local disk vs SAN time-bottleneck multi-month analysis
using custom benchmark bash and perl scripts, resulting in SAN
configuration changes that reduced over night database backup
times by up to 20%.
- Wrote script, using join, comm, sort, and diff, comparing
accounts in Windows trustee groups, LDAP, AD, and our application
database - discrepancies explained and emailed. It saved hours
of work monthly, dealing w/(help-desk) related issues w/user
adds, deletes, or disabled accounts.
- Wrote robust/critical shell scripts, using my own library of 33
database related functions, to automate our SCM database upgrades,
they were customized for the upgrade and ran for over 17 hours on
the upgrade weekend processing our 40+GB databases.
- Created system to manage application config files on multiple
hosts at multiple sites using GNU m4 macro language - this
simplified global and site specific config file changes; and the
update/merge steps for upgrades.
- Received "quick thanks" award for timely completion of request to
"snapshot-copy" a UNIX multi GB software development environment,
to a SAN used by Windows 2003; used Cygwin "managed mounts" to
handle UNIX/Windows naming conflicts.
- Lead project to convert NTFS discretionary access control
lists (DACL) on over 100GB of file-systems on SANs and local
disks for several servers, from one Active Directory Domain to
another. Wrote archive, conversion and comparison scripts
in perl, using 'setacl' to read or change the DACls; wrote specs
for an Infosys developer in India to complete and execute the
conversion, which went smoothly.
- Major successful effort at preparing for and completing an April
2008 remote site, bare metal, offsite Disaster Recovery exercise for our
SCM and software problem tracking server. Worked together w/co-worker on
1500 lines of text in about 8 documents w/in the plan.
- Took a prototype perl "code metrics" script, rewrote some of the
logic, enhanced it to handle errors gracefully, added verbose
logging, tested, and put in production. This is a SCM
code check-in triggered (commit hook) script that annotates code object meta-data
w/"lines of code" metrics based on a comparison to the prior version.
- Following the GNU Cygwin project since 1996, and
periodically did a small number pre and post release tests for the
project; as a result have identified problems that have almost
all been fixed by the Cygwin developers after they responded to my
carefully documented test cases.
- Wrote "trip wire" style script to watch perms, ownership, file
attribute, size, time-stamp, or file checksum changes in windows
install tree; another script to monitor registry list of installed
applications.
- Have many years of notes, project plans and logs, in one place,
in plain text, under version control, tagged and easily searched.
- Coordinated successful recovery of a HP Proliant server in India,
remotely (they were ready to give up on the drive data) - the
motherboard was replaced, then we had to troubleshoot an issue
w/the RAID controller configuration - no data lost.
- Installed, and configured HPUX, in house created, "SCCS based" SCM repo/build-
management server on new hardware, updating scripts as needed. Cut over compile build
servers to use this new server. Was required for y2k compliance under
HPUX. Uptime for this server: typically several years.
groups I follow:
- comp.unix.shell
- coreutils@gnu.org
- comp.lang.perl.misc
- centos@centos.org
- help-make@gnu.org
- user-help@ant.apache.org
- users@subversion.apache.org
- yum@lists.baseurl.org
- xen-users@lists.xen.org
- savannah-users@gnu.org
- www.cygwin.com/ (users and announce)
- sleuthkit-users@lists.sourceforge.net
- busybox@lists.busybox.net
- freedombox-discuss@lists.alioth.debian.org
- gnupg-users@gnupg.org
date rendered: January 30, 2017
Tom Rodman
2017-01-30