Curriculum Vitae

Profile

I enjoy writing code (from embedded C in 32KB of memory to PHP with clustered MySQL servers) and have a wide knowledge and experience in IP networking and Linux server administration.  I gain great satisfaction from achieving elegant solutions to previously unsolved problems, whether in a team or as an individual.  Working with others to improve my own knowledge and offer the same back, and in doing so be increasingly able to “do a really good job” is what gets me up in the morning.

Having graduated with a 2:1 BSc Hons in Computer Science in 2008, I began work in a small start-up solving the prevalent “last-mile” ADSL issue through a bleeding edge “bonding” solution which launched internationally during 2009.  After marriage and relocation I joined another start-up offering personal finance in the UK, which has been successfully bought by a prominent US finance company in Jan. 2011.

Experience

PHP Developer, Fortress Group (UK) Ltd, Bury St Edmunds

Dec. 2009 – Present day

Working initially in a team of 3 developers (currently a team of 5), I maintained, optimised, extended and supported a financial loan management system (customer, admin and back-end aspects) as the growing demands of the company required.  (www.fortressuk.co.uk / www.1monthloan.co.uk)

Major self achievements include complete rewriting of the customer application process, modularised decision engine for affiliate lead assessment, improved and revised OO database abstraction class (supporting read/write load-balancing across clustered MySQL servers), and the provisioning of a Trac/SVN server on a new virtualised development network – providing the company’s first staging environment.

As a team it is acknowledged that we enabled the company to become a viable investment for several major US financial companies which led to a final sale in 2011.  Our own analysis and the subsequent automation of many sub-optimal business processes has improved company revenues substantially.

Daily responsibilities include peer code reviews for PCI-DSS compliance, development of new site features and associated change control procedures, debugging and maintenance of poor legacy code and DB design, re-factoring and optimisation of both code and SQL to stabilise the application during an exponentially increasing load, ad-hoc reports for directors and investors, and maintenance of development resources (virtualised Trac and SVN server, and a small development network with staging environment).

3rd Line Technical Support Engineer, Sharedband Ltd, Ipswich

Sept. 2008 – Dec. 2009

Support, quality control and development of a bleeding edge solution to the prevalent “last-mile” ADSL issue using aggregation of multiple IP connections (whether ADSL, fibre, cable, ethernet or WiFi).  (www.sharedband.com)

I joined the company as the product was first being launched by a prominent UK ISP – my role was to provide 3rd line technical support for the product and maintain our service in data-centres across the US and UK.  I was later given opportunity to also help develop various features into the product (both the PHP front-end and the embedded C network devices), later also taking responsibility for implementing a software release cycle and overseeing QA testing between public releases.

During my time at Sharedband, I acquired an extensive knowledge of IP networking at byte-level, including a handful of the most popular IP related protocols (PPTP, IPSec, BGP, TCP, UDP, DNS etc).  By nature many of the problems we encountered had never been seen or solved by anyone outside the company.

The team at Sharedband was exceptionally talented; of the problems I helped solve include: remotely identifying a damaged DSLAM at a BT exchange in London, implementation of software fail-over between data-centres across the globe, automated “flashing” and provisioning of many different router platforms for speedier delivery of orders to customers, and the debugging of a module found in the Linux kernel used by Netgear in a series of their routers – mistranslating PPTP headers in the presence of NAT.

Education

2:1 BSc Hons in Computer Science at Essex University.  I chose modules primarily in programming (C, C++, Java), embedded systems, computer vision, natural language engineering, robotics, web application programming and operating system theory.  Other modules included project management and personal development.  For my final year dissertation, I chose to explore using Computer Vision for Human-Computer Interaction.  The result was something like the yet-to-be-announced Microsoft Kinetic.  Unsurprisingly I have received no royalties to date.

Key skills

The following is a part self, part appraisal fed assessment of my main skill areas; I have marked skills between “Average” (meaning that which I believe myself to be skilled, but not primarily skilled at) and “Excellent” (meaning that which I consider to be of my strongest skills).  “Good” falls somewhere between:

Environment

  • Linux system administration – Excellent
  • LAMP stack – Excellent
  • Windows/OSX – Good

Networking

  • TCP/UDP over IP (and “major protocols” – HTTP, DNS, SMB etc) and ADSL – Excellent
  • Cisco – Average (no formal qualification, but enough knowledge to navigate both CatOS and IOS CLIs)
  • Virtualisation (XenServer and VMWare) – Good/Average respectively

Languages

  • PHP (procedural/MVC/OO) – Excellent
  • SQL – Good (I’ve worked primarily with MySQL – and continually discover better solutions)
  • Perl/Bash/Java – Average
  • Embedded C / C – Average (I am keen to [re]gain experience here)
  • C++ – Average (almost exclusively University experience)

Project management

  • Interpersonal skills – Excellent
  • Documentation (code, downtime reports, end-user etc) – Excellent
  • Risk Analysis – Good
  • Leaving work “at work” – Average

Despite far more experience working as a Linux system administrator than a Windows administrator – I have no issue working on the Windows platform – I find MS Office to be a very useful software package when used correctly – Outlook, Project and Word particularly.

I use all of Ubuntu/Debian/CentOS, Windows and OSX at home and work on a regular basis – and have little preference to my environment providing there’s a text-editor (console or GUI based) and a web browser!

Other activities, interests and observations

Occasionally I blog, regularly I take photographs, I play both electric and acoustic guitar (for both leading church worship and for my own enjoyment).  I maintain a Linux powered Windows network (via Samba) for my church where I’m a deacon and heavily involved.  My garage contains significant amounts of recycled Cisco hardware from Ebay.

In 2009 I started a part-time degree in Theology which I intend to continue as circumstances allow.  I love working with other people whether doing DIY or programming, but tend to be an introvert when thinking (which I find myself doing all the time).  I find whiteboards a necessity and cannot sleep without a notebook and pen.  I’m very pedantic when it comes to documentation and spelling, XML based mark-up or source code layout.

As time allows, I like to follow the development of various open-source projects – I’m a big believer in the power of free software.  I’m particularly interested in operating system – finding Linux distributions, Haiku, SyllableOS and ReactOS of particular interest to myself.  A personal goal is to one day complete (what would be) a thoroughly documented hobby OS I started during University – releasing it as an educational resource for others on the Internet.

References

References are available on request.