Skip to content

Commit aae3d02

Browse files
authored
✏️ some update / cleanup
1 parent 19509e8 commit aae3d02

35 files changed

+282
-578
lines changed

.circleci/config.yml

Lines changed: 0 additions & 54 deletions
This file was deleted.

.github/workflows/deploy.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Build and Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
8+
jobs:
9+
build-and-deploy:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v4
15+
16+
- name: Setup Node.js
17+
uses: actions/setup-node@v4
18+
with:
19+
node-version: '21.6.0'
20+
cache: 'yarn'
21+
22+
- name: Install Dependencies
23+
run: yarn install --frozen-lockfile
24+
25+
- name: Build
26+
run: yarn build
27+
28+
- name: Deploy to GitHub Pages
29+
uses: peaceiris/actions-gh-pages@v3
30+
with:
31+
github_token: ${{ secrets.GITHUB_TOKEN }}
32+
publish_dir: ./public
33+
publish_branch: gh-pages
34+
cname: unirakun.fr
35+
user_name: 'github-actions[bot]'
36+
user_email: 'github-actions[bot]@users.noreply.github.com'

src/components/Card.jsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@ export default styled.div`
55
max-width: 25em;
66
margin: 1em;
77
border-radius: .5em;
8-
background-color: ${({ theme }) => theme.fg};
9-
color: ${({ theme }) => theme.bg};
8+
background-color: ${({ bg, theme }) => bg || theme.fg};
9+
color: ${({ fg, theme }) => fg || theme.bg};
10+
border: 1px solid ${({ bg, theme }) => bg || theme.bg};
1011
1112
&:hover {
12-
box-shadow: 0 0 20px -5px black;
13+
box-shadow: 0 0 20px -5px ${({ bg, theme }) => bg || theme.fg};
1314
}
1415
1516
& > * {
1617
margin: 1rem 0;
1718
}
18-
`
19+
`

src/components/Info.jsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,32 @@ const Name = styled.span`
88
const Firstname = styled.span`
99
font-weight: bold;
1010
margin-right: 0.3em;
11+
color: ${({ color, theme }) => color || theme.primary};
1112
`
1213

1314
const Title = styled.div`
1415
font-size: 0.8em;
15-
color: ${({ theme }) => theme.grey};
16+
color: ${({ color, theme }) => color || theme.grey};
1617
`
1718

