- Professional Scrum Master 1
Summary
I continually strive to improve myself as a software craftsman. Software Craftsman is way to be in the day to day work. My objective is to develop clean code, improve code quality and avoid manual steps which are source of confusion and error prone.
I have been working in several mid to large size projects. On each projects, I have been involved in introducing or enhancing unit testing, build process, continuous integration mechanisms.
I am really focused on how things are done in term of software architecture, components deployment and automation. I do not like big monolithic softwares with hard coupled dependencies. On each projects I have been working on, I try to break dependencies and isolate what MUST be isolated.
The biggest problem I met is not really the technical part, but the human one. Generally, people do not like changes. And doing work as they always did is something hard to change in mind. I DO my best as a SCRUM Master.
See also :
Personal project :
This project implies following technologies :
- ElasticSearch
- node.js + REST Api definition
- nginx setup
- Backbone.js
Main Skills:
- Human relationships
- Competitive C/C++ skills (multithreading, Design Patterns, Boost, Metaprogramming, STL/Boost)
- C#, Powershell, Notes Api, WCF
- Node.js / Python / Erlang
- Competitive Linux skills
- Distributed application development with middleware such as Corba, RMI, NServiceBus
- Financial IT: Financial Kit, FIX, Equities Markets, Black-Scholes Pricing Model, Financial Valuation
- Embedded Systems develoment (QNX)
- Aware with Web Development (Ajax, Xhtml, Javascript)
Professional experiences
Senior Software Engineer
- Develop reliable micro services for everything related to money @Uber (onboarding, checkout, transaction history)
- Drive reliability engineering for the services my team owns (monitoring, alerting, on call actions)
- Responsible for defining technical specifications in agreement with my team composed of 8 backend engineers
- Provide software engineering guidelines for more junior team members.
- Mentor junior engineers
Head Of Development
- Leading by example. Continuously supporting team members (Training, Coaching, Certification, ...)
- Managing on-site teams of 16 people (developers, QA and SRE)
- Managing remote teams in Minsk, Belarus (developers, QA)
- Maintain online service scaling up to 100 million api calls per year
- Move services to AWS
- Technical mentorship to the teams
- Responsbile for technical support to our partners
- Migration to micro service architecture (Spring::Boot, Kafka, Prometheus, gRPC, REST)
Senior C++/.net Software Engineer - Scrum Master
- Develop and maintain new architecture of c++ and .net code
- Continuous {Integration, Delivery} repsonsible on TFS / Gitlab
Team Leader ; Software Craftman ; Senior Software Engineer - C++11 / 14
- Third Party Integration Team Leader
- Container deployment : Docker / Kubernetes / Swarm
- Ceph distributed storage
- C++11 / 14 development
Scrum Master - C++/.net Senior Software Engineer
- Technical Leader
- We are providing tools for IT monitoring, forecasting, reporting on various platforms: Microsoft Exchange, IBM Domino, BlackBerry, IBM Sametime, Microsoft Sharepoint.
- Certified Scrum master for
- Made transition from Team Foundation Server to Git
- Manage a 6 people team based on agile methods (SCRUM)
- Member of GSX Research & Development team
- Provide monitoring tool for Company IT department.
- In charge of R&D, technical decisions for product enhancements, technical architecture.
- Develop monitoring components on messaging tool such as Domino, Exchange, Sametime, Blackberry Enterprise server, Sharepoint
- Maintain code stream of all the 4 products of the company based on Team Foundation Server with nightly builds and automatic merge between the different branches.
- Design / Develop satellite softwares for internal usage based on Angular.js / Bootstrap technologies.
- Rally Software hacker (http://www.rallydev.com/)
C++/Corba Architect
- Part of the Research & Development team of Wall Street Systems in Sophia Antipolis.
- Development of C++ CORBA components such as financial instruments for Front Office business.
- I am currently learning financial industry such as Equities, Edge Funds, Front Office instruments...
- Setup & Development of the Apache ESB ActiveMQ. Usage of the C++ api to communicate with the ESB.
- Involved in the rewrite of the UI using the .NET WPF Api.
Software Architect
- I was involved in a project managing records in "Credit Bureaux" databases of Experian products.
- I architectured and developped base software components to make this development reusable for all the Experian projects via configuration file in XML.
- This developement was done using Ruby scripting language and databases were : Oracle, DB2 and MSSQL.
Software Engineer Contractor
- IT consultant working for different customers on Sophia Antipolis, Nice, France.
Embedded Software Engineer/Software Architect
- 11 months mission in Visteon Technologies in order to develop a 3D application on auto radio using
OpenGL ES
- Charge of all the development life cycle : specifications, design, development ;
- a C++ project taking as input a collada file and generating C data structures running on Windows ;
- a C++ Qnx project which use the datas generated
- The target embedded platform is an ARM9 CPU with a coral jade GPU (from Fujitsu)
-
In charge of another project at Visteon :
- Development of a video player on this target using the open source library ffmpeg.
- QNX
- ARM9, Jade Fujitsu
- C++, Multithread, FCollada
- OpenGL ES, GF
Embedded Software Engineer/Software Architect
- 6 months mission in a company specialized in transit transport development ;
- Development of a C++ application which enables the priority at crossroad for the bus, tramways ... ;
- All the development designed on Linux (IPC communication, multithreads, ...) ;
- To enable the priority, there was a module communicating on the serial port via a radio modem with the crossroad. The implemented protocol is called DIASER linked with a GPS receiver.
- Linux
- Shared memory, processes, threads, serial input/output
- ARM optimization
- GPS, Sirf2 chip
- DIASER protocol
- Trac, Subversion
Embedded Software Engineer
- Hardware architecture :
- 1 TMS470 hosting the main Operating system (a micro real time os) and the engine code (description below) ;
- 1 FPGA with 2D accelerations hosting widget library ;
- the 2 cpu's were connected through a SPI bus
- Development of a GUI auto radio system based on a XML description whose XML schema was defined by BMW ;
- Simple Process :
- XML description stored in a SQLite database from a C# tool ;
- SQLite database used to generate C datas meta model ( written in C# too) ;
- Design and development of a generic engine using datas generated before ;
C++/Tuxedo Software Engineer
- First consulting work in a huge company leader in the flights reservation called Amadeus ;
- worked in the rental car team ;
- Development of a scalable networking application written in C++ on HP-UX in order to replace the transactional server : Tuxedo ;
- database Oracle development ;
- technical leader for software production
- Linux, HP-UX
- C++, Python, Unit Testing
- BEA Tuxedo
Intern Software Engineer
- 7 months internship working on a network monitoring software ;
- Web supervision module development based on the HTTP SSL/TLS protocols :
- web pages reception,
- NTLM authentication, Basic, Digest,
- SOCKS(4/5), SSL and Http Proxies,
- Integration of a javascript interpreter : mozilla SpiderMonkey,
- All has been developped in .Net C++/Visual Basic. All the work was based upon the .Net C++/VBA interoperability.
- UML analyze (use cases, class diagram, sequence diagram).
- .Net platform, C++
- Web protocols
Intern Software Engineer
- 3 months internship ;
- Worked on an open source project called Efficient. An e-business project in association between the European Parliament and the Vietnamien Parliament.
- Module development :
- from an activity diagram with the differents actors, I had to research how I could have generated the whole code for one "articial" actor in a B2B transaction.
- Linux
- Java, Web Services, Axis
- XML, XSLT
Degrees
Graduate Engineering School specialized in Distributed Applications
- With honours
- Engineering metodologies : Project Management, Project Life Cycle
- Programming Paradigm :
- Erlang : Parallel Programming
- C++ : Meta Programming
- Constraint Programming
- Databases :
- Relation databases : Oracle, PostgreSQL
- Object Oriented databases : O2
- Middlewares : Corba, J2EE (Ejb, Servlets, Jsp)
Master's degree in Computer Science
- With honours
- Computational Complexity Theory
- Algorithmic Theory :
- data structures
- greedy algorithms
- dynamic programming
- linear programming (simplex algorithm), flow algorithm
BSc in Computer Science
- With honours
- Corba middleware
- Network programming on Unix
- 3D Programming
Two-year University degree in mathematics
- With honours
- Topology
- Probability
- Mathematical Algebra
- Mathematical analysis
References
OpenId Overview
- Article about OpenID specification ;
- Howto to put in place an OpenId complete server ;
- Tutorial on how to use API to use OpenId on our website
DBus Overview
- Article about freedesktop.org technology called DBus ;
- Overview of DBus GLib and python bindings ;
- Skeleton \& Stubs overview ;
- Protocol explanations
Drylm.org
- Founder
- System/Network Administrator : mail (postfix), subversion, apache
- Development group creation
Dreamcast Development Article
- Article about development on Dreamcast
- Cross Compiler setup
- Kallisti Os tips :
- how to play music,
- how to render fonts, bitmaps,
- how to manage controllers,
- how to debug.
D.C.S.I (not yet translated)
- Dreamcast Game Development,
- C++, Kallisti Os