Oppgaver ifbm intervju

Hvis du har forvillet deg inn på disse sidene, så er det en viss sannsynlighet for at vi har ytret et ønske om å se hva du er god for.

Hvis du av en eller annen grunn ikke er her i forbindelse med et intervju, men syntes at oppgavene er interessante så kan du jo løse dem og sende inn til oss. Kanskje du er god nok til å komme på intervju hos oss?

Når du er ferdig med oppgavene, sender du oss en mail på post@udp.no med en lenke til repositoriet du har opprettet i forbindelse med oppgavene.

Lykke til med oppgaveløsningen!

Oppgave 1 - Java

Lag en Spring-basert java applikasjon som skal kunne kjøres fra en jar-fil. Denne applikasjonen skal inneholde en scheduled job som sender ut en mail 1 gang i timen med informasjon om hva slags vær det er på Svalbard (hentet fra yr.no). I tillegg til en README.md fil som beskriver hvordan man bygger og kjører applikasjonen, er enhetstester og integrasjonstester også en fin måte å "dokumentere" koden på. Forslag til teknologier dere kommer til å trenge her kan være httpclient, javamail og naturligvis Spring. Benytt gjerne Gradle eller Maven for å bygge prosjektet. Fint om du benytter github eller bitbucket.

Bakgrunn:
Svært mange real life Java-prosjekter er bygget på Spring. Vi ønsker å se at du behersker grunnleggende ferdigheter for Spring og har kjennskap til konsepter som Dependency Injection. I tillegg ønsker vi å se hvordan du løser oppgaven og dokumenterer+tester koden.

Oppgave 2 - her kan du velge mellom 3 alternativer

Alternativ 1

Eksponer svalbard-dataene dine fra oppgave 1 med en controller (her kan du bruke f.eks spring rest) som deler ut json (f.eks). Integrer nå med tjenesten i en javascript app som du skriver. Velg mellom angular, ember, meteor eller node.js (eller en variant av node). Visualiser været med css.

Bakgrunn:
Her kan du vise at du klarer å visualisere data, og du får en mulighet til å vise at du kan javascript. Begge disse ferdighetene kan være viktige ute hos en kunde.

Alternativ 2

Lag et proof of concept for en frontend app som "pretty printer" en java stack trace string. Noe ala: http://jsonformatter.curiousconcept.com/ - men for java strack traces i stedet for json. Du står fritt til å gjøre begrensninger og forenklinger - og det trenger ikke være noen perfekt implementasjon. Men det bør være noe som viser at dette er noe som kan bygges videre på. Det er ikke noe krav, men hvis du er fancy kan du godt benytte gulp, grunt eller tilsvarende byggeverktøy. Fint om du benytter github eller bitbucket. Ingen begrensning på hvilken type nettleser eller "viewports" du velger å støtte.

Bakgrunn:
Vi ønsker å se at du har basic frontend-kunnskaper og vet hvordan du kan sette sammen en frontend-app. Videre er det i mange frontend-prosjekter også viktig å kunne vise til prototyper etter relativt kort tid - uten at ting trenger å være pixel perfect eller 100% ferdig.

Alternativ 3

Lag et "stacked barchart" fra vedlagt json-fil (data.json). Resultatet skal være en html-fil med tilhørende javascript. Her kan du f.eks bruke d3.js eller raphael.js for å lage grafen. Ingen begrensning på hvilken type nettleser eller "viewports" dere velger å støtte. Bonus hvis det også ser ok ut i IE8 (urgh), + mobil og nettbrett.

Bakgrunn:
Ofte blir vi bedt om å lage grafrepresentasjoner av data for kunden og dette kan gjøres på mange måter.

data.json
{
      "category1": [
        {
          "date": "2015-01-01",
          "value": "0.8"
        },
        {
          "date": "2015-01-02",
          "value": "0.5"
        },
        {
          "date": "2015-01-03",
          "value": "1.2"
        },
        {
          "date": "2015-01-04",
          "value": "1.5"
        },
        {
          "date": "2015-01-05",
          "value": "1.1"
        },
        {
          "date": "2015-01-06",
          "value": "0.2"
        },
        {
          "date": "2015-01-07",
          "value": "0.3"
        }
      ],
      "category0": [
        {
          "date": "2015-01-01",
          "value": "0.1"
        },
        {
          "date": "2015-01-02",
          "value": "0.1"
        },
        {
          "date": "2015-01-03",
          "value": "0.6"
        },
        {
          "date": "2015-01-04",
          "value": "0.1"
        },
        {
          "date": "2015-01-05",
          "value": "0.1"
        },
        {
          "date": "2015-01-06",
          "value": "0.1"
        },
        {
          "date": "2015-01-07",
          "value": "0.1"
        }
      ]   
}