Overvejer du at blive en del af et af Kinstas udviklingsteams? Her er nogle vigtige ting, som vi gerne vil dele med dig!
Hvad udvikling arbejder med
- MyKinsta er vores primære kundevendte produkt. Planlæg gerne en demo for at finde ud af præcis, hvad det er, og hvordan det virker. Kort fortalt giver det en grænseflade for vores kunder til at administrere deres websideindstillinger som cache, PHP-version, CDN, DNS, flere brugere, analyser osv.
- DevKinsta er en lokal udviklingspakke. Hent den gratis og giv den en chance! Den giver dig mulighed for at oprette websteder lokalt på Linux, Windows og macOS og skubbe dem til dine staging-miljøer på Kinsta.
- Vi har vores eget affiliate-system, som giver folk mulighed for at registrere sig som Kinsta-affiliate og oprette henvisningslinks for at tilskrive salg til dem selv. Affiliates kan tjene både engangskommissioner og tilbagevendende provisioner.
- Et af vores mål er at automatisere alt, hvad vi kan, for alle vores teams. Til det formål er der adskillige interne værktøjer, som vi skaber og vedligeholder for forskellige afdelinger. Disse omfatter superadmin-værktøjer som genveje til komplekse handlinger, detaljeret, men læsbar logføring, et værktøj, der pinger alle websteder på vores infrastruktur for at sikre en problemfri drift, en dedikeret supportplatform til vores kundeteams og meget mere.
Udviklingsstakken
Vi holder vores værktøjer opdaterede og så homogene som muligt.
- Node.js bruges som backend-sprog.
- React bruges til at bygge brugergrænseflader.
- TypeScript er vores foretrukne sprog.
- GraphQL er vores forespørgselssprog, der implementeres gennem Apollo.
- Vi bruger både NoSQL- og SQL-databaser.
- Jest bruges til testning.
- Storybook bruges til komponenttest og dokumentation.
- Chromatic bruges til test af skærmbilleder.
- Qase bruges til at administrere vores automatiserede Nightwatch end-to-end test.
Udviklingsøkosystemet
Udvikling foregår ikke i et vakuum. Alle afdelinger er indbyrdes forbundet, og selv om nogle er tættere på de daglige udviklingsprocesser end andre, arbejder vi som en samlet helhed.
- Vi har et dedikeret produktdesignteam, der arbejder med forplanlægning, research, brugertest, fastlæggelse af omfang og UX/UI-design af funktioner. De forstår og arbejder med vores komponentbibliotek og samarbejder med udviklingen for at holde biblioteket opdateret.
- Vores QA-team har til opgave at håndtere teststyring og sikre, at udviklingsarbejdet afspejler forventningerne fra vores planlægningsfase. Vi føler stærkt, at QA’s formål ikke er at være en ressource for doven udvikling for at aflaste testning. QA vil fange fejl som et biprodukt af deres arbejde, men det forventes af udviklerne at sikre, at den kode, der sendes til QA, fungerer korrekt.
- Vores Engineering DevOps-team er ansvarlig for at skabe sammenhæng i forbindelserne i vores serverinfrastruktur i MyKinsta. De rådgiver udviklingsteamet i planlægningen, forbereder det arbejde, der skal udføres på serverne, og opretter de Ansible- (eller andre) scripts, der skal udløses.
- Vores Engineering SysOps-team hjælper udviklingen med at skabe instanser af passende størrelse til at huse applikationer og vedligeholder de maskiner, der er nødvendige for en gnidningsløs drift.
- Kundeteams og marketingteamet er afgørende for vores vellykkede drift. Enhver ændring, vi foretager, påvirker disse afdelinger kraftigt. Vi opsøger disse teams under planlægningen, opdaterer dem under opbygningen og sikrer, at de modtager alle de oplysninger og den uddannelse, de har brug for, inden lanceringen.
- Andre teams og afdelinger som finans, drift og flere kan også blive involveret i projekter, når vi automatiserer værktøjer, arbejder på faktureringsaspekter af vores infrastruktur osv.
Vi er stolte af den samarbejdsatmosfære, vi har opbygget. Det forventes, at teammedlemmerne forstår vigtigheden af at opfylde hvert teams behov. Udviklerne forstår, at marketing- og kundeteams har brug for en advarsel på forhånd og måske en UI-frysning før frigivelse, ligesom disse teams forstår behovet for PR-reviews og test, som kan skubbe vores tidslinje tilbage.
Sådan er udviklingen organiseret
Kinsta er en agil virksomhed. Vi er ikke bange for forandringer – vi søger dem aktivt for at forbedre vores præstationer løbende. På grund af dette udvikler organiseringen af udviklingen sig konstant i takt med, at vi vokser.
Projekter er den vigtigste “enhed” af organisation vi bruger. Udviklere tilknyttes projekter, og der udpeges en projektejer – som regel en udvikler selv. Projektejeren er ansvarlig for at omsætte idéen til en frigivet funktion. Afhængigt af projekttypen vil ejeren have en vis grad af kontrol over selve funktionen, dens omfang, planlægning osv. Projektejeren er også ansvarlig for at sikre en smidig og rettidig kommunikation mellem alle afdelinger.
Vi bruger Jira til at organisere vores opgaver og GitHub til at administrere vores kode og tilknyttede aktiviteter som f.eks. PR-reviews.
Vi har adskillige værktøjer integreret i vores GitHub-repositories, som hjælper os under udviklingsflowet og skaber et sted for et stærkt samarbejde – ikke kun mellem udviklere, men også mellem andre teams:
- Codeship og Buddy.works til at køre enhedstests
- Chromatic til automatisk at bygge Storybook og til at køre skærmbilledtests
- Danger JS til at køre brugerdefinerede kontroller for at sikre konsistens i kodestil og PR-beskrivelser
- En specialbygget tjeneste, der automatisk opretter et Docker-baseret testmiljø for hver PR. Dette er nyttigt for kodebedømmere, QA-teamet og Product Design-teamet, så vi kan diskutere ændringerne ét sted.
Se vores aktuelle ledige stillinger!