added projects, professional experiences

This commit is contained in:
Philippe Loctaux 2023-06-01 23:46:36 +02:00
parent c2e3634781
commit 73071d9a6e
12 changed files with 348 additions and 0 deletions

BIN
public/icons/acklio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/icons/canvas.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

BIN
public/icons/epitech.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
public/icons/ezidam.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
public/icons/naviarent.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/icons/ubiscale.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
public/icons/velorail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 KiB

BIN
public/icons/yaakadev.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
public/images/canvas.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

BIN
public/images/naviarent.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 KiB

View file

@ -0,0 +1,153 @@
---
import ExperienceCard from "./experience-card.astro";
---
<div>
<h1 class="text-4xl font-bold mb-4">Professional Experiences</h1>
<div class="mt-4 grid grid-cols-1 sm:grid-cols-2 gap-4">
<ExperienceCard
backgroundColor="bg-sky-950"
logo="/icons/acklio.png"
logoTransparentBackground={true}
name="Acklio"
dates="March 2023 - May 2023"
title="Rust developer"
tech={["Rust", "SCHC", "STM32 controllers", "LoRa", "LoRaWAN"]}
>
<p>
The first usage of the SCHC framework (<a
href="https://www.rfc-editor.org/rfc/rfc8724"
target="_blank"
class="underline">RFC 8724</a
>) on Rust!
</p>
<div>
<ul class="list-disc mt-6">
<li class="ml-5">
Creation of Rust bindings of a C library implementing
the SCHC framework
</li>
<li class="ml-5">
Demonstration of SCHC with applications in Rust on x86
platform
</li>
<li class="ml-5">
Proof of concept usage of embedded STM32 controllers
exclusively in Rust
</li>
<li class="ml-5">
Transmission of knowledge to the technical team
</li>
</ul>
</div>
</ExperienceCard>
<ExperienceCard
backgroundColor="bg-sky-950"
logo="/icons/velorail.png"
logoTransparentBackground={true}
name="Vélorail du Kreiz Breizh"
dates="August 2021 - April 2022"
title="Freelance developer"
link={{ uri: "https://resa.velorail.bzh", label: "Online booking" }}
tech={["Angular", "NestJS", "GraphQL", "Rust", "Stripe"]}
>
<p>
Creation of an online booking platform focused on the tourist
activity of rail biking (vélorail).
</p>
<p>
During the first 5 months with the platform, 43% of the bookings
were made online.
</p>
<div>
<ul class="list-disc mt-6">
<li class="ml-5">
Design, UX, booking and payment flow for customers
</li>
<li class="ml-5">
Dashboard for managers with calendar view, manual
bookings, slots management
</li>
<li class="ml-5">
Ability to generate invoices, booking recaps for
managers
</li>
<li class="ml-5">
Sending emails to customers and managers about bookings
</li>
<li class="ml-5">
Online deployment, maintenance of the service
</li>
</ul>
</div>
</ExperienceCard>
<ExperienceCard
backgroundColor="bg-sky-950"
logo="/icons/yaakadev.png"
name="Yaakadev"
dates="April 2021 - July 2021"
title="Full-Stack developer"
tech={["NodeJS", "ExpressJS", "Angular", "MongoDB", "CI/CD"]}
>
<p>Maintenance of existing projects for clients</p>
<p>
Design, development and deployment of multiple projects from
scratch:
</p>
<div>
<ul class="list-disc mt-6">
<li class="ml-5">
Admin dashboard of a local merchants solution
</li>
<li class="ml-5">
Calendar planning application with filtering and custom
views
</li>
<li class="ml-5">
Intranet to upload and download documents
</li>
</ul>
</div>
</ExperienceCard>
<ExperienceCard
backgroundColor="bg-sky-950"
logo="/icons/epitech.png"
logoTransparentBackground={true}
name="Epitech"
dates="February 2020 - April 2021, September 2022 - February 2023"
title="Teaching assistant (AER)"
tech={["C", "C++", "Haskell", "Rust", "Web and mobile development"]}
>
<p>Pedagogical supervision of three classes of students</p>
<p>Conducting educational activities throughout the school year</p>
<div>
<ul class="list-disc mt-6">
<li class="ml-5">Start of projects</li>
<li class="ml-5">Technical help and guidance</li>
<li class="ml-5">Proctoring exams</li>
<li class="ml-5">Grading students on their work</li>
</ul>
</div>
</ExperienceCard>
<ExperienceCard
backgroundColor="bg-sky-950"
logo="/icons/ubiscale.png"
logoTransparentBackground={true}
name="Ubiscale"
dates="August 2019 - December 2019"
title="Embedded developer"
tech={["C on a ESP8266 controller", "Wi-Fi", "Bluetooth"]}
>
<p>Creation of a home Wifi gateway for an IoT object</p>
<p>
Research, reverse engineering of existing products, design and
implementation
</p>
</ExperienceCard>
</div>
</div>

View file

