Graham Bartley diskuterar sin roll i mjukvaruutvecklingslandskapet och utvecklingen av sitt jobb under de senaste åren.
”Ingen dag är exakt den andra lik, vilket är en del av det som håller jobbet engagerande,” sa Yahoos senior mjukvaruingenjör Graham Bartley till SiliconRepublic.com.
”De dagar när jag går in på kontoret i Dublin spenderar jag vanligtvis den första timmen på morgonen med att njuta av te och träffa mina kollegor ansikte mot ansikte,” sa han.
”Jag tycker alltid om att höra deras berättelser, lära mig lite om vad de arbetar med och upptäcka möjligheter till samarbete.
”På avlägsna dagar börjar jag vanligtvis med att kolla in vår trupps Jira-styrelse och eventuella Slack-diskussioner över natten. Jag leder en trupp som heter Optimus, som är Yahoo Demand Side Platform (DSP)s kärngenerativa AI (GenAI) backend-team, så det finns ofta en tråd att komma ikapp från mina lagmedlemmar eller en annan designfråga från en av våra team.”
Därifrån är Bartleys dag en blandning av att skriva kod, granska pull-förfrågningar, designarbete, hantera Jira-biljetter och ta samtal med gruppmedlemmar. På en kodningsdag kan han finna sig själv att bygga ut en ny API-slutpunkt för Yahoos felsökningsagent, skriva integrationstester eller felsöka ett produktionsproblem från början till slut över flera tjänster.
”Det är vanligtvis en hel del möten, inklusive vår dagliga gruppuppställning, individuella samtal med varje lagmedlem, synkroniseringar mellan team med andra grupper, arkitekturmöten och kontorstidssessioner där ingenjörer presenterar design för feedback.
”Jag försöker skydda block av fokuserad tid för djupgående arbete, men att vara en gruppledare innebär att alltid vara tillgänglig när någon behöver stöd.”
Som senior mjukvaruingenjör, hur passar din roll in i den bredare mjukvaruindustrin?
Jag arbetar på Yahoos DSP, som är tekniken bakom hur annonsörer planerar, riktar in sig på och optimerar digitala reklamkampanjer över kanaler som mobil, uppkopplad TV, stationär dator och ljud. Det är en stor del av det som kallas programmatisk annonsering och det är ett utrymme som fortsätter att växa.
Inom det är mitt nuvarande fokus på att tillämpa GenAI för att göra plattformen smartare och mer intuitiv. Jag leder en grupp som byggde Yahoo DSP:s första GenAI-drivna funktion, en AI-felsökningsagent som hjälper annonsörer att förstå varför deras kampanjer kan vara underlevererade och vad de kan göra åt det.
Vilka färdigheter använder du dagligen och hur har de utvecklats över tid?
Dag till dag skriver jag Python och Java, designar API:er och distribuerade system, granskar kod och jobbar över hela stacken från databasscheman via backend-tjänster till UI-komponenter, även om mitt fokus nyligen har varit helt på backend eftersom det är mitt teams ansvar. Jag designar även tekniska arkitekturer, skriver designdokument och presenterar för både teknisk och icke-teknisk publik.
Bredden i det jag gör har vuxit mycket med tiden. Tidigare i min karriär skrev jag huvudet ner kod och levererade funktioner inom ett par kodbaser baserat på Jira-biljetterna jag tilldelades. Nu lägger jag lika mycket tid på systemdesign, koordinering mellan team och att sätta teknisk riktning som jag gör på att skriva kod.
Det största förändringen på senare tid har varit AI, både i vad jag bygger och hur jag bygger det. På produktsidan har jag gått djupt in på stora språkmodeller, agentramverk, modellkontextprotokoll, vektordatabaser, kunskapsbaser och utvärderingspipelines för icke-deterministiska AI-utdata. För två år sedan var inget av det en del av mitt dagliga ordförråd.
Vilka är de svåraste delarna av din arbetsdag och hur navigerar du i dem?
Sammanhangsbyte är kanske den största utmaningen. Som gruppledare och kodägare över många arkiv, kan jag gå från en djup felsökningssession till en designgranskning till en Slack-diskussion i flera team om autentiseringsarkitektur, allt inom ett par timmar. Varje sammanhang kräver full uppmärksamhet och övergångarna är kostsamma. Jag navigerar i det genom att vara disciplinerad när det gäller tidsblockering. Jag skyddar morgnar för djupt tekniskt arbete där det är möjligt och klustermöten på eftermiddagarna. Jag använder också strukturerade anteckningar och dokumentation flitigt. Om jag blir avbruten mitt i uppgiften vill jag kunna fortsätta precis där jag slutade.
AI-verktyg hjälper faktiskt här också. Att kunna gå tillbaka till en Claude Code-session och säga ”här var jag, här är vad jag försökte göra” och få det att rekonstruera sammanhanget är verkligen användbart.
Att arbeta på distans från Irland med team som är distribuerade globalt kan innebära vissa utmaningar, som att arbeta efter arbetstid för att kommunicera med kollegor utomlands. Att hantera detta är definitivt en färdighet i sig och kan vara svårt eftersom det kan kännas väldigt produktivt att jobba sent när amerikanska kollegor är tillgängliga till exempel.
Jag försöker vara medveten om att ta igen för sena arbetstimmar för att hålla en bra balans mellan arbete och privatliv, men det är definitivt en utmaning att balansera känslan av produktivitet med verkligheten av utbrändhet.
Har din roll förändrats i takt med att sektorn har växt och utvecklats?
Betydligt. När jag började handlade ingenjörsarbetet i DSP till stor del om att bygga funktioner i pålitliga CRUD-applikationer och att optimera serveringsarbetsflöden. Den största utvecklingen sedan dess har varit ankomsten av GenAI. I slutet av 2024 ingick jag i en liten arbetsgrupp som undersökte hur GenAI kunde tillämpas på vår produkt. Inom några månader blev det undersökande arbetet ett fullständigt strategiskt initiativ. Jag gick från att leda ett kommersmediateam till att grunda och leda Yahoo DSP:s första GenAI-lag.
Sättet vi bygger mjukvara på förändras också. För ett år sedan skrev vårt team kod på traditionellt sätt. Nu använder vi AI-kodningsassistenter dagligen. Det är fortfarande tidiga dagar och det finns riktiga inlärningskurvor. Vi har upptäckt att AI fungerar utmärkt för väldefinierade, avgränsade uppgifter men kämpar med tvärgående problem som spänner över flera tjänster och stora sammanhang. Att veta när man ska luta sig mot det och när man ska ta ett steg tillbaka och tänka själv är en färdighet i sig.
Organisationsmodellen har också förändrats. Vi har gått från traditionella lagstrukturer till en modell av ”squads, tribes, Chapters and guilds”, som lägger mer vikt vid tvärfunktionellt samarbete och autonom leverans. Min roll har flyttats från att i första hand skriva kod till att vara en teknisk ledare som sätter riktning, definierar standarder och gör det möjligt för andra team att bygga vidare på de grunder vi skapar tillsammans.
Finns det något du vet nu om att arbeta i programvara som du önskar att du visste från början?
Jag önskar att jag hade vetat mer om balans mellan arbete och privatliv och att känna igen tecken på utbrändhet. Tidigt i min karriär hade jag en tendens att bara driva igenom och det tog mig ett tag att inse att det inte är hållbart. Nu är jag mycket mer avsiktlig när det gäller att hantera min tid, skydda min energi och veta när jag ska ta mig ur ett problem. Du kommer faktiskt tillbaka skarpare när du gör det.
Jag önskar också att jag hade utmanat antaganden mer. När du börjar är det naturligt att ta krav och befintlig design till nominellt värde. Men när jag har blivit mer senior och tagit på mig mer designarbete, har jag märkt att några av de största förbättringarna kommer från att ifrågasätta varför något är som det är. De bästa lösningarna kommer ofta från att trycka tillbaka på premissen, inte bara att optimera inom de begränsningar du får.
Vilka råd har du till andra som vill följa i dina professionella fotspår?
Var inte rädd för att säga ”jag vet inte” och sedan gå och lära dig. Detta är avgörande. De bästa ingenjörerna jag har arbetat med är inte de som kan allt. Det är de som lär sig snabbt och inte skäms över att vara nybörjare på något nytt. Att vara mentor innebär också att vara adept och jag har lärt mig mycket av de ingenjörer jag har handlett. För ett år sedan hade jag aldrig byggt en AI-agent. Nu leder jag ett team som bygger dem.
