Resume: Ed Marshall
Resumes are the OkCupid of the working world: you describe yourself with an opening paragraph or two, and hope your call-to-action attracts the right kind of attention. :)
What I've done: I've operated two small businesses, worked for a few startups, navigated a large financial firm, a larger DOE contractor, and an even larger social media company. I've built infrastructure ranging from a handful of office machines and a bunch of cloud systems all the way past 100,000 systems spanning multiple countries, along with writing or configuring a good amount of the software running on them. I've written software in anger in a few languages now, from glue between systems to tier-0 services that can't go down.
What I'd like to do: build critical services in creative ways, make people and systems more productive through tooling and process, work with organizations that are changing the world for the better, and keep learning new things.
That last part? About learning new things? That's important.
I am also on LinkedIn, if that's more your cup of tea, and there is a printable version of this document available (that may or may not be working right now).
Work Status
I hold citizenship in both Canada and the United States, and I do not require sponsorship to work in either country.
Recent/Current Positions
Senior Operations Engineer,
Twitter, Inc.
June 2011 - March 2015
I started out as a Senior Operations Engineer on a small team focused on "engineering for operations at scale", managing software and configuration deployment and core services infrastructure. Worked on a variety of projects, including a period of development work on an internal application deployment framework (think Docker, and you have the right idea), and the initial build-out of the operations software stack in a new datacenter.
I shifted full-time focus to software engineering in early 2012 as part of a newly-formed Infrastructure Automation team supporting a variety of provisioning and fleet management tools. Officially changed role to Senior Software Engineer under the Provisioning Engineering group in late 2012.
I took a brief detour in 2013 to the Operating Systems team, to assist with retooling large portions of our provisioning stack and configuration management systems to handle multi-OS delivery, and porting most of our low-level infrastructure to CentOS 6.
As of 2014, I was back on Provisioning Engineering, working on low-level systems provisioning tooling and hardware lifecycle tracking under a broader "manageability" mandate.
System Administrator III (Linux Administrator),
Fermi National Accelerator Lab
November 2007 - April 2011
Was previously titled "Computer Professional IV"; titles were shuffled shortly after starting.
Came aboard as part of a two-person UNIX administration team supporting Oracle Financials/PeopleSoft services for Finance/Business Services group on Red Hat Linux and Scientific Linux platforms, as well as older Tru64 systems. Roughly 30 systems, with a mix of development, QA, and production in a SAN-connected environment (HP EVA, Brocade FC switches). Completed HP EVA and EMC/Legato Networker training immediately upon joining the team. Strongly involved in several major RHEL upgrade projects and RHN Satellite upgrades and maintenance, as well as backup- and SAN-related configuration and troubleshooting.
As part of a 2009 restructuring, moved into a newly-formed Virtual Services group, supporting VMware and related technologies for lab-wide service. Completed both VMware VI3 and vSphere 4 coursework. Participated in construction and deployment of lab-supporting virtual infrastructure, while continuing to maintain and assist with existing financial/HR-supporting environment.
Senior Systems Administrator,
Subscribermail
May 2006 - November 2007
Came aboard in the midst of a data center relocation project; took on
systems management role for all Linux (RHEL 3 and 4) systems and
networking/infrastructure gear for highly-available, SAN-connected
web- and email-centric production environment, as well as internal
Windows, MacOS, and Linux desktop and development environment. Support
requirements were broad, including networking (Cisco and off-brand
firewalls, Cisco/3Com/Nortel switches with failover), systems, remote
management, backups (Amanda, Retrospect), alerting (Nagios), and
other duties as required.
Linux Administrator,
Performics/DoubleClick
December 2005 - May 2006
Part of a three-person UNIX administration team, focusing on Gentoo and
Red Hat Enterprise Linux running Apache, MySQL, DB2, and a variety of
in-house software and third-party products in a 24/7 highly-available
environment. Initially assisted in a complete data center relocation
from Illinois to Colorado without customer-impacting downtime; strongly
involved in centralized system configuration management (cfengine, Red
Hat Network), migration from local disk to SAN hardware (NetApp, brocade)
for DB2 databases, and general maintenance/ongoing operational duties.
Participated in monthly on-call pager rotation; reported to Production
Operations Manager.
Senior Systems Administrator,
Chicago Board of Trade
December 2002 - October 2005
Part of a large team of UNIX administrators responsible collectively for
managing a 300+ system (Solaris, Linux, FreeBSD) floor/"open outcry" and
electronic trading environment. Platforms range up to several E15k/6x00
systems, with the majority of systems being V880s, E4500s, and lower-end
systems for maintenance duties. Initially responsible for QA environment
planning and build-out (complete replication of production systems and
networks) and a "single sign-on" authentication centralization project;
provided a mix of primary and secondary support for a wide variety of
internal infrastructure systems (NIS, DNS, NFS, NTP, Apache, Sendmail,
patch management) and externally-facing systems (Internet services, order
routing systems). Handled system build-out and maintenance of in-house
telecom management systems. Assumed primary UNIX administration role for
in-house PeopleSoft HR/Financials environment. Coordinated systems-side
of a major data center decommission project.
President,
netlogic, Inc.
November 2001 - December 2002
Owner/operator of a Chicago-area technology consulting company, specializing
in UNIX systems management and Internet services deployment. Specific projects
have included Linux consulting and training, load-balancing and
high-availability service deployment, data center relocation management, and
custom systems software development.
UNIX Administrator,
Mercantec, Inc.
May 2000 - November 2001
Sole UNIX architect and administrator for internal development systems and
offsite 24/7 environment. Responsible for 50+ servers, running different
UNIX variants: Solaris, Linux (Red Hat, Slackware, SuSE, Cobalt, Debian),
AIX, IRIX, Tru64, HP-UX, BSD/OS, and FreeBSD. Hardware exposure includes
x86, Alpha, PA-RISC, MIPS, and UltraSPARC. Focus on cross-platform
solutions and emulation of customer field configurations for product
testing. Provided mentoring to developers for UNIX programming issues
(C/C++, Bourne shell, Perl, make, linker issues, performance evaluation
and tuning), specified and maintained UNIX development tool-chain.
Experience with building load-balanced clusters of systems; several Red Hat
Linux systems configured identically providing HTTP services (JBoss/Jetty)
with shared NFS file storage (Solaris) and Oracle database residing behind
a Cisco/Arrowpoint load balancer. Received three "Do-It-Right" employee
recognition awards in 2001.
Senior UNIX Administrator,
Tribune Interactive/Tribune Company
March 2000 - May 2000
Part of an 8-person team of UNIX and database administrators, managing an
infrastructure of approximately twenty co-located systems and an extensive
on-site internal UNIX network. Primary technologies were SPARC/Solaris,
Linux, Netscape Enterprise Server, StoryServer, NetGravity, OpenMarket
Transact, and custom management and CGI components. Served as the primary
line of support for developers both on- and off-site (nationally), in
addition to regular administration, evaluation, and deployment.
Senior Systems Engineer,
XNet Information Systems, Inc./Winstar
July 1997 - March 2000
Initially handling oversight, maintenance, and implementation of UNIX-based
services, moved quickly into a design and management capacity recommending
architecture, software, and general system design. Worked directly with a
network of 20 UNIX (Solaris and Linux) and servers, servicing dialup, web
hosting, e-commerce, Usenet, email, DNS, and Oracle/Sybase RDBMS customers
(and the underlying support infrastructure; NIS, NFS, RAID sets, monitoring,
configuration management and revision control, with an availability and
security focus). Development in Perl, C, Bourne shell, awk, make, PHP as
necessary. Experience with building load-balanced clusters of systems;
several Sun/Solaris systems configured identically providing HTTP with SSL
(Apache) FTP (ProFTPD) services with shared NFS file storage and Oracle
databases residing behind a Cisco/Arrowpoint load balancer (after a lengthy
evaluation of products from Arrowpoint, Big/IP, Cisco, and in-house
solutions). Received XNet "Quality" award in 1998.
Vice President/Treasurer,
Common Internet Inc.
June 1994 - July 1997
Sole architect and administrator for daily operations of Linux-based ISP
service infrastructure, including web, email, Usenet, UNIX shell, PPP/SLIP
dialup, leased line and wireless connectivity, provisioning automation
development (Perl, bourne shell, C, make), and helpdesk management. Focus
on stability, availability, and customer relations. Did extensive work
toward stable Linux configurations (1.0 and earlier kernels through 1.2.x).
Held executive duties as Vice-President; assumed additional role of
Treasurer 04/1996.
Older Positions
These positions pre-date my career in information technology, and are
provided here for completeness.
Computer Lab Assistant,
Brandon University
January 1997 - April 1997
Student computer lab advisor; responsible for helping students with
assignments and general troubleshooting for a 48-workstation
Windows 3.1(1) and Windows NT 3.51 lab with Solaris, VMS, and
Windows NT servers, using Novell Netware as the network platform.
Application assistance included various word processing,
database, spreadsheet, and Internetworking programs, and
interactions between them across platforms. Also provided
programming assistance for Computer Science students.
Grocery Clerk,
Canada Safeway #628
August 1994 - November 30, 1996
Courtesy Bagger; promoted to Grocery Clerk in August, 1995.
As a Courtesy Bagger, responsibilities included extensive work
with the general public, bagging of groceries, and light
janitorial work. The Grocery Clerk position requires work with
the public, handling of cash as a checkout operator, restocking
of grocery department, receiving of stock, and light janitorial
work. Bagger position was very team-oriented, while Clerk
position required more personal initiative. Left due to time
constraints with operating Common Internet Inc. and studies at
Brandon University.
Carpet Salesman,
J & G Supply
May 1996 - August 1996
Worked as a Carpet salesman as summer employment. Worked with
various styles of carpeting and adhesives, and dealt directly
with customers in providing selling suggestions and offering
advice on cutting and laying techniques. Finished work in
mid-August to prepare for return to University.
Laborer,
Village of Arran, Saskatchewan
June 1988 - September 1992
Miscellaneous duties, including grounds maintainance, garbage
collection, and other general labor. Left to pursue
post-secondary education at Brandon University.
Reporter,
The Canora Courier Ltd.
September 1988 - December 1990
Served as a reporter for The Norquay North Star, collecting
newsworthy information, writing articles for publication, and
taking photographs of events.
My BrainBench
transcript
(#3036509) is available for viewing online at
www.brainbench.com.
BrainBench Job Role Certifications
Unix System Administrator
November 14, 2005
Responsible for running and maintaining the computer systems in an
organization that uses a UNIX operating system. A system administrator
configures, installs, and maintains computer hardware; deals with
system security issues and anti-virus upgrades; troubleshoots and
fixes system failures; and handles software and hardware purchases.
Completed the following individual certifications to obtain this Job
Role certification: "Disaster Recovery and Planning", "Information
Technology Terminology", "Networking Concepts", "Server Administration",
"Linux Administration (General)", "Perl", "Unix Korn Shell Scripting",
"Customer Assistance", "Listening Skills".
Linux System Administrator
November 14, 2005
Responsible for running and maintaining the computer systems in an
organization that uses a Linux operating system. A system administrator
installs, configures, and maintains computer hardware; deals with
system security issues and anti-virus upgrades; troubleshoots and
fixes system failures; and handles software and hardware purchases.
Completed the following individual certifications to obtain this Job
Role certification: "Disaster Recovery and Planning", "Information
Technology Terminology", "Networking Concepts", "Server Administration",
"Unix Administration (General)", "Perl", "Unix Korn Shell Scripting",
"Customer Assistance", "Listening Skills".
BrainBench
Individual Certifications
Master, Unix Administration (General)
November 14, 2005
Measures knowledge of the key issues and concepts in administering an
UNIX environment. This is our core UNIX Administration test and is
focused on the general aspects of UNIX that span all UNIX variations.
Designed for experienced system administrators, this test covers the
following topics: Communications, Devices, File Systems, Files, General
Principles, Managing System Resources, Processes, Security, Shell
Scripts, Startup and Shutdown, TCP/IP Network, Troubleshooting, and
User Accounts.
Master, Listening Skills
November 14, 2005
Measures retention and listening skills. This test assesses knowledge
and recognition of everyday spoken English, and it is NOT focused on
any specific topical areas. The items presented in audio format consist
of everyday spoken English phrases, sentences, short announcements,
statements, or exclamations. Designed for all professionals, this test
requires that you to listen to passages and then answer questions
related to what was said.
Master, Customer Assistance
November 11, 2005
Measures knowledge of interpreting a policy guide and resolving customer
issues and problems based on policy, procedures, and guidelines within a
scenario or reference guide.
Master, Server Administration
November 11, 2005
Measures ability to administer a server. Designed for experienced
administrators, this test covers the following topics: Storage, Backup,
Scheduling, Security, Network, Users and Resources, Optimization,
Hardware, Software, and General Knowledge.
Disaster Recovery and Planning
November 11, 2005
Measures knowledge of recovery techniques in the event of a disaster.
Designed for administrators, this test covers the following topics:
Essential Concepts and Terminology, Exposure and Risk Analysis, Disaster
Prevention (Avoidance), Planning Fundamentals, Asset Management, Backups
and Offsite Storage, Communications, Preparation Essentials,
Recovery/Interim Restoration, and Relocation to Primary Site/Final
Restoration.
Master, Information Technology Terminology
November 11, 2005
Measures knowledge of the terms associated within the IT industry.
Designed for all IT professionals, this test covers the following
topics: SCSI Terminology, Processor Terminology, Data Storage
Terminology, PC Peripheral Terminology, Operating System Terminology,
Application Terminology, Cable Terminology, Network Topology, Network
Compliances, HTML Terminology, WWW Browser Terminology, Internet,
Security, Computer History, and WWW History.
Python
November 11, 2005
Measures knowledge of programming using Python 1.5. Designed for
experienced programmers, this test covers the following topics: Core
Language, Conversions, Internet Modules, Process Management, Storage,
and Persistence.
Master, Perl
November 11, 2005
Measures knowledge of programming in Practical Extraction Report
Language. Designed for experienced programmers, this test covers the
following topics: Basics, Expressions, Functions, Literals, Modules,
Statements, and Subroutines.
Master, Unix Korn Shell Scripting
August 15, 2001
Renewed November 10, 2005
Measures knowledge of Korn Shell Scriting. Designed for scripting
professionals, covers the following topics: Korn Shell Basics, Shell
Initialization, Command-Line Editing, Script Creation and Execution,
Script Variables, Flow Control, Integer Variables and Arithmetic,
Script I/O, Functions, Built-in Script Commands, and Script Debugging.
Master, Networking Concepts
November 10, 2005
Measures knowledge of the core aspects of local area networks, whether
Windows NT or Novell. Designed for experienced network administrators,
this test covers the following topics: Design, LAN Topologies, Network
Cards, Network Devices, Network Management, Network OS, Network
Standards, OSI Model, Protocol Stacks, Resource Sharing, TCP/IP,
Transparent Protocols, Troubleshooting, and WAN Topologies.
Master, RDBMS Concepts
October 28, 2005
Measures knowledge of the most important aspects of RDBMS. Designed for
both programmers and administrators, this test covers the following
topics: Data Modeling, Design, Normalization, Performance, Procedures
and Transactions, and SQL.
Master, Linux Administration (General)
August 6, 2001
Renewed September 29, 2005
Measures knowledge of the key issues and concepts of administering in
a Linux environment. Focused on the general aspects of Linux that span
all Linux variations. Designed for experienced administrators, covers
the following topics: Configuration and Administration, General Issues,
Installation, Kernel Configuration and Installation, Networking,
Programming Issues, Security, System Administration and Security, and
Transitioning from Windows.
Master, UNIX Administration (Solaris 8)
November 4, 2002
Measures knowledge of Sun's Solaris 8 implementation of UNIX. Designed
for experienced administrators, this test covers the following topics:
Administrator Maintenance, Devices, File Systems, Network Services,
Security, Setup and Configuration, Shell Programming, Troubleshooting,
and Performance Tuning, and UNIX System Knowledge.
C
August 13, 2001
Measures knowledge of programming the C Language. Designed for
experienced programmers, covers the following topics: Arrays and
Strings, Basics, C Expressions, Functions, Input/Output, Pointers,
and Program Statements.
Other Certifications
Solaris Unix 2,
TeckCheck
January 3, 2002
Measures understanding of the Solaris operating system. Intended for
administrators working in a Solaris 2.x environment. Concepts covered:
Sun & Solaris Terminology, Unix Basics, File Manipulation, Shell
Scripting, Startup & Shutdown, Device Administration, User
Administration, Printing, Networking Basics, Open Network Computing,
Networking Daemons, Security Configuration, System Configuration,
Solaris Server Topics, and Common Desktop Environment.
Sun
Fire High-End Server Administration Course (ES-421),
Sun Educational Services
December 2004
Chicago, Illinois, USA
The Sun Fire High-End Server (HES) Administration course provides
students with the skill set necessary to identify the features and
architecture specifics of the Sun Fire 15K/12K and Sun Fire E25K/E20K
servers. These skills include performing configuration and platform
administration methodologies supported by Sun on the Sun Fire HES; be
familiar with and use troubleshooting tools and techniques available
within the Solaris Operating System (Solaris OS) relevant to the Sun
Fire high-end servers.
Computer Science,
Brandon University
September 1992 - April 1997
Brandon, Manitoba, Canada
Awarded the G. F. MacDowell Entrance Scholarship based on academic
merit. Studied Computer Science in a four-year B.Sc. program; did not
complete final year, but instead moved on to Chicago taking on
employment in UNIX/Internet field.
Accounting,
Saskatchewan Education
September 1989 - June 1992
Correspondence (Regina, Saskatchewan, Canada)
Took a three-year high-school accounting course via correspondence,
which covered fundamentals and procedures of double-entry accounting,
transaction and event analysis, financial statement reporting and
interpretation, preparation of financial records and income tax
returns, taxes levied by various levels of government, and managerial
accounting topics relating to operating decisions.
High School,
Fort Livingstone School
September 1990 - June 1992
Pelly, Saskatchewan, Canada
Attended grades 11 and 12, and received high school diploma.
High School,
Arran School
September 1979 - June 1990
Arran, Saskatchewan, Canada
Attended Kindergarten through grade 9.
References will be made available upon request for specific opportunities.
I was asked a series of questions at one point in my career about my approach to certain topics, and how I felt about management in information technology; I have reproduced my answers below.
Have you ever hired anyone? What qualities do you seek?
As the owner of an Internet Service Provider, I was resposible for bringing
on new employees in technical roles. I've become convinced over time that
skills and experience are merely a starting point when seeking a new hire;
while new skills can be taught, a solid work ethic and a personality
pre-disposed to creative problem solving is much harder to come by. Give me
a team of people who can think beyond their job description, and ferret out
innovative solutions to the problems any business will face over time, and
we can collectively achieve anything.
How can you help our company be more profitable?
I'm a stickler for the bottom line. With typical IT budgets being squeezed
in response to current economic forecasts, I have a responsibilty to my
company to be consistantly searching for more effective ways to perform
critical tasks, finding and establishing relationships with more affordable
vendors, and carefully reviewing technology spending requests that are
channeled through my group to ensure that everyone is taking an
equally-hard look at spending. This doesn't mean "never spend anything";
this means being frugal, and spending in such a manner as to maximize the
overall benefit to the company.
How do you go about making important decisions?
Research, then debate, followed by "compassionate dictatorship". No major
decision should be entered into without a solid understanding of the
options involved. Those most impacted by decision must feel as though they
are a part of the process, and be given a chance to interject their
thoughts. Finally, an individual or a group must take all of this into
account, and take ownership of the decision and it's ramifications. By
ensuring that all three steps have been completed in a visible and credible
manner, while you may never reach universal agreement, you will have
achieved a consensus that those affected can accept.
How have your technical skills been an asset?
Having a broad set of skills to call upon has helped immensely in the past,
usually to keep me from reinventing the wheel. While I specialize in UNIX
and Internet technologies, having a software development education and an
understanding of the business lifecycle are invaluable when making
purchasing and deployment decisions. This quote sums up my feelings on the
matter far better than I could state them myself:
A human being should be able to change a diaper, plan an invasion, butcher
a hog, conn a ship, design a building, write a sonnet, balance accounts,
build a wall, set a bone, comfort the dying, take orders, give orders,
cooperate, act alone, solve equations, analyze a new problem, pitch manure,
program a computer, cook a tasty meal, fight efficiently, die gallantly.
Specialization is for insects.
Robert A.
Heinlein
Without the ability to adapt, and without a wide array of skills to draw
on, you will never be an innovator.
How would you describe your philosophy about management?
There is no one answer to this question, despite the many pundits who would
love to sell you a single all-encompassing approach. If a single
philosophy is needed, it is this: "always remain flexible". Employees take
on any number of different personality traits, all requiring slightly
different approaches to help them find their most effective road. Projects
within a company never fit a well-defined description; they change and
improve over time, and so must those who oversee them. Budgets can change
from week to week, so a competant manager will constantly strive to find
the most cost-effective approach, while never compromising the integrity
and vision of the company. Companies are constantly reinventing
themselves; the management staff must be equally flexible if they are to
lead the company to success.
Tell me something about yourself that I didn't know from reading your resume.
I'm an avid software developer and researcher. One of my pasttimes is
getting involved in open source projects to "scratch an itch", and
learning new languages
and development methodologies. I am currently most comfortable with Python, C,
Ruby, and the majority of typical UNIX "scripting" commands (sh, awk, sed,
etc), and I'm comfortable navigating C++, Java, Perl, Tcl, Scheme, and few
others. I'm familiar with the Agile/XP approach to the software
development lifecycle, and am a strong proponent of the pair-programming and
refactoring aspects of the model. I think "Design Patterns" from the "Gang of
Four" was a wonderful book put to terrible uses by programmers who can't look
beyond it, I understand the difference between forced-induction and
naturally-aspirated engines, and I can do amazing things with a can of tuna, a
pot of macaroni, and some white cheddar cheese. I've also been told that I
have a somewhat odd sense of humor.
What aspects of your job do you consider most crucial?
The single most important aspect of good systems architecture and
administration is planning, at both the project and technical level.
Balancing time between multiple (often opposing) tasks is key, as well as
being able to plan the growth and needs of your systems and users.
What do you do for fun?
You can usually find me doing a wide range of activities; playing video
games, working on open source projects, camping with my wife, playing with my dogs, and
scuba diving. I'm an avid hobbyist mechanic, finding new and usually
expensive ways to squeeze a little more performance (along with a few
broken parts) out of my car at the track. You can often find me sitting at
a local bookstore in the evenings, usually with a pile of technology books
and a cup of some highly-caffienated beverage.
Ed Marshall
Email: esm@logic.net
URL: http://esm.logic.net/