TimeEdit berättar om sin techstack, arkitektur och sina utmaningar
TimeEdit tycker vi är en mycket spännande tjänst som rent tekniskt har mycket att erbjuda. Därför tyckte vi att det vore intressant att titta närmare på deras techstack och vad de har för utmaningar. Vi tog därför kontakt med deras CTO Erik Brännström för att veta mer.
TimeEdit tycker vi är en mycket spännande tjänst som rent tekniskt har mycket att erbjuda. Därför tyckte vi att det vore intressant att titta närmare på deras techstack och vad de har för utmaningar. Vi tog därför kontakt med deras CTO Erik Brännström för att veta mer.
TimeEdit som tjänst
Berätta lite om din tid på TimeEdit?
Jag började på TimeEdit i januari 2013 som utvecklare, men har ända sedan studietiden på Chalmers haft ett stort intresse för den mänskliga aspekten av mjukvaruutveckling. Det gjorde att jag först började driva ett processarbete på företaget innan jag förra året blev erbjuden att ta över som CTO när grundaren av företaget klev tillbaka.
Vad gör TimeEdit unik?
Det som jag tycker är utmärkande för de tjänster vi har på TimeEdit är den flexibilitet som finns. Det finns oftast ett grundproblem som ska lösas, men det finns alltid utrymme att komma med nya idéer och ge sig in på nya spår.
Historik
Hur startade allt?
TimeEdit, som är en helhetslösning för schemaläggning och resursplanering inriktad mot utbildningsväsendet, har funnits väldigt länge, men den senaste inkarnationen byggdes för ca 10 år sen när man valde att satsa på en molnlösning istället för on-premise som man gjort tidigare.
Hur såg lösningen ut då?
Servern utvecklades i C++ med MySQL som databas. Mot den anslöt kunderna sedan med desktopklienter utvecklade i Java. Sedan jag började ungefär så har vi dock satsat på att gå mot helt webbaserade tjänster, där desktopklienten ersätts av en ny lösning skriven helt i Javascript (React + Node).
Vilka var era största utmaningar då?
Prestandan var den största utmaningen, vilket också var en stor del av anledningen till att man valde C++ som backendspråk.
Vad är nyckeln till att ni tagit er dit ni är idag?
En villighet att förändras och titta på nya lösningar.
Arkitektur
Berätta om hur TimeEdit är uppbyggt?
Backenddelen är fortfarande C++, men vi håller just nu på att utvärdera om vi ska påbörja ett arbete för att stegvis ersätta den med en microservices-arkitektur och då även eventuellt använda oss av Go. Schemaläggningsklienten (TE Core) är som sagt helt Javascript-baserad, där gränssnittet är helt i React och den i sin tur kommunicerar via en API-proxytjänst i Node med servern.
Vi har även ett par tjänster i Java, t.ex. vår schemavisning och grupprumsbokning för studenter och vårt publika API. Databaserna är fortsatt MySQL-liknande, även om vi nu för tiden använder MariaDB.
Vad skulle du säga har vart den största utmaningen att ta plattformen ditt ni är idag?
Den största utmaningen är tid egentligen. Att flytta tjänsterna, och samtidigt förbättra dem, är visserligen tidskrävande i sig, men det är framförallt en stor omställning för våra kunder, så vi behöver röra oss lugnt i båten för att inte skiftet ska bli påfrestande för slutanvändarna.
Finns det någon teknik i er tjänst som ni är extra nöjda med?
React har fungerat precis så bra som vi hoppades. Vi utvärderade flera olika lösningar när vi påbörjade projektet med en webbaserad applikation, och React var det ramverk som gjorde det enklast att både strukturera koden på ett tydligt sätt och framförallt göra det smidigt att skriva snabba webbappar.
Har ni gjort några tekniska beslut under er resa som ni nu i efterhand har fått negativa konsekvenser?
Det hade förenklat mycket om vi hade tagit beslutet att gå mot 100% webb några år tidigare, då vi fortfarande har saker kvar att göra för att nå dit.
Vad har ni i er pipeline just nu?
Just nu arbetar vi med att migrera hela vår plattform till Google Cloud Platform istället för att köra egna servrar i en colo. Detta är för att dels ge oss möjlighet att effektivare skala upp allt eftersom vi får nya kunder, men också för att på sikt kunna expandera in i nya geografiska marknader.
Vilka andra verktyg använder ni er av för att jobba effektivare?
Vi använder Slack för att kommunicera internt och G Suite för vår mail. För filhantering kör vi i dagsläget Dropbox, men tittar på om vi ska gå över till Google Drive i och med att vi redan använder t.ex. Google Docs väldigt mycket.
Utvecklarteamet
Hur ser ert utvecklarteam ut?
Vi är sju personer på produktavdelningen, med bl.a. UX, infrastruktur, backend och frontend som olika specialiseringar. Däremot så är ganska många inne och gör ganska olika saker, vilket är en naturlig effekt av att vara ett ganska litet företag.
Hur ser du på ert sätt att jobba?
Som sagt så blir man ofta lite allt-i-allo i den utsträckning man tycker det är intressant. Vill man ge sig in på backend-sidan så är man välkommen att göra det, även om man råkar jobba mest med frontend i dag.
Hur ser era rekryteringsbehov ut framöver?
Vi behöver åtminstone en ytterligare person på frontend med kunskap inom JS och gärna React, och vi kommer även behöva rekrytera till backend, men där avvaktar vi lite i och med att vi tittar på vilken riktning vi ska röra oss mot där.