Johan Dindaine, SENIOR DEVELOPER

Johan Dindaine

SENIOR DEVELOPER

zaizi

Lieu
Émirats Arabes Unis - Dubaï
Éducation
Master, SUPINFO, European MSc in Computer Science
Expérience
15 years, 0 Mois

Partager Mon CV

Empêcher usager


Expériences professionnelles

Total des années d'expérience :15 years, 0 Mois

SENIOR DEVELOPER à zaizi
  • Royaume Uni - London
  • Je travaille ici depuis novembre 2022

I worked and led an offline/airtight intranet project used to host, serve, and index critical information.
I created a customised offline/airtight WordPress solution, which was selected by the client, and spiked a second CMS solution based on the Strapi headless CMS with a Gatsby front end.
The WordPress solution benefited from custom templates using web components to ensure the same look and feel as the rest of the solution, custom plugins for auditing, login, and other bespoke features along with a set of CLI scripts (WP-CLI extensions) to ensure that all its custom configuration happened in an unattended way on deployment.
The second part of the solution was built using React, the same web components elements to ensure the same look and feel and another set of libraries for auditing, login and providing the features provided by a Golang backend.
Finally, the last part of the solution was to support an off-the-shelf investigative tool by providing bespoke configuration scripts and additional NodeJS workflow and/or react UI customisation.
On the PHP/WordPress side, we used PHPUnit for unit tests and Cypress for End-to-End tests and on the other projects, we used ViTest for unit tests with Cypress for End-to-End or API tests.
All projects could be bootstrapped using docker-compose and Visual Studio code DevContainer within minutes.

SENIOR DEVELOPER à zaizi
  • Royaume Uni - London
  • février 2022 à décembre 2022

I was part of a small team developing a custom offline/airtight mapping solution using the MapLibre library on top of an in-house MapTiler server. The application was built using react with slices and allows users to change the tiles, load custom data, draw on the Map and export the data to files in GeoJson format. We used Jest for unit testing and Cypress for End-to-End tests. Thanks to the docker-compose and Visual Studio code DevContainer, the project could be bootstrapped within minutes.

Technologies used: React, Jest, Redux (slice), MapLibre, MapTiler, GeoJson, docker, CI/CD, Cypress, VS Code DevContainer.

SENIOR DEVELOPER à CGI UK ltd
  • Royaume Uni - London
  • novembre 2020 à janvier 2022

I joined and led a squad of five (four developers and one tester) working on the UK CPS digital case file management project. My team was responsible for the part of the project that gathered, generated, and shared very sophisticated and important legally binding documents like orders, witness statements, etc. It replaced a solution based on OCR as it kept records digitally and only generated assets on demand. I mainly worked on the part that generated legal documents (PDFs) from many data sources. Once developed, these documents would be sent to different subsystems using service queues and shared folders. We created a few micro-services, some for gathering data from an Oracle DB using SQL or stored procedures, SOAP, and REST endpoints, some for generating the PDFs, and some for publishing the results on other queues. And we updated our section of the micro-frontend consuming those generated assets. We followed a modular and reusable approach, using private NPM packages shared across the different micro frontends for standard functionalities, libraries, and common types.

Technologies used: Node 16, GraphQL, ExpressJS, Karma, Jest, Oracle DB (11G to 12C), React, Docker, SOAP, REST, Oracle advance queue, NPM private package, RollupJS with Babel, Java Rest Assured functional tests and JBehave end to end tests.

SENIOR FULL STACK DEVELOPER à CGI UK ltd
  • Royaume Uni - London
  • octobre 2018 à janvier 2021

I joined and later led a team in charge of modernising a 20-year-old internal tool used by the CPS to manage their cases. I supported this application, worked on new features and improvements, and made it accessible for disabled users using tools such as JAWS, Dragon, or ZoomText. The target was WCAG 2.1 (double A). We used a GraphQL-based backend using NodeJS with an AngularJS frontend with Oracle (straight query and stored procedure) as the data storage. We verified everything using Karma and Jasmine in the backend and Mocha and ChaiJS on the front.

Technologies used: NodeJS 16, GraphQL, AngularJS, Oracle (9i to 11g, with both straight SQL and stored procedure), docker, ExpressJS, karma (frontend test), Jasmine (Node), Accessibility (AA level), Jenkins CI/CD.

SENIOR DEVELOPER à Agilesphere
  • Royaume Uni - London
  • juin 2017 à octobre 2018

I worked on the CRIME project, a significant project to digitalise the UK justice system. However, I was specifically working on the modules used in the courtroom by court clerks and the automated system used for simple justice cases, e.g., Transport for London offences or road fines. We used the Common Platforms framework to create PostgreSQL-based micro-services using AngularJS, Angular 5 or ReactJs frontend. We had front-end and back-end tests: Junit for Javas unit and functional/integration tests with WireMock to stub collaborators services, Karma for Angular/AngularJS unit tests, Jest for Reacts unit test, and Selenium with Junit tests for long-running end-to-end tests.

