In 2018 begon ik mijn carrière bij Kinsta als Support Engineer. We waren toen een klein bedrijf van slechts ongeveer vijftig mensen. Toen ik voor het eerst bij het team kwam en klanten begon te helpen, herinner ik me dat ik erg onder de indruk was van het gedetailleerde niveau van de interne documentatie die we bij Kinsta hadden. Tot op de dag van vandaag handhaven we hetzelfde niveau van documentatie om onze klanten te helpen.

Interne documentatie

Hoewel de interne documentatie fantastisch was, waren er niet veel tools of automatiseringen. Pas na ongeveer de tiende keer Redis installeren of Ioncube opzetten, besloot ik het heft in eigen handen te nemen.

Hiervoor werd alles handmatig gedaan. We gingen naar Confluence en zochten de specifieke stappen en configuratieopties op die moesten worden toegevoegd/gewijzigd, en er was veel kopiëren/plakken van codeblokken, het controleren van gegevens op de ene plek en het bijwerken van dingen op de andere plek. Dit leidde ertoe dat updates langer duurden en dat er meer kans was op fouten, omdat het missen van een stap in het proces problemen kon veroorzaken.

Ik begon Bash scripts te schrijven voor elke taak als, onderdeel van een project om me te helpen mijn eigen werk te verbeteren, en om me in staat te stellen deze methodische taken herhaaldelijk en zonder fouten uit te voeren. Na verloop van tijd zagen andere teamleden waar ik mee bezig was en begonnen ze mijn scripts te gebruiken. Wat eerst 20 minuten duurde, duurde nu slechts enkele seconden, terwijl de kans op menselijke fouten afnam.

Pas toen ik Tom Sepper, onze toenmalige Chief Customer Officer en Director of Support, benaderde met mijn idee om deze scripts om te zetten in een grotere tool die voor iedereen beschikbaar zou zijn, begon alles vorm te krijgen.

De Kinsta Tool

Ik begon met het herschrijven van de scripts die ik in Bash had geschreven, zette ze om naar PHP om ze veelzijdiger te maken en zo ontstond de Kinsta Tool. Kinsta Tool wordt vandaag de dag nog steeds gebruikt door ons supportteam en heeft een groot aantal automatiseringen voor taken zoals malware scannen, PHP extensies installeren of Redis instellen.

De Kinsta Tool blijft een waardevol hulpmiddel voor ons team omdat het de gaten opvult van features die je niet kan vinden in het MyKinsta dashboard. Een verzoek dat we vaak krijgen van klanten is bijvoorbeeld om een site terug te zetten naar de standaard WordPress staat. Hoewel je dit in MyKinsta kunt doen, moet je daarvoor de site verwijderen en opnieuw maken.

Om dit proces gemakkelijker te maken voor klanten die om hulp vroegen, heb ik een functie toegevoegd aan de Kinsta Tool die zowel WP-CLI als MySQL commando’s gebruikt om de database te wissen, bestanden te verwijderen en de nieuwste versie van WordPress opnieuw te installeren – met één druk op de knop. De actie neemt in totaal minder dan 5 seconden in beslag. Als we de stappen handmatig zouden herhalen, zou het afhankelijk van de omstandigheden vijf tot tien minuten kunnen duren.

De Chrome extensie

Anderen hebben soortgelijke implementaties uitgevoerd. Vóór mij ontwikkelde Thoriq Firdaus, nu lid van ons marketingtechnologieteam maar voorheen support-engineer, een Chrome extensie. De extensie werd intern gebruikt om de headers van een website te laten zien en te detecteren of deze wel of niet bij Kinsta werd gehost.

Tot voor kort bleef de extensie van Thoriq in gebruik, maar werd niet onderhouden. Onlangs zijn we begonnen met het schrijven van een nieuwe extensie om ervoor te zorgen dat we de nieuwste versie van het Chrome manifest zouden gebruiken, inclusief het oorspronkelijke concept, maar met toevoeging van onze eigen extra tools en functies die zinvol waren om onze klantgerichte teams te helpen hun werk efficiënter en effectiever te doen.

Een goed voorbeeld hiervan is hoe de extensie automatisch onbetrouwbare URL’s weghaalt wanneer ons team reacties typt in Intercom. Dit voegt een extra beveiligingslaag toe door ervoor te zorgen dat we niemand een kwaadaardige klikbare link sturen.

De Chrome extensie geeft ook in één oogopslag aan of de site wel of niet bij Kinsta wordt gehost. Onze supportmedewerkers kunnen op de extensie klikken en snel alle relevante headers zien die de site verstuurt, wat kan helpen bij het opsporen van problemen met een website.

