Welcome To My Online Profile!
I am David John
Freelance DevOps Engineer & Linux Sysadmin!
About Me! 

About Me

David John

My Profession

I am a Freelance DevOps Engineer in Edinburgh, Scotland (and sometimes in Spain!) with Linux Sysadmin and Software Engineering experience, as well as a BSc in Computer Science.

My Position

I'm currently working for Toptal who hire only the top 3% of developers in their field and I'm proud of this and happy to be working with them.

My Contact

Feel free to contact me with any questions or opportunities using my contact details at the bottom.

Contact Me! 

My Expertise

Experience, Studies & Professional Past

  • DevOps Engineering

    I've found that DevOps is my favourite area of computing. It mixes part of all the technologies that I love the most. There's scripting in Python/Ruby/Perl/Bash to exercise my software engineering skills; Linux server administration and optimisation of services and infrastructure; security; networking and working closely with the development team.

    It can be hard to define exactly what DevOps really is but one could term it a way of life more than anything. I've found the best DevOps Engineers are those that are highly interested and enthusiastic about new technology, that attend local meetups outside of work hours to find out what others in the field are doing and that have a strong passion for it!

    Some of the technologies I've recently used:

    • Configuration management (Ansible, Puppet, Chef, Salt)
    • Development in segregated environments (dev/staging/production)
    • AWS CloudFormation, CodeDeploy, CodePipeline
    • Docker and LXC
    • Jenkins
    • Atlassian suite (JIRA, HipChat, Confluence, Bitbucket)

    I would love to hear from you if you have an opening for a competent, experienced and enthusiastic DevOps Engineer.

  • Amazon Web Services

    Over several years I've assisted clients when it comes to the cloud.

    Cloud services are growing rapidly, with more and more clients looking to get into the cloud, whether than be Microsoft's Azure, Google's Cloud, a self-hosted OwnCloud solution or most popular of all Amazon Web Services (AWS).

    Being most familiar with AWS and it being the largest and fastest growing of the cloud services I usually suggest my clients go with it. I keep up to date with the latest changes, attending meetups here in Edinburgh and closely following the yearly Amazon re:Invent.

    Specific experience I have with AWS includes:

    • EC2 (instances/servers and scaling)
    • RDS (databases, Postgres/MySQL)
    • S3 (storage, including for a Docker registry)
    • ECS (Docker)
    • ELB / LC / ASG (load balancing)
    • CloudFormation (infrastructure deployment)
    • Route53 (domain name system)

    As previously mentioned I also have significant experience in migrating clients' infrastructures to the cloud — be that a single server or a large infrastructure; experience in automation using Puppet and Cloud Formation; deployment of an S3 backed Docker registry and more…

    Contact me if you have any enquiries!

  • Linux System Administration

    I've worked closely with Linux for well over a decade now, beginning to use it in my teenage years dual-booting it with Windows at first before using it for everything.

    This lead me into the field of Linux sysadmin, starting with my own shared hosting, moving onto dedicated servers and eventually the cloud (once it became a thing). This has included working for all forms of clients from single users to small companies to $100m multinationals.

    Commercially I have many years of experience which has required me to become familiar with hundreds of services, such as (briefly, this list is far from exhaustive…):

    • HTTP servers (nginx, lighttpd, Apache, uwsgi)
    • Caching servers (Varnish, nginx)
    • Databases (PostgreSQL, MySQL, Oracle)
    • Database tools (pgpool)
    • Logging (ElasticSearch, Logrotate)
    • Monitoring (Sensu, Kibana, Nagios)
    • VPNs (OpenVPN)
    • Virtualisation (Qemu/kvm, VirtualBox, vmware)
    • Containerisation (Docker, LXC)

    I've worked with all major distros in corporate environments including Debian and Ubuntu, RHEL and CentOS as well as the occasional client running Gentoo or Arch Linux (perhaps not best for production!).

    See my CV for more detailed information.

  • Contact
    Me
    below!

My Curriculum Vitae

