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 [1]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 L^ATEX 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: [2]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/st rengthsfinder-ideation/Ideation, http://letstalkpersonality.com/strengthsfinder/reflecting-themes/st rengthsfinder-strategic/Strategic, http://letstalkpersonality.com/strengthsfinder/reflecting-themes/st rengthsfinder-intellection/Intellection, http://letstalkpersonality.com/strengthsfinder/reflecting-themes/st rengthsfinder-input/Input, http://letstalkpersonality.com/energizing-themes/strengthsfinder-ad aptability/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 References 1. http://en.wikipedia.org/wiki/Telelogic_Synergy 2. http://trodman.com/blog/#uqjau