Technologies used: Java 11, JUnit, PostgreSQL, AngularJs, Angular 5, React, Karma, Jest, WireMock, Jenkins Pipelines.

SENIOR DEVELOPER à The Association of Accounting Technicians
  • Royaume Uni - London
  • janvier 2017 à mars 2017

I worked on a micro-website that was used to register the interest of potential students for different courses and allowed them to find the best provider based on their requested studies and locations. The UI was based on an Angular 2 website built using Angular material design and served on S3; the backend was a serverless application based on NodeJS configured through an API gateway that talked to other services using SNS and SQS triggers.

Technologies used: JavaScript, NodeJS, Angular, AWS web services like API gateway, serverless, S3, SNS, SQS and code deploy.

SENIOR DEVELOPER à Online Auto Sale
  • Royaume Uni - London
  • septembre 2016 à décembre 2016

I supported and improved the architecture of a website (formerly tootle.co.uk) that allowed users wishing to sell their cars to receive bids from multiple car garages online. For the monolith application, we used the Play! framework with Scala and deployed it on Heroku using a Mongo DB database and S3 for assets.

Technologies used: Play! Framework, Scala 2.12, MongoDB, HTML (bootstrap 3), SASS, AKKA actors, periodic actors, AWS S3, Heroku.

SENIOR DEVELOPER à Terravision London Finance Limited
  • Royaume Uni - London
  • mai 2015 à février 2016

We re-architected and supported some websites from Terravisions portfolio. They allowed customers to book airport transfer services, airport car parks and other leisure activities. The websites were based on WordPress for the presentation layer and custom Symfony websites for the dynamic parts. They were hosted in a cloud-first environment based around docker on AWS.

Technologies used: docker, PHP Object-Oriented Programming (OOP), Symfony, CodeShip CI / CD, Docker Datacentre, PHPSpecs, Behat, Bash, Kanban.

POLYGLOT DEVELOPER à eBay (European product development)
  • Royaume Uni - London
  • juillet 2014 à mars 2015

I was part of a team that developed a multi-tier application allowing users who purchased car parts on eBay Germany to book time slots in car workshops to get them fitted with the support of Auto Butlers API in the background. We used Spring MVC in the backend with JPA for persistence and with a bespoke JavaScript framework on the UI.

Technologies used: Junit, Java 8, JavaScript, Spring Framework, JPA, Mocha, JBehave, TDD, BDD (JBehave), Browserify, HTML, CSS, LESS.

SENIOR DEVELOPER à eBay (European product development)
  • Royaume Uni - London
  • janvier 2014 à mars 2015

I was part of a team that wrote middleware to facilitate the ingesting of large merchants' inventory into the eBay marketplace. We used the Spray framework and AKKA actors for the application, along with Apache Camel, as middleware to communicate with various collaborating services using REST, SOAP endpoints, and SFTP servers. We also used ScalaTest for unit, functional, and integration tests and more.

Technologies used: Scala 2.11, Akka, Spray, SFTP, ScalaTest, JBehave, Apache Camel, SOAP, TDD.

SENIOR DEVELOPER à eBay (European product development)
  • Royaume Uni - London
  • mars 2013 à décembre 2013

I was part of a team that created an SDK for Java, PHP, and C#, wrapping eBays selling APIs for the EKM PowerShop solution. We worked closely with EKMs team to provide a C# client hosted on our Nuget server. For the backend, we used Java Jersey REST server with Jackson and JaxB/Jackson to map JSON to XML and vice versa. For the front end, we used AngularJs. The teamwork was performed continuously using TDD and BDD.

Technologies used: Junit, Nunit, AngularJS, Java 8, JavaScript, C# MVC 4 Framework, Jersey, TDD, BDD (Cucumber Ruby), CSS, HTML, CSS.

SENIOR DEVELOPER à eBay (European product development)
  • Royaume Uni - London
  • septembre 2012 à février 2013

I supported/added functionalities to multiple European websites for eBay community and event content using Drupal 6 and 7, Symphony 2, PHPUnit and cucumber-ruby to ensure quality, and Capistrano for deployment.

Technologies used: PHPUnit, PHP, Symfony, cucumber, ruby.

LEAD DEVELOPER à Ioko (KIT Digital)
  • Royaume Uni - London
  • septembre 2011 à juillet 2012