My Work History

  •  

    DevOps Engineer, Toptal

    October 2016 ongoing

    Client: MindTrust Labs. Contracted as their AWS specialist in a DevOps capacity to work with Amazon's CodeDeploy, CodePipeline, CloudFormation and the usual EC2/RDS/Route53/EFS/etc resources to implement automated blue/green deployments in an auto-scaled and infinitely scalable infrastructure. This also involved creating the templates for swift deployment of new sites using the same stack via CloudFormation to provision the resources and Ansible to configure the instances.

  •  

    DevOps Engineer, People's Postcode Lottery

    January 2016 until May 2016 (6 months)

    • In depth work with Ansible
    • Working intimately with the developers, DBAs, managers and IT
    • Maintenance of the dev/staging/acceptance/production environments
    • Primary sysadmin of ≈ 200 servers
    • Continuous deployment
    • Setup and use of Ansistrano/Capistrano
    • Atlassian suite (JIRA, HipChat, Confluence, Bitbucket)
  •  

    Freelance Linux Sysadmin / DevOps Engineer

    September 2014 ongoing

    Repeat contracts for numerous clients generally in the area of Linux sysadmin and DevOps. Some software engineering and scripting

    Technologies: Docker, Qemu/KVM, OpenVPN, Ansible, Jenkins, Puppet, Python, Perl, Bash, AWS (Cloud Formation, EC2, S3, ECS, Route53, ELB, ASG, . . . ), CloudFlare, Git, MySQL, PostgreSQL, Nginx, Apache, uwsgi, and more

    I have outlined below a portion of the work done for my clients over the years.

    Communication was key to my success with every client, and with their development teams.

    Client: Daniel Medveczky, EQRaffle, RSBooster

    My client's project was overloaded and they hired me as a specialist who could move them to the cloud for scalability.

    This was extremely enjoyable as I had complete freedom to design their AWS infrastructure from scratch. I migrated their single dedicated server to a staging/production environment on AWS's EC2. I worked closely with my client and his developers to determine the correct set-up for them and scaled it accordingly.

    Technologies: AWS, EC2, RDS, Git, Ansible, Sensu, CloudFront

    Client: Steve Tuttle, CloudWorks

    I was contracted to create a continuous deployment strategy utilising AWS's Cloud Formation, EC2 and RDS alongside a Puppet master server to manage the Puppet agents. This required using Cloud Formation with a variable number of EC2 instances which would bootstrap themselves from AMIs allowing the EC2 instances to communicate with the Puppet master and automatically deploy their web app with continuous updates based on pushes to Github.

    This was a challenging but enjoyable role. Working with Linux, AWS and the DevOps stack is what I love.

    Technologies: AWS, EC2, RDS, Route53, Puppet, PostgreSQL, troposphere, cloud-config, Cloud Formation

    Client: Leo Häamäläinen, Devoca

    I was contracted as a Linux sysadmin to maintain their back-end servers, used by thousands of people for their hand-held label devices.

    Duties: Up-scaling operations; troubleshooting downtime; eradicating a rootkit that they'd contracted under a previous contractor; reconfiguring and optimising both Apache and MySQL; planning for minimal downtime during migrations; master-slave MySQL mirroring; scripting backups

    Technologies: Apache Servermix, Apache HTTP, Exim mail server, Ubuntu 14.04, iptables firewall, fail2ban, MySQL, DKIM + SPF, DNS

    Client: Ellison Brookes

    Deployed Docker Registry to Amazon's container service (ECS) backed by their storage service (S3).

  •  

    Freelance Software Engineer

    July 2013 to September 2014 (1 year 2 months)

    • Several large projects using Django + Python
    • Full stack deployments
    • Postgres and MySQL
    • Bitcoin trading systems and wallet security
    • Linux system administration

    Client: Eric Bisceglia

    Worked with Eric and another software engineer for ≈ 6 months

    Containerising altcoin instances to provide security in case of malicious users or hackers, ensuring uptime and redundancy for the web frontend/PostgreSQL backend on Microsoft's Azure platform.

  • Software Engineer, Scotweb

    June 2011 to July 2013 (2 years 1 month)

    • Linux system administration
    • Twisted Python web backend development
    • Full stack deployment and configuration
    • Web development (HTML/CSS/jQuery)
  • Contact
    Me
    below!

My Education

University

  •  

    Computer Science BSc, Heriot-Watt University

    September 2007 to May 2011

Other Activity

  •  

    Spanish Intermediate

    Achieved Intermediate level Spanish at La Escuela Oficial de Idiomas in Salamana. This is an ongoing project with the aim of reaching at least level C1 (Advanced)

  •  

    Charity Contribution

    Raised £1,050 for MND Scotland in a charity Skydive

  •  

    Github & Bitbucket

    Maintain extra-curricular Github and Bitbucket profiles frequently making changes to open source code

  •  

    Always Up To Date

    Always up to date with the latest technology, especially DevOps related tools such as configuration management

  •  

    Professional Meetups

    Attend the Edinburgh AWS, Docker and DevOps meetups

Here you can download my C.V. as PDF Curriculum Vitae PDF.

Get In Contact With Me!

Mobile: +44 7816 930 167

11/6 Watson Crescent, Edinburgh, EH11 1HB

Skype: naypam.292

And of course if you use Slack, HipChat, IRC or any other form of communication I'm more than happy to join you there.

Please also visit my profile on Toptal:https://www.toptal.com/resume/david-john