Als freelance software-architect en -ontwikkelaar ontwikkel ik met veel enthousiasme web-applicaties. Database-ontwerp, server-side web-applicaties en Single Page Applications die gebruik maken van client-side Javascript-code, vallen onder mijn expertise. Ik heb met name ervaring in Microsoft .NET.
Ik ben analytisch sterk en graag betrokken bij het uitdenken en ontwerpen van een applicatie als geheel. Hierbij kan ik niet alleen bijdragen aan de technische kwaliteit, maar ook adviseren in en meewerken aan het functionele ontwerp van de applicatie.
Een goede applicatie-architectuur en code die voldoet aan principes als SOLID, DRY, YAGNI zijn dingen waar ik warm voor loop. Wat betreft het proces ben ik enthousiast over Agile Development. Toepassing hiervan draagt in mijn ogen in hoge mate bij aan een goede applicatie.
Mijn kwaliteiten:
Sinds het afronden van mijn master Computer Science in 2009 ontwikkel ik web-applicaties met behulp van het toen net uitgebrachte ASP.NET MVC-Framework. Door de jaren heen heb ik hierin veel ervaring opgedaan en de ontwikkeling van het framework gevolgd tot de huidige versie: MVC 4.
Ik heb ruime ervaring met database-ontwerp, met name voor Microsoft Server 2008 en 2012, en SQLite voor client-side code. Entity Framework 4 met POCO objects, ondersteund door met behulp van T4 templates gegenereerde repository classes, heeft mijn voorkeur voor database-toegang.
Voor Single Page Applications heb ik ervaring met verschillende client-side Javascript-frameworks, waaronder BackBone, Underscore, Dust.js en uiteraard jQuery.
Een overzicht van mijn kennis:
In de afgelopen jaren heb ik aan verschillende projecten gewerkt. Hier staan enkele projecten beschreven.
Ontwikkeling van een uitgebreide 'mijn'-omgeving voor RouteVision, samen met twee andere ontwikkelaars. Klanten kunnen de locatie en historische ritten van hun werknemers volgen. Met één druk op de knop worden binnen milliseconden rapportages met ritoverzichten gegenereerd op basis van instelbare waarden.
De applicatie heeft een degelijke multi-tier architectuur en maakt gebruik van POCO entities met persistance naar SQL Server 2008. Voor persistance wordt Entity Framework gebruikt door middel van model-first. Hierbij wordt ten behoeve van de performance veelvuldig gebruik gemaakt van compiled queries. Het Repository-pattern en het Unit of Work-pattern is hierbij ondersteunend. Door middel van T4 templates wordt veel boiler-plate code gegenereerd.
Voor een top-performance wordt veel gebruikt gemaakt van geavanceerde interne caching van data om het aantal database-calls te minimaliseren.
De rapportagepagina heeft een single-page interface op basis van een custom javascriptengine die deep-linking naar rapporten met specifieke rapportage-instellingen mogelijk maakt zonder dat een page refresh nodig is bij wijziging van deze instellingen.
Kilometerregistratie-app voor Android met bijbehorende web-applicatie, bedacht en ontwikkeld samen met Ronald Steen. Bedoeld voor registratie van privé- en zakelijke kilometers en ondersteunend voor een sluitende kilometerregistratie.
Door in de app op start en stop te drukken, wordt een rit gemeten met GPS. Koppeling met een bluetooth carset maakt automatische ritregistratie mogelijk. Ritten worden gesynchroniseerd met de online webomgeving.
De web-applicatie detecteert gaten in de kilometerregistratie bij vergeten ritten, en geeft suggesties voor het invullen van deze gaten met handmatig toe te voegen ritten. Er kunnen rapporten worden gegenereerd die voldoen aan het door de belastingdienst vereiste formaat.
Er wordt gebruik gemaakt POCO entities met persistance naar SQL Server 2008. Voor persistance wordt Entity Framework gebruikt door middel van model-first. Hierbij wordt ten behoeve van de performance veelvuldig gebruik gemaakt van compiled queries. Het Repository-pattern en het Unit of Work-pattern is hierbij ondersteunend. Door middel van T4 templates wordt veel boiler-plate code gegenereerd.
De applicatie bevat onder meer:
Architectuur en lead development (Javascript en HTML5) van een mobiele applicatie op basis van PhoneGap (Cordova), met Android als eerste native target. Deze workflowapplicatie stelt buitendienstmedewerkers in staat om door de binnendienst van opdrachten te worden voorzien, die op locatie kunnen worden uitgevoerd.
De applicatie synchroniseert data voor offline gebruik. Deze data wordt opgeslagen in een SQLite database, die zowel vanuit de native Android-laag als vanuit de web-applicatie toegankelijk is.
De HTML5-app is ontwikkeld met een Single Page Interface op basis van Backbone, Underscore, Dust.js en enkele andere javascript-frameworks. Voor datatoegang is een eigen ORM ontwikkeld die een configurabele datalaag mogelijk maakt. De data wordt gecached om een top-performance te bereiken.
Voorlopig ben ik bezig met een mooie klus.