# Friedrich "Fred" Clausen ## Contact Details * Traditional * * Online Identities * [Github](https://github.com/ftclausen) (https://github.com/ftclausen) * [LinkedIn](http://www.linkedin.com/in/friedrichclausen) (http://www.linkedin.com/in/friedrichclausen) * [ServerFault](http://serverfault.com/users/127243/fred-clausen) (http://serverfault.com/users/127243/fred-clausen) * [SuperUser](http://superuser.com/users/164635/fred-clausen) (http://superuser.com/users/164635/fred-clausen) * [StackOverflow](http://stackoverflow.com/users/1300307/fred-clausen) (http://stackoverflow.com/users/1300307/fred-clausen) ## What I Can Offer I am an infrastructure automation developer and I particularly enjoy working at the intersection of development and operations; helping each team understand the needs of the other and, at a technical level, creating the tools and processes to make the various components of a given service, or interoperating services, work smoothly. I am also keen to contribute to the core products in order to further advance scalability and manageability. ## Proficiency Summary My proficiencies cover the following areas * **Development Support** - Contributing to build engineering tasks such as build system code, version control and Continuous Integration (CI) systems management. * **Infrastructure Code and Orchestration** - A combination of configuration management and tool development in various scripting languages to support automated infrastructure and application management. This includes using container orchestration tools like Kubernetes (K8s) and Mesos/Marathon. * **Application Administration** - Supporting, primarily Java, web applications with regard to provisioning, performance tuning and troubleshooting. * **Systems Administration and Networking** - Managing, in as automated a way as possible, Linux and Unix systems with regard to installation, ongoing maintenance and troubleshooting. Network management experience has given me good grasp of networking configuration and how the servers I manage fit into the larger network. Spoken languages * English - Native speaker * Dutch - Fluent speaker ## Proficiency Details ### Infrastructure Code * **Code** * Scripting - I have used the languages below for areas such as configuration management, general automation and monitoring. * Bash * Ruby * Python * Perl * Groovy - Used in the context of Gradle * Java - I have written small Java services for "glue" integration services and also modest product contributions to support better build integration. * Testing - Unit tests JUnit in the context of Groovy and Java * **Containers and Container Orchestration** * Containers - Create, update and run Docker containers mostly in the context of continuous integration and deployment. Create and maintain tooling to streamline and automate container creation tailored to support development workflows. * Orchestration - Define deployment specs for Kubernetes and Mesos/Marathon to support both building, testing and deploying applications. * CI/CD - Integrate container creation and deployment with Jenkins to fully automate building, testing and deployment when code is committed to revision control. * **Configuration Management** - I am using configuration management to affect fully automatic and consistent environments. This allows me to manage systems and applications at scale. * General - Working with other departments on a common code base - deciding conventions and areas of responsibility. Writing documentation and providing internal training for colleagues. * Chef - Create/manage cookbooks, create data bags, custom Ohai plugins, environment management, converting legacy scripts into Cookbooks, Chef server and client management, node bootstrap. * Puppet - Create/manage modules, create and use Facter facts, Puppet server and node services, node bootstrap. * **Version Control Systems** * Git - Configuration management repositories, in-house code repositories. * Subversion - Checkout and build legacy code bases. * **Testing** * Configuration management * Unit Testing - Chefspec and Rspec * Integration Testing - Test Kitchen with Serverspec * **Development Support** * Using Maven to build projects and manage dependencies. * Using Hudson for continuous deployment. ### Application Administration * **Java** * JVM - Installation, upgrade considerations and tuning for type of application. * Tomcat - Web application deployment, security and integration with other middleware. * ActiveMQ - Installation, tuning and troubleshooting. * **Supporting Services and Tools** * Apache - Integration with backend apps, tuning and security. * Authentication - LDAP, Shibboleth (SAML2) single-sign-on * Package Management - Red Hat (RPM) and Debian (.deb) packages * Documentation * Wiki based, e.g. Atlassian Confluence, MediaWiki. * Markdown documents. * Diagrams - Google drawings, yEd, Visio * **Databases** * MySQL - Installation, user creation, backup & recovery, replication, clustering * PostgresSQL - Installation and configuration * Oracle - Installation, configuration and tuning of SGA sizes. Alert log monitoring. * SQL - Simple SQL queries for monitoring and troubleshooting. * **Monitoring** * JMX - Querying JMX Metrics from Nagios, Munin and other systems * Nagios - Plugin creation, Nagios installation and management * SNMP * Munin * In house monitoring tools using rrdtool ### Systems Administration and Networking * **Unix-like Systems** * Linux - Red Hat, Debian, Ubuntu * Solaris * BSD - OpenBSD, FreeBSD * OS X * **Security** * VPN - OpenVPN, Linux IPsec (Kame + Racoon) * Firewalls - IPtables and OpenBSD packet filter * Implement security best practices * Network audits with Nmap. * OpenSSL - Create and inspect certificates * Linux PAM * **Networking** * OSI Model understanding * TCP/IP theories and configuration * Basic Cisco IOS usage * Knowledge of switching concepts (VLANs and spanning tree) * General understand of routing protocols. * **Virtualisation** * Xen - Red Hat and Citrix * VMware * VirtualBox * **High-availability** * LVS (Linux Virtual Server) Loadbalancer * Heartbeat * **Systems Provisioning** * Red Hat kickstart * Debian FAI * **File Serving** * NFS * CIFS (Samba) * Webdav * **Storage** * RAID Concepts and configuration on common controllers * Linux software raid * Linux Logical Volume Manager (LVM) * Disk encryption with LUKS * **Commonly Run Services** * DNS - ISC Bind * OpenSSH * DHCP - ISC dhcpd ## Working Styles * Embedded in development teams; taking part in Scrum. * DevOps style co-operation between Operations and Development. ## Experience ### Blackboard International #### Build and Release Engineer - October 2015 to Present Location: Sydney, Australia In this role I'm working to * Extend our existing Gradle build system * Ensure reproducible builds * Support the Jenkins pipeline * Create releases As well as tasks related supporting the automation surrounding the release process (primarily Chef) and provisioning to AWS. #### Infrastructure Automation Developer - October 2014 to Present Location: Sydney, Australia In my role as an Automation Developer I am responsible for writing infrastructure (and supporting) code to allow Blackboard to fully automatically deploy our product offerings on both public cloud providers such as AWS as well as private cloud environments running on Openstack. This role also encompassed build engineering tasks such as implementing Gradle build system code (build file DSL and Gradle plugins) as well as modifying the main product (Java) to support semantic versioning. #### Web Applications Administrator - July 2011 to October 2014 Location: Amsterdam, The Netherlands As a Web Applications Administrator in the Web Tech team my responsibilities include ensuring the stability and performance of the Blackboard Managed Hosting applications; this involves tasks such as tuning and root cause analysis. My other responsibilities revolve around improvement initiatives primarily focussed on improving the level of automation within the managed hosting departments. ### Marktplaats/eBay #### Systems/Applications Administrator (Freelance) - March 2010 to May 2011 Location: Amsterdam, The Netherlands Together with the rest of the site operations team I was responsible for ensuring the availability and performance of the Marktplaats, an eBay subsidiary, web applications. Additionally I worked embedded within a development team to provide operations support for the development efforts. Such as managing the test infrastructure, setting up monitoring, interfacing with the operations/networking departments and production deployments. ### IPSoft #### Systems Administrator - April 2009 to March 2010 Location: Amsterdam, The Netherlands My responsibilities at IPSoft were to provide systems administration services to the client base, both on-site and remotely, while actively working to refine existing processes and knowledge with regards to the management of client systems ### TomTom #### Systems Administrator (Freelance) - February 2008 to April 2009 Location: Amsterdam, The Netherlands At TomTom I was the infrastructural lead on projects, which entailed working with both the development and operational teams, to ensure a smooth transitioning from a project in development to a production service. ### Telfort (formerly Tiscali) Internet #### Systems Administrator (Initially freelance then permanent) - March 2005 to December 2007 Location: Utrecht, The Netherlands Here I was part of the team managing the core ISP infrastructure and also taking on improvement initiatives to further the level of automation and systems consistency. ### New Zealand Holiday - August 2004 to March 2005 Extended backpacking trip to New Zealand. ### Xinit Systems #### Professional Services Engineer - July 2003 to August 2004 Location: London, UK My responsibilities were providing professional Linux support services to customers and also managing the Xinit internal infrastructure. ### Unique Broadcasting Company #### System Administrator - November 2001 to June 2003 Location: London, UK I supported the backend servers powering their digital radio support services. I also worked with the development team to manage their testing infrastructure and ensure smooth production deployments. ### Frontwire Ltd. #### Systems Administrator - January 2001 to July 2001 Location: London, UK At Frontwire I was the backend systems administrator and also supported the employee workstations. ### Red Hat Europe #### Linux Technical Support - June 2000 to November 2000 Location: Guildford, UK I provided first line technical support for Red Hat Linux which entailed helping customers install and use the product.