Funderar du på att ansluta dig till i ett av Kinsta’s utvecklingsteam? Här är några viktiga saker som vi vill dela med dig!

Vad utveckling arbetar med

  • MyKinsta är vår primära produkt. Boka gärna en demo för att ta reda på exakt vad det är och hur det fungerar. Den skapar ett gränssnitt för våra kunder där de sedan kan hantera sina webbplats-inställningar som cache, PHP-version, CDN, DNS, flera användare, analys osv.
  • DevKinsta är en lokal utvecklingssvit. Hämta den kostnadsfritt och ge den en chans! Med den så kan du exempelvis skapa webbplatser lokalt på Linux, Windows och macOS och skicka dem till dina iscensättningsmiljöer på Kinsta.
  • Vi har dessutom vårt eget affiliate-system som gör det möjligt för folk att registrera sig som Kinsta-affiliates och sedan skapa hänvisningslänkar för att hänvisa försäljningen till dem själva. Affiliates kan både tjäna engångsprovisioner och återkommande provisioner.
  • Ett av våra mål är att automatisera allt för alla våra team. Det finns därför många interna verktyg som vi skapar och underhåller för olika avdelningar. Dessa inkluderar superadministratörsverktyg som exempelvis genvägar för komplexa åtgärder, detaljerad men lättläst loggning samt ett verktyg som pingar alla webbplatser på vår infrastruktur för att säkerställa smidig drift. Det inkluderar dessutom en dedikerad support-plattform för våra kund-team och mycket mer.

Utvecklingsstacken

Vi håller våra verktyg uppdaterade och så homogena som möjligt.

  • Node.js används som backendspråk.
  • React används för att bygga användargränssnitt.
  • TypeScript är vårt favoritspråk.
  • GraphQL är vårt sökfrågespråk som implementeras genom Apollo.
  • Vi använder både NoSQL- och SQL-databaser.
  • Jest används för testning.
  • Storybook används för komponenttestning och dokumentation.
  • Chromatic används för testning av skärmdumpar.
  • Qase används för att hantera vår automatiserade Nightwatch end-to-end-testning.

Utvecklingens ekosystem

Utveckling sker inte i ett vakuum. Alla avdelningar är sammankopplade. Även om vissa ligger närmare de dagliga utvecklingsprocesserna än andra så arbetar vi som en enhetlig helhet.

  • Vi har ett dedikerat produktdesignteam som exempelvis arbetar med för-planering, forskning, användartester, fastställande av omfattning och UX/UI-design av funktioner. De förstår och arbetar med vårt komponent-bibliotek och samarbetar med utvecklingen för att hålla biblioteket uppdaterat.
  • Vårt QA-team har till uppgift att hantera tester och se till att utvecklingsarbetet återspeglar förväntningarna från vår planeringsfas. Vi är övertygade om att QA:s syfte inte är att vara en resurs för lat utveckling för att avlasta annan testning. QA kommer att fånga upp fel som en biprodukt av sitt arbete, men vi förväntar oss att koden som utvecklarna skickar till QA fungerar korrekt.
  • Vårt DevOps-team för teknik ansvarar för att sammanfoga länkarna i MyKinsta’s serverinfrastruktur. De ger dessutom utvecklingsteamet tips när det gäller planeringen och förbereder arbete som måste göras på servrarna. Utöver detta så skapar de Ansible-skript (eller andra) som måste utlösas.
  • Vårt Engineering SysOps-team hjälper utvecklarna att skapa instanser av lämplig storlek för att hysa applikationer och underhåller de maskiner som krävs för en smidig drift.
  • Kund-teamen och marknadsföringsgruppen är avgörande för vår framgångsrika verksamhet. Alla förändringar som vi gör påverkar dessa avdelningar i hög grad. Vi söker upp dessa team under planeringen, uppdaterar dem under byggandet och ser därefter till att de får all information och utbildning som de behöver före lanseringen.
  • Andra team och avdelningar som ekonomi, drift med flera kan också involveras i diverse projekt. Exempelvis när vi automatiserar verktyg, arbetar med fakturerings-aspekter av vår infrastruktur och så vidare.

Vi är stolta över den samarbets-atmosfär som vi har byggt upp. Team-medlemmarna förväntas förstå vikten av att tillgodose varje teams behov. Utvecklarna förstår att marknadsförings- och kund-teamen behöver förvarning och kanske en frysning av användargränssnittet före lanseringen. Samtidigt så förstår dessa team behovet av PR-granskningar och tester som kan skjuta vår tidslinje bakåt.

Hur utvecklingen är organiserad

Kinsta är ett agilt företag. Vi är inte rädda för förändringar – söker snarare aktivt efter dem för att kontinuerligt förbättra vår prestanda. Som ett resultat så utvecklas utvecklingsorganisationen ständigt i takt med att vi växer.

Projekt är den viktigaste ”enheten” som vi nyttjar för organisation. Utvecklare tilldelas projekt och en projektägare utses – vanligtvis utses dessutom en utvecklare. Projekt-ägaren är ansvarig för att omsätta idén till en lanserad funktion. Beroende på projekt-typen så har ägaren en viss grad av kontroll över själva funktionen, dess omfattning, planering osv. Projekt-ägaren är dessutom ansvarig för att se till att kommunikationen mellan alla avdelningar är smidig och sker i rätt tid.

Vi använder Jira för att organisera våra uppgifter och GitHub för att hantera vår kod och tillhörande aktiviteter som exempelvis PR-granskningar.

Vi har många integrerade verktyg i våra GitHub-arkiv som hjälper oss under utvecklingsflödet och skapar en plats för starkt samarbete – inte bara mellan utvecklare utan även mellan andra team:

  • Codeship och Buddy.works för att köra enhetstester
  • Chromatic för att automatiskt bygga Storybook och för att köra skärmdumptester
  • Danger JS för att köra anpassade kontroller för att säkerställa konsekvens i kodstil och PR-beskrivningar
  • En specialbyggd tjänst som automatiskt skapar en Docker-baserad testmiljö för varje PR. Detta är exempelvis användbart för kodgranskare, QA-teamet och produktdesignteamet, så att vi kan diskutera ändringarna på ett och samma ställe.

Kolla in våra aktuella lediga tjänster!