Ashleigh "Tommy" Crosby
https://misc.tcrosby.co.uk/cv/
tcrosby@gmail.com
+447950 825615
Hacker, cyclist, wanderer, wonderer.
What I'm looking for
Every job I've had, I've drifted towards ops and administration because it was recognised that I could problem-solve at least as well as I could code - and now that's what I want to exclusively work in. I'm a sysadmin at heart.
Tech I've done amazing things with (and want more of)
- Opsdem bones, dem bones, dem bare bones:
- ~17 years' experience with Linux in a personal and professional context, building servers, configuring kernels, patching modules, automating configuration…
- ~8 years on-and-off experience with OpenStack, including 4 years managing three clusters running Nova, Neutron, Designate and the like, supporting ~1300 cores in production across three sites
- ~15 years messing with networks, routers, switches, physical and virtual, at home and at work
- Been taking physical machines apart and putting them together again (still working) since I was in single figures
- Built plugins and config management for FreeIPA, Postfix, Dovecot and more internal tools
- Written complex maintenance scripts in Bash and Python
- Managed the logging of events from hundreds of production systems using a combination of rsyslog2, ElasticSearch and OpenDistro
- Worked extensively with Puppet, PuppetDB, and Hiera, including writing my own ENCs, managing hiera-eyaml at the Enterprise level, and creating modules for the management of OpenStack, Apache Superset, Mediawiki, Taiga, Jitsi and more, with security concerns managed up front
- Ran icinga2 clusters to monitor all of the above, including custom checks for new services
- A more than keen interest in security, with strong skills in SSH configuration, key management, iptables and nftables, and SELinux
- Intimate with the packaging ecosystems for a wide range of modern distros (APT, DNF and the like) and languages (Composer, NPM, RubyGems, Bower and more)
- Built Docker images to run custom ConcourseCI resource types to streamline the automation of package builds
- Confident configuring, maintaining and integrating everything into CI platforms like ConcourseCI and CircleCI, as well as legacy systems like Jenkins
- Using Git for everything - personal and work projects, working with branches, GitHub pull requests, merges, rebasing and more
- Experienced with Apache and nginx for HTTP, including all kinds of authnz, and creating Puppet modules to automate everything
Stuff I've done before
- Mobile and JSall just nodes in the tree:
- Conceived and built a rapid and clean discussion app for TSR, using React Native, Relay, GraphQL, and more
- Wrote a complete BBCode parser in Node.JS, and accompanying renderer in React Native
- Written solid, test-driven code using Mocha, Chai and Enzyme, with Nuclide and React DevTools
- Augmented services with custom build scripts and continuous integration, built in Ruby and Java
- Delivered scalable, testable Android code with extensive use of RxJava for observables and Dagger for dependency injection
- Proficient with Apple and Android code-signing, user testing and delivery practices, and the automation of such with Gradle, fastlane and match
- Developed a cross-platform VR demo using Google's new Flutter platform
- Built mobile-first web apps using React.JS, JSX and Apollo, embracing the latest language features in ES2015 and beyond
- Developed fast and scalable backend services in Node.JS
- PHPwho needs a 6 anyway?:
- Built micro- and macro-services using Lumen and Laravel 5.* to support search and JSON API functionality for TSR's ever-growing services
- Developed a digital literacy tool for an education consultancy, handling massive datasets, animated graphing, lockble file-based caching, map-reduce and PDF exports
- Spent a year on a major site migration and maintenance project (~50 corporate / school sites) supporting and improving a bespoke CMS
- Built and maintained two iterations of a Drupal site for a 500-member uni rock society
- Experienced with WordPress, Composer, Zend, Symfony, Doctrine, Eloquent, Magento - you name it, I've taken it apart
- Datawooooah atomic:
- Written applications using standalone Eloquent, Sequelize, Hibernate, NHibernate and Doctrine ORMs against a variety of backends
- Worked extensively with MySQL and PostgreSQL for relational data persistence, including PL/SQL, sequencing and complex indexing
- Implemented solutions against MongoDB for document-based storage, and Redis for key-value storage
- Developed against a range of caching solutions, including Varnish, Memcached, and node-cache
- Other useful stuffHTML, C#, and the rest:
- Extremely experienced working within Agile processes, adapting Scrum working practices to different cross-functional teams, tracking work in Jira / Confluence / Slack
- Confident at getting the best out of others, with a focus on efficient and accurate working, and using the right tools for the job
- Experience mentoring novice developers, having previously volunteered for CodeBar Brighton and helped new developers into their first professional roles
- 4+ years' experience working with and developing .NET web and console applications in VB.NET and C#
- Experienced with Bootstrap for rapid application prototyping
- Developed a range of personal sites, galleries, online game data crunching tools
- Worked extensively with jQuery, d3, and Bootstrap for responsiveness, async communication, JSON data encoding and more
- Created interactive charts, single–page applications, synthesized audio, procedurally-generated art…
Places I've done it
- October 2018 — current:
Senior Systems Engineer, Unipart Digital
- OpenStack, Linux, Puppet, monitoring, troubleshooting
- Redesigned and deployed the monitoring and backup systems for hundreds of production systems
- Wrote FreeIPA plugins to support tree changes that reflect internal structure for an organisation of 10,000+ users
- Built Puppet modules for everything
- January 2018 — August 2018:
Lead Developer, Pocketworks
- Android, iOS, Flutter, Rails, hardware, ops
- Built a client-ready VR demo app in my first week, using Flutter and Google Cardboard
- Aided in the design and conception of apps for new clients as part of a concerted marketing drive
- Made significant improvements to a Rails-based UML diagram tool
- Built a prototype Android app to read and write complex data from STMicroelectronic's ST25DV NFC tags
- Implemented bugfixes and features to a long-running iOS / Rails sales app
- June 2017 — January 2018:
Lead Developer, TempTribe
- .NET, React Native, Node.JS, PostgreSQL, ops
- Sole day-to-day support of legacy and current systems for staff booking, job creation and payroll systems
- Dragging a 10+ year old .NET system into the 21st century, with endless bugfixes, UI updates, features, security and performance improvements
- Complete delivery of a brand new staff management mobile app for iOS and Android, built in React Native against a distributed Node.JS API and caching platform
- Enabled the expansion of the company into international markets by porting and internationalising the entire backend, frontend and mobile platforms
- November 2015 — May 2017:
Senior Developer, The Student Room Group
- React (and Native!), Android, GSA, Laravel, ops & more
- Project lead on TSR's mobile discussion app, currently in closed beta testing
- Development of RN component structure, navigation, styling, and higher-order components
- Integration of Firebase, Google Analytics, TestFairy, and Sentry APIs, to keep track of everything
- Testing with Mocha / Chai, including promise support through Chai-as-promised
- Built scalable data support with Relay and GraphQL, with Memcached backing
- Developed a Ruby / JS build system with full App Store integration, using nodegit and fastlane
- Replaced the aging TSR search pages with a sleek and powerful system built on Google Search Appliances
- Creation of extensive boilerplate code to integrate TSR with the Dynamic Yield personalisation platform
- July 2012 — November 2015:
Developer, Omnisis Limited
- PHP, JS, .NET 3.5 / 4.0, VB.NET, MVC / Razor, MS–SQL, MongoDB, ops
- Front–line support and sole full-time developmer on a large .NET web application
- Supporting a vast range of clients through complex surveying needs, from local food companies to global pharmaceutical giants
- Implementation and support of AWS–based port
- July 2011 — June 2012:
Developer, Pingala Media Limited
- PHP, JS, MySQL, ops
- Porting, maintenance and redevelopment of 50+ PHP sites for schools and small enterprises
- System administration for all development and production servers
- Development of full in–house CMS for new clients, based on the Symfony2 platform
Me
I'm an avid problem-solver but also an explorer at heart. Though I'm probably never happier than when I'm completely lost and relying on my navigational senses, I love spacial data, mapping, and using it to my advantage to find new places to wander. I know the shortcuts, footpaths, woodlands, hidden meadows of my surrounding area, I've cycled all over the Peak District and Yorkshire Dales without any particular direction in mind, hiked up to Swiss glaciers, walked the length of the South Downs.
When I'm not out on my bike or solving problems that I didn't know I had, I can be found listening to (and occasionally making) an eclectic range of music, watching films that make you scratch your head, sketching the world around me, playing obscure board games, and building my engagement in local activism.