{"id":55639,"date":"2025-10-14T16:43:16","date_gmt":"2025-10-14T16:43:16","guid":{"rendered":"https:\/\/www.europesays.com\/se\/55639\/"},"modified":"2025-10-14T16:43:16","modified_gmt":"2025-10-14T16:43:16","slug":"sweclockers-jobb-v0-1-fran-ide-till-kod","status":"publish","type":"post","link":"https:\/\/www.europesays.com\/se\/55639\/","title":{"rendered":"SweClockers Jobb v0.1: fr\u00e5n id\u00e9 till kod"},"content":{"rendered":"<p class=\"bbParagraph\">Vad h\u00e4nder n\u00e4r en vision\u00e4r och en kodare f\u00e5r en id\u00e9 och lite utrymme mellan varven?<br \/>Resultatet blev SweClockers Jobb, en ny betatj\u00e4nst d\u00e4r teknikintresserade kan hitta relevanta jobb inom IT och utveckling.<\/p>\n<p class=\"bbParagraph\">Under \u00e5ret har vi ocks\u00e5 testat samarbeten med f\u00f6retag som s\u00f6ker IT-kompetens. Med Smartoptics satte vi communityts <a class=\"bbLink\" href=\"https:\/\/www.sweclockers.com\/artikel\/35380-quiz-vad-kan-du-om-fiberoptik\" target=\"_self\" rel=\"nofollow noopener\">fiberkunskaper<\/a> p\u00e5 prov, med Metrea <a class=\"bbLink\" href=\"https:\/\/www.sweclockers.com\/artikel\/37212-kunskapsquiz-vad-kan-du-om-flygsimulatorer\" target=\"_self\" rel=\"nofollow noopener\">testade vi flygsimulatorer<\/a> och IT-Total v\u00e4ckte <a class=\"bbLink\" href=\"https:\/\/www.sweclockers.com\/artikel\/35208-quiz-har-du-det-som-kravs-for-att-bli-natverkstekniker\" target=\"_self\" rel=\"nofollow noopener\">n\u00e4tverksteknikernerven<\/a>. Vi hann \u00e4ven med en <a class=\"bbLink\" href=\"https:\/\/www.sweclockers.com\/artikel\/39480-natverkstekniker-valkommen-pa-mingelkvall-i-stockholm\" target=\"_self\" rel=\"nofollow noopener\">mingelkv\u00e4ll i Stockholm<\/a>.<\/p>\n<blockquote class=\"bbBlockQuote\">\n<p class=\"bbParagraph\">&#8230;g\u00f6ra verklig nytta f\u00f6r egenl\u00e4rda personer som bygger sin kunskap via SweClockers forum<\/p>\n<\/blockquote>\n<p class=\"bbParagraph\">F\u00f6r mig, <a class=\"bbReply\" href=\"https:\/\/www.sweclockers.com\/medlem\/Edin\" rel=\"nofollow noopener\" target=\"_blank\">@Edin<\/a>, handlar SweClockers Jobb om n\u00e5got st\u00f6rre. Jag har jobbat p\u00e5 SweClockers i \u00f6ver 25 \u00e5r, \u00e4r sj\u00e4lvl\u00e4rd och har sett hur m\u00e5nga medlemmar h\u00e4r gjort liknande resor. V\u00e5r vision \u00e4r att skapa en plats d\u00e4r kunskap och passion v\u00e4ger tyngre \u00e4n formella meriter, d\u00e4r f\u00f6retag ser personen bakom titeln.<\/p>\n<p>Visionen bakom<\/p>\n<p class=\"bbParagraph\">Det pratas ofta om kompetensbrist i branschen samtidigt som m\u00e5nga bolag s\u00f6ker kandidater med perfekta CV:n. Vi vill hitta f\u00f6retagen som ser potential, driv och nyfikenhet, inte bara titlar och erfarenhet.<\/p>\n<p class=\"bbParagraph\">SweClockers Jobb ska bli en plats d\u00e4r m\u00e4nniskor och f\u00f6retag med samma passion hittar varandra. Vi har sm\u00e5 resurser men ett stort community. D\u00e4rf\u00f6r testar vi en enkel metod: att bara komma ig\u00e5ng och bygga vidare tillsammans.<\/p>\n<p>Fr\u00e5n id\u00e9 till skiss<\/p>\n<p class=\"bbParagraph\">Som s\u00e5 ofta b\u00f6rjar det med anteckningar i mobilen, sena kv\u00e4llar och ett <a class=\"bbLink\" href=\"https:\/\/docs.google.com\/document\/d\/1YjJPFXdiYD4Y2vb_Bu3Mzj8SAQkeYluR1eP5g0Undgw\/edit?usp=sharing\" target=\"_blank\" rel=\"noopener nofollow\">dokument som v\u00e4xer<\/a> till n\u00e5got st\u00f6rre. Efter n\u00e5gra dagar fanns en plan och tack vare <a class=\"bbReply\" href=\"https:\/\/www.sweclockers.com\/medlem\/jreklund\" rel=\"nofollow noopener\" target=\"_blank\">@jreklund<\/a> hittade vi en startlinje som gick att genomf\u00f6ra med de resurser vi har.<\/p>\n<p>Tekniken bakom SweClockers Jobb<\/p>\n<p class=\"bbParagraph\">Har du f\u00e5tt nog av ovan flum? L\u00e5t oss hoppa vidare till Johan som g\u00e5r in p\u00e5 de tekniska detaljerna bakom SweClockers Jobb ist\u00e4llet!<\/p>\n<p>\t\t\t\t\t<img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.europesays.com\/se\/wp-content\/uploads\/2025\/10\/125610\" title=\"\" alt=\"johan_kodar_swecjobb.jpg\"\/><\/p>\n<p class=\"bbParagraph\">Johan kodar jobb (&#8230;hunden Zingo g\u00f6r konstig min i bg)<\/p>\n<p class=\"bbParagraph\"><strong class=\"bbStrong\">Edin: Vad var det f\u00f6rsta du gjorde n\u00e4r id\u00e9n om SweClockers Jobb d\u00f6k upp?<\/strong><br \/>Johan: F\u00f6rst beh\u00f6vde jag identifiera vilka datam\u00e4ngder som fanns i Platsbanken hos Arbetsf\u00f6rmedlingen, vad de inneh\u00f6ll och hur relationerna s\u00e5g ut mellan dem. Det finns ingen tydlig dokumentation kring datatyper, obligatoriska f\u00e4lt eller relationer, och ibland saknas kopplingar trots unika ID:n. Vissa v\u00e4rden skiljer sig dessutom fr\u00e5n vad deras publika gr\u00e4nssnitt visar.<\/p>\n<p class=\"bbParagraph\">Tyv\u00e4rr fick vi inte \u00e5tkomst till en av de viktigaste datapunkterna: m\u00f6jligheten till distansarbete.<\/p>\n<p class=\"bbParagraph\">Efter kartl\u00e4ggningen var det \u00e4ntligen dags att bygga den f\u00f6rsta databasstrukturen och resten \u00e4r historia.<\/p>\n<p class=\"bbParagraph\"><strong class=\"bbStrong\">Edin: Vilka tekniker och ramverk har du anv\u00e4nt under huven?<\/strong><br \/>Johan: Efter att ha analyserat datam\u00e4ngderna s\u00e5 visade sig html-koden vara v\u00e4ldigt smutsig. Du f\u00e5r allt fr\u00e5n bilder, JavaScript och inb\u00e4ddade videoklipp till klassiska punktlistor. Att sanera information innan den visas f\u00f6r bes\u00f6karna blev ett krav. F\u00f6r mig som \u00e4r PHP-utvecklare f\u00f6ll blicken mot Symfony och deras HTML Sanitizer, de \u00e4r gamla r\u00e4var i branchen och deras bibliotek anv\u00e4nds i flera popul\u00e4ra CMS (Content Management System), e-handel mjukvaror och ramverk.<\/p>\n<p class=\"bbParagraph\">D\u00e5 vi \u00e4ven skulle bygga en fullfj\u00e4drad hemsida utan n\u00e5gra beroende av befintlig kodbas beh\u00f6vdes \u00e4ven ett ramverk. Det \u00e4r h\u00e4r jag g\u00e5r mot str\u00f6mmen och inte v\u00e4ljer Laravel&#8217;s ramverk, om antalet Github stj\u00e4rnor \u00e4r sanningen. Valet f\u00f6ll p\u00e5 Symfony, inte bara f\u00f6r vad vi har behov av idag, utan \u00e4ven i framtiden. Personligen f\u00f6redrar jag egentligen micro ramverk, d\u00e4r less is more och med s\u00e5 f\u00e5 beroenden som m\u00f6jligt.<\/p>\n<p class=\"bbParagraph\">Ett fullfj\u00e4drat ramverk kommer med cykel p\u00e5 k\u00f6pet och ett par val g\u00f6rs automatiskt baserat p\u00e5 hur t\u00e4tt kopplade de redan \u00e4r. Backend best\u00e5r av Symfony-utvecklade paket och Doctrine f\u00f6r databas hantering, om man ignorerar paketens egna beroenden. Det \u00e4r l\u00e4ttare att vara mer flexibel p\u00e5 frontend sidan men f\u00f6r enkelhetens skull v\u00e4ljer jag deras rekommendationer; Symfony UX, Stimulus, Turbo och Tailwind CSS. F\u00f6r att rendera responsiva e-postmeddelandes v\u00e4ljs Maizzle och inte Inky, som Symfony sj\u00e4lva rekommenderade. Inky har inte uppdaterats p\u00e5 flera \u00e5r, genererade bloatad HTML-kod och k\u00e4ndes gammal och dassig.<\/p>\n<p class=\"bbParagraph\">N\u00e4r vi nu har stommen p\u00e5 plats fattas det viktigaste av allt; en bra s\u00f6kmotor. Valet f\u00f6ll p\u00e5 Typesense f\u00f6r dess snabbhet, licensvillkor, funktioner och konfigurations m\u00f6jligheter. Du f\u00e5r ju sj\u00e4lvklart \u00e4ven bra relevanta matchningar.<\/p>\n<p class=\"bbParagraph\"><strong class=\"bbStrong\">Edin: Vad har varit den st\u00f6rsta tekniska utmaningen hittills?<\/strong><br \/>Johan: Den mest kr\u00e4vande insatsen var att analysera och strukturera Arbetsf\u00f6rmedlingens API:er samt att skriva den JavaScript som kommunicerar med s\u00f6kmotorn.<\/p>\n<p class=\"bbParagraph\">Det h\u00e4r projektet inneh\u00e5ller m\u00e5nga nya teknisk beroenden som jag inte anv\u00e4nt tidigare. Mycket av min tid har lags p\u00e5 att l\u00e4sa dokumentation samt testa, testa och testa. Inte bara f\u00f6r att det \u00e4r kul med nyheter &#8211; utan f\u00f6r att hitta nya b\u00e4ttre s\u00e4tt att utveckla v\u00e5ra befintliga sajter.<\/p>\n<p class=\"bbParagraph\"><strong class=\"bbStrong\">Edin: Vad blev du mest n\u00f6jd med?<\/strong><br \/>Johan: Hur enkelt det faktiskt var att s\u00e4tta upp en riktigt bra s\u00f6kmotor! Bortsett fr\u00e5n all JavaScript som beh\u00f6vde utvecklas.<\/p>\n<p class=\"bbParagraph\"><strong class=\"bbStrong\">Edin: Hur har du t\u00e4nkt kring prestanda, s\u00f6kning och filtrering?<\/strong><br \/>Johan: Faktiskt ganska lite, vi anv\u00e4nder varken cache-proxy eller Symfony:s inbyggda cache-motor. Trafiken p\u00e5 de unika sidorna (annonserna) \u00e4r f\u00f6r l\u00e5g f\u00f6r att det ska l\u00f6na sig.<\/p>\n<p class=\"bbParagraph\">S\u00f6kmotorn lagrar allt i RAM-minnet och hanterar filtrering och sortering p\u00e5 egen hand. Symfony beh\u00f6ver aldrig behandla s\u00f6kfr\u00e5gorna, de g\u00e5r bara via en reverse proxy f\u00f6r TLS-terminering och f\u00f6r att d\u00f6lja API-nycklar.<\/p>\n<p class=\"bbParagraph\"><strong class=\"bbStrong\">Edin: Vad var roligast att bygga?<\/strong><br \/>Johan: Att anv\u00e4nda Stimulus f\u00f6r att v\u00e4cka liv i HTML-element via JavaScript. Det \u00e4r fascinerande hur man med sm\u00e5 medel kan lyssna p\u00e5 knapptryck och uppdatera inneh\u00e5ll dynamiskt.<\/p>\n<p class=\"bbParagraph\"><strong class=\"bbStrong\">Edin: Om du fick fria h\u00e4nder fram\u00e5t, vad skulle du g\u00f6ra?<\/strong><br \/>Johan: Jag skulle nog ta bort all k\u00e4llkod och b\u00f6rja om fr\u00e5n b\u00f6rjan. Vissa l\u00f6sningar fungerar, men \u00e4r mer snabba fixar \u00e4n permanenta l\u00f6sningar.<\/p>\n<p class=\"bbParagraph\"><strong class=\"bbStrong\">Edin: Vad har du l\u00e4rt dig p\u00e5 v\u00e4gen?<\/strong><br \/>Johan: Att det kanske \u00e4r dags att byta ut v\u00e5r egenutvecklade s\u00f6kmotor till Typesense, f\u00f6r mer tr\u00e4ffs\u00e4kra matchningar. Den m\u00e4ngd RAM-minne vi kommer beh\u00f6va ger mig redan mardr\u00f6mmar.<\/p>\n<p class=\"bbParagraph\">Symfony och Doctrine har genererat m\u00e5ng svordomar, n\u00e5got som jag med enkelhet skapar i v\u00e5r ordinarie kodbas kunde initialt ta timmar att hitta i dokumentationen. N\u00e4r man v\u00e4l bekantat sig med hur man ska g\u00f6ra s\u00e5 gillar jag det mer och mer. H\u00e4r finns det i vart fall en dokumentation, vilket v\u00e5r kodbas saknar idag.<\/p>\n<p class=\"bbParagraph\">Stimulus och Turbo har varit intressant att jobba med och skulle ge ett lyft i kod-l\u00e4sbarhet, men jag \u00e4r inte riktigt v\u00e4n med alla aspekter. Kan ju vara skit bakom spakarna, men det erk\u00e4nner jag aldrig!<\/p>\n<p class=\"bbParagraph\">N\u00e4r vi bygger om nyhetsbreven ligger Maizzle n\u00e4rmst att implementeras.<\/p>\n<p class=\"bbParagraph\">Tailwind CSS var riktigt trevligt att anv\u00e4nda d\u00e5 alla t\u00e4nkbara egenskaper ligger till ditt f\u00f6rfogande, men det skulle kr\u00e4vas en v\u00e4ldigt stor omskrivning att implementera det i befintlig milj\u00f6.<\/p>\n<p class=\"bbParagraph\"><strong class=\"bbStrong\">Edin: Om du skulle beskriva SweClockers Jobb med en kodrad, vilken skulle det vara?<\/strong><br \/>Johan:<\/p>\n<p class=\"bbParagraph\">return new JobPortal(&#8217;Konfigurationen du letar efter finns i en annan YAML-fil.&#8217;);<\/p>\n<p class=\"bbParagraph\"><a class=\"bbButton bbButton--wide\" href=\"https:\/\/jobb.sweclockers.com\/\" rel=\"nofollow noopener\" target=\"_blank\">Utforska SweClockers jobb<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"Vad h\u00e4nder n\u00e4r en vision\u00e4r och en kodare f\u00e5r en id\u00e9 och lite utrymme mellan varven?Resultatet blev SweClockers&hellip;\n","protected":false},"author":2,"featured_media":55640,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[66],"tags":[5355,80,78,79,34,31,33,32,30,81,84,83,82],"class_list":{"0":"post-55639","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-vetenskap-och-teknik","8":"tag-a-41842-hardvara-nyhet-p-artikel-sweclockers-jobb","9":"tag-science","10":"tag-science-and-technology","11":"tag-scienceandtechnology","12":"tag-se","13":"tag-svenska","14":"tag-sverige","15":"tag-sweden","16":"tag-swedish","17":"tag-technology","18":"tag-teknik","19":"tag-vetenskap","20":"tag-vetenskapteknik"},"share_on_mastodon":{"url":"","error":""},"_links":{"self":[{"href":"https:\/\/www.europesays.com\/se\/wp-json\/wp\/v2\/posts\/55639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.europesays.com\/se\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.europesays.com\/se\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/se\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/se\/wp-json\/wp\/v2\/comments?post=55639"}],"version-history":[{"count":0,"href":"https:\/\/www.europesays.com\/se\/wp-json\/wp\/v2\/posts\/55639\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/se\/wp-json\/wp\/v2\/media\/55640"}],"wp:attachment":[{"href":"https:\/\/www.europesays.com\/se\/wp-json\/wp\/v2\/media?parent=55639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.europesays.com\/se\/wp-json\/wp\/v2\/categories?post=55639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.europesays.com\/se\/wp-json\/wp\/v2\/tags?post=55639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}