Stages (Afstudeer)stages Software Engineering

Stage

(Afstudeer)stages Software Engineering

Volg jij een bachelor of master op het gebied van Software Engineering of Informatica en ben je op zoek naar een uitdagende stage? Zijn softwaresystemen, databases en het schrijven van code helemaal aan jou besteed? Voor de afdeling Software Engineering zijn wij doorlopend op zoek naar ambitieuze, enthousiaste stagiair(e)s.

Wie zijn wij?

Het team van Software Engineers bestaat uit jonge, internationale en hoogopgeleide mensen, die Hostnet ondersteunen met binnen het bedrijf geschreven software. Dit gaat veel verder dan alleen de website die je als klant krijgt te zien. Ook de systemen voor provisioning, facturatie, mailings en klantinformatie hebben wij zelf ontwikkeld. Door de grote hoeveelheid websites en domeinnamen die Hostnet in beheer heeft, hebben wij te maken met databases met miljoenen records, waarin elke onwaarschijnlijke situatie voorkomt. Dit maakt het werk afwisselend en uitdagend.

Beschikbare stageopdrachten

Hieronder vind je slechts een greep uit onze stageopdrachten. De ontwikkelingen gaan hard, waardoor de mogelijkheden enorm zijn.

Afstudeerstages

1. Unused table identification in RDBMSes
Hostnet gebruikt MySQL als database; we beschikken over een cluster met master replication naar meerdere slaves. De tabellen in deze database zijn echter al jaren oud en waarschijnlijk lang niet allemaal meer in gebruik. Jouw opdracht is om te meten welke tabellen nog worden gebruikt en daaropvolgend het verwijderen van alle niet-gebruikte tabellen. Het doel van de stageopdracht is om het overzicht van de ontwikkelaars te vergroten en de database te verkleinen.

2. Using natural constraints in RDBMSes
Binnen relationele databases is het normaal om foreign-keys naar gelinkte tabellen te hebben. Deze keys zorgen er bijvoorbeeld voor dat het niet mogelijk is om een kindobject zonder een moederobject op te slaan in de database. Onze database bevat echter ook heel veel verbanden die voor een mens volkomen logisch zijn, bijvoorbeeld dat een product niet kan zijn geleverd voordat een klant het product heeft besteld. De software herkent deze verbanden echter niet. Tijdens deze stageopdracht ga je aan de slag om deze beperkingen van de data op te nemen in het datamodel en af te dwingen tijdens het ontwikkeltraject, zodat fouten in de software vroegtijdig aan het licht komen.

3. Automated functional (Cross-)browser testing
Het controleren of alle applicaties nog steeds samen kunnen werken is een belangrijke, maar ook tijdrovende taak van een Software Engineer. Om deze taak iets te vereenvoudigen, willen we een functionele testsuite opzetten. Tijdens jouw stage ga je je bezighouden met het implementeren van Crawljax/Webdriver en het opzetten van een functioneel testingframework.

4. Dead-route detection
Tijdens deze stage ga je access-logs analyseren om Symfony3-routes die niet (meer) in gebruik zijn in kaart te brengen. Het ontwikkelen van tooling om dit proces te automatiseren en inzichtelijk te maken voor je collega's, en onderzoeken of deze te koppelen is met het 'Dynamic Dead Code'-systeem behoren tot deze opdracht.

5. Beschikbare systeemupdates/-upgrades
Welke applicaties bevatten libraries die niet de laatste versie hebben? Je gaat onderzoeken of updates en upgrades voortaan automatisch kunnen. Alle applicaties van Hostnet maken gebruik van Composer en de pakkettenbibliotheek 'Packagist'. Met hulp van deze informatiebronnen ontwikkel je tooling en rapportages om ontwikkelaars inzicht te geven in de mogelijke upgrades.

6. Command profiling
Tijdens deze opdracht ga je de performance van de automatische processen binnen Hostnet inzichtelijk maken.

7. OAuth ‘single sign-on’-server
Op dit moment loggen Hostnet-medewerkers op (bijna) alle interne applicaties in via een interne ‘single sign-on’-server. Via een eigen protocol verbindt deze server met alle applicaties. Jouw taak is het vervangen van deze communicatie door OAuth. Zo zorg je dat medewerkers ook buiten het Hostnet-netwerk kunnen inloggen.

