Kan je eens iets over jezelf vertellen?
Ik ben Matthijs, 29 jaar oud en woonachtig in Hengelo. Inmiddels werk ik al bijna 10 jaar bij Shock Media. Ik heb een brede interesse in alles wat met techniek en met name IT te maken heeft. Niet alleen professioneel, maar ook hobbymatig. Zo heb ik bijvoorbeeld, net als wel meer van mijn collega’s, thuis een aantal Linux systemen draaien voor dataopslag, multimediaconsumptie en home automation. Verder besteed ik een groot deel van mijn vrije tijd aan het opknappen en verduurzamen van mijn jaren ‘30 woning in Hengelo. Overigens is dat wel bijna klaar, dus ik zal op zoek moeten naar een nieuwe hobby.
Mijn avontuur bij Shock Media begon ongeveer 10 jaar geleden. Als student was ik op zoek naar een stageplek en tijdens een borrel met medestudenten hoorde ik enthousiaste verhalen over de leuke stageperiode bij Shock. Ik besloot contact op te nemen met dit bedrijf en ik kon al snel starten met mijn stage. Dit bleek een succes te zijn en ik ben dan ook niet meer vertrokken! Ik heb de kansen en ruimte gekregen om mooie stappen te maken en mezelf te ontwikkelen tot Head of Development.
Hoe beschrijf je jouw rol als Head of Development bij Shock Media?
Als Head of Development ben ik verantwoordelijk voor de ontwikkeling van alle (interne) softwareproducten die Shock Media heeft. In deze rol streef ik ernaar om op een participerende manier leiding te geven aan mijn team. Ik hecht waarde aan het betrekken van mijn teamleden bij besluitvorming en probeer beslissingen te nemen waar het hele team achter staat. Ik zoek de samenwerking en zorg dat ieders inbreng wordt gehoord en gewaardeerd. Dit creëert een positieve werkomgeving waarin het team gemotiveerd en betrokken is bij het behalen van gezamenlijke doelen.
Het grootste deel van mijn tijd besteed ik aan dezelfde taken als de andere Developers. Dit omvat het bouwen van nieuwe features om de software van het bedrijf te verbeteren, het oplossen van bugs om de stabiliteit en prestaties van de software te waarborgen, en het uitvoeren van code reviews om de kwaliteit van de code te waarborgen. Daarnaast besteed ik ook tijd aan het moderniseren van bestaande software.
Voor wie ontwikkeld het Developmentteam software en applicaties?
De collega’s van Systeembeheer en Sales zijn eigenlijk de voornaamste ‘klanten’ van Development. We produceren voornamelijk software die intern wordt gebruikt binnen onze organisatie. Zo hebben we bijvoorbeeld LARAGRID, ons eigen virtualisatieplatform. Maar ook hebben we een administratiesysteem dat onze collega’s ondersteunt bij onder andere het beheren van klantgegevens, het stroomlijnen van verkoopprocessen en het bijhouden van onze IT-infrastructuur. Daarnaast werken wij aan My Shock Media, het klantportaal dat vanzelfsprekend wél door klanten gebruikt wordt.
Hoe blijven jullie op de hoogte van gebruikersbehoeften?
Om op de hoogte te blijven van gebruikersbehoeften, maken we gebruik van verschillende communicatiemiddelen en processen. Naast de reguliere communicatie op de werkvloer of via Slack, speelt GitLab een belangrijke rol in de communicatie tussen Development en andere afdelingen. We werken met één Backlog project waar iedereen issues kan aanmaken, bekijken en volgen. Dit maakt het eenvoudig en toegankelijk voor iedereen om te communiceren over bug reports en feature requests.
Daarnaast hebben we twee personen buiten het development team die samen de rol van Product Owner vervullen. Dit zijn bewust mensen buiten het development team en zijn tevens eindgebruikers van de software. Hierdoor kunnen ze waardevolle feedback geven over de gebruikersbehoeften. Er is wekelijks overleg met deze Product Owners over de actuele backlog en prioriteiten. Dit stelt ons in staat om direct in te spelen op de behoeften van onze gebruikers en de software daarop af te stemmen. Verder doorloopt iedere release die we opleveren eerst een acceptatietest voordat deze in productie gaat. Dit biedt de mogelijkheid om bij te sturen op basis van feedback van eindgebruikers.
Welke programmeertalen en tools gebruik je het meest en waarom?
Voor back-end ontwikkeling gebruiken we Java. De tech-stack bestaat o.a. uit Guice, RxJava, jOOQ en OpenRPC. We gebruiken Java onder meer omdat het een type-safe taal is, er een enorm ecosysteem omheen beschikbaar is en omdat het een gevestigde naam is.
Voor front-end ontwikkeling gebruiken we Angular. Ook hier spelen type safety en het feit dat het een grote naam is, een rol. Het is soms aantrekkelijk om de nieuwste, trendy technieken te gebruiken, maar voor grote projecten die nog lang onderhouden moeten worden, is dat niet altijd verstandig.
Voor het bouwen van (web) API’s gebruiken we OpenRPC in combinatie met een in-house ontwikkeld framework. Dit stelt ons in staat om één (YAML) specificatie van een API te schrijven en hier automatisch code in verschillende talen (Java, TypeScript, Rust en binnenkort ook Python) voor te genereren. Dit scheelt enorm veel handmatig werk.
Tot slot gebruiken we ook af en toe Rust en Python voor het bouwen van CLI tools.
Welke skills en eigenschappen zijn volgens jou belangrijk voor een goede Developer om te hebben?
Als het gaat om de skills en eigenschappen die belangrijk zijn voor een goede Developer, zijn er verschillende dingen waar je op moet letten. Ten eerste is een scherp analytisch vermogen van groot belang. Als Developer moet je in staat zijn om complexe bugs op te sporen en op te lossen. Dit vergt vaak diepgaand inzicht in de code en het vermogen om te redeneren en te troubleshooten.
Daarnaast is doorzettingsvermogen een belangrijke eigenschap voor een Developer. Softwareontwikkeling kan soms meer tijd in beslag nemen dan verwacht, en het is belangrijk om geduldig te blijven en door te zetten, zelfs als de uitdagingen zich opstapelen.
Een goede Developer moet ook goed kunnen luisteren. Het is cruciaal om de behoeften en verwachtingen van de eindgebruiker te begrijpen. Dit vereist luistervaardigheden om de wensen en behoeften van de gebruiker te vertalen naar effectieve technische oplossingen. Goede communicatie is ook key om goed samen te werken met je teamleden.
En laten we eerlijk zijn, een beetje ordelijkheid, of zelfs een vleugje OCD, kan geen kwaad in het vak van softwareontwikkeling. Het handhaven van een nette en gestructureerde codebase is essentieel om de onderhoudbaarheid en leesbaarheid van de code te waarborgen. Een georganiseerde aanpak bij het ontwikkelen en onderhouden van de code kan veel tijd en moeite besparen op de lange termijn.
Wat maakt het werken bij Shock Media zo bijzonder?
Wat mij enorm aanspreekt aan het werken als Software Developer bij Shock is het eigenaarschap van de producten die wij ontwikkelen. Het is motiverend om te zien dat het werk van de afgelopen jaren ook echt vruchten afwerpt binnen de organisatie.
Één van de projecten die er voor mij wel uitspringt, en waar ik veel aan heb bijgedragen, is LARAGRID. Dit is intern ontwikkelde software voor het opzetten en beheren van High Available public- en private Clouds. Het is geclusterde software en maakt onder andere gebruik van een intern ontwikkelde gedistribueerde database voor het opslaan van metadata van virtuele machines en fysieke nodes. Meer info over LARAGRID kan je vinden op https://www.laragrid.com. Verder ben erg trots op dat we de afgelopen tijd flinke stappen hebben kunnen zetten naar een meer uniform applicatielandschap dat toekomstbestendig en onderhoudbaar is.
Waarom moeten mensen solliciteren voor een functie bij Shock Media?
In deze kennismakingsblog en die van mijn collega's kun je lezen dat je daadwerkelijk impact kunt maken binnen ons bedrijf. Bovendien zijn er volop kansen om jezelf te ontwikkelen.
Wil jij ook werken bij Shock Media? Bekijk dan onze vacaturepagina of stuur een mail naar hr@shockmedia.nl. Nieuwsgierig naar onze andere collega's? Lees dan onze andere blogs.