Johan Dindaine, SENIOR DEVELOPER

Johan Dindaine

SENIOR DEVELOPER

zaizi

Location
United Arab Emirates - Dubai
Education
Master's degree, SUPINFO, European MSc in Computer Science
Experience
15 years, 0 Months

Share My Profile

Block User


Work Experience

Total years of experience :15 years, 0 Months

SENIOR DEVELOPER at zaizi
  • United Kingdom - London
  • My current job since November 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 at zaizi
  • United Kingdom - London
  • February 2022 to December 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 at CGI UK ltd
  • United Kingdom - London
  • November 2020 to January 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 at CGI UK ltd
  • United Kingdom - London
  • October 2018 to January 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 at Agilesphere
  • United Kingdom - London
  • June 2017 to October 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 at The Association of Accounting Technicians
  • United Kingdom - London
  • January 2017 to March 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 at Online Auto Sale
  • United Kingdom - London
  • September 2016 to December 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 at Terravision London Finance Limited
  • United Kingdom - London
  • May 2015 to February 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 at eBay (European product development)
  • United Kingdom - London
  • July 2014 to March 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 at eBay (European product development)
  • United Kingdom - London
  • January 2014 to March 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 at eBay (European product development)
  • United Kingdom - London
  • March 2013 to December 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 at eBay (European product development)
  • United Kingdom - London
  • September 2012 to February 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 at Ioko (KIT Digital)
  • United Kingdom - London
  • September 2011 to July 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 at VCCP
  • United Kingdom - London
  • June 2011 to June 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 at British Sky Broadcasting
  • United Kingdom - London
  • July 2010 to May 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 at E-TRADER GROUP
  • United Kingdom - London
  • January 2010 to July 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 at Unified Communication PLC
  • United Kingdom - London
  • March 2008 to October 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.

Education

Master's degree, SUPINFO, European MSc in Computer Science
  • at International Institute of Information Technology
  • October 2007
High school or equivalent, Baccalaureate in Science
  • at La Trinité
  • July 2002

Specialties & Skills

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

Languages

English
Native Speaker
French
Native Speaker
Spanish
Beginner