A week in the life of a Technical Director29th April 2022
The Technical Director role within an agency or consultancy is often difficult to define. We wear many different hats that are otherwise worn by a Staff Engineer, Director of Engineering or CTO.
At PA Consulting I’m broadly responsible for engineers, product engineering teams and their delivery outcomes for a handful of clients. This means I'm involved in winning contracts, owning the technical relationship with a client, assembling product teams and setting their direction, managing designers and engineers, all while still having a hand in shaping the work.
But the role is also inward-facing. Technical Directors form the internal engineering leadership team that shapes the direction of Engineering and DevOps within PA’s Digital capability in terms of planning, budget, hiring, capacity and growth strategies.
I’m often asked by both colleagues and candidates what my day-to-day looks like. So here’s an example of a recent week.
It’s my first day back after a week off, so after the school run I’m committed to clearing my inbox by 10am. I fail.
I’m then straight into an hour of standups for my teams across four separate clients. I don’t join every standup each day, but I’m very hands-on with some teams — shaping stories, guiding them through some tricky estimations and picking up some spikes away from the critical delivery path — so I try to join at least every other day.
Over the next couple of hours I remote-pair with a junior engineer to work through options for integrating a UI component library into an existing CMS backend stack. We settle on a suitable approach that settles some tradeoffs well, and I help her structure a proposal document she will present back to our client’s solution architect later in the week.
Over lunch I have some quick 1:1s with a number of my direct reports whom I didn’t get to speak to last week. Although I have regular scheduled time with each of them, they appreciated the ad-hoc check-in and we either set an agenda or cancel the scheduled time for later in the week.
In the afternoon I join two colleagues to finish preparing for a pitch tomorrow morning. It’s an opportunity to entirely re-platform an existing client’s digital estate with a new architecture and technical stack, and to accelerate their in-house digital team. The technical answer is one I’ve been mulling over in my head for months so I already have a narrative: core engineering principles that shape our proposed architecture and technology selection, a clear architecture diagram of microservices aligned to their target state operating model, and some compelling case studies that show how we’ve done similar projects before with huge impact.
A three-hour “working session” might sound horrendous, but really it’s the three of us working quietly with a Teams call open in the background. For the most part we remain muted while we work on our respective parts of the response, checking back in every so often to review. I love working like this; it replicates just enough of collaborating as if in the office together during the Before Times, but it’s flexible enough to allow for deep work away from distraction.
It’s pitch day! We’re online at 8am to make last minute tweaks to our running order before a 9am start.
As an introvert I generally find the pitching experience incredibly stressful. But the next two-and-a-half hours fly by. We have some excellent open discussions around the merits and drawbacks of my proposed JAMstack and microservice-based architecture, our approach to implementing headless CMS, patterns for decommissioning existing legacy production platforms, and alternative models for structuring blended PA and client teams.
Aside: it is true that (currently) the Technical Director role at PA has an underlying sales target that is considered in the annual appraisal process. It’s pitches like these that remind me that “sales” absolutely doesn’t mean cold calling and contract negotiations. My sales attribution comes from having robust, honest and meaningful conversations with new and prospective clients about using technology to solve business challenges. And although there are plans afoot to rethink sales targets for us engineering leads, it’s comforting knowing that I will meet my target with a handful of these activities over the year.
After lunch I have three interviews: one deep technical assessment for a Principal Engineer and two initial conversations for Technical Director candidates. They all go well and I immediately submit feedback to our recruitment team.
I finish the day reviewing a couple of pull requests. My tech leads generally handle the code review process for teams, but from time to time I’ll be tagged in where my expertise is beneficial. I review a set of frontend changes that improve the frontend responsiveness, performance and accessibility of a service used by hundreds of thousands of people daily. Whoever said HTML and CSS wasn’t a programming language? Because I’m short for time, I add quick comments to mark the areas to discuss and carry on async in Slack with the engineer where we discuss potential changes in more detail, sharing updated code snippets until we reach consensus.
After standups I get my first real chance this week to write some code! I generally don’t write much production code beyond spikes and toolchains, so I relish the opportunity.
The remainder of the morning is spent deep in Node, Express, PostgreSQL and Sass, adding a couple of frequently requested features to “Who’s Who” — our directory of consultant profiles and skills. It’s a bit like an internal LinkedIn, except you don’t feel like you need to take a shower after using it. I finally get around to implementing a continuous deployment pipeline that builds the app in an Azure Container Registry and deploys to an App Service using a webhook. Magic.
Next up is our weekly engineering leadership team working session. Although most of our communication is async on Slack throughout the week, this focused time is a great opportunity to talk shop. We peer review re-written job descriptions to publish on our careers site, we finalise role descriptions for all of our engineers against PA’s soon-to-be-announced refreshed career framework, and we solve some immediate staffing jigsaw challenges across London and Belfast teams.
The day ends with a couple of client meetings. First up is a fortnightly client account meeting with our main stakeholders (Digital Director, Head of Digital Service, Head of Digital Commerce) to review delivery outcomes over the last two weeks and plan for the next two. To finish, a chat with a couple of Engineering Director peers from a client where we’re working hard to embed multiple PA teams within their organisation. We discuss the logistical and cultural challenges when onboarding new teams at speed, and we each take some good ideas to try over the coming week.
First thing I receive an email from one of my clients. They are a wealth management firm, it’s April, ISA season — their busiest time of year — and their site is suffering a DDoS attack. I did have a carefully planned morning of team ceremonies and catchups, but I end up excusing myself and initiate the incident response process we have established with the client’s dev team.
Within an hour I have trawled the HTTP logs, identified patterns in the malicious traffic and guided the client to update their Cloudflare WAF rules to block it. With the site stable we conduct a full post-mortem and agree several development tasks to improve the site’s caching strategy, and some tweaks to the incident response comms to reduce email noise in the future.
My afternoon is filled with a backlog refinement session; a quick meeting with a client to answer some extra questions after Tuesday’s pitch; then a rare hour to myself which I use to structure some new starter training and onboarding guides in Confluence.
The day ends with our monthly Digital Meetup. It’s an all-hands event covering news and numbers, project updates and of course the obligatory pub quiz slot. Always good fun.
I try to keep Fridays as uneventful and meeting-free as possible, but it doesn’t always stay that way.
After morning standups and a couple of PR reviews I have a handful of scheduled 1:1s that take me through to lunch.
At the last minute I’m asked to stand in to pair-interview a senior engineer in Belfast. My colleague leads the proceedings and based on a glowing consensus we recommend to the recruitment team that they make an offer. Fingers crossed.
The 3pm weekly Digital Operations call on a Friday is normally a fitting countdown to the weekend. It’s an all-hands meeting to learn about our financial performance for the week, new bids and proposals we’re responding to, and any teams that need specific skills.
However half way through I receive a call from my wealth management client. They have completed testing the caching improvements, will be deploying at 5pm, and ask if I can support. Joy!
At 4.55pm I begin tailing the application logs as database migrations run, containers restart and caches clear successfully. Uneventful deploys are the best deploys, especially at 5pm on a Friday. And although I had no reason to expect it would be any different, I can finally open the beer that’s been slowly warming up on my desk since 3pm.
Evidently the role demands a high capacity for context switching. Over the course of a single day I’m switching focus between tactical and strategic; juggling internal initiatives against client projects; switching between Slack and Teams workspaces, email and calendars, sometimes across multiple laptops; managing designers, engineers and testers; assessing quality and scope against commercials and timings; writing and reviewing frontend, backend and infrastructure code… phew.
But we're a broad church, and there's no single route to the role. While I've arrived from a career as a frontend engineer, my peers come from backgrounds that span cloud and infrastructure, DevOps, data engineering or quality assurance. Their weeks often look totally different to mine, and that's all part of the fun.
While some may be surprised by how little actual coding I’m doing, the reality is that my editor remains permanently open and I’m reading and reviewing code throughout the day. I’m an engineer. But I’m also an architect, a strategist, a mediator, a manager and a chief herder of cats. And I very rarely work on my own. My days are spent collaborating with smart, engaged people, both PA colleagues and clients. It’s getting to work with these people that will bring me back on Monday morning to do it all over again.
The work is the people and the people are the work. Regardless of whether you waive hands, design, write or code.— Nick Dunn (@nickdunn) June 25, 2015