Application en database developer

Show cases
Info & Contact

Template engine


Below a few showcases of the bigger projects where i have worked on

Template engine with caching capabilities
PHP template engines,
er zijn er veel. En omdat ik hier gebruik van wil maken heb ik er een aantal getest.
Begonnen met Smarty. Toen Twig, Symphony en nog een paar die ik vond op
Eigenlijk was er overal wel iets mee.
Software apart installeren op de server vind ik al gelijk een slecht plan.
Teveel nadelen mbt portabiliteit en veiligheid. Ook is dit niet voor iedereen mogelijk.

Performance is een groot goed. Het moet dus mogelijk zijn om geparste templates te cachen.
Ook moeten er SEO friendly URL's uitkomen.
Daarnaast is het van belang dat de engine doordacht in elkaar zit en met een uurtje wel te begrijpen hoe het in te zetten is.
In de onderzochte engines vond ik er niet eentje waar ik onvoorwaardelijk blij van werd.
En omdat ik na 3 dagen geen zin meer had in al dit researchen maar wel genoeg had opgestoken over de werking heb ik besloten er zelf eentje te maken.

We hebben nu de 'DevIT template engine' die compatible is met alle CSS3 frameworks, jQuery, Bootstrap of wat er ook maar gebruikt wenst te worden om een website vorm te geven.
De classes welke de laag tussen de designs en de database vormen blijven maatwerk.
Nadeel is dat het dan wat meer kost om tot een geheel te smeden, voordeel is dat de code afgestemd is op zowel design als database architectuur wat weer uitstekend is voor de performance en de schaalbaarheid.
Tevens is gekozen voor database connecties via het PDO mechanisme in PHP. Hierdoor maakt het niet meer uit of er via Postgres, MySQL, Oracle, Informix of een van de vele andere smaken data wordt gebruikt. De eerste website hiermee (een webshop met 3000 producten) gaat binnenkort live.

European MVNO
For about 7 years now i have a big Telecom company as my client.
And for 5 years i was the only developer involved with the whole ICT.
In the beginning this was okay but as time goes by the company grew which made the management felt uncomfortable knowing their whole business existed by the health of just one person.
I can only agree
So at this moment i'm only involved is a few (complicated) structures and most of the data, infrastructure and code is maintained by several bigger ICT companies

What did i create?
The Netherlands:
Website and database design.
Most of this is just content in several languages. Only the registration of sim cards and different marketing projects are a bit more complicated.
The registration page consists of a single web form where customers can provide their personal details
Customers need to provide name, address, dat of birth and SIM details
The address part was checked again the a local address normalization database. This data is provided by Cendris
Phone and sim cart number need to be existing in a local database and not registered before
Customers have to possibility to provide their email address for marketing purposes. As a reward to obtain E2,50 free topup
Once all is correctly filled and a email address was provided the customer receives a email with activation link.
This link is only once usable. No time limit
Once clicked the back end does several fraud checks and when all went well a top-up request is send to a external company and the customer receives an sms that the top-up is processed.
This all happens real time

Several crons are also in use. Of course there is a lot of daily reporting for the management team.
Besides of that the customer data must be provided to CIOT (Centraal Informatiepunt Onderzoek Telecommunicatie)
This information is shared in XML in a highly secured environment.

Belgium works pretty the same as the Netherlands.
Only difference is that there is no CIOT like demand for the data.
More difficult part here is the address normalization.
Most addresses exist in France and Dutch language, some only in French and others only is Dutch.

Most complex environment of all
Big website in 9 languages
Simcarts are not directly usable. They need to be activated first.
This means that all customers must provide there details which are on the fly validated against sophisticated external sources using SOAP and XML
Address details need to be normalized before such a service is usable.
This is done by a nice set of jQuery / Ajax form fields which used data provided by the Deutsche Bundespost
A scoring flag is returned which consists of several elements which can be used to determine if the address and person do exists, if the person lives at that address and much more.
Based on this scoring flag the customer gets his card activated fine, received a notification that a proof of identity needs to be provided afterwards or cannot register at all.
The activation takes place at E-Plus and is communicated by Edifact files.
E-plus sends a notification back with the result of every activation attempt. This is not real time and can take between 5 en 15 minutes.
The feedback is collected and processed by a back end process and stored in the database.
In case of an error during activation the record shows up in the back office and in an houry spreadsheet.
Everything without a activation notification one hour after the Edifact is send needs attention and is checked and fixed by Customer Support
This Customer Support department have their own back office which is also build and maintained by me.

Another big part of this project is collecting events for every simcart and take actions based on the event.
Events can be (missed) calls, top-up, expiration, bundle subscription etc.
The events database is by far the biggest data set of all.
Notice the fact that there are about one million active simcarts and that everything regarding each simcart results in data which needs to be processed and reported one can imaging very complicated and high performance code and database is a must.
This is also designed, build with MySql and Perl and still maintained by me.

Same sort of website as the others. Main part was, again, the simcart activation. This was a setup similar to Germany. Only the used communication layer was different.
This was done using Curl, SOAP and XML against the backend of Neoris in Spain.

Designed by Makyzz / Freepik