A Linux systems administrator based in the South East of England, with a focus on automation.
November 2012 - Present
- Managing Unix, Linux and Windows systems, networking and datacentre deployment
- Automation and monitoring
- Maintaining and operating backup systems (on the order of 100s TB/year)
- IT Support (first and second line)
- On-call rotation
July 2010 - November 2012
- Design and implementation of network solutions for Atos customers in the Transport and Financial Services industries.
- Lead planner for all physical aspects of 5-datacentre core infrastructure upgrade including WAN circuit delivery, rack and equipment placement, power & network connectivity, build validation, and logistics management for ~3000 items of hardware.
- Designed, built and operated a large development lab for validation of a large-scale internal project, containing:
- ~70 mixed-vendor devices across 8 fully populated, full-sized racks
- 500 copper & fibre connections
- >2.5km of network cabling
- Installation, configuration and maintenance of an out of band management service for remote console access to hundreds of core infrastructure devices across multiple datacentres and unmanned sites.
- On-call proximity support, providing out-of-hours coverage for any incidents requiring a hands-on activity at the local data centre.
June 2008 - May 2009
- Penetration testing of web applications and hardware devices for large financial institutions.
- Development of a perl/sql based data mining survey.
- Take-downs of phishing sites (via legal channels), and other anti-phishing related activities.
- Windows Server/Active Directory/Exchange administration (including migrations to newer hardware/operating system versions).
June 2007 - September 2007
- Maintained and extended an existing internal web application using PHP and Perl.
- Installion and configuration of a streaming video-on-demand server on Red Hat Linux, with embedded Linux clients running on set-top boxes.
September 2006 - June 2010
- Working in the University’s Computer Science Helpdesk on an ad-hoc basis, performing day-to-day tasks to help the full-time System Administrators. This included repairing and reinstalling the operating systems on lab PCs.
|CCNA||Cisco||Feb 2010 – Feb 2013|
October 2005 - June 2010
|Computer Science with Distributed Systems and Networking||MEng||First Class|
September 2003 - June 2005
- Installation, configuration and operation of Operating Systems (Linux, Windows, Mac OS X)
- Writing and maintaining Linux software packages and package repositories (Gentoo Portage, Sabayon Entropy, RPM)
- System automation
- Puppet (including type and provider development)
- MCollective (including plugin development)
- Unattended installation (Molecule, Kickstart)
- Virtualisation (KVM, libvirt, VMWare/ESX)
- Monitoring (Nagios, Icinga, including automation)
- Backup systems (BackupPC, Bacula)
- Messaging (RabbitMQ)
- Storage (ZFS, Fujitsu Eternus disk and tape)
Brief experience with Active Directory, Group Policy and Exchange administration on Windows-based systems and integration with Linux systems via LDAP.
- Routing and Switching (Cisco IOS/Nexus, Arista, Brocade, Mikrotik)
- Firewalling (Cisco FWSM, ASA, Linux iptables)
- VPNs (Juniper, OpenVPN, Mikrotik)
- Dynamic Routing (OSPF, BGP) and IPv4 Multicast
Experience configuring and operating network services, including:
- DHCP (ISC)
- Resilient DNS (BIND)
- Resilient LDAP (OpenLDAP, Active Directory)
- HTTP (Apache, IIS)
- SSL CA (OpenSSL)
- Logging (Syslog, Splunk)
- RSA Authentication Manager
More recently, experience with Python and Django.
A polyglot; I can read and write most languages to a basic degree. The ones I use regularly change based on current requirements. Presently I find myself working mostly with Python, Ruby and Bash shell scripting. I have previous experience with PERL and C/C++ with Qt
Experienced with SQL, including database normalisation. Installation and operation of MySQL DBMS, basic operation of MSSQL.
- IDEs (KDevelop, Eclipse SDK, Microsoft Visual Studio)
- UNIX build environments (Vim, gcc/g++, make)
- Testing frameworks (Rspec)
- Version Control systems (Git, GitHub, GitLab, Stash, Subversion)
- Continuous Integration/Delivery (Jenkins)
- Data centre architecture
- Physical equipment installation and maintenance
- Brownfield project migrations
I am a supporter of the opensource movement, and try to use free/libre software and code where I can. I also release all my code under free licenses where possible in the hope that they might be useful to others.
I enjoy developing many small systems for both personal and educational use. Aside from the projects listed on my personal website, in the past I have also written a web-based remote control for WinAMP, and “audio emoticon” software for use with MSN Messenger, which was downloaded more than a million times.
At University I was in a group named “CSLib” (Computer Science Library), which maintained a centralised software repository for other students in the department. This involved building and maintaining software, often compiled from source. It also involves managing a Windows 2003 Terminal Server for remote use by other students.
My third year individual project was to design and implement a cross platform document sharing system which featured zero-configuration peer discovery, and password-less, decentralised authentication whilst maintaining privacy and security.