diff --git a/src/lib/components/custom/img.svelte b/src/lib/components/custom/img.svelte index a155f97..e160aa9 100644 --- a/src/lib/components/custom/img.svelte +++ b/src/lib/components/custom/img.svelte @@ -4,3 +4,12 @@ + + diff --git a/src/lib/types.ts b/src/lib/types.ts index 2708d7c..597f01a 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -1,4 +1,4 @@ -export type Categories = 'Angular' | 'Other' +export type Categories = 'Angular' | 'Conference' | 'Other' export type Post = { title: string @@ -7,6 +7,8 @@ export type Post = { date: string categories: Categories[] published: boolean + coverSrc?: string + coverAlt?: string readingTime: { text: string } diff --git a/src/posts/becomeSpeaker.md b/src/posts/becomeSpeaker.md new file mode 100644 index 0000000..c55ec66 --- /dev/null +++ b/src/posts/becomeSpeaker.md @@ -0,0 +1,124 @@ +--- +title: Devenir Speaker. Une aventure incroyable ! +description: En 2022, je suis sorti de mon petit confort pour devenir Speaker. +published: true +slug: becomeSpeaker +date: '2024-05-07' +coverSrc: ./becomeSpeaker/cinema.jpeg +categories: + - Conference +--- + +# Comment je suis devenu speaker + +Je suis devenu, en 2022, un Speaker, un vrai. Je vais vous raconter comment cela est arrivé. + +## Fixer des objectifs + +Comme beaucoup de monde, j'aime beaucoup me dépasser, me challenger. Pour cela, je me fixe des objectifs à atteindre et mets tout en œuvre pour pouvoir y arriver. + +En 2021, je n'avais plus d'objectifs professionnels. Lors d'une soirée après une journée de conférence, un Speaker m'a demandé pourquoi je n'essayerais pas de devenir Speaker moi-même. Il m'a trouvé tout un tas d'arguments (plus ou moins valables). C'est ainsi que l'idée m'est venue. Mais comment se sentir légitime dans ce monde fermé où l'on croise quasiment toujours les mêmes têtes ? J'ai donc continué en posant la question à plusieurs Speakers. Les réponses variaient bien sûr, mais celle qui m'a convaincu c'est celle-ci : "Tu crois que je suis un expert ? Certainement pas ! Je suis certainement moins compétent que toi. Toutefois, je partage mon expérience. N'importe qui peut en faire autant, ce n'est pas une question de compétence mais d'histoire à raconter." + +## Le syndrome de l'imposteur + +Comme beaucoup de développeurs, j'étais atteint du syndrome de l'imposteur. Vous connaissez sûrement. + +Ce syndrome correspond à un sentiment de doute sur nos capacités et sur notre légitimité à faire ce que l'on fait. + +Pour combattre ce symptôme, je me suis fait accompagner d'un mentor. Le fait de ne pas être seul et d'avoir une "béquille" de secours en cas de problème permet de surmonter cette crainte. + +Il m'a fallu monter sur scène une première fois (peut-être même une seconde) pour que ce syndrome disparaisse. + +## L'objectif est fixé, mais où commencer + +N'ayant aucune connaissance de ce monde, la première question que l'on se pose est : comment y entrer ? + +![Conference Hall](./becomeSpeaker/confHall.png) + +En France, il existe la plateforme [conference hall](https://conference-hall.io/) qui permet de créer un résumé de ses sujets afin de les soumettre à une ou plusieurs conférences. Une fois soumis, il existe un processus de validation au sein des comités d'organisation des conférences afin de choisir quels sujets ils souhaitent proposer. + +❗️Attention, toutes les conférences n'utilisent pas cet outil. + +Il nous manque encore le sujet. + +## Choisir son sujet + +Encore une fois, plein de questions viennent à se poser. Quel sujet vais-je choisir ? Lorsqu'on en trouve un, va-t-il plaire suffisamment pour être choisi ... + +Afin de maximiser nos chances d'être sélectionné, nous sommes partis sur 2 sujets sur des axes opposés : + +- Un premier orienté problème technique pointu destiné à un public d'experts sur une technologie donnée. +- Un second grand public en faisant un retour d'expérience sur une technologie JavaScript. + +Sans grande surprise, le premier sujet ne fut choisi par aucune conférence, contrairement au second qui a eu beaucoup plus de succès. + +## Faire naitre son talk + +Une fois le sujet choisi, le vrai travail commence. + +Pour raconter un REX, il faut déjà avoir une expérience. C'est-à-dire avoir des choses à raconter et un avis sur le sujet. + +Tout a commencé avec des POCs, une étude de l'état de l'art, des vidéos et des lectures d'articles afin de se renseigner sur les limites de l'outil afin de pouvoir les explorer par nous-mêmes. + +Il faut ensuite trouver un bon résumé afin de pouvoir soumettre son talk rapidement. + +Il existe plusieurs écoles: + +- Finaliser son talk avant de soumettre +- Soumettre et attendre d'être pris avant de finaliser + +Je suis plutôt de la seconde école. + +## Soumettre son sujet + +Afin de soumettre son sujet, il faut faire des choix. + +D'abord un format. Il existe plusieurs délais : 15 min, 30 min, 45 - 50 min, 1h30, 3h. Chaque sujet n'a pas forcément un temps idéal, mais il faut choisir celui qui lui correspond le mieux. On va se baser sur sa complexité, le nombre d'informations à faire passer ... + +Ensuite un type. Conférence, Atelier. Chaque sujet a un type privilégié. Lorsqu'on veut présenter un REX, les deux formats peuvent correspondre. Nous avons choisi le format conférence en mode live coding pour notre part. + +## Finaliser son sujet + +Ça y est, la première acceptation est arrivée. Merci à Devfest Lille. + +Il est temps d'écrire son sujet. Le syndrome de la page blanche commence. Il y a beaucoup à dire. Mais par où commencer ? Comment créer l'histoire de ce que l'on veut raconter ? + +Nous avons défini un plan d'action afin de nous séparer les tâches et pouvoir créer l'histoire voulue. Plusieurs essais et adaptations plus tard, nous étions prêts à donner la conférence. + +## La scène + +La date approchant, comme tout à chacun, le stress arrive. + +Puis le planning devient disponible. On s'aperçoit qu'on est sur la grande scène juste après la keynote. Le stress grimpe encore. + +Pour combattre ce stress. Nous avons redoublé les essais afin d'être certains d'être prêts. + +## Le grand jour + +Finalement le jour du talk arrive. Un sentiment partagé entre l'excitation de réussir ce challenge, le stress de franchir le pas et de monter sur scène et ce sentiment toujours présent d'illégitimité à être présent à cet endroit, encore plus lorsque je vois la salle. Comble de la malchance, j'ai perdu ma voix la veille au soir. + +On monte sur scène enfin. La préparation commence. On positionne l'ordinateur, les micros. Jusque-là tout va bien. Sauf que je suis trop petit. Heureusement l'organisation est au top et trouve une solution très rapidement. + +Puis l'attente arrive. La salle se remplit. Le stress monte encore. + +Enfin c'est notre moment. Je me lance. Au bout de quelques secondes / minutes, le stress retombe. Tout se passe comme aux répétitions. J'oublie toutefois du contenu mais rien de dramatique, à part moi et mon mentor personne n'est au courant, ce problème n'est donc que dans mon esprit. + +La fin arrive avec les applaudissements, les questions. La partie la plus difficile car non préparée. On ne sait pas à quoi s'attendre. Tout se passe sans difficulté. + +On descend enfin de scène. Des personnes viennent nous voir, pour nous remercier, nous poser des questions par rapport à leur problématique ... Nous sommes sur un petit nuage. + +Puis enfin on se retrouve seul avec un sentiment de béatitude, la tête dans le cloud. Plus qu'une seule question. Quand recommence-t-on ? + +## La suite + +Cette conférence a été sélectionnée 9 fois. Nous avons donc parcouru la France pour donner cette même conférence, souvent mise à jour, adaptée en fonction des questions que nous avions eu et de l'évolution de la technologie présentée ... + +Aujourd'hui je continue ce voyage en testant d'autres formats. Cette année j'ai même eu la chance d'être sélectionné à Devoxx France pour un Hands on. De plus, je suis devenu mentor moi-même en faisant entrer dans ce monde une personne atteinte du syndrome de l'imposteur au même titre que moi au début de cette expérience. + +Ce sentiment de béatitude est toujours là. Tant que je retrouverai ce sentiment, je continuerai à être Speaker. + +## La vidéo + +La vidéo de cette conférence est disponible en cliquant sur l'image ci-dessous : + +[![Vidéos de la conférence](./becomeSpeaker/firstTalk.jpg)](https://youtu.be/GJuEQ35POO8?si=_16OY2QyBlRiRwEH "Vidéos de la conférence") \ No newline at end of file diff --git a/src/posts/becomeSpeaker/index.md b/src/posts/becomeSpeaker/index.md deleted file mode 100644 index 6029d1b..0000000 --- a/src/posts/becomeSpeaker/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Become speaker. -description: In 2022, I would launch me a challenge. Become a speaker. -published: true -slug: becomeSpeaker -date: '2024-05-06' -categories: - - Other ---- - -# How I became a Speaker - -It has been an incredible journey for me to become a Speaker this year. Let me share my story with you. - -## Setting the Goal - -In 2022 (2 years ago), I launched myself a new challenge by chatting with some Speakers at Devoxx France Conference. Become a speaker. - -This idea was not coming from me. It was a speaker who said : -- "why not try it ?" - -At this moment I said something like : -- "I can't I have not enough experience, who am I to talk front of many persons ?" - -I was affected by imposter syndrome. - -## Fight against Imposter Syndrome - -One of the biggest challenges I faced on my journey to becoming a Speaker was dealing with Impostor Syndrome. It's a common feeling among many aspiring speakers, where you doubt your own abilities and feel like a fraud, despite evidence of your accomplishments. - -To overcome this, I had to remind myself that I had valuable knowledge and experiences to share. I focused on building my confidence by practicing my talks. - -I found a trusted mentor (Christophe Jollivet) to support me and help me to know how enter in this new world. - -## Preparing for the Journey - -I knew I had to put in a lot of effort and preparation. I started by researching the topics. At the begining I would like to talk about JavaScript subject to permit to use my knowledge to create the talk and fight the stage fright before begin. We decided with my mentor to work on 2 subjects to increase the chance to be selected for a talk. - -## Crafting the Talk - -Once we had chosen topic, I spent countless hours crafting the talk. I wanted to make sure that every slide, every demo, and every word I spoke would leave a lasting impression on the audience. I sought feedback from my peers and made several iterations to refine my presentation. - -## Submitting the Proposal - -With the talk ready, we submitted the proposal to the most of organizing committee available. I was thrilled when I received the confirmation that my talk had been accepted. It was a validation of all the hard work I had put into preparing for this moment. - - - - -## Preparing for the Stage - -As the conference date approached, I dedicated myself to rehearsing my talk. I practiced a lot. I wanted to ensure that I would deliver a flawless presentation on the big day. - -I was reassure to not be alone on first try. I think it is a big luck to have someone to help and convince you in doubt moment. - -## The Big Day - - - -Finally, the day of my talk arrived. I felt a mix of excitement and nervousness as I stepped onto the stage. I was sick. I have lost my voice the day before. The stress was maximum. But as soon as I started speaking, all my nerves disappeared. It was an incredible experience to share my knowledge and insights with such an enthusiastic audience. - - - -At the end, you are like drug guy who take a fix. The cloud is your neighboor. It was an incredible feeling. - -## Now - -I continue this journey by myself. I am trying other type talk as "Hands on" this year. - -The Graal arrived when I received the acceptance from Devoxx France this year. - -I will continue in the futur ! diff --git a/src/posts/whyUpgradeFwk/index.md b/src/posts/whyUpgradeFwk.md similarity index 100% rename from src/posts/whyUpgradeFwk/index.md rename to src/posts/whyUpgradeFwk.md diff --git a/src/routes/[slug]/+page.svelte b/src/routes/[slug]/+page.svelte index bb89e41..2120c51 100644 --- a/src/routes/[slug]/+page.svelte +++ b/src/routes/[slug]/+page.svelte @@ -11,6 +11,14 @@ +{#if data.meta.coverSrc} + {#if data.meta.coverAlt} + {data.meta.coverAlt} + {:else} + {data.meta.title} + {/if} +{/if} +
@@ -31,3 +39,16 @@
+ + \ No newline at end of file diff --git a/src/routes/[slug]/+page.ts b/src/routes/[slug]/+page.ts index b199c61..4d62496 100644 --- a/src/routes/[slug]/+page.ts +++ b/src/routes/[slug]/+page.ts @@ -3,7 +3,7 @@ export const prerender = true; export async function load({ params }) { try { - const post = await import(`../../posts/${params.slug}/index.md`); + const post = await import(`../../posts/${params.slug}.md`); return { content: post.default, meta: post.metadata diff --git a/src/routes/api/posts/+server.ts b/src/routes/api/posts/+server.ts index 6544de8..cf0b01b 100644 --- a/src/routes/api/posts/+server.ts +++ b/src/routes/api/posts/+server.ts @@ -7,13 +7,13 @@ async function getPosts() { const paths = import.meta.glob('/src/posts/**/*.md', { eager: true }) for (const path in paths) { - const file = paths[path]; - const slug = path.split('/').at(-2); + const file = paths[path] + const slug = path.split('/').at(-1)?.replace('.md', ''); if (file && typeof file === 'object' && 'metadata' in file && slug) { - const metadata = file.metadata as Omit; - const post = { ...metadata, slug } satisfies Post; - post.published && posts.push(post); + const metadata = file.metadata as Omit + const post = { ...metadata, slug } satisfies Post + post.published && posts.push(post) } } diff --git a/src/routes/posts/+page.svelte b/src/routes/posts/+page.svelte index 5a65d9f..a7f6127 100644 --- a/src/routes/posts/+page.svelte +++ b/src/routes/posts/+page.svelte @@ -5,8 +5,8 @@ - Posts list - + Liste des postes + diff --git a/src/routes/styles.css b/src/routes/styles.css index 6627cb8..e7e2788 100644 --- a/src/routes/styles.css +++ b/src/routes/styles.css @@ -15,29 +15,23 @@ body { h1 { font-weight: 700; + font-size: 2rem; } h2 { font-weight: 500; + font-size: 1.5rem; } p { font-weight: 400; line-height: 1.5; } -h1 { - font-size: 2rem; -} - -h2 { - font-size: 1rem; -} - @media (width > 720px) { h1 { - font-size: 2.4rem; + font-size: 2.5rem; } h2 { - font-size: 1.2rem; + font-size: 1.8rem; } } \ No newline at end of file diff --git a/static/becomeSpeaker/cinema.jpeg b/static/becomeSpeaker/cinema.jpeg new file mode 100644 index 0000000..6b1660d Binary files /dev/null and b/static/becomeSpeaker/cinema.jpeg differ diff --git a/static/becomeSpeaker/confHall.png b/static/becomeSpeaker/confHall.png new file mode 100644 index 0000000..7c10486 Binary files /dev/null and b/static/becomeSpeaker/confHall.png differ diff --git a/static/becomeSpeaker/devfestLilleRoom.jpeg b/static/becomeSpeaker/devfestLilleRoom.jpeg new file mode 100644 index 0000000..6b1660d Binary files /dev/null and b/static/becomeSpeaker/devfestLilleRoom.jpeg differ diff --git a/static/becomeSpeaker/firstTalk.jpg b/static/becomeSpeaker/firstTalk.jpg new file mode 100644 index 0000000..89d5da4 Binary files /dev/null and b/static/becomeSpeaker/firstTalk.jpg differ