<script setup lang="ts">
defineOgImageComponent('Site', {
  title: 'CV'
})
</script>

<template>

<HeaderBig />

<!-- CV -->
<div class="sm:mt-[100px] sm:mb-[200px] flex flex-col w-fit m-auto">

<!-- Professional experience -->
<div class="sm:mt-[50px] mt-8">
    <h2 style="margin-bottom: 20px;">Professional experience</h2>

    <div class="grid-flow-col section">

    <p class="date">2025 - Now</p>
    <p style="max-width: 1015px;"><strong>Sofware engineer</strong>, Canonical, Ubuntu engineering</p>
    <p class="subtext" style="max-width: 1015px;">Working on Ubuntu support for RISC-V architecture</p>  
    <div class="entry-sep" />

    <p class="date">2025</p>
    <p style="max-width: 1015px;"><strong>Master's internship</strong>, ONERA, “Probabilistic analysis of execution time on multi/manycore heterogeneous boards for optimal task mapping”</p>
    <p class="subtext" style="max-width: 1015px;">Real-time multicore optimal task mapping using a solver that automatically measures a pWCET for a solution on target platform</p>  
    <div class="entry-sep" />

    <p class="date">Summer 2023</p>
    <p style="max-width: 1015px;"><strong>Master's internship</strong>, Huawei Research Zurich, “Improving performances of virtualized servers by removing the guest kernel/user isolation layer”</p>
    <p class="subtext">Working on a Linux kernel patch to allow programs to run in kernel mode</p>
    <div class="entry-sep" />

    <p class="date">2022 - 2023</p>
    <p style="max-width: 1015px;"><strong>Master's research project</strong>, IRISA (Rennes), “Transparent use of node-local storage for asynchronous I/O on supercomputers”</p>
    <p class="subtext">Library replacing MPI-IO calls, caching data locally, with neighbour communication</p>
    <div class="entry-sep" />

    <p class="date">Summer 2022</p>
    <p style="max-width: 1015px;"><strong>Bachelor's internship</strong>, IRIT (Toulouse), “Reducing traffic in data centers by avoiding the transition of data through intermediate servers”</p>
    <p class="subtext">Library replacing read/write, using memory protection to provide data on-demand</p>
    <div class="entry-sep" />

    </div>
</div>

<!-- Education -->
<div>
    <h2 style="margin-bottom: 20px;">Education</h2>

    <div class="section">

    <p class="date">2024 - 2025</p>
    <p><strong>M2 SIF</strong>, ENS Rennes, Second year of CS Master's Degree (Research)</p>
    <div class="entry-sep" />

    <p class="date">2023 - 2024</p>
    <p><strong>Agrégation</strong>, ENS Rennes, Preparation for national competitive exam</p>
    <p class="subtext">'Agrégé' in computer science, rank 14/22</p>
    <div class="entry-sep" />

    <p class="date">2022 - 2023</p>
    <p><strong>M1 SIF</strong>, ENS Rennes, First year of CS Master's Degree (Research)</p>
    <div class="entry-sep" />

    <p class="date">2021 - 2022</p>
    <p><strong>L3 SIF</strong>, ENS Rennes, Last year of CS Bachelor's Degree</p>
    <div class="entry-sep" />

    <p class="date">2018 - 2021</p>
    <p style="max-width: 1015px;"><strong>Prépa</strong>, Lycée Bellevue Toulouse, two-year intensive program preparing
        for the national competitive exams for entry to engineering schools.</p>
    <p class="subtext">Prépa MPSI/MP, entry to ENS Rennes</p>
    <div class="entry-sep" />

    </div>
</div>

