Stephen Roome
07976 241 342 : me@stephenroome.com : http://stephenroome.com/


Unix, Linux, Networking, Graphics and Neural Networks.
Experienced programmer in many languages, with a preference for C.


My involvement with computers and networks started in the 1980's when you'd have found me writing BASIC, 6502 or early ARM code to calculate mandelbrots, or do something network related. My fascination with bigger systems started somewhere around the time I was showing the new computer teacher how to use the acoustic coupler, or helping manhandle a 4MB hard drive upgrade for the school library catalogue, or maybe while burning a lot of EEPROMs for EcoNET.

I currently work from home, where I make various things out of wood, metal, and bits (logical and physical). Software I write is often, but not always, in C. I target my own code to a number of Operating Systems (Linux/BSD/OSX) and I prefer to use as few extra libraries as possible, sometimes coding simply to better understand an algorithm. There are occasional forays into OpenGL and GLSL to perhaps model a physical project or brush up on my vector maths.

I've recently written my third, and finally working, neural network in C. These projects let me get into the details of how things work rather than just running someone else's code and I can run the latest ideas (e.g. from scientific papers) in my own codebase. At some point I obtained a degree in Computer Science and have worked in a wide range of IT roles, mostly Unix systems (of varying sorts) as a sysadmin but there have been stints in change management, small and large scale networking and computer builds from desktops to large clusters among other things.


Key Skills


System Administration/Programming FreeBSD, SunOS/Solaris, HP-UX, Linux (Redhat/CentOS, SuSE, Ubuntu, Debian, ESX Server, SELinux), Windows, DG-UX, IRIX, OSX
Network management Cisco IOS and similar (TCP and also comms with GSRs, VOIP Softswitches, DSLAMs and MSANs)
Software Development Perl, C/C++, Shell Script, (PL/)SQL, Lisp, Python, PHP, Java, tcl/tk and many others
Build/Change Management Subversion, PVCS, CVS, SCCS, RCS, git, Perforce etc.
Project Management experienced managing IT Projects from initial pitch to final decommissioning.
Network services File and Mail Servers (sendmail, postfix, courier, cyrus, qmail, NEXOR), Apache, Zeus, BIND, LDAP, SSH, chargen, NTPD, xFTPd ...
DBA MySQL (v3 onwards), Oracle, PostgreSQL, Redbrick and Sybase.
Network protocols UDP, TCP/IP, HTTP, NFS, YP/NIS(+), DNS, (E)SMTP, POP/IMAP(S), SSH/SSL ...
Storage solutions software/hardware RAID, SANs, LVM, JBOD, Veritas, Vinum, geom, NFS, NAS, SMB/CIFS
Mac/WindowsWindows 3.x/95/98/NT/2000/2003/XP and MacOS from System 2/3 onwards to OSX (10.5)
Web CGI, ajax, Plone, Zope, PHP, CGI, Java and Javascript on ISS/Apache/Tomcat/NAS/NES/etc. (webmaster since 1994)
Hardware good experience with unix server hardware, Sun (SPARC/Opteron), PA-RISC (HP), ARM (various) and x86 unix servers.


Work Experience


2014 - 2017 : University of Bristol Advanced Computing Research Centre : Storage Systems Administrator
This role involved dishing out large chunks of data storage to research teams and helping them to get that setup at both their end and on the various clusters. At that time we had about 2PB of data on GPFS, shared via SMB from various Linux boxes, there were some big tape robots and some rather interesting machine rooms to work in. Strangely, I learnt quite a lot about webdav, amongst many other things. It was good to really get involved working on the super computer clusters and I enjoyed teaching a few Linux/Unix courses to students, post docs and staff.

2013 - 2017 : University of Bristol : Senior Teaching Associate in Engineering Mathematics
Based in the complexity sciences group I assisted post graduate students and staff with their research computing needs. This had three types of work:

  1. "Will this algorithm work ?"
  2. "How do I make my code in matlab/python/julia/C++ run well on *this* grid/cluster/PC ?"
  3. "How would I simulate this complex system of equations in code ?"
It was great fun, I got some ACKS in papers, I made friends, I also learnt to write deep neural networks from scratch, in C, because I felt I was rusty on the maths. I was. It turns out it's not easy, however, working in a group of mathematicians helps, I asked them a lot of questions too!

2013 - 2014 : University of Bristol : IT Support Specialist
As part of a wide ranging re-organisation of IT at the university my research funded role was migrated into a centrally managed position. This gave me the opportunity to help with IT issues across all of Engineering and to be the specialist for Aerospace issues.
For a while I was also based back in the Computer Science department where I had obtained my degree.

2010 - 2013 : University of Bristol, United Kingdom : Experimental Computing Officer
Sharing my time between the Bristol Centre for Complexity Sciences and ACCIS (now the Bristol Composites Institute) I assisted staff and post-graduate students with research computing with both attached experimental equipment and with computer based simulations.

1998 - 2009 : Pepcross Computing : Director
Freelance consultancy, on-site contracting on networks, Unix, databases and web services amongst many other things.

2008 - 2009 : Airbus : 3rd Line Unix Support
Operational support of BAe and Airbus UK Unix systems.

2007 - 2008 : Tiscali : NOC Engineer
Writing tools, troubleshooting networks (Cisco/Huawei) and maintaining servers (Linux/BSD/Solaris).

2004 - 2006 : Egg PLC : Consultant
Code releases to testing environments and automation of business processes. Protocol debugging and reimplementation of parts of Vignette storyserver, Unix/Windows/Firewall/server/network admin and troubleshooting.

2003 : BT Connect to Business : Systems Consultant
Solaris ( 2.6/2.8 ) and NetApp system and application administration. Server network architecture restructuring. Process re-engineering, documentation and change management. Extensive use of NEXOR mailer, Zeus/apache/netscape webservers and balancers, BT ADSL RADIUS, PVCS, Sun build tools. Database programming and mentoring junior programmers in C/C++, PL/SQL, Perl and shell scripts. Installation of SSH across all BT Connect servers. Also extensive use of " Netcool ISM " , OmniJava, SNMP and Clarify.

2001 : University of the West of England : Network Consultant
Web cache (Squid farm) and Firewall (FW1) hardening and testing prior to being made live.

2001 : RSL Finland : Billing Systems Consultant
Configuration of the main billing systems (Sybase, Kenan Arbor on HPUX-11i V Class Servers) producing telephone bills for all Finnish customers.

1999 - 2001 : Hewlett Packard : Senior Systems Administrator
Administration of HP-UX machines, including some in a roof space which could almost be considered a "garage".

1999 : British Airways : Contractor
Maintenance of the live and development ticket booking systems and Origin and Destination Project, including work on purchase of an early Sun E10k.

1997 - 1998 : Inty : Technical Architect
Original programmer of the first few generations of internet connection service IntY.

1996 - 1998 : Vision Interactive : Network Administrator
Systems, network and web administrator for Bristol based web agency.


Education


University of Bristol
BSc (Hons) Computer Science (1996)

Bedford School (1987 - 1992)
3 A Levels (Maths, Physics, Electronics) 11 GCSEs