James Lewis
jaynetorg@yahoo.com
Linux Systems and DevOps Engineer
Profile
Talented business professional with over ten years of Engineering and Architecture experience is seeking a fast-paced, highlychallenging
role in an organization whose lifeblood is Linux. If your projects require experience with leveraging various GNU
tools and AWS services within Agile/Scrum development and production environments, I can help you!
Technical expertise includes needs analysis, system integration, implementing automation and deployment strategies, scripting &
programming, problem resolution, and writing/maintaining comprehensive documentation.
Experienced in taking the lead and being the go-to person, while also providing mentorship.
Open Source Contributions
genpuppet => Perl code that generates Puppet code from user input
• https://github.com/kharmajbird/genpuppet
JayOS => A Linux distribution that builds itself from source using Makefiles and shell scripts
• • http://kharmajbird.github.io/JayOS/
http://freecode.com/projects/jayos/
Education
Bachelor of Applied Computer Science / Minor in Technical Writing
Illinois State University
(see footnote)
Certified Personal Trainer, International Sports Sciences Association
Career Experience
Senior DevOps Engineer, Office Depot, Boca Raton, FL
2/2015 – 12/2015
• Created the infrastructure for a Proof of Concept project which allowed each developer to have their own isolated environment
for testing the latest trunk branch of the Office Depot e-commerce website.
• Delivered the new infrastructure fully-documented, and directed the pathway for its integration into the current test
environments. Also met with the Developer and Operations groups for Q&A sessions so that we could fine-tune its
implementation together.
Architecture: The infrastructure consists of multiple Vagrant instances that run a pre-configured Websphere installation pulled from
Nexus via Puppet and monitored by a Nagios Docker instance. Developers are able to build their own *.war artifacts based on the
latest code in “trunk” via one Jenkins job, and another job which automatically deploys the artifact to their own Vagrant instance for
testing. The system was first implemented in AWS, but since corporate policy prevents certain Websphere security groups from being
opened, Vagrant and Docker were used instead.
In a separate and concurrent project, I also served as the team lead in gathering software requirements from the Developer group,
building custom OS X packages from them, and testing them for inclusion into the Casper configuration management system used for
deploying new MacBook Pros. These configurations brought the time for on-boarding each new developer down from two weeks to
less than two hours.
Tools: Git, Puppet/Hiera, Jenkins, Nexus, Docker, Vagrant, Foreman, Websphere, Nginx, Apache Tomcat, Nagios, Composer
Senior Linux Build Engineer, The Weather Company, Atlanta, GA
7/2013 – 1/2015
Worked in a DevOps role to build out and support the infrastructure components used in configuration management and continuous
deployment within the SUN Platform
•
•
•
Built and supported all Jenkins CI servers along with Java artifact repositories
Created & maintained the Puppet git repo, and performed daily code reviews
Invented a custom git workflow and wrote supporting tools with comprehensive documentation
• Automated the deployment of all SUN applications
• Wrote Puppet code to automate the configuration management of new (and old) AWS instances
•
•
Created extensive technical documentation and step-by-step HOWTOs for ease of onboarding new Engineers
Considered a key player to be involved in any production release on the SUN Platform
Tools: Amazon Web Services, Puppet/Hiera, Jenkins, Nexus, Git, Apache Tomcat, Nginx, Riak, Redis, RabbitMQ
Linux Build Engineer, Pavlov Media, Champaign, IL
Built a configuration management infrastructure using Puppet and SCM
10/2012 – 5/2013
Wrote Puppet manifests from scratch to automate the creation and maintenance of various node types for the R&D Department
•
•
Created personal builders for developers leveraging the principles of Continuous Integration
• Used advanced Git concepts in order to manage the branching and merging of codebase between multiple developers
• Automated the configuration of both upstream and local Debian repositories
• Set up MySQL master/slave nodes, and began to automate with Puppet and shell scripts
• Performed smoke tests for the development team
Tools: Puppet, Jenkins, Debian, Citrix Xen Center, Virtual Box, bash, Perl, Nexus, Nginx, lighttpd, reprepro, MySQL, apt
Senior Systems Engineer, (mt) Media Temple, Culver City, CA
Instrumental in the implementation and rollout of two clusters, part of a highly-available web hosting Grid Service
• Wrote, tested, and implemented Puppet manifests for the mailout and syslog cluster components using templates
• Managed resources for production and development virtual containers under Xen and Virtuoso environments
•
Changed cluster node functions on-the-fly to accommodate fluctuations in network traffic
• Used in-house code versioning utilities to streamline the development/release cycle
• Worked tickets in the Jira queue related to projects for which I had previously taken responsibility
• Documented project status using a Confluence wiki
• Embraced a form of Scrum development methodology with three-week sprints
• Tested new products and services for GA release
Tools: Puppet, Hudson, Confluence, Jira, Subversion, Git, IPtables, MySQL, Apache, Debian, Xen, Virtuoso
Linux Systems Engineer III, Shopzilla, Los Angeles, CA
11/2009 – 5/2010
Was a technical lead in the administration, configuration, and troubleshooting of a geographically diverse server farm consisting of
over 5,000 nodes running CentOS and RedHat Enterprise on Dell and SGI Rackable equipment
• Accomplished aggressive goals and met strict deadlines under Agile/Scrum development methodology
• Worked closely with server provisioning, virtualization, and server monitoring/automation tools
• Wrote and maintained Perl scripts using CGI and DBI modules
• Was an active participant in the design/architecture of new solutions for various core technologies
• Wrote and reviewed technical documents detailing operational protocols and procedures
• Patched upstream vendor RPM packages and created packages out of internal repositories
• Provided guidance and mentorship to Systems Administrators, and gave regular status updates on project progress
Key Accomplishments:
• Wrote a Perl module that takes kernel EDAC error messages from a host with failing memory and pinpoints the
exact motherboard location of the bad DIMM. I also matched the message with a regex expression that Swatch
understood, and used it to automatically open a trouble ticket within RT from multiple log hosts.
• Led the troubleshooting of and provided the solution to a multi-homed Proof Of Concept box whose NICs would
change order between reboots. Also scripted the bonding magic into a Puppet manifest so subsequent builds on boxes
with six NICS could be successfully repeated.
6/2010 – 9/2010
• Utilized the kernel Inotify subsystem to create a set of Perl scripts that monitor inodes for changes (create, delete,
move, etc). System impact during use is negligible, and it was a useful tool for preventing SOX violations.
• Wrote a web-based application using Perl which queries A10 load balancers configurations for current VIP status and
VIP service groups.
Tools: OpenVZ, Puppet, Nagios, RT, Kickstart, CentOS, RedHat, Perl, Inotify, Swatch
Contractor, Infrastructure Architect, Pay-Ease, LLC (a Financial Processing Company), Chicago, IL
•
•
10/2006 – 9/2008
Introduced Subversion as an open Source revision control tool, and based the core of the infrastructure around it.
Created an environment that provided a separation between development, test, staging, and production.
Implemented Swatch as a real-time monitoring solution for automatically reacting to and resolving various undesirable
kiosk states such as ATM communication errors, hardware faults, and general kiosk unresponsiveness
• Wrote dozens of system-level Bash scripts to automate regular kiosk operations and keep remote kiosk software in sync
with central operations
•
•
Configured VPNs between Linux clients and Cisco Pix firewalls using IPSEC
Resolved network access and routing issues for kiosks deployed outside the Pay-Ease network
• Served as a high level liaison to current clients and prospective partners on the exchange and implementation of
promising new technologies under NDA
Contractor, Linux Administrator, United Airlines, Elk Grove Village, IL
Linux Integration Project
3/2006 - 6/2006
• Designed a system for the deployment and administration of hosts within a large computer network from a single set of
configuration files using CFengine.
• The end result was an infrastructure where a new server can be installed and customized by simply adding its
hostname to a configuration file and turning the machine on.
Contractor, Technical Analyst, State Farm, Bloomington, IL
Set strategic direction for UNIX environment
• Evaluated new products and technologies as they related to UNIX Security.
•
•
•
2004 - 12/2005
Provided guidance and recommendations to projects concerning enterprise security standards. Offered solutions for
business partners that balanced security risks against the cost of doing business
Identified potential security risks and exposures associated with UNIX applications and their design. Instructed
developers on how to avoid coding mistakes that leave programs open to compromise, including buffer overflows,
insecure password storage, and the exposure of sensitive information
Created security procedures for level one and two Skills Center personnel to follow. Examples include user
administrative tasks, temporary root access, authorization forms, and sudo usage
• Gave mentoring to new team members and introduced them to the home-grown issuance system used to remotely
deploy/manage a 2,000+ Unix server environment
Subject Matter Expert on Linux, shell scripting and C language programming
Developed a set of scripts and programs to harden 2,000+ HP and AIX servers.
• Wrote a back-end C program to keep track of multiple security policies with optional local policies for each host.
Servers were grouped according to the services they provided. Project was developed using CVS tools, gcc, make, gdb,
and vi. Code highlights include binary trees, recursion, and a modular design to die for.
Assisted a project by coding additional functionality into a systems-level C program at a crucial point in the project. The
codebase was approximately 3,000 lines consisting of a daemon listening over a socket, and a parser that translated eTRUST
Access Control messages into XML. The lead developer was unavailable; I volunteered to do the coding and kept the project
moving forward.
Consultant, Cinch Connectors, Lombard, IL
Linux Projects / General Support
2002 - 2004
• Migrated twenty HP-UX 10.x servers to Redhat Enterprise. Recompiled kernels to support custom hardware. Rewrote inhouse
scripts for the user interface. Coordinated and led the testing cycle, and documented the entire process
• Locked down production servers using TCP wrappers and host-based access. Disabled unneeded system services such as
telnet, RPC, NFS, and all R-services. Scanned internal networks for security risks and gave suggestions for improvement
•
•
•
Solved an intermittent problem involving the crash of a production server and implemented a solution that allowed
management to stay ahead of schedule and thousands of dollars within budget. Debugged a third-party Linux kernel
driver
Converted all login access from telnet and rlogin to SSH. Tunneled VNC connections over SSH for remote
administrative access
Provided support for 25+ mission-critical Linux boxes with several hundred users
• Educated users on best practices for maintaining security
System Administrator, Lisle Technology Partners, LLC, Lisle, IL
2000 – 2002
Managed the complexities of a network migration, including the installation of a T1 circuit, dual Linux firewalls, and a DMZ
network. Grew a simple 3 node network into a mixed environment of nearly 50 Linux and Solaris servers that supported the
development activities of an expanding company.
• Established secure data communications between the US and India using a screened subnet architecture and Firewall- 1
firewalls at each end. Built dual packet filtering Linux firewalls separated by a perimeter network
• Applied kernel patches and ACLs to the firewalls to prevent root access. Masqueraded HTTP, SMTP, FTP, and
LDAP with hosts on a DMZ network
•
Installed real-time intrusion detection services and performed daily packet analysis using SNORT and ethereal.
Generated SSH keys for secure user access
• Migrated MS Exchange email to an Open Source alternative based on POP3 and IMAP. Configured a web-based
interface for email using HTTPS
• Compiled Open Source software, and configured programming environments for developers. Installed backend Oracle
databases
•
Configured Apache to provide virtual hosting services, and registered domain names with the InterNIC. Configured
secondary DNS servers and performed zone transfers
• Documented the continually changing network architecture using Visio
Tools: Solaris, RedHat, Firewall-1, Nokia IPSO, Apache, Tomcat, Jakarta, ipchains, OpenSSH, LIDS, MRTG, Sendmail, SNORT,
MySQL
Systems Engineer, Ameritech.net, Chicago, IL
1999 – 2000
One of a team of five who provided 24x7 support to the Network Control Center. Was responsible for preventing and minimizing
major network outages within a five-state region.
Utilized quick and accurate decision making skills under tense situations.
Collaborated weekly with the Director of IT and other staff for root cause analysis of outstanding service issues. Important customers
were often on a conference line with remote technicians during the analysis, and were briefed on the resolution or diagnosis of their
particular issue.
•
Provided level 3 support to level 1 and level 2 NOC technicians
• Applied corporate firewall policy changes using Firewall-1 on Sun Ultras
• Added firewall rules and generated SSH keys for remote user access
• Locked down DNS servers using TCP wrappers and host-based access
•
Reduced SPAM on the NNTP servers
• Applied kernel patches to Solaris systems
• Adjusted Solaris kernel tuning parameters for maximum performance
Senior Unix Administrator, PLATINUM technology, inc, Oakbrook, IL
1997 – 1999
Maintained the performance of a 200+ node network as it related to multiple operating system vendors and versions.
Operating systems included Sun Solaris, Linux, HP-UX, IBM AIX, SGI Irix, and Digital DEC-Unix.
• Handled hardware requisitions and purchase orders
• Manually installed Sun hardware including drives, memory, and SCSI peripherals
• Managed corporate firewall policy changes using Firewall-1 on Sun Ultras
• Performed security audits using Nessus, snoop, tcpdump, and tripwire
•
•
•
• Administered a complex Sendmail server responsible for multiple domains
• Maintained external and internal DNS records
• Managed backups and data recovery on a six-week rotation schedule
•
Created disk partitions and slices on SCSI disks
Installed Oracle databases and allocated disk space on RAID storage arrays
Installed VeriSign certificates for both Apache and Netscape Enterprise web servers
Configured Jumpstart for server installs over the network
Database Online Technician, Kemper Insurance, Long Grove, IL
1996 – 1997
• Prepared IBM RS6000s running AIX 4.x for development using CICS and MQ Series
• Wrote customized shell scripts to facilitate data backup
• Performed basic administration for new users
•
Certified for MQ Series and CICS for AIX administration
MVS Systems Programmer II
Illinois State University, Normal, IL
1993 – 1996
Supported the diversified requirements of a State University by providing technical expertise for mainframe software and
hardware including OS/390, 3390 DASD, 3270 terminals, systems programs and productivity software
• Performed RACF security administration
• Extensive experience with JCL, VTAM, TSO, ISPF, and JES2
•
Created and accessed VSAM datasets with JCL, IDCAMS, and other IBM utilities
• Maintained and customized system software under MVS/ESA 4.1
• Wrote CICS systems programs using Assembler, COBOL, PL/1, and SQL
• Mentored students, analyzed system dumps, and assisted them with debugging
Bachelor of Applied Computer Science – 116 of 120 credit hours earned