Deze markeerde het einde van een transformerende reis als software engineering stagiair bij HolonCom. Deze laatste week was een intense mix van technische consolidatie, deployment optimalisaties en persoonlijke reflectie. Van FTP protocol implementatie tot de emotionele impact van een afscheid - deze week had het allemaal.
Nuget cleanup en FTP verkenning
De week begon met waardevolle career guidance van Anna over CV optimalisatie en LinkedIn professionalisering. Deze soft skills zijn net zo belangrijk als technische competenties - een les die vaak onderbelicht blijft in academische curricula.
Technisch gezien focuste ik op automated cleanup van NuGet packages op Gitea. Door regex patterns te verfijnen, kon ik een robuuster systeem implementeren dat toekomstbestendig is. Dit type maintenance automation is cruciaal voor lange-termijn codebase gezondheid.
Een interessante uitdaging was de assembly versioning van de E-shop. Het probleem: dynamische assembly files met timestamps die constant Git commits vervuilen. Hoewel MinVer een logische oplossing leek, veroorzaakte het onverwachte build errors - waarschijnlijk caching-gerelateerd. Dit illustreert een belangrijke ontwikkelaarswaarheid: soms is de elegante oplossing niet altijd de juiste oplossing op dat moment.
Mijn eerste kennismaking met File Transfer Protocol (FTP) was fascinerend. FTP, een TCP/IP-gebaseerd netwerkprotocol voor bestandsoverdracht, opende nieuwe deployment mogelijkheden. De architectuur vereist drie essentiële componenten:
Host: Server endpoint
User credentials: Authenticatie
Password: Secure access
Solution normalisatie en FTP implementatie
De systematische normalisatie van Solution (.sln) files was een intensieve maar waardevolle oefening. Voor elk project (Core.All, Command Worker, E-shop) creëerde ik drie distinct solutions:
Source-only: Pure source code references
NuGet-only: Package-based dependencies
Hybrid: Source code + external library source
Deze structuur, met alfabetische project ordering, maakt cross-solution vergelijking met tools zoals Beyond Compare 5 trivial. Het is een perfect voorbeeld van hoe systematische organisatie toekomstige maintenance drastisch vereenvoudigt.
De FTP action implementatie bracht interessante deployment inzichten:
Override mechanisme: De action vergelijkt lokale bestanden met FTP-deploy-sync-state.json metadata. Wijzigingen in inhoud, grootte of modificatiedatum triggeren automatische uploads met bestandsoverschrijving.
Directory management: De server-dir parameter maakt automatische submappen creatie mogelijk, wat flexible deployment structuren ondersteunt.
Synchronisatie uitdagingen en persoonlijke groei
Mijn voorlaatste dag bracht complexe cross-project synchronisatie uitdagingen. Het synchroniseren van Streamdesk en Command Worker code onthulde een rookie mistake: simpel kopiëren van bestanden houdt geen rekening met verwijderde files aan de source kant.
Deze fout resulteerde in:
Duplicate definitions: Conflicterende code definities
Broken legacy code: Outdated references
Superfluous dependencies: Overbodige project references
Beyond Compare 5 werd mijn redding voor deze complexe refactoring. De tool maakte systematische vergelijking en synchronisatie mogelijk.
Docker-specifieke uitdagingen ontstonden door MSBuild variabelen zoals $(SolutionDir) die niet resolvable zijn in containerized environments. Ook server naming differences tussen projecten vereisten careful configuration management.
De implementatie van een gestandaardiseerde folder structuur volgde best practices:
[project-name]/
├── source/
└── tests/Deze organisatie verbetert code navigatie en onderhoudbaarheid aanzienlijk.
deployment, reflectie en afscheid
Mijn laatste dag bij HolonCom begon met het oplossen van NuGet-only solution build errors. De root cause: onvolledige refactoring tijdens Core.All integratie. Deze ervaring onderstreepte het belang van thorough testing na structural changes.
FTP deployment actions voor Command Worker server/client en E-shop componenten vereisten careful credential management. Initial testing met test accounts onthulde MSBuild variable resolution issues in CI/CD pipelines.
De oplossing voor $(SolutionDir) resolution:
- name: Publish
run: dotnet publish -p:SolutionDir="${{github.workspace}}/"External library referencing in publish steps vereiste expliciete configuration:
- name: Configure NuGet source
run: dotnet nuget add source [HolonCom-source]Additional technical accomplishments:
ArangoDB image backup naar Gitea registry voor disaster recovery
SMTP server configuratie voor Ghost project email functionality
Config externalization door Docker volume mounting
Persoonlijke transformatie en dankbaarheid
Reflecterend op mijn eerste dag versus laatste dag, de transformatie is aanzienlijk. Ik kwam binnen als een nerveuze student en vertrek met meer zelfzekerheid, groei op persoonlijk en professioneel gebied én met meer vakjes.
Dankwoord
Aan het geweldige team van HolonCom - jullie hebben meer dan een stageplaats geboden. Jullie hebben een leeromgeving gecreëerd waarin ik kon experimenteren, falen, leren, groeien en (persoonlijke) grenzen kon verleggen.
Robrecht, als mentor heb je me niet alleen technische skills bijgebracht, maar ook belangrijke levenslessen en inzichten. Je manier om groei op alle vlakken te faciliteren, zelfs in uitdagende momenten, is een gift. Dank je voor je geduld, expertise en voor het pushen van mijn grenzen.
Anna, je warmte en wijsheid hebben deze ervaring extra speciaal gemaakt. Je career advice en oprechte bezorgdheid voor mijn groei als persoon waren onschatbaar. Ik kan niet wachten om je te vertellen over mijn Camino.
Dries, dank je voor je technische ondersteuning en inzichten. Working alongside experienced developers like you made me a better programmer.
Deze stage bij HolonCom was transformationeel. De skills, zelfzekerheid en het netwerk dat ik hier heb opgebouwd, zullen de basis vormen voor mijn verdere carrière.
Met oprechte dankbaarheid en nieuwsgierigheid voor de toekomst,
"Not all those who wander are lost" - en soms leiden wandelingen naar de mooiste bestemmingen.