<!-- Personal projects -->
<div class="sm:mt-12 mt-5">
    <h2 style="margin-bottom: 20px;">Personal projects</h2>

    <div class="section">

    <p class="date">2023 - 2024</p>
    <p style="max-width: 1015px;"><a href="https://git.vhaudiquet.fr/vhaudiquet/vriscv/" target="_blank" rel="noopener noreferrer"><strong>RISC-V simulator</strong></a></p>
    <p class="subtext">Basic RISC-V processor simulator, capable of running BBL and booting Linux</p>
    <div class="entry-sep" />

    <p class="date">2022 - 2023</p>
    <p style="max-width: 1015px;"><strong>Java Virtual Machine implementation</strong>, school project</p>
    <p class="subtext">Basic C JVM for GNU/Linux, Java 8 specs, using OpenJRE runtime</p>
    <div class="entry-sep" />

    <p class="date">2018 - Now?</p>
    <p style="max-width: 1015px;"><a href="https://github.com/vhaudiquet/BladePlayer/" target="_blank" rel="noopener noreferrer"><strong>Blade Player</strong></a>, Android multi-source music player</p>
    <p class="subtext">Maintaining for 100+ users this Android application that plays music from Spotify or Deezer</p>
    <div class="entry-sep" />

    <p class="date">2018 - 2020</p>
    <p style="max-width: 1015px;"><a href="https://github.com/vhaudiquet/vk/" target="_blank" rel="noopener noreferrer"><strong>Operating system kernel development</strong></a>,x86 architecture</p>
    <p class="subtext">Basic operating system kernel, with drivers, filesystem, Newlib ported, dash shell</p>
    <div class="entry-sep" />

    </div>
</div>

<!-- Skills -->
<div class="sm:mt-12 mt-5">
    <h2 style="margin-bottom: 20px;">Skills</h2>

    <div class="section">

    <p style="margin-left: 10px; font-weight: 500; grid-column: 1;">Programming languages</p>
    <p class="sm:col-start-2 col-start-1" style="max-width: 900px;">C, Assembly (x86, RISC-V, ARM), Java, TypeScript/JavaScript, Kotlin, Python, OCaml</p>

    <p style="margin-left: 10px; font-weight: 500;">DevOps / Workflow</p>
    <p>Linux, Bash, Git, CI/CD, Docker, Kubernetes, virtual machines</p>

    <p style="margin-left: 10px; font-weight: 500;">Presentation tools</p>
    <p>LaTeX, Figma, HTML/CSS, Inkscape, Gimp</p>

    <p style="margin-left: 10px; font-weight: 500;">Spoken languages</p>
    <p>French (native), English (fluent), Spanish (basic)</p>

    </div>
</div>

<!-- Contact -->
<div class="sm:mt-12 mt-5 sm:mb-0 mb-8">
    <h2 style="margin-bottom: 20px;">Contact</h2>

    <div class="section">

    <p style="margin-left: 10px; font-weight: 500; grid-column: 1;">E-Mail</p>
    <a href="mailto:valentin.haudiquet@ens-rennes.fr" style="grid-column: 2;"><p style="grid-column: 2;">valentin.haudiquet@ens-rennes.fr</p></a>
    
    <p style="margin-left: 10px; font-weight: 500;">Website</p>
    <a href="https://vhaudiquet.fr" target="_blank" rel="noopener noreferrer"><p>https://vhaudiquet.fr</p></a>

    <p style="margin-left: 10px; font-weight: 500;">Phone number</p>
    <p>+33 7 87 18 09 65</p>

    <p style="margin-left: 10px; font-weight: 500;">Street address</p>
    <p>30 rue Achille Viadieu, 31400 Toulouse, France</p>

    <p style="margin-left: 10px; font-weight: 500;">GitHub</p>
    <a href="https://github.com/vhaudiquet/" target="_blank" rel="noopener noreferrer"><p>vhaudiquet</p></a>

    </div>
</div>


</div>
</template>

<style lang="css" scoped>

.section {
    display: grid;
    grid-auto-flow: row;
    column-gap: 50px;
    width: fit-content;
}

.date {
    margin-left: 10px;

    font-style: italic;
}

.subtext {
    font-weight: 200;
    font-size: 26px;
    grid-column: 2;
}

h2 {
    font-size: 40px;

    margin-top: 5px;
    margin-bottom: 5px;
}
p {
    font-size: 30px;

    margin-top: 5px;
    margin-bottom: 5px;
}

.entry-sep {
    grid-column: 2;
}

@media only screen and (max-width: 450px) {
    h2 {
        font-size: 30px;
        margin-top: 2px;
        margin-bottom: 2px;

        margin-left: 5px;
    }
    p {
        font-size: 20px;
        margin-left: 10px;

        margin-top: 0px;
        margin-bottom: 0px;
    }
    .subtext {
        grid-column: 1;
        font-size: 18px;
        margin-left: 10px;
    }
    .entry-sep {
        grid-column: 1;
        margin-top: 20px;
        margin-top: 20px;
    }
}

</style>