Daarnaast biedt de extensie een tijdelijk notitieblok zodat supportmedewerkers notities of code kunnen kopiëren/plakken, die blijven bestaan zolang het tabblad geopend blijft. Dit maakt het wisselen van tabbladen van Intercom naar MyKinsta veel gemakkelijker en productiever.

Chatroutingssysteem

Een andere interne tool waar ik aan werkte was het gebruik van Intercom’s API om ons eigen chatroutingssysteem te maken. Intercom biedt een “round-robin” aanpak, en hoewel we vonden dat het effectief was, zorgde het er vaak voor dat sommige supportmedewerkers veel meer gesprekken hadden dan anderen, waardoor de wachtrij snel uit balans raakte.

Als reactie hierop heb ik aangepaste routingcode in PHP geschreven die rechtstreeks gekoppeld is aan de API en webhooks van Intercom om acties die rechtstreeks vanuit Intercom worden uitgevoerd, te ontvangen en erop te reageren. Als gevolg daarvan hebben we de toewijzing van gesprekken aan support engineers kunnen stabiliseren.

Om de tijdigheid en informativiteit van onze supportreacties te behouden, hebben we onze eigen routinglogica geïmplementeerd, die een cruciale rol speelt bij het beoordelen van de complexiteit of ‘zwaarte’ van elk gesprek.

Zo wordt een gesprek over DNS over het algemeen als minder uitdagend beschouwd dan een gesprek over een reverse proxy. Daarom krijgt het DNS-gesprek een lager gewicht dan het gesprek over de reverse proxy.

Onze routing logica evalueert de beschikbaarheid van support engineers, berekent het cumulatieve gewicht van lopende gesprekken voor elke engineer en wijst nieuwe inkomende gesprekken toe aan de engineer met het laagste gewicht.

Vooruitgang

In de aanloop naar juli 2022 begonnen we ons te realiseren hoe belangrijk dit soort tools en systemen zijn en blijven voor het algehele succes van onze klantgerichte teams. Als de primaire persoon die aan deze tools werkte, naast mijn andere verantwoordelijkheden, kreeg ik bij elk project waaraan ik werkte een technische workload.

Elk systeem had updates nodig en moest worden onderhouden. Dit bleef meer tijd opslokken dan we hadden toegewezen. Al die tijd werkte ik als hoofd ondersteuning en uiteindelijk als directeur technische ondersteuning, wat mijn huidige rol is.

Als reactie op de steeds groeiende werkdruk en de realisatie dat we behoefte zouden blijven houden aan op klantenondersteuning gebaseerde tooling, besloten we dat het tijd was om iemand voor die rol permanent aan te nemen. We konden intern iemand zoeken en vonden iemand met de kennis en ervaring om in te stappen en niet alleen mij op te volgen, maar ook de tijd te hebben die nodig is om tools van hoge kwaliteit te produceren.

Sinds we onze interne tools developer in dienst hebben genomen, hebben we gewerkt aan projecten waarmee we bijvoorbeeld statistieken beter konden bijhouden. We hebben de Chrome extensie herbouwd en we blijven werken aan verbeteringen voor bestaande tools.

Samenvatting

In 2018 waren we nog een jong bedrijf, en zoiets kleins als een idee voor wat Kinsta Tool is geworden, kan vaak leiden tot grotere en betere dingen. Ik geloof dat dit soort ‘startup-mentaliteit’ over het hoofd kan worden gezien als een manier voor mensen om – buiten de traditionele ontwikkelcyclus – hun eigen ideeën voor efficiëntiewinst en tooling bij te dragen.

Efficiëntie en het makkelijker maken van het werk zijn altijd al een prioriteit van mij geweest in mijn tijd bij Kinsta, en ik geloof sterk dat veel teams kunnen profiteren van hun eigen vormen van tooling en automatisering.

Door mijn ervaring te delen over hoe we dit hebben ingezet voor onze klantgerichte teams, hoop ik dat ook jij manieren kunt vinden om de efficiëntie te verbeteren, de kans op fouten te verkleinen en de werkprestaties van je team te verbeteren.

Jeff Paul Kinsta

Jeff Paul joined Kinsta in October of 2018. He's worked as a Support Engineer, Support Lead, Head of Support, and Director of Technical Support. Jeff is responsible for the overall direction of four customer-facing teams: Support, Migrations, Malware & Abuse, and Internal Support.