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 solution 16 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