Afstudeer- en stage opdrachten

Afstudeer- en stage
opdrachten
Over Quintor
Software development is een fantastisch werkgebied. Telkens zijn er
nieuwe technologieën, methodes, tools en toepassingen. Het vraagt
toewijding en passie om de best mogelijke oplossing te realiseren binnen
de gestelde kaders. Quintor mag trots zijn op haar prestaties binnen
dit gebied. Dit is geen toeval: de totale focus op kwaliteit & kennis
gecombineerd met een eigen visie & sterke betrokkenheid dragen hier
sterk aan bij. Quintor heeft sinds de oprichting in 2005 een gezonde
groei doorgemaakt en werkt met zo´n 75 medewerkers vanuit de
vestigingen in Groningen en Amersfoort. De expertises van Quintor zijn
Java, .Net en mobile development & Agile analyse.
Wat bieden wij afstudeerders:
- ervaren en betrokken begeleiding;
- mogelijkheid tot deelname aan diverse kennissessies omtrent Java, .Net, mobile en Agile analyse;
- een voor software developers aansprekende bedrijfscultuur;
- informele events met als hoogtepunt een summercamp in Frankrijk;
- mogelijkheid tot bezoeken Devoxx samen met Quintor;
- afstudeervergoeding per maand van €500 of een stagevergoeding van €250.
Neem contact op met
Roy Wasse
06 5265 9373
[email protected]
Maanlander 14m
3824 MP Amersfoort
www.quintor.nl
3
Inhoudsopgave
opdrachten
Configuratiemanagement met een graph DB
6
Realisatie kennis & CV systeem met Angular
8
Realisatie distributed storage framework
10
Java Streaming IO vs. Buffered NIO
14
Mobile Logging solution16
POC Business Opportunities voor ‘Qiy Digital me’
18
Als een relationele database uit de voegen barst…
20
Stel je eigen uitdagende opdracht samen
22
Vragen? Solliciteren?
Neem contact op met Roy Wasse via [email protected] of via telefoonnummer 06
52659373
Configuratiemanagement
met een graph DB
6
Het bijhouden van de configuratie van een ICT systeem kent
vele aspecten. Zo is het wenselijk om netwerkinstellingen,
softwareparameters, eigenschappen van het besturingssysteem,
gebruikte versies etc. te registreren. Hiermee wordt geborgd dat bekend
is wat bijvoorbeeld de vereisten zijn voor nieuwe releases en wat de
aandachtspunten zijn bij onderhoud.
Het bijhouden van deze
vervallen of worden toegevoegd.
configuratieparameters kan
Denk hierbij aan een nieuwe optie in
snel complex worden. Enerzijds
de software, het samenvoegen van
kennen de verschillende attributen
softwareonderdelen of het hernoemen
uiteenlopende eigenschappen. Van een
van eigenschappen. Ook moet het
besturingssysteem kan het bijvoorbeeld
mogelijk zijn om snapshots van een
van belang zijn om geïnstalleerde
bepaalde configuratie terug te halen.
software bij te houden, terwijl het bij
Het opstellen van een eenduidig
maatwerksoftware van belang is om
datamodel dat duurzaam is en
de volgorde van deployment vast te
eenvoudig doorzoekbaar, is daarom
leggen. Verder kan het zo zijn dat bij
niet eenvoudig. Een enkel relationeel
een nieuwe versie bestaande attributen
dataontwerp volstaat hiervoor niet.
Opdrachtbeschrijving
Profiel afstudeerkandidaat
Met een graph database zoals
De kandidaat studeert momenteel
Neo4J is het mogelijk om flexibele
HBO of WO Informatica en heeft
datastructuren op te slaan. Quintor
affiniteit met en kennis van software
is benieuwd hoe dit type database
development. Ook is de kandidaat
kan helpen bij het opstellen van een
op de hoogte van moderne database
configuratiemanagementdatabase die
concepten en oplossingen.
in staat is, om te gaan met afwisselende
en wijzigende datastructuren, met een
betrouwbaar versiebeheersysteem.
Deliverables
Van de afstudeerder wordt verwacht
dat hij in staat is om verschillende
tools en technieken te beoordelen
voor inzetbaarheid op de opdracht. Na
deze analyse kan een proof of concept
worden opgesteld die is gebaseerd op
bestaande configuratiedatabases.
7
Realisatie kennis & CV
systeem met Angular
8
In een kennisintensieve organisatie is het snel kunnen inzien van wie
welke expertise heeft, cruciaal om de juiste medewerkers te kunnen
matchen met een opdracht. Dit geldt zeker ook voor Quintor. Het succes
van ons toonaangevende software development bedrijf hangt deels af
van ons vermogen om de juiste expertise op een bepaalde opdracht te
krijgen.
De afgelopen jaren is Quintor snel
Opdrachtbeschrijving
gegroeid waardoor het wenselijk is
Van de afstudeerder wordt verwacht
geworden om een kennissysteem te
dat hij zelfstandig in staat is om een
ontwikkelen, waarmee eenduidig kan
ontwerp op te stellen voor het te
worden bijgehouden, wie, welke kennis
realiseren kennissysteem en dat hij deze
heeft en op welk niveau dit aanwezig
op een Agile wijze realiseert. Mogelijke
is. Daarnaast is het wenselijk dat
technieken voor het invoeren van
dit door de medewerker zelf op een
gegevens is Angular.js die bijvoorbeeld
laagdrempelige manier kan worden
via REST een Java backend aanspreekt.
vastgelegd. De volgende stap kan
zijn om een CV te genereren in Word
op basis van in het kennissysteem
vastgelegde informatie.
Deliverables
Profiel afstudeerkandidaat
Van de afstudeerder wordt verwacht
De kandidaat studeert momenteel
dat hij in staat is om verschillende
HBO of WO Informatica en heeft
tools en technieken te beoordelen voor
affiniteit met en kennis van software
inzetbaarheid op de opdracht. Naast
development. Ook is de kandidaat op
het opstellen van een ontwerp voor
de hoogte van database concepten en
het kennissysteem, wordt verwacht
oplossingen.
dat er volgens de kwaliteitstandaarden
van Quintor een ontwikkelstraat wordt
ingericht waarmee het systeem wordt
gerealiseerd. Prioriteit ligt hierbij initieel
op het invoeren van gegevens en in
tweede instantie op het genereren
van CV’s in Word formaat, vanuit het
systeem.
9
Realisatie distributed
storage framework
10
Veel mobiele toepassingen (apps) maken gebruik van een centrale server
om data op te slaan. Het doel van deze centrale opslag is bijvoorbeeld
om gegevens te delen tussen verschillende gebruikers of een back-up
voorziening te hebben voor data op een device. Het nadeel van een
centrale server voor dataopslag, is dat gegevens centraal opgeslagen
worden; dit is beperkt schaalbaar, werkt kostenverhogend en creëert een
afhankelijkheid met de aanbieder van de centrale opslag.
Opdrachtbeschrijving
Quintor wil onderzoeken of het mogelijk
Het framework biedt minimaal
de volgende functies:
is om, op basis van ‘distributed storage’,
- voorzieningen om een storage cluster data op te slaan op andere devices
op te zetten (creëren, aanmelden, in plaats van op een centrale server.
afmelden en beheren van een cluster);
Apps vormen samen een cluster en
- synchronisatie van data-pakketjes;
verzenden pakketjes data naar andere
- management van updates en deletes devices. Technieken hiervoor worden
van data;
ook in peer-to-peer applicaties gebruikt,
- security en autorisatie.
bijvoorbeeld voor filesharing. Quintor
wil een framework ontwikkelen waarbij
Framework
een app-ontwikkelaar het framework
Een developer van een app kan het
kan embedden in een project en direct
framework includen. Vervolgens worden
kan toepassen.
bepaalde dataelementen aangewezen
als zijnde ‘gedistribueerd’. Op basis
van autorisatieprofielen kan worden
aangegeven welke dataelementen
beschikbaar zijn voor andere gebruikers
Reference implementatie
van de storagecluster. Indien het
Binnen de opdracht dient een reference
framework wordt ingezet voor ‘back-
implementatie te worden gemaakt in
up’, zal de data volledig encrypted
de vorm van een ‘todo app’. Gebruikers
op andere devices worden geplaatst.
kunnen een cluster opzetten en todo-
Indien het gaat om het delen van
items delen met andere gebruikers
bestanden binnen een groep, worden de
binnen dit cluster. Gebruikers kunnen de
dataelementen met alle andere devices
todo-items muteren.
van het cluster gedeeld.
Technisch
Technische complexiteit
Het framework dient te worden opgezet
De technische complexiteit zit vooral in
in Android/Java en iOS/Objective-C.
het uitvoeren van updates in de data.
Hierbij wordt gebruik gemaakt van de
Door het ontbreken van een centrale
ontwikkelstraat van Quintor.
server, dienen oplossingen te worden
onderzocht zoals distributed hash
Profiel afstudeerkandidaat
tables, transfer van eigenaarschap
De kandidaat studeert momenteel
etc. In de literatuur is hier al veel over
HBO of WO Informatica en heeft
geschreven. Deze patterns dienen te
affiniteit met en kennis van software
worden meegenomen in het onderzoek.
development. Ook is de kandidaat
op de hoogte van moderne database
concepten en oplossingen.
11
‘Als je wilt groeien
dan moet je bij Quintor zijn’
Gert-Jan Compagner
‘Ik had op verschillende plekken rondgekeken. Niets interessants gevonden,
totdat ik over Quintor hoorde. Over dat ze daar op hoog niveau met onder meer
Java en mobile development bezig waren. Daar moest ik zeker gaan kijken, vond
ik. Ik was benieuwd wat ze mij te bieden hadden. Een prima keuze, bleek al snel.
Er werd mij een zeer aantrekkelijke afstudeeropdracht aangeboden.’
‘Ik voelde me thuis bij Quintor en wilde er maar al te graag blijven. Het is een
hechte club waar een informele en collegiale sfeer hangt. En bovenal werken
er echt heel goede en ambitieuze mensen. Ik wil persoonlijk en professioneel
groeien. En als je wil groeien, dan moet je gewoon bij Quintor zijn.’
‘Quintor is open en innovatief
met een geweldige bedrijfscultuur
waar alles mogelijk is’
Laure Roose
Laure heeft haar stage afgerond bij Quintor en heeft zo al kennis kunnen maken
met het bedrijf. Ze vindt Quintor een open en innovatief IT bedrijf, met een
geweldige bedrijfscultuur waar alles mogelijk is. Ze wil er graag veel ervaring
opdoen met programmeren en krijgt veel voldoening door innovatieve, ‘coole’
dingen te doen.
‘Vernieuwingen in de IT, zoals bijvoorbeeld smartwatch en mobiele toepassingen,
boeien haar enorm en ze zie het als een kans om daar waar mogelijk op in te
spelen.’
Java Streaming IO vs.
Buffered NIO
14
De load, op een met internet verbonden systeem, neemt vaak niet lineair
toe, maar eerder exponentieel. Steeds meer devices zijn connected en
ze worden steeds vaker gebruikt. Diverse analyses wijzen daarnaast uit,
dat rond 2007 de hoeveelheid data dusdanig snel is toegenomen, dat er
wordt gesproken over een explosie van gegevens.
De komende 5 jaar wordt er meer
Opdrachtbeschrijving
data gegenereerd dan in de hele
Traditionele JEE oplossingen maken
voorafgaande geschiedenis. Dat alles
gebruik van sessies om gegevens van
terwijl de performanceverwachting van
een gebruiker tijdens het gebruik van
de gebruiker alleen maar hoger wordt.
een (web)applicatie bij te houden. Dit
Niet alleen Facebook, Twitter en Amazon
kost echter redelijk veel overhead.
moeten omgaan met deze uitdagende
Het bijhouden van de threads in een
omstandigheden, ook enterprise
webcluster is meer resource intensief
omgevingen van bijvoorbeeld banken,
dan een gebufferde event driven
verzekeraars en overheidsinstellingen
oplossing. Het implementeren hiervan
kampen met de uitdaging om de service
is echter wel complexer, en kost bij
van de systemen op peil te houden...
een laag aantal requests juist meer
Denk aan de piekmomenten op de
resources. Quintor wil graag meer
banksystemen bij het controleren van
inzicht hebben in het omslagpunt qua
het rekeningsaldo na het uitkeren van
performance tussen een zogenaamde
vakantiegeld, de april-deadline van de
streaming IO (input output) oplossing
Belastingdienst en de run op een digitaal
en gebufferde NIO (non blocking input
overheidsloket na het openstellen van
output) benadering en vaststellen
een tijdelijke subsidieregeling.
hoe kan worden bepaald wanneer een
bepaalde oplossing de voorkeur geniet.
Deliverables
De afstudeerder realiseert een
proeftuin (op Java gebaseerd) waarin
zowel NIO & IO kunnen worden
gesimuleerd. Vervolgens moeten
hiervoor geautomatiseerde load- en
performancetests worden opgesteld.
Op basis van daarvan wordt vervolgens
een rapportage opgesteld waarin beide
oplossingen worden vergeleken.
Profiel afstudeerkandidaat
De kandidaat studeert momenteel
HBO of WO Informatica en heeft
affiniteit met en kennis van software
development.
15
Mobile Logging solution
16
Quintor ontwikkelt voor haar klanten vele mobiele toepassingen. Kenmerkend
aan mobiele toepassingen is dat deze lokaal draaien op een mobiel device.
Hierdoor heeft Quintor weinig informatie over het exacte gebruik van de mobiele
toepassing. Hoe vaak wordt een app opgestart? Hoe vaak wordt een bepaalde
mobiele functie gebruikt? Verder is logging informatie in het geval van een crash
erg nuttig.
Probleemstelling
Opdrachtomschrijving
Quintor wil meer informatie over het
Quintor wil een framework ontwikkelen
gebruik en het functioneren van mobiele
dat included kan worden in een mobiele
toepassingen zodat zij aan de ene kant
toepassing en wat de bovenstaande
haar klanten beter kan informeren
informatie verstuurt naar een centrale
over dit gebruik en aan de andere kant
server. Deze centrale server geeft
dat in het geval van een crash of een
inzicht in de genoemde informatie op
fout in een mobiele toepassing meer
detail- (logging) en op globaal niveau
informatie beschikbaar wordt gesteld
(grafieken zoals bij Google Analytics).
over het opgetreden probleem (logging
informatie).
1. Opstellen van een informatie analyse.
Technische context
Welke informatie is beschikbaar. Welke
Voor de mobiele frameworks worden iOS
informatie wil Quintor vastleggen.
en Android toegepast. De communicatie
Wat zijn eisen m.b.t. privacy (welke
vindt bij voorkeur plaats via JSON. De
informatie mag worden vastgelegd).
centrale server wordt ontsloten via
De informatieanalyse wordt uitgevoerd
clients-side Javascripting middels een
op basis van interviews met Quintor
framework zoals Angular of Knockout.
medewerkers en twee klanten.
2. Opstellen van een (technisch)
De Java ontwikkelstraat van Quintor
ontwerp.Hoe wordt het framework
wordt gebruikt.
beschikbaar gesteld aan een mobiele
toepassing? Het gegevensmodel, hoe
Profiel afstudeerkandidaat
vindt communicatie plaats tussen de
De kandidaat studeert momenteel
mobiele toepassing en de centrale
HBO of WO Informatica en heeft
server. Hoe wordt de informatie
affiniteit met en kennis van software
beschikbaar gesteld vanuit de centrale
development.
server (webservice of webpagina).
3. Opstellen van een planning en
bepalen welke functionaliteiten
kunnen worden ontwikkeld in de
afstudeerperiode.
4. Middels de Agile/Scrum methodiek
het ontwikkelen van het framework voor
iOS en Android en het ontwikkelen van
de servertoepassing.
5. Implementeren van het framework
binnen een test mobiele toepassing.
17
PoC Business opportunities
voor ‘Qiy Digital Me’
18
We leven in een wereld waarin we onze gegevens steeds vaker
terugvinden in persoonlijke MijnXyz omgevingen, zoals MijnPostbank,
MijnZiggo en MijnOverheid. Zonder overzicht in één dashboard en geen
faciliteiten om een copy-paste te doen van documenten uit het ene
domein naar het andere. Iets dat steeds moeilijker in de hand te houden
is. Het Qiy initiatief beoogt hiervoor een platform te bieden waarbij je
zelf ‘in control’ bent over wanneer tussen partijen informatie wordt
uitgewisseld over jouw persoon tussen partijen.
Even een paar voorbeelden om dit
lopende polissen. Klinkt handig nietwaar?
concreet te maken: stel je voor
Het Qiy initiatief heeft als doelstelling om
dat Wehkamp alleen bereid is op
bij dergelijke koppelingen de privacy te
afbetaling aan jou te leveren, indien
borgen en te voorkomen dat persoonlijke
je kredietwaardigheid kunt aantonen.
gegevens ongewenst worden uitgewisseld.
Hoe makkelijk zou het zijn als er een
Inmiddels zijn er vele partijen aangesloten
systeem is waarin je, met een op iDeal
bij dit innovatieve en veelbelovende
gelijkende manier, Wehkamp ad hoc
initiatief zoals ABN, Vodafone, Ziggo, SIDN,
toegang biedt tot informatie over je
RTL en SVB. Zie ook www.qiyfoundation.org
banksaldo bij ABN AMRO. Of stel dat een
voor meer informatie.
financieel adviseur ten behoeve van een
advies, direct inzage kan krijgen in jouw
Opdrachtbeschrijving
informatie bij de Belastingdienst via een
Voor deze afstudeeropdracht zijn we op
eenmalige digitale machtiging, of dat
zoek naar creatieve Informaticastudenten
een verzekeringsmaatschappij aan jou
die de brug kunnen slaan tussen het
een concurrerend aanbod mag doen
Qiy concept, de functionele kansen en
op basis van direct inzicht in je huidige
de technische mogelijkheden. Nadat je
platform vragen we jou om conceptuele
Gewenste vaardigheden/
kwaliteiten van de student:
toepassingen zoals hierboven
-kennis van beschreven uit te werken. Hiervoor
informatieanalysetechnieken
wordt jou gevraagd om de bestaande
-affiniteit met iteratieve aanpakken informatiestromen te analyseren tussen
zoals scrum
de bij Qiy aangesloten partij en dit te
-abstract denk- en redeneervermogen
vertalen naar een toepassing in het
-affiniteit met innovatie; in staat om Qiy platform. Ook dagen we jou uit om
nieuwe concepten te bedenken
voor de aspirant deelnemende partijen
-kennis van en affiniteit met software te analyseren hoe Qiy tot nieuwe
development.
kennis hebt genomen van het Qiy
mogelijkheden kan leiden, processen
kan vereenvoudigen of juist beter
Profiel afstudeerkandidaat
beheersbaar kan maken.
De kandidaat studeert momenteel aan
Deliverables
De afstudeerder levert een analyse
op van toepassingsgebieden voor het
Qiy platform waarin diverse aspecten
zoals controle, veiligheid, privacy en
toegevoegde waarde zijn uitgewerkt.
Tevens verwachten we een ontwerp
voor één of meerdere toepassingen dat
als basis dient voor de op te leveren
Proof of Concept die je bouwt met
technieken zoals Java, REST & Angular.
een HBO of WO Informatica opleiding
die zich beweegt op het snijvlak van
informatieanalyse en Informatica.
19
Als een relationele database
uit de voegen barst…
20
Steeds meer enterprise omgevingen ervaren een belasting die met
gangbare enterprise webtechnologie niet meer op te vangen is. Waar
voorheen enkel partijen als Google, Amazon of Netflix op zoek moesten
naar een alternatief voor het gebruik van sessies in een webapplicatie,
zijn er nu steeds meer omgevingen bij banken, verzekeraars en
overheidsinstellingen die ook behoefte hebben aan een architectuur die
zeer zware belasting aan kan. In dit kader, zoomt deze opdracht in op de
belasting van de database. Door het beschikbaar stellen van (public) API’s
en het toegankelijk maken van informatie via apps, is het namelijk steeds
vaker nodig om andere technieken toe te passen, om de beschikbaarheid
hiervan te borgen en te voorkomen dat het opvragen van informatie
traag wordt.
Opdrachtbeschrijving
system (HDFS) wordt ingezet om als
Quintor wil onderzoeken, wanneer
alternatief voor een relationele database
en hoe de Web-scale technologieën
te dienen. Het moet in deze omgevingen
Hadoop & CQRS kunnen worden
mogelijk zijn om databases, van
toegepast, als een standaard relationele
verschillende structuren en omvang,
database de load niet meer aan kan.
eenvoudig te testen.
Specifiek willen we de afstudeerder
vragen om een omgeving op te zetten
Werkzaamheden
waar, op basis van het CQRS design
De kern van de opdracht is het
pattern, diverse database-acties selectief
realiseren van een proeftuinomgeving
via event processing worden omgeleid.
waarin CQRS & Hadoop kunnen worden
Tevens willen we graag een omgeving
getest. Met de verworven inzichten
gerealiseerd zien waar het Hadoop file
moet vervolgens een rapportage
worden opgesteld. Deze dient als basis
Profiel afstudeerkandidaat
voor het doen van uitspraken over
De kandidaat studeert momenteel
toepassingsgebieden voor CQRS en
HBO of WO Informatica en heeft
Hadoop bij een overladen relationele
affiniteit met en kennis van software
database. Met deze informatie kan
development. Ook is de kandidaat
Quintor haar klanten adviseren over
op de hoogte van moderne database
het gebruik van deze technologieën
concepten en oplossingen.
en proactief voorstellen doen over het
vernieuwen van door Quintor beheerde
klantsystemen.
Technisch
Voor het opzetten van de omgeving
wordt gebruik gemaakt van de
ontwikkelstraat van Quintor. Er zal
een eenvoudig aanpasbare referentieimplementatie moeten worden
opgesteld voor een CQRS & een Hadoop
implementatie. Waar nodig, wordt bij
voorkeur programmeertaal Java of .Net
gebruikt.
Gewenste vaardigheden/
kwaliteiten van de student:
Ervaring & affiniteit met moderne
programmeertechnieken (Java/.Net).
21
22
23