In mijn 3e jaar van mijn studie moest ik stage lopen. Ik heb dit gedaan bij MusiCards in Saarbrücken, Duitsland.

MusiCards is een startup met slechts een paar werknemers. Eigenaar en oprichter is Peter Rullmann, een programmeur met Nederlandse afkomst. Naast Peter werkte er nog iemand die vooral de financiën bijhield en een andere programmeur op projectbasis. Ik heb voornamelijk contact gehad met Peter en de programmeur.

MusiCards maakt een gelijknamig product waarmee wordt geprobeerd het fysieke weer in de muziekindustrie terug te brengen. Vroeger kon je als fan van een artiest Cd’s, platen en cassettetapes kopen. Hiermee supportte je niet alleen vrij direct de artiest, maar had je ook iets tastbaars wat je in je kast kon zetten en waarmee je kon laten zien dat je fan was. Tegenwoordig is door de opkomst van streamingservices als Spotify en Apple Music dat fysieke vrijwel volledig verdwenen. Je hebt immers je telefoon met daarop toegang tot miljoenen nummers en playlists. MusiCards probeert het fysieke terug te krijgen door een kaart ter grootte van een bankpas te ontwikkelen waarin een NFC-chip zit. Door deze chip te scannen met een telefoon wordt toegang gegeven tot een online omgeving waar de artiest content op kan zetten. Hierbij kan het naast demo’s of opnames liveoptredens ook gaan om gepersonaliseerde teksten voor de eigenaar van de kaart.

Naast een simpele kaart wordt er ook nagedacht om op andere manieren NFC-chips te verwerken. Zo is er een kaart die uitklapt als een drieluik, een kaart die kan worden uitgevouwen tot A5-formaat, en wordt er nagedacht over het gebruik van hout, Pcb’s en acryl. Hierdoor veranderd het opeens in een luxeproduct waar mensen minder snel geneigd zijn ze weg te gooien als oud papier.

Er zijn naast MusiCards weinig bedrijven die iets soortgelijks op de markt hebben staan. Het grootste verschil met zijn concurrenten is het hebben van een online omgeving. Concurrenten ontwikkelen wel een kaart of object met een NFC-chip erin, maar laten deze dan alleen doorverwijzen naar bestaande webpagina’s. Door het hebben van de online omgeving heeft MusiCards een grotere kans als nieuw medium te worden geaccepteerd in de industrie.

Mijn werkplek was in een flexworkspace waar Peter een eigen bureau heeft. Ik ben steeds in de gezamenlijke ruimte gaan werken zodat ik kon sparren met werknemers en andere mensen die daar werkte. Daarnaast kon ik omdat ik in dienst was van het bedrijf gratis goede koffie krijgen aan de koffiebar in de gezamenlijke ruimte. Dit zorgde er ook voor dat ik af en toe bijna letterlijk mijn werk moest laten vallen om gezellig een koffie te drinken met andere mensen in de gezamenlijke ruimte.

Ik woonde tijdens mijn stage in Saarbrücken, een middelgrote stad in Duitsland tegen de grens van Frankrijk. Met de tram kon ik in 25 minuten van mijn huis naar werk reizen. In Saarbrücken was ook een universiteit. Hierdoor waren er veel voorzieningen voor studenten aanwezig. Helaas kwam ik niet in aanmerking voor huisvestingsmogelijkheden van de Erasmus omdat ik niet stage liep bij de universiteit maar bij een bedrijf. Ik woonde in een internationaal huis met mensen uit India, de VS en Frankrijk. Hierdoor heb ik naast Duits ook deze culturen enigszins meegekregen.

Tijdens mijn stage heb ik gewerkt aan het onlinesysteem van MusiCards. Aan het begin was er geen concreet doel wat ik moest gaan doen. Globaal was het widgets schrijven voor het onlinesysteem en werken aan integratie met externe services. Uiteindelijk heb ik gewerkt aan het omzetten van het statische systeem naar een CMS (Content Management System) en heb ik stappen gezet om het systeem te laten werken als een standalone app voor Android en iOS. De werkzaamheden die ik heb verricht heb ik grotendeels autonoom uitgevoerd.

Het onlinesysteem is geschreven in het Quasar Framework. Door dit framework te gebruiken hoeft er minder tijd te worden besteed aan lay-out en onderliggende engine, en kan er meer worden gewerkt aan integratie met andere services en het weergeven van content. Hoewel ik veel heb gewerkt met web ontwikkeling moest ik mijzelf veel dingen aanleren om in het project mee te kunnen draaien. Zo gebruikten ze in plaats van de standaard webtalen HTML, CSS en JavaScript vervangende talen als Pug, Stylus en CoffeeScript. Deze talen worden uiteindelijk gecompileerd naar de standaardtalen waardoor ik ook zonder ze te kennen gewoon kon werken. Toch was het praktischer om ze aan te leren zodat na mijn stage de anderen met de code door konden gaan.

Na in de eerste week onderzoek te hebben gedaan in de gebruikte talen kon ik al zeer snel aan de slag. Al in de tweede week had ik tegen de verwachting van Peter in een eerste versie van een contactkaart widget
af. Deze haalde zijn data vanuit een VCard bestand gehost op de server. De moeilijkheid bij deze opdracht was om een goede library te vinden om te verwerken in het project. De library moest zowel vcf files kunnen uitlezen, als kunnen aanpassen. Dit laatste bleek ingewikkelder dan in eerste instantie verwacht.

Een andere interessante widget waar ik aan heb gewerkt is een audio player. Er waren klanten die al een lange tijd op een oude versie van het onlinesysteem draaide omdat er (nog) geen afspeelmogelijkheid aanwezig was voor mp3 files. Voor deze widget heb ik kan ook een volledige audio engine moeten implementeren op basis van

WebAudio. Een vraag bij deze widget was om de audiobestanden zo klein mogelijk op te kunnen slaan zonder te veel van de geluidskwaliteit te verliezen. Ik heb door middel van een aural exciter, convolutiereverb en een aantal psychoakoestische trucs het voor elkaar gekregen mp3 files met 22kHz 64bit mp3 te kunnen opslaan waarbij het afspelen nog steeds prettig genoeg was. Dit was voornamelijk toepasselijk bij opnames met stem. Bij muziekopnames was het gewenst om wel de volledige kwaliteit op te slaan.

Tot slot heb ik gewerkt aan het omzetten van het statische systeem naar een CMS. Voorheen moest Peter wanneer een klant iets wilde aanpassen aan zijn pagina zelf de server in om de aanpassingen te doen. Dit zorgde voor veel extra werk en was niet de beste manier om creatief met het systeem om te gaan. Door een editmodus te implementeren kunnen klanten deze aanpassingen zelf doen en hebben de ontwikkelaar(s) meer tijd om speciale widgets te maken.