1819
const Info = ({
1920
className,
2021
firstName,
22+
firstNameColor,
2123
name,
2224
title,
25+
titleColor
2326
}) => (
2427
<div className={className}>
2528
<span>
26-
<Firstname>
29+
<Firstname color={firstNameColor}>
2730
{firstName}
2831
</Firstname>
2932
<Name>
3033
{name}
3134
</Name>
3235
</span>
33-
<Title>
36+
<Title color={titleColor}>
3437
{title}
3538
</Title>
3639
</div>
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
module.exports = `Fabien est un <b>développeur fullstack</b> qui s'intéresse à tout, expert <b>Javascript.</b>
2-
Il est présent sur Youtube, et sur github où ses projets suivent tous une même phylosophie&nbsp;:&nbsp;tendre vers le <b>code le plus propre</b> possible et être <b>KISS.</b>
3-
Travailler avec Fabien c'est l'assurance d'un projet qui avance.
1+
module.exports = `Fabien is a <b>fullstack developer</b> interested in everything, <b>Javascript</b> expert.
2+
He is present on Youtube and Github where all his projects follow the same philosophy&nbsp;:&nbsp;aiming for the <b>cleanest code</b> possible and being <b>KISS.</b>
3+
He worked at <b>BeReal</b> during their high growth phase, where he designed and built critical microservices serving <b>millions of requests per second</b>, including the users microservice handling <b>9M users/s</b>.
4+
Working with Fabien means the assurance of a project that moves forward.
45
`
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
module.exports = {
2+
title: 'Senior Software Engineer',
3+
for: {
4+
name: 'BeReal',
5+
color: '#000000',
6+
},
7+
dates: {
8+
from: Date.UTC(2022, 0),
9+
to: Date.UTC(2024, 11),
10+
},
11+
informations: [
12+
{ text: 'BeReal is a social media app that allows users to share authentic, unfiltered moments with friends, capturing what they\'re doing at the moment.' },
13+
{ text: 'I started at BeReal as the 4th backend engineer during the company\'s high growth phase. Initially hired as a Fullstack engineer, I quickly transitioned to focus on backend development where the company needed me most.' },
14+
{ text: 'I redesigned and rewrote the moderation system to make it scalable, then designed and led the development of the friends of friends feed API.' },
15+
{ text: 'I co-designed and developed the chat API, which was the first Golang API for BeReal, using gRPC, Golang and Spanner.' },
16+
{ text: 'I designed and created the first microservice at BeReal: the feature flag system. This first gRPC/Golang microservice handles millions of requests per second with a P99 of 10ms and a median of 1ms.' },
17+
{ text: 'I designed and created the users microservice, now the most important service at BeReal. It serves 9M users per second, with a P99 of 30ms to retrieve 50 users and a P50 of 1ms.' },
18+
{ text: 'I introduced several key patterns still used at BeReal: auto-batching downstream requests in NodeJS and Golang, elastic Redis cluster using k8s informer pattern and consistent hashing, warmup procedures, and data migration procedures.' },
19+
{ text: 'I optimized the load balancing efficiency in the k8s cluster and reduced costs by improving the HPA scaling algorithm for faster scale-up and scale-down.' },
20+
{ text: 'I created a Job framework with UI designed on top of argo-events to provide a simple and efficient job system leveraging BeReal\'s specific needs.' },
21+
{
22+
text: 'Missions:',
23+
children: [
24+
{ text: 'Redesigned and rewrote the moderation system for scalability' },
25+
{ text: 'Designed and led development of friends of friends feed API' },
26+
{ text: 'Co-designed and developed the chat API (first Golang API)' },
27+
{ text: 'Created the feature flag microservice (first gRPC/Golang microservice)' },
28+
{ text: 'Designed and created the users microservice (9M users/s)' },
29+
{ text: 'Introduced auto-batching patterns for NodeJS and Golang' },
30+
{ text: 'Implemented elastic Redis cluster with k8s informer pattern' },
31+
{ text: 'Optimized k8s load balancing and HPA scaling algorithm' },
32+
{ text: 'Created Job framework and UI on top of argo-events' },
33+
{ text: 'Set up proper Golang monorepo and CI configuration' },
34+
],
35+
},
36+
{
37+
text: 'Technologies used:',
38+
children: [
39+
{ text: 'Golang, NodeJS, TypeScript' },
40+
{ text: 'gRPC, GraphQL' },
41+
{ text: 'Google Cloud Spanner, Redis' },
42+
{ text: 'Kubernetes, Docker' },
43+
{ text: 'Argo Events' },
44+
],
45+
},
46+
],
47+
}

src/data/members/fabien/experiences/chargeProjet.js

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/data/members/fabien/experiences/concepteur.js

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/data/members/fabien/experiences/darvaBatchDatalake.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module.exports = {
2-
title: 'Lead Développeur Backend',
2+
title: 'Lead Backend Developer',
33
client: {
44
name: 'DARVA',
55
color: '#748694',
@@ -13,27 +13,27 @@ module.exports = {
1313
to: Date.UTC(2019, 11),
1414
},
1515
informations: [
16-
{ text: 'DARVA est une entreprise experte en solutions web et EDI (Echanges de Données Informatisés) basée à Niort et destiné à tous les acteurs professionnels de l\'assurance.' },
17-
{ text: 'DARVA souhaitant s\'appuyer de plus en plus sur la masse de données qu\'ils traitent, ils leur est nécessaire d\'intégrer celles-ci dans un datalake accessible à tous les services.' },
18-
{ text: 'Dans ce but, nous avons agis sur le stockage des données liées aux sinistres au travers d\'un batch NodeJS. Il se doit d\'être modulaire, réutilisable, et très performant puisque plusieurs gigaoctets de données doivent être traitées dans une courte fenêtre de temps.' },
19-
{ text: 'Grâce aux streams NodeJS les données sont décodées, désérialisées, puis enregistrées en base de données MongoDB au fil de l\'eau.' },
20-
{ text: 'Afin de maitriser la performance du batch, nous avons mis en place des métriques permettant de suivre la vélocité de nos algorithmes tout au long de nos développements.' },
21-
{ text: 'Une fois cette mission terminée, nous avons réalisé le POC d\'une interface graphique permettant de mieux comprendre la structure des données concernées.'},
16+
{ text: 'DARVA is a company expert in web solutions and EDI (Electronic Data Interchange) based in Niort and serving all professional insurance actors.' },
17+
{ text: 'As DARVA wants to increasingly rely on the mass of data they process, it is necessary for them to integrate it into a datalake accessible to all services.' },
18+
{ text: 'To this end, we worked on storing claims-related data through a NodeJS batch. It must be modular, reusable, and very performant since several gigabytes of data must be processed in a short time window.' },
19+
{ text: 'Thanks to NodeJS streams, data is decoded, deserialized, and then stored in MongoDB database on the fly.' },
20+
{ text: 'In order to control the batch performance, we implemented metrics to track the velocity of our algorithms throughout our development.' },
21+
{ text: 'Once this mission was completed, we created a POC of a graphical interface allowing better understanding of the data structure.'},
2222
{
23-
text: 'Missions :',
23+
text: 'Missions:',
2424
children: [
25-
{ text: 'Développement d\'un Batch d\'intégration de données' },
26-
{ text: 'Algorithme et métriques de performance' },
27-
{ text: 'Passage de connaissances aux équipes internes' },
28-
{ text: 'Proposition d\'un POC d\'une interface graphique de naviguation dans la structure des données' },
25+
{ text: 'Development of a data integration batch' },
26+
{ text: 'Algorithm and performance metrics' },
27+
{ text: 'Knowledge transfer to internal teams' },
28+
{ text: 'Proposal of a POC for a graphical interface to navigate through data structure' },
2929
],
3030
},
3131
{
32-
text: 'Technologies utilisées : ',
32+
text: 'Technologies used:',
3333
children: [
3434
{ text: 'Javascript, NodeJS, MongoDB' },
35-
{ text: 'ReactJS, D3 et Layout homemade' },
36-
{ text: 'Jest et tests de performances sur-mesure' },
35+
{ text: 'ReactJS, D3 and homemade Layout' },
36+
{ text: 'Jest and custom performance tests' },
3737
{ text: 'Docker' },
3838
{ text: 'Github' },
3939
],

src/data/members/fabien/experiences/darvaExpertise.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module.exports = {
2-
title: 'Expert et formateur NodeJS',
2+
title: 'NodeJS Expert and Trainer',
33
client: {
44
name: 'DARVA',
55
color: '#748694',
@@ -13,28 +13,28 @@ module.exports = {
1313
to: Date.UTC(2018, 11),
1414
},
1515
informations: [
16-
{ text: 'DARVA est une entreprise experte en solutions web et EDI (Echanges de Données Informatisés) basée à Niort et destiné à tous les acteurs professionnels de l\'assurance' },
17-
{ text: 'J\'interviens dans le service BI pour les aider à réaliser des scripts NodeJS de préparation de données dans leur datalake MongoDB.' },
18-
{ text: 'Cette prestation était réalisée en partie à distance et j\'intervenais quelques jours réparties dans l\'année.' },
16+
{ text: 'DARVA is a company expert in web solutions and EDI (Electronic Data Interchange) based in Niort and serving all professional insurance actors' },
17+
{ text: 'I worked with the BI service to help them create NodeJS scripts for data preparation in their MongoDB datalake.' },
18+
{ text: 'This service was provided partly remotely and I worked a few days spread throughout the year.' },
1919
{
20-
text: 'Missions : ',
20+
text: 'Missions:',
2121
children: [
22-
{ text: 'Mise en place de l\'architecture "monorepo" du projet de gestion des vues du datalake' },
23-
{ text: 'Conseils et relectures du code produit par l\'équipe BI' },
24-
{ text: 'Formation NodeJS de l\'équipe BI' },
25-
{ text: 'Développement d\'outils d\'aide aux développements des scripts de préparation de données' },
26-
{ text: 'Mise en place des outils de qualités : documentation générée (JSDoc), tests unitaires (Jest), tests d\'intégration (Jest + Docker)' },
22+
{ text: 'Implementation of the "monorepo" architecture for the datalake views management project' },
23+
{ text: 'Advice and code reviews of code produced by the BI team' },
24+
{ text: 'NodeJS training for the BI team' },
25+
{ text: 'Development of tools to help develop data preparation scripts' },
26+
{ text: 'Implementation of quality tools: generated documentation (JSDoc), unit tests (Jest), integration tests (Jest + Docker)' },
2727
],
2828
},
2929
{
30-
text: 'Technologies utilisées :',
30+
text: 'Technologies used:',
3131
children: [
3232
{ text: 'Github / Jenkins' },
3333
{ text: 'NodeJS' },
3434
{ text: 'MongoDB' },
3535
{ text: 'Jest' },
3636
{ text: 'Docker' },
37-
{ text: 'Divers bibliothèques NodeJS' },
37+
{ text: 'Various NodeJS libraries' },
3838
],
3939
},
4040
],

0 commit comments

Comments
 (0)