Hello, my name is Philippe Guigue, I'm a freelance software engineer.
As senior fullstack software developer I've worked over the last years with a wide variety of programming languages, frameworks, and tools.
My professional activity encompasses freelance consulting for desktop and web solutions as well as project management and development for my own customers including all tasks from specification to maintenance.
I enjoy developing creative and taylor-made software solutions to solve your business problems.
Don't hesitate to contact me if you are looking for someone to work on your projects.
Freelance Portofolio
04/2021-11/2022 (1 year, 8 months) | Senior .NET Developer | |
kfzteile24 GmbH |
Payment Middleware Development (.NET Core / C#) Implementation ERP micro-services Integration with AWS and Azure/D365 |
|
Skills: .NET Core · C# · Azure · Microsoft Dynamics 365 · Amazon Web Services (AWS) · Microservices | ||
09/2021-12/2021 (4 months) | Senior Software Developer | |
Arbeitsgemeinschaft Rohholz e.V. / Kuratorium für Waldarbeit und Forsttechnik e.V. (KWF) | Implementation of ELDAT Smart advisory board 1.0.3 version specifications | |
Skills: Project Management · JSON Schema | ||
12/2020-02/2021 (3 months) 10/2019-04/2020 (7 months) |
Product Manager / Development | |
fortan AGR / HNEE / KWF | Management & development (C# / Unity) of the HoPoSim Software being developed within the HoBeOpt project. | |
Skills: C# · Unity · Software Development · .NET Framework · Product Development · Computational Geometry | ||
07/2018-01/2020 | C# consulting/development/unit testing | |
Lateral GmbH |
C# Consulting and development of internal .NET tools Unit testing |
|
Skills: .NET · Unit Testing · Multi Threading | ||
11/2018-02/2019 (4 months) | Full Stack Developer | |
Smart4Diagnostics (former DX-Labtrack) |
Implementation of python REST API backend Developement of Grafana dashboards for live visualization (HTML,CS,JS) |
|
Skills: python · REST API · Frontend · HTML/CS/JavaScript | ||
04/2017-05/2017 (2 months) | UI/WPF consulting/development | |
IXDS (Now part of PwC) | Consulting & Implementation of UI Design in WPF for international project | |
Skills: Consulting · WPF · UI/UX | ||
Professional Experience
06/2016- Present |
Freelance Software Engineer | More details |
Self Employed (Berlin, Germany) | ||
Backend / .NET / WPF Development & Consulting / Testing (see above) Development of solutions for my own customers including all tasks from specification to maintenance. | ||
06/2016- 04/2007 |
Senior Software Engineer / IT Project Manager Visualization / Product Manager Pacelab Suite API | |
Pace Aerospace Engineering and Information Technology GmbH [Aerospace] (Berlin, Germany) | ||
For my first years at Pace GmbH, I was Product Manager for the Pacelab Suite API. My responsabilities covered product definition and documentation, establishment of API standards and change processes, as well as staff and customers trainings.
|
||
03/2007- 01/2006 |
Senior Software Engineer | |
Schaerer Mayfield Technologies GmbH [Neurosurgery] (Berlin, Germany) | ||
During my work at the Schaerer Mayfield Techologies GmbH, a company which proposed real-time
imaging solutions for the operating room (Neurosurgery, ENT, Orthopedics), I was involved in the development
of the company's main product GuideLine, an integrated, image-guided navigation system that allowed to
navigate intra-operative fluoroscopy and pre-operative MRI and CT images.
All algorithms were implemented in C++ and based on the Qt and the STL libraries. Scripts were written in Python. |
||
08/2005- 03/2005 |
Senior Software Engineer | |
Tools & Toys GmbH, Virtual Reality Software (Berlin, Germany) | ||
During my work at the Tools & Toys GmbH, I was responsible for the development of components for mesh simplification and mesh healing. Moreover, I participated in the design of an interactive rendering system and developed a tool for the out-of-core preprocessing of giga-sized datasets.
The algorithms are implemented in C++ and LUA Script and make intensive use of librairies such as STL and BOOST. |
||
12/2003- 10/2000 |
Ph.D. Internship (Computational Geometry) | |
Institut National de Recherche en Informatique et en Automatique (Sophia-Antipolis, France) | ||
Subject: Geometric constructions with finite precision |
Education
2003- 2000 |
Ph.D. Thesis in computational geometry | |
Université de Nice Sophia Antipolis (Nice, France) | ||
Subject: Geometric constructions with finite precision Geometric algorithms are usually described in the conceptual model of the real numbers, with unit-cost exact arithmetic operations. However, floating-point arithmetic often substitutes for real arithmetic which leads to the well-known problem of numerical robustness. If the adoption of the exact computation paradigm [Yap/Dube95] gives a satisfactory solution to the robustness problem for algorithms that are purely combinatorial, this approach does not allow in practice to solve the case of algorithms that reuse or cascade the construction of new geometric objects. In application such as CAD systems, for example, constructed objects need to undergo further geometric processing. In principle, the further processing can also be done by exact algorithms. However, the numerical precision required to represent exactly a feature of a new constructed object grows exponentially with the height of its construction tree. Consequently, the running time of these algorithms becomes quickly prohibitive. A solution to remedy these problem is geometric rounding. Geometric rounding converts algorithms and objects from the continuous domain to a uniform and discrete domain with finite resolution which simulates fixed precision representation and manipulation of real numbers. The goal is to represent derived geometric structures in fixed precision, so that the key combinatorial/topological properties of the structures are preserved. It is often problem-specific which constraints are critical to be kept. Yet, despite the great practical interest of such solutions, there exist few published work in this direction, except for the particular problem of rounding line segment arrangements (Snap Rounding, Shortest Path Rounding, ...). Moreover, although the proposed techniques allow to preserve somehow the topology of the arrangement, they do not offer any inclusion or convexity guarantees if they are applied on faces (and not only on edges) of the arrangement. In this context, I proposed in collaboration with Olivier Devillers (see Publication SoCG04) different rounding modes to round the result of boolean operations of two planar polygonal regions onto the integer lattice, which respond to the demand of such guarantees The inner/outer rounding of set operations on two polygonal regions allows to introduce the geometric analogue of interval arithmetic provided by the certified rounding modes of the IEEE 654 norm of floating point arithmetic operations. The computation of such geometric intervals with respect to the inclusion relation permits in particular to cascade various geometric constructions such as set operations, convex hulls or rotations with a control on their bit complexity.
I implemented a program based on CGAL
(Computational Geometric Algorithms Library) for rounding the results of exact set operations of planar polygonal regions onto the integer grid with
inclusion properties (see SOCG04 paper). Most collision detection algorithms, such as OBBTree, sphere hierarchies and BV-trees, minimize the number of primitive-primitive intersection tests that have to be computed. Still, a fast and reliable method for computing these primitive-primitive overlap tests is desired. Since rendering hardware is often targeted for triangles, the primitives in collision detection algorithms are often triangles as well. In this context, I proposed with Olivier Devillers a triangle-triangle overlap test (see Publications jgt03) that relies exclusively on the sign of 4 x 4 determinants and does not need any intermediate explicit constructions which are the source of numerical errors. Besides the fact that the resulting code is more reliable than existing methods, it is also more efficient. I extended this approach to test the intersection of others pairs of geometric objects such as rays, lines, segments, and polygons. The algorithms are part of CGAL (Computational Geometry Algorithms Library). |
||
2000- 1999 |
Postgraduate degree in Algorithmics, Robotics, Automatic, Vision, Image and Signal processing | |
Université de Nice Sophia Antipolis (Nice, France) | ||
1999- 1995 |
Graduate studies in Computer Science | |
Université de Nice Sophia Antipolis (Nice, France) | ||
1995- 1993 |
D.E.U.G. (Two year university degree) in Sociology and Ethnology | |
Université de Nice Sophia Antipolis (Nice, France) |
Additional Experience
09/2000- 03/2000 |
Postgraduate degree's Research Internship | |
Institut National de Recherche en Informatique et en Automatique (Sophia-Antipolis, France) | ||
Subject: Randomized analysis of on-line algorithms Randomization techniques have encountered a large success in computational geometry since they often lead to conceptually simpler algorithms than their deterministic counterparts. One possibility to introduce randomness in an algorithm is to use an incremental algorithm whose complexity depends on the insertion order and to provide the data in a random order to the algorithm. However, to guarantee this hypothesis, the data have to be known in advance in order to be mixed which contradicts the on-line nature of the algorithm. For my diploma thesis, I investigated in collaboration with Olivier Devillers (see Publications ijcga01) a technique consisting in a shuffling buffer of small size plugged between the incoming data and the algorithm. This introduces enough randomness to guarantee some improvement on the worst case complexity without modifying the underlying algorithm. I applied and prooved this technique with binary search trees, Delaunay triangulations and Trapezoidal diagrams for line segments intersection detection. The latter problem arises naturally from the manipulation of display and related entities through, for instance, windowing, clipping, and hidden surface removal. |
||
09/2003- 09/2002 |
Teaching assistant in Algorithmics and Java | |
Université de Nice Sophia Antipolis (Nice, France) | ||
09/2001- 09/2000 |
Teaching assistant in Algorithmics and Scheme | |
Université de Nice Sophia Antipolis (Nice, France) |
Scholarships
09/2003- 10/2000 |
Research grant of the French Ministry (MENRT) |
Programming Skills
- Advanced knowledge in geometric data structures and algorithms
- Advanced knowledge in computer arithmetics
- Advanced programming skills in C#, C++, Python, C, Java, Scheme, ...
Language Skills
- French: native
- German: fluent
- English: fluent
Miscellaneous
- Reviewer for the Journal of Graphics Tools, AK Peters, Ltd.
- Reviewer for the 2006 IEEE Symposium on Interactive Ray Tracing.
- Spring school on computer arithmetics (Prapoutel-les-Sept-Laux, France), 03/2001