Igång med nytt projekt
Johan | 16 January, 2009 | 0 kommentarer
Den här veckan har rusat förbi. Har varit fullt upp men ändå lugnt på ett konstigt sätt. Varit skönt att få komma in i sina rutiner igen efter alla helger. Vi har småstartat vårt kommande projekt som officiellt inte startar förrän nästa vecka. Kommer då gå från undersökning till implementationsfas vilket jag verkligen ser fram emot. Jag gillar dessa små uppstarter av projekt som vi ofta har där man kan få möjlighet att reflektera över de dokument och funderingar som man har med sig in.
Har även fått bekräftat att jag kommer deltaga på Jfokus 2009 i slutet av den här månaden. Kommer även deltaga på tutorialdagen där jag kommer gå på Domain Driven Design och RIA med JavaFX. Dock saknas officiellt stöd för JavaFX under Linux. Men jag är fortfarande nyfiken på JavaFX så jag ska göra mitt bästa för att få upp en miljö, rekommenderas att man tar med egen dator nämligen.
Johan
Korta reflektioner på 2008
Johan | 9 January, 2009 | 0 kommentarer
Den här tiden igen då man ska reflektera på vad som har varit. Tänker dock inte bli så långrandig utan istället kort konstatera att det har varit ett händelsefullt och intressant år på bwin. Under året har jag deltagit i flera väldigt intressanta och lärorika projekt. Har gjort en hel del javautveckling vilket har varit kul. Varit på OOPSLA, vilket var helt fantastiskt. Chris Heilmann besökte bwin och gav ett väldigt inspirerande föredrag. Vår grupp fick en rejäl UML kurs, givande och nyttigt. Jag inser till sist att vim funkar dåligt som min enda editor, går tillbaka till Eclipse. Hela vår grupp åkte till Sälen för att åka skidor och skoter, vilket var riktigt kul även om mina framgångar på snön var ganska begränsade.
Jag ser framemot 2009 och hoppas att det ska vara minst lika givande som
2008 har varit för mig.
/Johan
God Jul
Johan | 19 December, 2008 | 0 kommentarer
Jag har haft möjlighet att testa Guice och Warp Persist den här veckan. Jag måste säga att jag är väldigt imponerad av båda projekten. Bortsett från Guice sätt att hantera dependency injection så gillar jag speciellt de dynamiska finders som kommer med Warp Persist. Allt man behöver göra är att annotera upp metoder på ett interface med @Finder. Knyta interfacet till sin persistence service. Sen skjuta in de här interfacen med Guice @Inject där man vill dra nytta av funktionaliteten som man specificerat i sitt interface. Allt detta utan att behöva skriva själva implementationen av interfacet. Det finns några exempelprojekt tillgängliga om ni är intresserade av att testa Warp Persist.
I måndags var det dags för bwins julfest. Som vanligt visste vi inte var bussarna skulle ta oss. De stannade till sist vid Södra Teatern vilket visade sig vara en perfekt plats för festen. Det bjöds på både presentationer och teater och så klart så spelade bwin-bandet. Allt som allt en lyckat kväll. Tack Kamil och alla andra som annordnade den här kvällen.
Till sist måste jag nämna att två av mina kollegor Joakim Bodin och Conny Dahlgren precis avsläppt ett verktyg för att hålla reda på databasförändringar som öppen källkod, Brazil. Brazil används internt av databas-teamet på min avdelning och nu finns det alltså tillgängligt för alla andra med. Det kommer antagligen komma en längre presentation av Brazil längre fram men för nu God Jul.
Johan
Tre presentationer på en dag
Johan | 12 December, 2008 | 0 kommentarer
Förra veckan besökte Christian Heilmann oss. Han höll tre väldigt bra och inspirerande presentationer. Den första handlade om vart webben är på väg idag. Varför vi ska öppna upp vår data för världen och hur nya tjänster kan komma till genom att kombinera data på ett sätt som det kanske inte var tänkt till en början. Han visade även exempel på hur man kan göra förändringar på webbsidor med hjälp av greasemonkey. Jag har själv inte tänkt på att greasemonkey kan användas till att göra prototyper med. Jag var verkligen imponerad över att han höll hela presentationen utan att ha en enda förberedd slide, istället kan man säga att han använde olika webbsidor som slides.
På eftermiddagen hölls två presentationer, den första var om tips på hur man kan öka prestandan på webbplatser. Han gick igenom CSS sprites, lazy loading med javascript och en hel del andra saker. Vi fick också med oss lite tips på tjänster som finns där ute som kan vara till stor hjälp vid prestandaoptimering såsom spritegen och Smush it.
Den sista handlade om att bygga javascript som går att underhålla. Han gick igenom en lista med olika syndrom på hur man kunde se om sin kod var underhållsbar. Visade även på saker som man bör göra innan man lämnar över sitt script till någon annan.
Det här var en riktigt bra dag och jag gillar verkligen den humor han hade i varje föreläsning. Chris inspirerade mig även till att börja använda twitter, vilket är en lite underlig tjänst men med stor potential där man kan få lite inblick i vad som är gång i folks liv.
Johan
Vecka 49
Johan | 5 December, 2008 | 0 kommentarer
Dags för ett nytt Geek Meet den här veckan, Chris Heilmann som är "Web Architect/Standards Evangelist" på Yahoo kommer dit för att hålla två föredrag. Eftersom vi har planerat att gå ut och äta och spela biljard med vår avdelning så har jag tackat nej till Geek Meet den här gången. Dock så har Chris Heilmann bilvit inbjuden till bwin Games på fredag och kommer att prata om "Website Performance" och "Maintaining JavaScript in a large team". Jag ser verkligen fram emot de här föreläsningarna och att det ska väcka mitt intresse för javascript till liv igen.
Förra veckan blev lite stressig då det var sista veckan för det projekt som jag jobbade med. Nu väntar vi bara på slutrapport ifrån QA samt att fylla på med dokumentation för en del apier. Men det är skönt att vi i princip är klara och nu kunnat gå vidare och koncentrera oss på nya projekt.
Johan
Mockito och isNull
Johan | 21 November, 2008 | 1 kommentarer
I veckan skulle jag skriva ett test för en metod där jag var tvungen att testa att ett av argumenten verkligen var satt till null. Eftersom vi använder Mockito så satte jag upp testet med en isNull matcher precis som jag normalt gör med eq eller anyString.
verify(myMock).myMethod(isNull());
Men eftersom metoden jag ville testa ser ut som nedan så kunde inte testet kompilera för för att isNull var inte av typen SomeObject.
public void myMethod(SomeObject someObject);
Istället så fick jag skriva min egen matcher och med hjälp av generics så var det även väldigt enkelt att få den återanvändbar.
verify(myMock).myMethod(argThat(new IsNullObjectMatcher()));
Matchern själv ser ut så här.
public class IsNullObjectMatcher extends ArgumentMatcher {
@Override
public boolean matches(Object argument) {
return (null == argument);
}
}
Men precis när jag gjort den här mycket intelligenta och snygga matchern så insåg jag att jag kunde casta isNull matchern till SomeObject och få samma effekt. Så till mig själv, glöm allt ovan och istället använd.
verify(myMock).myMethod((SomeObject) isNull());
/Johan
Snart Klara
Johan | 14 November, 2008 | 0 kommentarer
I stort sätt klara med vårt nuvarande projekt. Det här har varit ett väldigt intressant projekt för mig även om vi var tvungna att ha det i dvala för en längre tid. Eftersom jag inte har gjort överdrivit mycket Java utveckling tidigare så har det varit extra kul att få sätta sig in i de ramverk och de tekniker som vi har kommit i kontakt med.
Den här veckan har vi förberett för lasttester. Det ser ut som att vi kommer använda oss av JMeter vilket har visat sig vara ganska enkelt att sätta upp för test av web services. Det enda egentliga problemet har varit att göra om jtl logfilerna till ett format som passar bättre för ett Excell-liknande program. Jag har använt mig av några av de script som finns postade på JMeter wikin men det slutade med att jag fick hacka dem och wrappa dem i mina egna bash script för att få till en vettig fil. Om någon har idéer eller erfarenhet av liknande så lyssnar jag gärna.
/ Johan
OOPSLA summering
Johan | 7 November, 2008 | 1 kommentarer
Först en kort flygresa till Amsterdam, byte till en betydligt längre flygresa till Detroit. Väl i Detroit fick jag och Johan vänta väldigt länge till nästa flyg till Nashville. När vi väl gått på flyget och var på väg att taxa ut var vi tvungna att vända för att släppa av en person som var sjuk. Efter 23 timmars resande kom vi till sist fram till Nashville.
Nästa dag började med en rejäl överraskning när vi stötte ihop med tre andra personer från bwin Games. Vi hade ingen som helst aning om att även de skulle till OOPSLA. Vi åt frukost ihop och begav och sen till konferenslokalerna. Där hämtade vi upp vårt konferensmaterial. Sen var det dags för vår första föreläsning, "Software "Best" Practices: "Agile" Deconstructed".
Steven Fraser som höll i den var en riktigt bra handledare, och det blev även en hel del diskussioner. De flesta som var där kom dock ifrån större organisationer och ville hitta sätt att applicera ett mer agilt tänkande hos sig. Så jag kände mig lite mialplacerad. Efter lunch så gick jag och Johan på en förläsning som hette "Building Service-Oriented Architectures with Web Services". Jag tyckte den var lite för basic och var mer som en introduktion till SOAP.
Vi fick lära känna de andra bwinnarna lite mer när vi på kvällen gick ut och åt tillsammans. I Stockholm så jobbar vi på olika avdelningar och det blir sällan att vi pratar med varandra. Men dags att ändra på det nu! Gick till sängs ganska tidigt, jet-laggade.
Gick upp tidigt nästa dag, måndag. Vår första föreläsning hette "Advanced Software Architecture". De gick igenom en del riktlinjer och metoder att tänka på alla från "the real world". Bra tutorial. På eftermiddagen gick jag till "Building Domain-Specific Languages for the Web" som hölls av Eelco Visser. Den här var riktigt bra och inspirerande där han demonstrerade vad man kunde göra med WebDSL ramverket. Mer om WebDSL går att läsa på http://webdsl.org/. Fick också lära mig att man kan uttala DSL som diesel.
På kvällen gick vi till välkomstfesten, där minglade vi och fick mat och dricka. Träffade en spanjor som jobbade åt F-Secure i Finland. Lite senare träffade vi även en fransk C++ programmerare. Tillsammans med de andra bwinnarna gick vi alla till en musikbar där de så klart spelade country. I Nashville så finns det till och med högtalare på gatorna som spelar country medan man väntar på att gå över gatan.
Tidagen började med att jag gick till öppningstalet för OOPSLA. Det hölls av en egyptolog. Lite udda men det var ett intressant tal där han gjorde flera referenser till objektorientering i sitt tal. På eftermiddagen gick vi till "SOA Architecture and Design Strategies" med Boris Lublinsky. Han har även skrivet en bok i ämnet "Applied SOA" som Johan köpte lite senare. Riktigt bra tutorial.
Senare så tog jag en buss tillsammans med de andra bwinnarna till ett köpcentrum som låg lite utanför centrum. Åt middag på Cheesecake Factory, vi tog sen en taxi tillbaka. Chauffören var inte speciellt glad för all country musik så istället sjöng han och skämtade om det under resan.
Nästa dag, onsdag, gick jag till ett riktigt bra tal av Rebecca Wirfs-Brock om "What drives design". Mötte sen upp med Johan och gick till "DSL the good the bad the ugly". På eftermiddagen gick vi på "Building Memory-Efficient Java Applications" med Gary Sevitsky. Han började med att ställa frågan "Hur många bytes i en 8 tecken sträng?" Jag blev förvånad över svaret 64! Detta var hittills den bästa föreläsningen och definitivt de snyggaste slidsen.
OOSLA Special Event hölls på kvällen. Mötte upp med vår franske vän. Jag var ganska trött och vi åkte hem tidigt.
Tordag, den sista dagen, startade med "Fault Tolerant Software with Patterns". En väldigt bra föreläsning. Han började med att förklara att vi måste förstå vad det är för buggar vi har och att vi aldrig aldrig får benämna dem som buggar. Istället så introducerade han oss för att definiera fel med Fault, Error och Failures. Efter lunch gick jag och Johan till "Intro to Google Guice & Testing with GuiceBerry" med Bob Lee and Luiz-Otavio Zorzella. De sa att de var dåliga talare med det var de inte alls. Guice gjorde ett starkt intryck och efter att ha brottats med springs xml var det skönt att se ett typ- och refaktoriseringssäkert alternativ till dependency injection. Ska försöka introducera Guice till vår grupp på något sätt.
På kvällen hade vi middag tillsammans med två killar från Oracle som jobbar med JRockit, en från Boeing och resten av bwin folket. Blev ett perfekt slut på OOPSLA.
Fredag, vi åkte ut till flygplatsen tidigt. Tur det då vårt plan var försenat på grund av dåligt väder. Vi blev placerade på ett annat plan och kom till Atlanta lite tidigare. Efter åtta timmars väntan var det dags för ytterligare åtta timmar på flyget till Stockholm.
/ Johan
Some good some bad
Johan | 31 October, 2008 | 0 kommentarer
Grattis! Ubuntu Intrepid Ibex släpptes igår! Själv har jag ännu inte uppgraderat, blir antagligen inte förrän nästa vecka. Men flera här har redan gjort det och det både ser bra ut och funkar fint. Tydligen en del problem med envy men jag skulle gissa att envy inte behövs längre.
Förra veckan så släpptes källkoden för Android. Idag tog jag en snabb titt på koden för några av de interna applikationerna och jag måste säga att det ser riktigt bra ut. Var faktiskt förvånad över att det inte ser ut att vara så komplext som jag först trott. Ser framemot att få se Android baserade telefoner snart (i Europa)!
Till något mindre skoj, tydligen så har PHP-utvecklarna beslutat att använda sig av '\' som namespace separator istället för den tidigare förslagna och mer använda '::'. Hittade lite intressant läsning om det på Ninh.nl.
Johan
OOPSLA
Johan | 24 October, 2008 | 0 kommentarer
OOPSLA har varit över mina förväntningar. Idag är sista dagen och den här veckan har bara rusat iväg. Dock till min förvåning har det bara varit 750 personer här. Detta har å andra sidan gjort att de sessioner som jag har varit på har blivit betydligt bättre och ofta lett till intressanta diskussioner när där inte har varit så många deltagare. Mer om OOPSLA lär komma i framtida inlägg.
Johan
whodunnit
Johan | 17 October, 2008 | 1 kommentarer
svn blame prefixar som bekant varje rad i en fil med vem som har gjort vilken förändring. Själv så använder jag mig av detta rätt ofta för att få reda på vem man kan fråga om man har en fundering om något i koden.
För ett litet tag sedan så satt jag tillsammans med Hans Nilsson en arbetskollega och hackade ihop ett litet bash script som räknar ihop hur mycket varje person har bidragit i procent till en viss fil. Scriptet använder sig av svn blame internt. Tycker att det är rätt kul att kunna få ut lite statistik snabbt och ibland blir det även tydligare vem som har mest koll på vad med.
Scriptet finns här, heter whodunnit efter flipperspelet, inget fancy utan ett rent hack.
/ Johan
Ny grupp
Johan | 10 October, 2008 | 0 kommentarer
Vi har tidigare haft en uppdelning på vår avdelning mellan projekt och maintenance. I de olika projektgrupperna jobbar man främst med större förändringar eller nyutveckling och i maintenance är det incidenter och buggar man arbetar med men även mindre förändringar som utförs. Vi har sen haft en rotering mellan projekt och maintenance.
Från den här veckan har vi börjat dela upp vår avdelning i mindre kompetensgrupper som internt kommer hantera både det som vi tidigare kallade maintenance och projekt. Jag tror att vi har mycket att vinna på att göra en sådan här uppdelning. Inte minst för att man kommer att få jobba med samma applikationer både vad det gäller nyutveckling och buggfixar, inte för att vi har några buggar, men om vi skulle ha det. Jag ser verkligen framemot att få lära mig och blir riktigt bra på de applikationer som min grupp har blivit tilldelade nu.
Om du är i Stockholm och intresserad av java, missa då inte nästa javaforum-möte som kommer hållas i våra lokaler, både öl och poker har utlovats.
/ Johan
Ny Continuous Integration Server
Johan | 3 October, 2008 | 1 kommentarer
Veckans höjdpunkt har helt klart varit att vi har fått upp en ny continuous integration server. Vi har tidigare använt både CruiseControl och Hudson, visserligen utan några större problem. Men efter en utvärdering mellan de två och det kommersiella alternativet Bamboo så fattades beslutet att vi ska använda Bamboo, så nu är det inköpt och konfigurerat.
Första intrycket känns riktigt bra och att få ett jabber meddelande direkt när testen har körts samt möjligheten att direkt i min im-klient kunna kommentera bygget känns riktigt bra. Finns en video från Bamboos webbplats som visar just detta.
Clover är även installerat så nu är det väll bara att införskaffa resten av Atlassians produkter?
Johan
OOPSLA 2008
Johan | 26 September, 2008 | 0 kommentarer
Fick för ett litet tag sedan bekräftat att jag får åka till OOPSLA i år, så mellan den 18 och 23 oktober kommer jag att befinna mig i Nashville.
Är verkligen glad över att få möjligheten att åka till OOPSLA. Ser väldigt mycket fram emot konferansen och speciellt de tutorials som jag redan har anmält mig till. Dock var det inte så lätt att välja mellan alla de intressanta ämnen som finns.
Lyckades till sist välja följande tutorials att gå på.
* Software "Best" Practices: "Agile" Deconstructed
* Building Service-Oriented Architectures with Web Services
* Advanced Software Architecture
* Building Domain-Specific Languages for the Web
* SOA Architecture and Design Strategies
* Building Memory-Efficient Java Applications
* Fault Tolerant Software with Patterns
* Intro to Google Guice & Testing with GuiceBerry
Johan
Unit Tests
Johan | 19 September, 2008 | 0 kommentarer
För en tid sedan så började jag arbeta med ett nytt projekt. Vår refaktoriseringssprint är nu över och vi har börjat implementera nya use case. När vi la ner projektet så hade vi en code coverage för våra unit test på runt 80%. Jag tycker at det är en bra coverage och det har verkligen hjälpt oss när vi refaktoriserat. Men även hjälpt oss att förstå interaktionen mellan vissa komponenter mer.
Applikationen som vi skriver är skriven i java, och vi har valt att använda oss av JUnit som unit test ramverk. Som mockramverk så har vi valt Mockito. JUnit tror jag att de flesta javautvecklare har kommit i kontakt med. Men Mockito tror jag inte är lika vanligt, om inte så kan jag verkligen rekommendera det.
Just att Mockito är både enkelt och intiuativt att jobba med tror jag har bidragit till att vi har en relativt bra coverage på vårt projekt.
Till skillnad från de flesta andra ramverk bygger inte Mockito på att man måste sätta upp förväntningar på interaktionen innan. Istället så kollar man i efterhand hur interaktionen gick liknande som gör med vanliga JUnit test.
Några exempel för att visa hur man testar interaktionen med ett list objekt, med EasyMock, PHPUnit och Mockito. EasyMock vs Mockito är tagit ifrån Mockitos dokumentation.
EasyMock (Java)
List mock = createNiceMock(List.class);
mock.clear();
mock.clear();
mock.clear();
expect(mock.add(anyObject())).andReturn(true).atLeastOnce();
someCodeThatInteractsWithMock();
replay(mock);
PHPUnit (php)
$mock = $this->getMock('List', array('clear', 'add'));
$mock->expects($this->times(3))
->method('clear'));
$mock->expects($this->atLeastOnce())
->method('add')
->toReturn(true)));
$classUnderTest->someCodeThatInteractsWithMock();
Mockito
List mock = mock(List.class);
someCodeThatInteractsWithMock();
verify(mock, times(3)).clear();
verify(mock, atLeastOnce()).add(anyObject());
Johan
UML-kurs
Johan | 12 September, 2008 | 0 kommentarer
I slutet på förra veckan så fick hela vår grupp på runt 30 personer gå på en heldagskurs i UML som hölls av Init. Det var en riktigt bra kurs, iofs en hel del repetition men det behövdes. Eftermiddagen hade en mer praktiskt inriktning då vi delades in i mindre grupper som fick små problem att lösa. Senare så diskuterade vi de olika diagrammen och lösningsförslagen som de olika grupperna la fram. Just den här praktiska delen var riktigt bra då man fick träna på det vi hade gått igenom på förmiddagen. Efter kursen så fick vi alla även varsitt exemplar av UMLDistilled av Martin Fowler, så nu finns det inte längre några ursäkter för att inte komma igång med att rita UML-diagram.
Där jag sitter så har vi en hel del whiteboards uppställda omkring våra skrivbord. Jag hoppas att vi nu i ännu högre utsträckning kommer att använda dem. Jag upplever många gånger att det är just vid en whiteboard där man tillsammans skissar och diskuterar som grunden till riktigt bra lösningar har potential att växa fram. Just att rita tillsammans vid en whiteboard tror jag även är viktigt för att alla i ett projektet ska känna att de är delaktiga i de lösningar och designbeslut som tas.
När vi inte ritar på våra whiteboards så använder vi MagicDraw som UML-program, men tyvärr så fungerar inte den versionen vi har inköpt under linux av någon anledning, uppgradering till senaste versionen är dock på gång. Däremot så använder jag mig av Dia vilket jag tycker räcker mer än väl för mig och mina behov.
Johan
A Fresh Start
Johan | 5 September, 2008 | 0 kommentarer
I måndags så började jag arbeta i ett nytt projekt, eller inte riktigt nytt för vi påbörjade det för ett par månader sedan. Dock i förmån för andra mer prioriterade projekt så fick det läggas åt sidan. Men nu äntligen så har vi fått ta upp det igen. Eftersom det var ett tag sedan vi senast arbetade med projektet så blir det först en liten mjukstart där vi även kommer få möjlighet att refaktorisera och gå igenom den kod vi tidigare skrev. Vilket känns bra nu när man fått lite avstånd och kan se det från en annan vinkel.
Tänkte att ett nytt projekt även skulle må bra av att min dator fick sig en uppdatering så i veckan installerade jag om mitt os. Tog även tillfället i akt att flytta min home directory till en egen hdd. Vilket gjorde att ominstallationen gick betydligt snabbare. Kan verkligen rekommendera att flytta home om ni inte redan har gjort det.
Efter ominstallationen kom jag på alla problem jag tidigare har haft efter en ominstallation med att få igång mina båda skärmar och allt meckande med min xorg.conf. Fick dock tips från en kollega om Envy. Med hjälp av Envy kunde jag enkelt avinstallera mina gamla drivrutiner till grafikkortet och installera nya. Sen kunde jag genom ATI Catalyst enkelt aktivera BigDesktop. Efter att startat om datorn så fungerade skärmarna direkt. Bäst av allt var att jag slapp göra en enda manuell ändring i xorg.conf.
Johan
Hello World
Johan | 29 August, 2008 | 1 kommentarer
Mitt namn är Johan Nilsson. Jag jobbar på den avdelning som heter B2C Games Development och har gjort det i lite mer än 2 år. Arbetet här är väldigt varierat men främst så jobbar jag med utveckling och underhåll av de plattformar och tjänster som bla PokerRoom.com, EuroPoker.com och CasinoRoom.com idag använder.
Den här bloggen kommer att handla om mitt dagliga arbete en del om php och säkert ett och annat om linux.
För ett par månader sedan så hittade jag följande oneline. Jag vet inte vad det säger om mig men säkert något.
johann@nowwhat:~$ history|awk '{a[$2]++ }
END{for(i in a){print a[i] " " i}}'|sort -rn|head
119 cd
100 ll
93 svn
36 vi
24 zdump
19 php
14 cat
10 mplayer
7 cp
6 ssh
johann@nowwhat:~$ alias ll
alias ll='ls -l'
Disclaimer
All data and information provided on this weblog is for informational purpose only. www.bwingames.se or any other company within the bwin group makes no representations as to accuracy, completeness, currentness, suitability, or validity of any information on this weblog and will not be liable for any errors, omissions, or delays in this information or any losses, injuries, or damages arising from its displays or use. All information is provided on as-is basis.
Bloggar
Andreas jobbar som utvecklare på bwin Games. Läs om vad som händer på utvecklingsavdelningen.
» Till bloggen
Ann jobbar som QA testare på bwin Games. Hon bloggar bl.a. om jobb och testmetoder.
» Till bloggen
En blogg om livet på bwin Games. Av och med Fredrik.
» Till bloggen
Att bygga en karriär inom online gaming: vår senaste Management Trainee Jonas bloggar om vägen upp.
» Till bloggen
En blogg om rollen som Management Trainee på bwin Games. Varje vecka kommer Robert ge en inblick i aktuella arbetsuppgifter och projekt.
» Till bloggen
Bloggarkiv
Mattias jobbar som Lead Developer och är även pappaledig på deltid - läs om hans liv och arbete i vår utvecklarblogg.
» Till bloggen
Hur är det att vara trainee på bwin Games? Kamil berättar.
» Till bloggen
Johan jobbar med den senaste teknologin tillsammans med de bästa programmerarna i branschen.
» Till bloggen