Je maakt de interne applicaties geschikt om met de nieuwe server te communiceren. Ook nog niet aangesloten systemen, die wel over OAuth-koppelingen beschikken, verbind je met de nieuwe server. Als extra mogelijkheden onderzoek je tweestapsverificatie en authenticatie via de systeemlogin. Hierbij hoeven medewerkers alleen op het werkstation in te loggen.

Meeloopstages

1. Domain model migration
Wij ontwikkelen al onze applicaties in PHP met behulp van Symfony en Doctrine. In ons CRM-systeem zit echter nog een oud domain model op basis van Propel1. Tijdens deze stage ga je dit model opsplitsen en omzetten naar Doctrine. Zo maak je kennis met version control, codereviews, continuous integration, continuous delivery, unit-tests, functionele tests voor SQL-queries, en SQL- en refactor-methodes.

2. Database structure difference detection
Binnen Hostnet maken we gebruik van een DTAP-straat: Development, Testing, Acceptance, Production. Iedere omgeving heeft een database met een eigen schema. Deze schema's moeten natuurlijk hetzelfde zijn. Dit wordt nu al gecontroleerd. Maar aangezien we ook software ontwikkelen, hebben we een periode van 2 weken om wijzigingen uit te rollen. In deze periode kunnen de schema’s afwijken. Momenteel werkt deze periode echter alleen voor toevoegingen aan het schema en niet voor het verwijderen van tabellen of kolommen. Jouw taak is om de history van het databaseschema bij te houden, zodat we voor elk type wijziging een overgangsperiode mogelijk kunnen maken.

Zelf een goed idee?

Heb je zelf een goed idee voor een stageopdracht of afstudeeronderzoek op de afdeling Software Engineering? Ook in dat geval maken wij graag kennis met je!

 

Wie zoeken wij?

Op de afdeling Software Engineering hebben wij doorlopend stageplaatsen beschikbaar voor studenten die bezig zijn met hun bachelor of master op het gebied van Software Engineering/Informatica. Je kunt zowel alleen als met een groep stage lopen bij Hostnet. Denk je erover om met een groep stage te lopen? Neem dan tijdig contact op, zodat we kunnen zorgen dat we goede begeleiding en genoeg werkplekken beschikbaar hebben.

Functie-eisen Stagiair(e) Software Engineering

  • Je volgt een hbo- of wo-opleiding op het gebied van Informatica of Software Engineering.
  • Je kunt objectgeoriënteerd programmeren aan de hand van UML (bv in Java, C++ of C#).
  • Je beschikt over een analytisch denkvermogen.
  • Je kunt een probleem gemakkelijk opdelen in deelproblemen en deze zelfstandig oplossen. Van een usercase maak je zonder problemen een ERD. 
  • Je hebt kennis van relationele databases, datastructuren en algoritmes.
  • Een SQL-query maken is voor jou geen enkel probleem. Je selecteert zonder moeite alle klanten die meer dan 2 producten afnemen uit een grote dataset.
  • Je weet het verschil tussen een linked list en een array. 
  • Je weet wat er 'raar' is aan een final private method.

Pre's Stagiair(e) Software Engineering

  • Je hebt kennis van webdevelopment: je bent op de hoogte van het HTTP-protocol en de implicaties hiervan op het ontwikkelen van een applicatie.
  • Je hebt verstand van Bash: je weet wat cd, cat, cp, mv, grep, awk, sed, etc. doen.
  • Je beschikt over kennis van ORM (Hibernate, Doctrine).

Stage lopen bij Hostnet 

Stage lopen bij Hostnet: dat betekent je opgedane kennis in de praktijk brengen en je skills verder ontwikkelen bij één van de grootste hostingproviders van Nederland. Naast Amsterdam Centraal, met een prachtig uitzicht over het IJ. Je werkt met grote hoeveelheden data: 810.000 domeinnamen, 82.000 websites en meer dan 280.000 klanten. Uiteraard onder professionele begeleiding van een expert in jouw vakgebied. Je maakt deel uit van een enthousiaste club met jonge, gedreven mensen. Vakidioten en geeks, die hard werken, maar vooral ook veel plezier maken. Work hard, play hard!

Ben je enthousiast?

Stuur je uitgebreide motivatie en cv naar werken@hostnet.nl t.a.v. Betty Dijkstra-Jager.

Acquisitie naar aanleiding van deze advertentie wordt niet op prijs gesteld.

Betty Dijkstra-Jager Recruiter bij Hostnet