Guilhem CHARLES

Guilhem CHARLES

Software Engineer

Resume
Contact Me

About Me

Driven software engineer with a practical mind and passionated about solving problems. I focus on performance, user experience and making softwares smart. My international background has taught me the importance of understanding other cultures, being open-minded and adapting quickly to new environments. I have formal and informal leadership experiences and understand the importance of good team play. My résumé shows that I am able to produce excellent work in team as well as individually; I consider myself as a very good team player.

more

Currently a C++ developer in a thriving international environment, I am always happy to work with new tools and ready to learn new languages and libraries in order to grow my toolbox. Indeed, I consider them simply as tools and it is up to the developer to pick the right one!

My programming language of choice is C++ which I used to build:

  • Network-based and cross-platform applications/libraries;
  • Scalable backend server;
  • Real-time and embedded systems.
In the future I intend to tackle challenges even more complex in fast-paced, highly technical and intellectually challenging environments in order to grow the skills that I need to achieve my career goal.
My next career step would be Technical Leader.


Work Experience

Software Engineer - Test Tools TeamMapscape via MCA (September 2015 - Now)

Designing, implementing and maintaining highly advanced software tooling which are used to process digital geographic data of world leading data providers. The processed geographic data will be used in worldwide navigation products of market leading customers like VW, BMW, Daimler, Tesla and Ferrari.

The Test Tools team manage the suite of tools used for conversion, test and visualization of maps.

Core Tasks

  • Developping and maintaining conversion, test and visualisation tooling;
  • Performance benchmark;
  • Monitoring regression tests;
  • Performing peer code reviews;
  • Performing development test;
  • Creating and updating documentation.

Achievements:

  • Parallelization of the displaying process for the map visualisation tool leading to faster rendering;
  • Creation of a tool aiming to test and compare Full-Text Search data;
  • Creation of a highlight section in the regression tests dashboard.

C++11 STD Boost SQLite SpatiaLite SQL Bash Perl Cross-Compiling GIS NDS

Software Engineer Apprentice - R&DLumiplan (September 2012 - September 2015)

During three years I worked autonomously on different research projects aiming to improve gathering of information, management, supervision and installation of all embedded equipment developed by Lumiplan Duhamel. I developed real-time embedded softwares, in which performance, robustness and reliability are crucial.

Final year - Period of 7 months
Study, design and develop a solution that provides a partial, and later full, auto-configuration of Lumiplan-Duhamel products when installed onboard. The solution scope goes from a first installation to addition of equipment, and includes maintenance. Thus will help Lumiplan operators to be more efficient and faster to realize such operations.
Direct benefits are installation time decreased, less operator actions on equipment (which can be source of failure) and generalized solution; auto-configuration is designed to work whatever customer, installation type and location, independent of vehicles. Hence the solution lead to less cost for installation, addition of equipment and maintenance.
Self-governing management of a full software development life cycle following ISO 9001 standards: planning, specifications, validation plan, development, deployment and integration.

Two first years - Periods of 6 weeks
C/C++ program development intended to improve monitoring and maintenance of systems and equipment embedded. Tasks:

  • Program to obtain information on embedded equipments in a vehicle(GPS, speed, journey, etc);
  • Development of a software to test a LED displayer in C#;
  • Development of an SNMP agent in C++ for an embedded monitoring equipment;
  • Development of a SNMP manager in C# to queries SNMP agents and allow technicians to obtains information and configure embedded equipments;
  • Development of SNMP agent on another embedded equipment in C with Keil OS.
Gradual increasing level of responsibilities for the software development life cycle (e.g. validation plan, planning, etc.).

C++ STD C C# Cross-Compiling TCP UDP SNMP Thread Poco Keil MDK WinPcap

Final Year Internship in Software DevelopmentBusiness & Decision (April - June 2012)

Software development in Java using the API Apache POI, creation of KSH scripts.

Java API: Apache POI

Teaching for First Year StudentsAix-Marseille University (Academic year 2011-2012)

Selection of the top five first year students. Classes to volunteers or students facing issues in multiple computer science fields: algorithm, database, development C++ or Java, system and network.

Algorithm C++ Java SQL Merise Bash Shell Network

School Projects

Operating System Project - Minimalist Linux-like Kernel

Development of a linux-like kernel in C and ASM. It is the final project of the Operating systems and parallel computing course which we have follow during our second year at Ensimag (first year of master of science). It includes comprehension and knowledge of how a kernel works. The project is vast, needs a rigorous organisation and a smart work sharing to be done.

Semaphore C ASM Thread Processus

Find out more (French)

Software Engeenering Project - Java-like Compiler

Ensimag first year end's project. Development of a compiler (in Java) for an oriented object language close to Java itself.

OOP Compiler

Development Project, First Year, Huffman Compression

Java development of a program for Huffman compression/decompression algorithm that let the user to browse for the file that needs to be compress or decompress and then make the required operation using huffman coding.

Java Huffman coding

WiFi Honeypot - Study, Prevention and Proof of Concept

Honeypot is a well known method in security. Usually it is used to attract bad people already present inside a local network. However, WiFi honeypot technique can be use in another way: trap normal user into a malicious WiFi hotspot.
We demonstrated how sneaky a WiFi honeypot can be and how unprepared you may be against this threat. These attacks are based on the habit people have to connect any WiFi access point whenever they have the opportunity and could hit everyone, everywhere and every time...

Kali Linux

Volunteering Experiences

MonitorScouts et Guides de France (September 2011 - August 2014)

Monitoring of youths from 11 to 14 years old, locale and equipment management, activities organization, planning establishment and budget management. Educational follow-up of the youths during the year. Each year was concluded by a two weeks summer camp.

Staff & PartnershipEnsimag Students Union Office (April 2013 - March 2014)

Gather of companies’ sponsors for events and good deals for school students. Events organization for school students: cocktail, reception, party and week-ends.

Information System ManagerEnsimag Students Union Office of Companies

April 2013 - March 2014

Administrator of: the website, intranet, wiki and data bases of the Union. Technical support and assistance for companies and students.
Organization of a one day forum between companies and school students: companies reception and their placement to stands, system of student godfather for companies and provide a platform to allow companies to search students’ Resume.

Favorite Quotes

"Bad programmers worry about the code. Good programmers worry about data structures and their relationships."Linus Torvald

"C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, it blows away your whole leg."Bjarne Stroustrup

"Move fast and break things."Mark Zuckerberg