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