I led a team of three developers and one tester, building the next generation experience (NGE), which later became Magic+, then later used in Disney+. The team was part of a squad of about forty across London, England and Orlando, Florida and was mainly responsible for the tickerator/claim reservation module. We created our microlithic application using Zend Framework 1.11+, using multiple Java Spring backends as data sources and the Guzzle client. We integrated with Disneys UI framework and, when needed, created our own JQuery plugins. We tested all of them using PHPUnit for PHP and Qunit for jQuery. Finally, we performed performance tests using JMeter and end-to-end tests with JBehave.

Technologies used: Bamboo (CI/CD), PHPUnit, PHP, Zend Framework, JavaScript, REST, JQUERY, Qunit.

SENIOR DEVELOPER à VCCP
  • Royaume Uni - London
  • juin 2011 à juin 2011

Client: VCCP London, United Kingdom I was the sole developer, covering for someones leave on maintaining and improving the outsourced 02 free sim website for web and WAP access on Code Igniter 1.7 using the Wapple service.

Technologies used: PHP, Code Igniter, Mysql, Wapple, CentOS

SENIOR DEVELOPER à British Sky Broadcasting
  • Royaume Uni - London
  • juillet 2010 à mai 2011

I worked in a small team to develop Skys retail sales gateway, a platform used by associates in shopping malls to add new addons and bundles to existing or new customers. The application was written in PHP using Symfony 4 on top of a SOA infrastructure provided by a JAVA backend exposing REST services. The UI was built using HTML5, CSS, and JQuery using progressive enhancement techniques, with dynamic content sourced from OpenCms. The team developed using TDD and pair programming.

Technologies used: TDD, Pair Programming, PHPUnit, OpenCMS, Symfony, jQuery, CSS, XML, REST, HTML5.

LAMP DEVELOPER à E-TRADER GROUP
  • Royaume Uni - London
  • janvier 2010 à juillet 2010

I supported two defunct applications for this start-up company: StockShifters, a bidding platform for surplus stock (pallets, cartons) and koodos, a platform used to buy surplus fashion items (sold to theoutnet.com). StockerShifters was built using the Zend framework with Doctrine ORM, and I have worked on adding features like the friendly URL generator, stock picker wizard, and the make an offer option. Koodos was built using Symfony 1.2 with propel ORM. I had to take over the application from the DigiCommerce platform (of Digivate) and migrate it to E-traders RackSpace platform, which I administrated. This platform consisted of load-balanced MySQL and Apache web servers using RHCS with a Cisco Pix firewall in front of them. Other server administrative tasks included creating and managing the new SVN repository using HTTP auth, developing sandboxes using virtual hosts, creating and maintaining the staging environment, and deploying to production using bash scripts.

Technologies used: Red Hat Linux, RHCS, PHP, PHPUnit, Doctrine, Symfony, Zend Framework, MySQL, Bash.

SENIOR DEVELOPER à Unified Communication PLC
  • Royaume Uni - London
  • mars 2008 à octobre 2009

I have developed several web applications for VOIP sellers as a white-label solution as part of a team of two to three developers. We migrated the application from the first version with Code Ignitor to Symfony to connect to a third party VOIP system called Porta-Billing by using their SOAP interface or making complex queries. Our application connected with phone number providers (mainly KinnectDID and Voxbone) to purchase and pre-configure them onto our platform, and we used either SOAP or RESTFUL to do so. We also created our own endpoints for various things, with the most significant being used to auto-provision our branded softphone provided by EyeBeam and a Macromedia Flash/Air version provided by Zingaya. We used PrototypeJs or jQuery using progressive enhancement for our UI interactions. Additionally, I set up the development environment, which consisted of a virtual host on the development server for each developer sandbox, with its own MySQL database; we used WebDAV to mount each sandbox on every machine. I also set up and maintained a Subversion (SNV) for our code repository and a version of Trac for managing our tasks. Finally, I have managed the production servers, the MySQL database and regular backups, DNS servers, certificate management (from Verisign and GoDaddy), and the web servers on our Equinix London racks.

Technologies used: PHP, MySQL, Doctrine, Symfony, Debian, Voice over IP (VoIP), porta-billing.

Éducation

Master, SUPINFO, European MSc in Computer Science
  • à International Institute of Information Technology
  • octobre 2007
Etudes secondaires ou équivalent, Baccalaureate in Science
  • à La Trinité
  • juillet 2002

Specialties & Skills

Development
Full SDLC
JAVA (PROGRAMMING LANGUAGE)
ANGULAR (WEB FRAMEWORK)
PHP (SCRIPTING LANGUAGE)
DOCKER (SOFTWARE)
MANAGEMENT
SQL (PROGRAMMING LANGUAGE)
Javascript
testing
reactjs

Langues

Anglais
Langue Maternelle
Français
Langue Maternelle
Espagnol
Débutant