@ -0,0 +1,195 @@
---
import ExperienceCard from "./experience-card.astro";
---
<div>
<h1 class="text-4xl font-bold mb-4">Projects</h1>
<div class="mt-4 space-y-4">
<div
class="flex flex-col space-y-4 md:flex-row md:space-x-4 md:space-y-0"
>
<ExperienceCard
backgroundColor="bg-pink-950"
logo="/icons/ezidam.png"
logoTransparentBackground={true}
name="ezidam"
dates="January 2023 - May 2023"
title="Identity and Access Management system"
tech={[
"Rust",
"SQLite",
"OAuth2 / OIDC",
"TOTP",
"SMTP",
"Docker",
]}
>
<p>
A simple identity and access management system for SMEs or
personal use.
</p>
<p>Low maintenance required, easy to deploy and to backup.</p>
<div>
<ul class="list-disc mt-6">
<li class="ml-5">Users management</li>
<li class="ml-5">Roles management</li>
<li class="ml-5">
Assign users to roles and the other way around
</li>
<li class="ml-5">
OAuth2 / OIDC applications (code flow)
</li>
<li class="ml-5">Multi-Factor Authentication (TOTP)</li>
<li class="ml-5">
Password reset (via email or backup token)
</li>
<li class="ml-5">Simple administration panel</li>
<li class="ml-5">
Good security measures for users and administrators
</li>
</ul>
</div>
</ExperienceCard>
<ExperienceCard
backgroundColor="bg-pink-950"
name="pass4thewin"
dates="November 2020 - January 2021"
title="Password manager"
link={{
uri: "https://github.com/x4m3/pass4thewin",
label: "Source code",
}}
tech={["Windows", "Rust", "OpenPGP", "libgit2"]}
>
<p>
Port of <a
href="https://passwordstore.org"
class="underline"
target="_blank">pass</a
>, the standard unix password manager on the Windows
platform.
</p>
<p>
Command line application, compatible with existing secrets
</p>
<div>
<ul class="list-disc mt-6">
<li class="ml-5">Creation of a store</li>
<li class="ml-5">List secrets</li>
<li class="ml-5">Decrypt secret</li>
<li class="ml-5">
<s>Insert or generate secrets</s> Causes data corruption
</li>
<li class="ml-5">
<s>Edit existing secrets</s> Causes data corruption
</li>
<li class="ml-5">Synchronisation with git</li>
<li class="ml-5">TOTP support</li>
</ul>
</div>
</ExperienceCard>
</div>
<ExperienceCard
backgroundColor="bg-pink-950"
logo="/icons/naviarent.png"
name="NaviaRent"
dates="September 2020 - January 2023"
title="Epitech Innovative Project"
notAvailable={true}
image={{ uri: "/images/naviarent.jpg", breakpoint: "2xl" }}
tech={[
"NodeJS",
"Angular",
"Kotlin",
"SwiftUI",
"Docker",
"GitLab CI/CD",
"Raspberry Pi",
"ESP32",
]}
>
<p>A B2B platform helping rentals of standup paddle boards.</p>
<div>
<ul class="list-disc mt-6">
<li class="ml-5">
DevOps of all software in the NaviaRent stack
</li>
<li class="ml-5">Creation of the iOS application</li>
<li class="ml-5">
Contributions to the Android application
</li>
<li class="ml-5">Contributions to the backend server</li>
<li class="ml-5">
Creation and contributions to the web client
</li>
<li class="ml-5">Server administration, backups</li>
</ul>
</div>
</ExperienceCard>
<div
class="flex flex-col space-y-4 md:flex-row md:space-x-4 md:space-y-0"
>
<ExperienceCard
backgroundColor="bg-pink-950"
name="epitok"
dates="June 2020 - September 2020"
title="Presence system at Epitech"
notAvailable={true}
tech={["Rust", "HTML", "Bootstrap", "jQuery", "Docker"]}
>
<p>
A library and web client to simplify students presence at
Epitech.
</p>
<p>
Students are handed a piece of paper with a 6 digits number
(called a "token") to verify their presence at school
events.
</p>
<p>
Teachers use epitok to scan student cards with QR codes on
them instead of printing and handing tokens to students.
</p>
</ExperienceCard>
<ExperienceCard
backgroundColor="bg-pink-950"
name="epi.today"
dates="December 2019 - February 2020"
title="Calendar for Epitech"
notAvailable={true}
tech={["TypeScript", "HTML", "Bootstrap", "Docker"]}
>
<p>A viewer of the Epitech intranet calendar.</p>
<p>
Students and teachers glance at their planning without the
need to go on the school's intranet.
</p>
</ExperienceCard>
</div>
<ExperienceCard
backgroundColor="bg-pink-950"
logo="/icons/canvas.png"
name="canvas.place"
dates="April 2017 - January 2020"
title="Timelapse"
link={{ uri: "https://timelapse.canvas.place", label: "Website" }}
image={{ uri: "/images/canvas.png", breakpoint: "md" }}
tech={["FFmpeg", "Shell scripting", "nginx"]}
>
<p>canvas.place is a shared place to express creativity.</p>
<p>
People from all over the world share one single canvas to paint
on.
</p>
<p>I created and maintained a timelapse of the virtual canvas.</p>
</ExperienceCard>
</div>
</div>