Karl Williams
Document version 1.9.9, generated
Summary
I am a software engineer and technical manager with 15 years of experience making beautiful and functional software. I have a passion for harnessing tech to improve the world.
I am a firm believer in the right tool for the job (rather than the right job for the cool, new tool) and approach all problems with curiosity, pragmatism and an emphasis on collaboration.
Core skills and experience
Core skills
- I mostly work in Python in backend and full-stack roles
- Management and mentorship of software engineers
- Planning and architecting complex technical solutions
- Agile project management
- Ensuring code quality with extensive testing, favouring a TDD approach when possible
- HTML (HTML5, XHTML)
- CSS & SCSS (and Sass)
- JavaScript (Including experience with vanilla JS, React, Angular, and TypeScript)
- Cloud infrastruture (Google Cloud: Especially Compute VM creation and management, Cloud Storage, and BigQuery; Heroku auto-deploytment as part of development CI)
- Working with and contributing to Open Source projects
- Accessibility
- Front-end Performance
- MVC
- Django: I have many years experience on the frontend of Django projects and, in recent jobs, have worked on the backends of multiple Django projects
- Flask: I have built simple apps in Flask
- Symfony: In the PHP part of my career, I mostly used Symfony
- RabbitMQ for messaging in event-driven projects
- Linux: I use Linux on both the desktop and server and am fully-proficient with working in the terminal
- Developing, debugging and deploying Google Cloud Platform projects; including experience has been Google App Engine with BigQuery
- Ecommerce websites using Salesfoce Commerce Cloud (SFCC)
Other skills
- Redis has been a very useful caching tool in recent projects
- JavaScript frameworks
- I have worked with Javascript frameworks and internal libraries for SPAs
- I have used YUI and JQuery for extending basic JavaScript in simpler porjects
- Docker: I have used Docker as part of a toolchain but would love more experience working with containers
- Bash scripting for task automation, setup and installation scripts
- I have worked heavily in C++ in an academic context but have more recent practical experience in the Arduino C/C++ subset
Work experience
GlobalLogic
Delivery Consultant
July 2024 - Present
Placed with consultancy clients as an engineering delivery consultant.
- Client: Kraken Technologies:
- Contributing code to the core Kraken codebase
- Reviewing the contributions of other engineers
- Scoping project work, planning and estimating
- Improving process and engineering practice in the team
- Supporting, mentoring, and collabiortating with other engineers and more junior team members
Alma Economics
Senior Software Engineer, Engineering Manager
March 2024 - June 2024
- Leading a team of software engineers creating data science tools and research visualisations
- Architecting technical solutions; including systems design, cloud infrastructure design and CI/CD
- Django, Flask and bespoke Python development integrating with React frontends
- Creating and leading new software development processes
- Building tools for AI/ML and data science
- Training and mentoring developers and data scientists
- Leading software development projects
- Backend and frontend development
- Reviews and ensuring code quality
- Scoping and pricing client projects and bids
Hush
Senior Software Engineer
December 2022 - January 2024 (Redundancy)
- Developing and maintaining a high-traffic retail website and associated backend systems
- Deployment and management of production cloud instances
- Developed and deployed a custom CI tool
- Working with Salesforce Creative Cloud plugins and React frontends
- Mentoring and hiring junior developers
- Running the BAU agile workstream
Arithmix
Full-stack Engineer
Jul 2022 - December 2022 (Company closed early 2023)
Actively developing a new dimensional modelling application in a stack using C++, Python and React. I have worked on all aspects of the codebase working closely with the product team to develop features to bring the tool to market.
Full-stack engineer
Aug 2021 - Jul 2022 (Left ahead of company restructuring, company now closed)
I worked in backend team writing financial reporting systems in python and PHP. Engineering projects included data cleaning, web scraping and report generation. We migrated a legacy codebase to a newer system, making heavy use of RabbitMQ to send messages between services.
Phantom
Senior developer
Nov 2020 - July 2021
Phantom is an agency with many prestigious clients; I personally worked on projects for Google and the Financial Times.
The majority of my work was for Google on their Hotel Insights project. This required parsing huge amounts of search data from Bigquery, processing it and saving it to a local Redis cache. I also extended and maintained the API delivering the processed data to the frontend of the project.
Stint
Developer
Aug 2020 - Nov 2020 (Redundancy)
At Stint, I work as a developer in the API team, using Django to provide REST and GraphQL endpoints to the web and mobile React applications.
Canonical
Web developer
Oct 2013 - May 2020
At Canonical, I worked as part of the integrated web and design team looking after a large portfolio of Canonical websites and webapps including all facets of the Ubuntu Linux distribution.
My role included production of frontend code for websites, webapps and our internal, open source Sass library, Vanilla Framework.
In addition to the usual CSS, HTML and JavaScript, I worked with the full array of modern web technologies. This included writing lean, efficient Sass, proficiency in some backend technologies such as Django, Flask and Jekyll and making use of a toolchain of utilities such as NPM and Docker.
I participated fully in all aspects of planning, monitoring and demoing work within Agile teams and worked closely with colleagues across engineering, design, UX and other disciplines.
Web developer
Mar 2008 — Oct 2013
At IPC, I worked with all aspects of a large portfolio (30+) websites with a focus on performance at scale, reuse and maintainability.
The mostly PHP-led tech stack included Symfony, Django, Wordpress and various legacy systems. In addition to frontend and backend web development, I have also maintained systems for importing external data feeds and configured deployment systems.
During my time at the company, we moved from Waterfall-style planning to Scrum/Agile and I was fully involved in driving its adoption.
Education
University of Plymouth
BSc. (Hons) Computing, awarded 2006
Other
- TQUK level 2 Certificate in Understanding Autism
- A Levels: Computing, Business Studies, English
- 9 GCSEs in various subjects
My hobbies and interests include:
- Hobby electronics: Raspberry Pi, Arduino, experimenting with IoT, making synthesisers and noise-makers
- Pen-and-paper role-playing games and other tabletop gaming
- Model making
- Ancient history and mythology coupled with the etymology, philosophy and theology that comes with the interest
- Crafts: leatherwork, sewing, carpentry
- I love cooking and food - especially experimental or unusual techniques
- Outdoorsy stuff: camping, walking, bushcraft
The things that drive and excite me are:
- The democratising possibilities of technology: e.g., Open Source, knowledge sharing, community building
- Working towards social good, fostering cooperation and reducing conflict
- The fusion of art and technology
Links
What people say about me
Karl and I worked together at Canonical in the Web Team.
His knowledge of web technologies is excellent, he is a hard worker, and made the team better for all. I would heartily recommend him or any web/tech project!
Tristram Oaten