I'm Sophie, a thirty-something, 6'2″ web developer with ADHD based in Wiltshire.
A graduate of Web Design from UWE in Bristol, I like drinking coffee, listening to music, baking, drawing, knitting, crochet, roleplay gaming, aikido, cross stitching and fantasy writing. And cats. I really like cats.
I'm here to do good things for good people. Whether that's helping folks directly, reducing my environmental footprint, or sharing resources, I strive to leave things better than I found them. We're all in this together.
Contact information #
You can get in touch by email at firstname.lastname@example.org.
General overview #
I am a full-stack, Drupal-centric developer. I've been working as a tech lead for a number of years, spearheading large development projects as well as managing the ongoing maintenance of projects for a range of clients.
I have experience with ...
- Mentorship of developers at all levels in a team environment
- Leading development projects and spearheading technical and architectural decisions across teams and companies
- Offering technical advice to other teams and agencies, acting as a consultant
- Assisting project and technical owners to make project- and company-level decisions
- Contribution to open-source software initiatives (Drupal core and contrib modules), including maintenance of my own open-source modules on Drupal.org:
- Systems administration, including set up of sites on remote servers, configuring installations, and deployments to multiple environments
- Continuous integration, mainly with TravisCI and Github Actions, and implementing scalable, reusable workflows across projectcs, clients and tech stacks
- Writing project documentation for a range of audiences, including clients, test engineers, and other developers
- Working to coding standards and receiving/performing code reviews, and implementing code-sniffing tools
- Web accessibility standards and making websites compliant with WCAG guidelines
- Working with hosting platforms such as Acquia, DigitalOcean, Pantheon and completely custom server setups
Specific technologies I have experience with include:
- Drupal 7, 8 and 9, writing custom modules for each, maintaining other peoples' codebases
- PHP and MySQL, mainly through Drupal but with good knowledge of Symfony and related technologies
- Acquia and Pantheon pipelines and workstreams
- Writing PHPUnit tests within the Drupal framework
- Git-based workflows and technologies, using Gitlab, Github and Bitbucket, with a strong emphasis on collaborative work and peer review
- Using front-end build tools including Gulp, PatternLab and npm, both picking up projects and adding build tools to existing projects
Access - January 2021 to present #
Working as a tech lead, I'll be looking after various Drupal projects, mentoring junior developers, and helping to push the company forward. I'll update this page a bit when I've been here a little longer :)
Focusrite-Novation - June 2019 to December 2021 #
Working as a lead developer. In my time here, I worked on many of the company's sites and systems, bridging gaps between teams and trying to provide internal value as much as customer-facing value.
Their websites include:
I also take part in a number of extra-curricular groups, including:
- The Diversity & Inclusion initiative
- The accessibility steering group / accessibility D&I initiative
- Mental Health First Aider and Wellbeing group
Microserve (now Investis Digital) - May 2014 to May 2019 #
Working as a senior Drupal developer. In my time here, I worked on several large Drupal projects, including:
Summary of the work I did at Microserve
- Headless Drupal work, using one Drupal site for content and a separate website to serve the content and images
- Implementation of checkouts using Drupal Commerce:
- Integration with external systems for stock management
- Creation of custom products on the fly, based on user-provided criteria
- Single-page checkout flows
- Integration with external CRMs to store customer and order data
- Fulfilment using the Commerce Shipping module, modifiying it to work per-item in cart
- Complex Ajax functionality, requesting live data from external systems and updating cart data based on user criteria
- Implementation of a continuous deployment workflow, maintaining a Jenkins server and scripts to run automated deployments
- Migration from Bitbucket to GitLab for all projects, including associated training of other staff members and integration with the CD workflow
- Pioneering the use of Docker, creating easy-start scripts in Bash that allowed any developer to pick up the work, and then helping to migrate to Docksal
- Using Scrum and Agile working methods, building sprints and working on regular releases for clients
#animalschannels to the company Slack and starting regular brown-bag lunch sessions for people to catch up and relax, to help boost morale
- Advocating for a consistent project experience, unifying and standardising the company's toolset, greatly reducing the time-to-developing for developers joining a project
- Setting up remote servers and providing documentation for their handover
Circle Interactive - July 2011 to May 2014 #
I started at Circle for my placement year between July 2011 and September 2012. During my final year of uni (Sept 2012 - May 2013), I worked at Circle while studying, during holidays and once every other week when my timetable allowed. I was hired straight out of university, starting full time as soon as my exams finished at the end of May 2013.
Summary of the work I did at Circle
- Creating themes for Drupal 6 and 7 sites, both from provided PSDs and based on client suggestions of “liked sites”
- Working directly with clients through our support system and also through direct contact on email and telephone
- Creating custom modules, including: a rewritten support system for our intranet; dynamic data retrieval from a client’s server to show course schedules; working with geolocation on an Apache server; updating a cookie control module to work with Drupal 5, 6 and 7 for distribution to our clients; and updating a half-written module to perform a proximity search on CiviCRM data
- Writing documentation for clients and colleagues on how to use existing Drupal modules/CiviCRM extensions, custom modules created for a purpose, and documentation for theming
- Using existing modules to create complex functionality on sites, particularly using views, content access and internationalisation/translation
- Estimating work needed and time required for projects, and advising on what technologies could be used to solve problems
BSc(hons) in Web Design #
Studied at UWE Bristol from September 2009 to July 2013, graduating with a first class degree.
My final year project was Fontastica, a font finder. Using Google's font API, the site provided random combinations of fonts in header-body format and allowed users to rate them ("I like this!" or "This sucks!"). Its purpose was to give designers ideas for type combinations on websites, assuming that it's either difficult to come up with a good combination, or they stick to the same old thing.
It was built using CodeIgniter between October 2012 and April 2013. The accompanying report was written throughout the year alongside the project work.
Other modules included:
- Final year: a digital media project (Fontastica), interaction design, consultancy project (working with Bristol Women’s Voice), advanced topics in web development (creating a RESTful API system)
- Third year: placement at Circle Interactive
- Second year: human-computer interaction, information architecture, web design principles
- First year: information design, media technologies (basic knowledge of Flash and ActionScript 3.0 programming)
- Mental Health First Aider - accredited through MHFA England (Oct 2020)
- Helped to organise Drupal Camp Bristol in 2017, liaising with sponsors and handling the sponsorship money
What I can bring to the table #
My key drivers are: honesty, openness, and a commitment to betterment.
I've been working with the web since I was 13, and am a firm believer in making things simple and easy to use, both for the end user and for any developer who will take up work after me. I'm keen to broaden my horizons and learn new things, rather than stagnating in a single place.
I work best with people who are driven and details-oriented, and thrive when given a lot of work to do and a deadline. I enjoy taking the time to get stuck into a project, understanding the objectives and seeing the project through to the end. I don't like leaving tasks half-finished, although I do get bored if a project drags on needlessly.
I'm a huge believer in laying solid foundations for future work: unless strictly necessary I don't cut corners during development if I can help it. It feels like a disservice to a team of developers to build technical debt in, and I will strive to build things correctly the first time around. If I can't, I do my best to document (through tickets in a backlog, or in a Wiki or equivalent) the things that will need improving. I don't just code for me, I code for a team, and they are at the forefront of my mind, always.
I enjoy learning and sharing new knowledge with others. In previous roles I have acted as a mentor, helping to teach students and junior devs how to assess priorities, discover solutions, and ultimately complete their own work in a thorough, timely manner. My emphasis is on teaching people to be strong independent learners, with keen attention to detail and a desire to achieve the best.
Oh ... and I really like writing documentation! I know that sounds weird, but I think it’s important to make it as easy as possible for others to pick up systems. I get frustrated when documentation isn’t provided, so I do my best to provide it for others. I have pushed for the adoption of documentation systems across several teams, including Confluence, Notion and various company-built intranets and wikis.
I love to focus on health - not only my health but that of my colleagues and friends. Maintaining a healthy mind and body is a really important thing for anyone to do, so I push for all of my colleagues to keep an eye on their work-life balance and offer support wherever I can. As a qualified Mental Health First Aider, I try to look out for signs of mental fatigue in my colleagues, offering support and advice wherever I can.
Feedback on my self and my behaviours is important to me, and I actively encourage people to let me know if I can improve myself. I've spent the last few years learning to take feedback at face value rather than personally. It's been a hard road of learning that not everyone else feels the same way, but that's one of the many things I'm learning!
References available on request.