<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Samuel-Zacharie FAURE</title>
    <description>The latest articles on DEV Community by Samuel-Zacharie FAURE (@samuelfaure).</description>
    <link>https://dev.to/samuelfaure</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F260009%2Fe299cfe5-54c7-449d-9b51-cfa2facee1c5.jpeg</url>
      <title>DEV Community: Samuel-Zacharie FAURE</title>
      <link>https://dev.to/samuelfaure</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/samuelfaure"/>
    <language>en</language>
    <item>
      <title>The AI development trap that wastes your time</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Thu, 30 Oct 2025 11:33:09 +0000</pubDate>
      <link>https://dev.to/samuelfaure/the-ai-programming-sunk-cost-fallacy-loop-and-how-to-break-it-13d6</link>
      <guid>https://dev.to/samuelfaure/the-ai-programming-sunk-cost-fallacy-loop-and-how-to-break-it-13d6</guid>
      <description>&lt;p&gt;Have this ever happened to you?&lt;/p&gt;

&lt;p&gt;You are asking your AI agent to develop something, correct a bug, or whatnot.&lt;/p&gt;

&lt;p&gt;It's currently completely lost. You are burning a huge amount of tokens, and wasting your time. Despite refining your prompts more and more, it's just refusing to correctly do what you're asking it to do.&lt;/p&gt;

&lt;p&gt;What's happening and how to avoid this annoying cycle?&lt;/p&gt;

&lt;h2&gt;
  
  
  Take a step back: Why are we using AI in the first place?
&lt;/h2&gt;

&lt;p&gt;Experienced programmers know this: the real gains of AI is not in the speed of development. A good senior can often fix a bug or develop a small feature &lt;em&gt;faster than AI&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The real gain of AI is in the &lt;em&gt;cognitive load reduction&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Writing code is hard, at the very least because your syntax must be perfect. And even for small logic iterations, you need to use your brain. And &lt;a href="https://dev.to/samuelfaure/how-to-be-a-great-software-engineer-without-using-your-brain-1g5k"&gt;brain use is a finite resource&lt;/a&gt; - You have a fixed amount of thinking in you which refreshes when you take a break or sleep.&lt;/p&gt;

&lt;p&gt;The real productivity gains of AI come from &lt;em&gt;cognitive load reduction&lt;/em&gt;: because you are using your brain less, you can do &lt;em&gt;much more&lt;/em&gt; during your day of work.&lt;/p&gt;

&lt;p&gt;But this is a delicate balance. How much &lt;em&gt;thinking&lt;/em&gt; should you really be doing?&lt;/p&gt;

&lt;p&gt;Too much thinking and you're wasting on productivity gains. Not enough thinking, and you're entering the &lt;em&gt;sunk-cost fallacy loop&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  This probably happened to you
&lt;/h2&gt;

&lt;p&gt;You're prompting and prompting again, and usually it works great, but today for some reason, your agent is completely lost.&lt;/p&gt;

&lt;p&gt;You realize you would have been done much sooner if you hadn't used AI at all, but you're in too deep by now, surely by the next prompt it will &lt;em&gt;finally&lt;/em&gt; do what you're asking for... Okay, the next... Okay, the next for sure...&lt;/p&gt;

&lt;p&gt;The thing is, because you didn't invest the initial cognitive load, you are just a little bit too lost. But thinking is &lt;em&gt;hard&lt;/em&gt; and you don't want to spend this cognitive load &lt;em&gt;now&lt;/em&gt;, especially since this would be equivalent to basically starting all over. After all this time and tokens burnt.&lt;/p&gt;

&lt;p&gt;So you keep prompting and hoping for the best, and it only gets worse.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do in this situation?
&lt;/h2&gt;

&lt;p&gt;Take a step back and a deep breath. Realize the problem is that you haven't engaged your brain enough on this task.&lt;/p&gt;

&lt;p&gt;Ask yourself those questions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I understand &lt;em&gt;exactly&lt;/em&gt; the specifications I'm trying to implement, or the bug I'm trying to solve?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If not, then take some time to define the specifications or understand the issue better. You can ask for help from the AI, but &lt;strong&gt;no coding authorized!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I have an exact plan for implementing my changes?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If not, then take some time to think about your implementation plan. Use the &lt;a href="https://dev.to/samuelfaure/how-atomic-git-commits-dramatically-increased-my-productivity-and-will-increase-yours-too-4a84"&gt;atomic git commit&lt;/a&gt; workflow if you need to. Humans should take baby steps when developing, and so should AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the current abstraction level to which I should be prompting now?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prompting can be high-level ("Implement this feature") or it can be low-level ("Refactor this method, rename this variable"). High-level prompting is more desirable in terms of productivity gains, but if AI could be consistently efficient at high-level, we'd all be out of a job by now.&lt;/p&gt;

&lt;p&gt;Entering the sunk-cost fallacy cycle generally means you've overestimated the level of prompting you can ask from your model for this specific task. Take it down one or two levels. Right now, you need to take your AI by the hand and gently guide it to your solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which other information am I lacking?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Think about any information you need to make your changes which is not absolutely clear for you at the moment. Use AI to explore the codebase if you need to, or to brainstorm solutions; but then again, no coding authorized for now!&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: Work with your agent in TDD
&lt;/h2&gt;

&lt;p&gt;Test-Driven development is a great programming method (Although I know this is controversial opinion) but with the popularization of AI agents, it became (in my opinion) a must-have.&lt;/p&gt;

&lt;p&gt;Do you have your tests successfully failing? The bug is well reproduced? The specifications are well defined? If not, start your agent here. Writing tests has never been so quick and easy thanks to AI.&lt;/p&gt;

&lt;p&gt;Just keep in mind that this is the most important part of development, and also the hardest. This is the part where your brain needs to be in full alert, everything should be crystal-clear and well defined.&lt;/p&gt;

&lt;p&gt;You will also need to be very specific in your prompts about &lt;em&gt;not coding the actual solution&lt;/em&gt; but &lt;em&gt;only coding the tests for now&lt;/em&gt;. AI Agents have been trained to code solutions, so by default it will try, even when you didn't ask for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  If nothing works
&lt;/h2&gt;

&lt;p&gt;Close your AI agent. Go back to the whiteboard. Reset both yours and the agent's context.&lt;/p&gt;

&lt;p&gt;You will manage just fine! Just stop wasting your time on a sunk-cost fallacy cycle. It is a hard pill to swallow, but nothing you can't do. Stay in the command chair, and it will all work out.&lt;/p&gt;

&lt;p&gt;An old proverb says: "Alcohol is a great servant, but a terrible master" - This is also true for AI. Be the master of your AI, not its servant.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>programming</category>
      <category>learning</category>
    </item>
    <item>
      <title>Does your Pull Request pass the Hangover test?</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Tue, 29 Jul 2025 09:30:55 +0000</pubDate>
      <link>https://dev.to/samuelfaure/does-your-pull-request-pass-the-hangover-test-en3</link>
      <guid>https://dev.to/samuelfaure/does-your-pull-request-pass-the-hangover-test-en3</guid>
      <description>&lt;p&gt;This is a short reminder about what Programming is.&lt;/p&gt;

&lt;p&gt;Programming has and will always be about &lt;em&gt;reducing complexity&lt;/em&gt; first and foremost.&lt;/p&gt;

&lt;p&gt;If you ask a coworker to review your pull request, always ask yourself: &lt;strong&gt;&lt;em&gt;does it pass the Hangover test?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Can your coworker turn on his computer after having drank too much the previous evening and still be able to understand your code with minimal effort?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It's always easy to write complex code on a good day. Complexity is easy to write; simplicity is not. Just because you had an easy time writing it on that day doesn't mean it's simple &lt;em&gt;enough&lt;/em&gt; for someone else to understand it on a bad day.&lt;/p&gt;

&lt;p&gt;Because you don't write code for writing it, you write it for it to be read - it will be written once but read 50 times or more.&lt;/p&gt;

&lt;p&gt;If you're not writing for Hangover Coworker, you're making your life -and the life of every colleague, present and future- harder.&lt;/p&gt;

&lt;p&gt;Remember that &lt;em&gt;Complex code is not a sign of intelligence, it's a sign of sloppiness.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So can someone kill their brain cells with too much alcohol and the next morning still make sense of your code with relative ease?&lt;/p&gt;

&lt;p&gt;If not, back to the drawing board 🔁 Make it better until it passes the Hangover test.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>webdev</category>
      <category>git</category>
    </item>
    <item>
      <title>The Junior's path to Keyboard Proficiency</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Fri, 04 Apr 2025 09:50:07 +0000</pubDate>
      <link>https://dev.to/samuelfaure/the-juniors-path-to-keyboard-proficiency-1mhl</link>
      <guid>https://dev.to/samuelfaure/the-juniors-path-to-keyboard-proficiency-1mhl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Proficiency:&lt;/strong&gt; &lt;em&gt;A high degree of skill; expertise.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you're serious about becoming a highly skilled programmer, you will probably want to be &lt;em&gt;extremely&lt;/em&gt; proficient with the keyboard.&lt;/p&gt;

&lt;p&gt;Your job is to interact with the computer, and you interact with the computer using a keyboard (and if your first reaction is to say "and a mouse," then this article is &lt;em&gt;definitely&lt;/em&gt; for you).&lt;/p&gt;

&lt;p&gt;I apologize in advance if anyone finds this article elitist. This is not about pretending someone is a better programmer if they touch-type and a worse one if they don't. This is about you being more comfortable, efficient, and having &lt;em&gt;more fun&lt;/em&gt; in your job. Pretending you're a better programmer just because you do things like the experts is &lt;a href="https://en.wikipedia.org/wiki/Cargo_cult" rel="noopener noreferrer"&gt;cargo culting&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We'll start with the basics and move toward more advanced stuff.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn how to use the keyboard correctly
&lt;/h2&gt;

&lt;p&gt;You are supposed to use all of your fingers (for most people, 10) on the keyboard. A lot of people only use three or four. Because one can type quite fast even with just two fingers, one does not realize they're using the keyboard wrong. That was certainly my case for way longer than I am willing to admit.&lt;/p&gt;

&lt;p&gt;Learning to type as typing was intended will increase your performance in the medium-to-long term, but most importantly, it's just much more comfortable and ergonomic (casual reminder that your body will grow old if you're lucky).&lt;/p&gt;

&lt;p&gt;The process of learning correct typing is pretty much the same as learning the piano: practice 10 minutes a day for two months. Use a web app for that. I used &lt;a href="https://www.typingclub.com/" rel="noopener noreferrer"&gt;TypingClub&lt;/a&gt; and recommend it.&lt;/p&gt;

&lt;p&gt;And absolutely learn to touch-type. A good pianist doesn't look at his instrument, so why should you?&lt;/p&gt;

&lt;h2&gt;
  
  
  Say no to Windows
&lt;/h2&gt;

&lt;p&gt;If you aren't working with Microsoft proprietary Windows-related technologies, you should not be on Windows.&lt;/p&gt;

&lt;p&gt;I have mentored aspiring webdev students for many years, and in my experience, you can sort the ones who will succeed from the ones who won't by asking them to do two things and seeing if they actually do them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you use Windows, ditch it.
&lt;/li&gt;
&lt;li&gt;If you don't speak English fluently, learn it.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;100% of my students who did these two things succeeded. 100% of those who didn't, failed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Say no to your desktop environment
&lt;/h2&gt;

&lt;p&gt;Learn to use the shell and use it for everything. I mean it: &lt;em&gt;everything.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Moving files around with your mouse might &lt;em&gt;seem&lt;/em&gt; more efficient at first, but when you're good at talking to your operating system via the shell, you'll realize desktop environments only limit your power.&lt;/p&gt;

&lt;h2&gt;
  
  
  Say yes to Vim
&lt;/h2&gt;

&lt;p&gt;To be honest, I am not sure that Vim is right for everyone. Or rather, as a Vim fanatic, I think it is, but I also realize I'm extremely biased. Here's some general advice if you want to go down this rabbit hole anyway.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Realize that Vim is a sport. A very nerdy sport. It has a very steep learning curve. It takes years to be proficient with it. And I am not even sure it's so much more efficient, but anyone will tell you, it's so damn &lt;em&gt;fun&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start with &lt;a href="https://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118" rel="noopener noreferrer"&gt;this mandatory reading&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I say "Vim," but actually use Neovim. Basically the same but better.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build your custom config. DO NOT copy-paste an existing wall-of-code config. Instead, start small and increment yourself based on your needs. Be sure to save it somewhere, preferably on a remote Git server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write your config in Lua, not Vimscript. Learn Lua if you need to—it's easy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spend some time configuring your (Neo)Vim so it's pleasant to look at. You will probably look at it all day for years.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use a good plugin manager. I recommend &lt;a href="https://www.lazyvim.org/" rel="noopener noreferrer"&gt;Lazyvim&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If one of your plugins slows your Vim experience (some language servers notably might do this), get rid of it. Vim is cool because it's super fast and responsive, and there's always a faster alternative.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Advance your Vim learning incrementally. Every time you learn something new, make sure to practice. And sooner than later, get rid of your mouse. Hard at first, but so good long-term.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Be prepared to take heavy psychic damage for the rest of your life every time you have to use a text editor that doesn't integrate Vim motions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Throw your mouse away
&lt;/h2&gt;

&lt;p&gt;Once you start to be proficient with the shell and Vim, you can say bye-bye to your mouse. You won't need it anymore.&lt;/p&gt;

&lt;p&gt;Actually, scratch that. Sadly, you might still need it in your browser (unless you install the amazing &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/vimium-ff/" rel="noopener noreferrer"&gt;Vimium&lt;/a&gt; extension) or in other graphical programs. But the rest of the time, the keyboard is your (only) friend, and you'll realize how cozy it feels to never move your hands from it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The most important part
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Have fun!&lt;/strong&gt; I'm serious.&lt;/p&gt;

&lt;p&gt;This is not about you looking like a 10X dev-haxxor (although I won't lie, it's pretty cool to impress people); it's about being comfortable and having fun.&lt;/p&gt;

&lt;p&gt;Efficiency is nice, but typing faster or moving your files around more efficiently will not make you better at programming. You can be the most amazing programmer while typing with 3 fingers, while rarely opening a shell, or even while using a mouse... But why would you do this to yourself?&lt;/p&gt;

&lt;p&gt;Be comfortable instead. Have fun. Enjoy yourself.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>programming</category>
      <category>vim</category>
    </item>
    <item>
      <title>🕸 Networking is easy, fun, and probably not what you think it is.</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Mon, 24 Jun 2024 06:54:49 +0000</pubDate>
      <link>https://dev.to/samuelfaure/networking-is-easy-fun-and-probably-not-what-you-think-it-is-2ijc</link>
      <guid>https://dev.to/samuelfaure/networking-is-easy-fun-and-probably-not-what-you-think-it-is-2ijc</guid>
      <description>&lt;p&gt;Networking is &lt;em&gt;extremely important&lt;/em&gt; for your career.&lt;/p&gt;

&lt;p&gt;They say the most valuable thing about going to Harvard is not the education you'll receive or the skills you'll learn, but the connections you'll make. And they're right.&lt;/p&gt;

&lt;p&gt;However, many people will say networking is hard, boring, impossible for some, especially neurodivergent folks. So just for context, I'll clarify that this article is written by an introverted senior software engineer with autism. Turns out, I am a natural networker anyway! And maybe so are you.&lt;/p&gt;




&lt;p&gt;When you think of networking, you probably have some kind of tech meet-up in mind. Maybe there is free coffee, pizza, and &lt;em&gt;petit-fours&lt;/em&gt;, which you eat while talking to people from your industry who you can add on LinkedIn after.&lt;/p&gt;

&lt;p&gt;While this is definitely an example of networking, this is also what people think networking &lt;em&gt;is&lt;/em&gt;. In truth, this is only a very niche kind of networking.&lt;/p&gt;

&lt;p&gt;Thinking you need to practice this specific ritual to gain the benefits of networking is like thinking you absolutely need to go to speed-dating events to get married. It might work out for you, but that's not what dating or marriage is as a whole, and it's not even how most people find their significant others.&lt;/p&gt;

&lt;p&gt;The reality is, networking can be something you intentionally &lt;em&gt;do&lt;/em&gt;, but more often than not it's something that &lt;em&gt;just happens&lt;/em&gt;, and you benefit from it if you have the right skills and the right attitude.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I got my dream career
&lt;/h2&gt;

&lt;p&gt;Here are two stories that led to me working at my dream job today.&lt;/p&gt;

&lt;h3&gt;
  
  
  I Was Bored At A School Party
&lt;/h3&gt;

&lt;p&gt;I never graduated in CS. I graduated in Food science. My first job was making energy drinks.&lt;/p&gt;

&lt;p&gt;I met my friend J. during an engineering school party 15-20 years ago. We had similar interests and vibed together. He was studying computer science in that same school and later went on to become one of the top-leading experts in Ruby on Rails.&lt;/p&gt;

&lt;p&gt;A decade after said party, as I was complaining about my lack of job prospects and interest for my current career, he asked me, "Have you considered coding?"&lt;/p&gt;

&lt;h3&gt;
  
  
  I Talked To Some Teenagers Under A Tree
&lt;/h3&gt;

&lt;p&gt;More than two decades ago, I was studying in a somewhat fancy high school, mostly middle-class / high-middle class students.&lt;/p&gt;

&lt;p&gt;There was a tree in the courtyard where myself and a group of other teenagers would hang out. Eventually, we talked. We became friends. &lt;/p&gt;

&lt;p&gt;One of them went into computer science and made a new group of friends. At some point, two people in this group started a new project for a client. They needed programmers. They hired me as an intern.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is what networking is.
&lt;/h2&gt;

&lt;p&gt;I went to a bunch of professional meet-ups, coding-related events, and tech talks. No opportunity ever came out from any of those.&lt;/p&gt;

&lt;p&gt;I don't regret going because I had no expectations outside of having a little fun and indulging in free pizza. Again, this is like dating, you have very little chance of finding your life partner on a random date so you have to learn to enjoy the process.&lt;/p&gt;

&lt;p&gt;Instead, opportunities arise organically from just living life.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real networking advice
&lt;/h2&gt;

&lt;p&gt;So how does one become "good at networking"?&lt;/p&gt;

&lt;h3&gt;
  
  
  Be curious
&lt;/h3&gt;

&lt;p&gt;Curiosity is an incredibly powerful human drive for growth.&lt;/p&gt;

&lt;p&gt;Be curious about other people. People are fascinating, each individual is a universe of its own. There is so much to discover in a person, and so many persons to discover.&lt;/p&gt;

&lt;p&gt;When you take an interest in other people, you're making their abilities, knowledge, and skills yours, and &lt;a href="https://dev.to/samuelfaure/why-diversity-is-important-no-really-actually-for-real-1b7l"&gt;there is tremendous power in alternative views&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So what you're doing is spreading a net, extending far and wide - this is networking.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Geopolitical footnote: You will notice that, historically, the more insular a country is, the more stunted their economic growth is. This speaks volumes to the importance of human connections.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Be open to opportunities
&lt;/h3&gt;

&lt;p&gt;To continue the fishing metaphor, once your net is spread, eventually you catch some fish. Now it's just a matter of picking up the fish.&lt;/p&gt;

&lt;p&gt;Sounds easy enough, but some fishes are not easy to pick. Sometimes opportunities carry risk. Each situation is unique so it's hard to generalize here, but it is my opinion people generally have much to gain by being at least a little bit more bold.&lt;/p&gt;

&lt;h3&gt;
  
  
  Be kind
&lt;/h3&gt;

&lt;p&gt;Humans are fundamentally social creatures. We are designed for cooperation. Well, turns out humans prefer to cooperate with people who are well-suited for cooperation, and a big part of it is treating others with kindness.&lt;/p&gt;

&lt;p&gt;If you are a pleasure to interact with, people will want to interact with you. This is true for friendship, companionship, but also work.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sidenote, I am not advocating that you should be kind for personal gain, since I believe in the value of kindness for its own sake. However, if this convinces an unkind person to start being kind for their personal gain, I will consider that a complete win&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Be generous
&lt;/h3&gt;

&lt;p&gt;I am infinitely grateful to the people that helped me be where I am today.&lt;/p&gt;

&lt;p&gt;But what goes around comes around. As people helped me, I helped others. I was turned into a software engineer, I turned others into software engineers.&lt;/p&gt;

&lt;p&gt;At least one of them became a cybersecurity expert. He deepens my understanding of the topic on a regular basis. Helping him made me better at my job.&lt;/p&gt;

&lt;p&gt;I spend some of my free time volunteering to mentor people who try to make software engineering their career. I mostly do this out of love for human connection &amp;amp; helping people. I have nothing else to gain from this &amp;amp; never gained anything from it, but who knows! I have the feeling some day this net might bring in some fish.&lt;/p&gt;

&lt;p&gt;Life is not a zero-sum game. When you help someone you are often helping yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privilege-checkpoint ✋🛑
&lt;/h2&gt;

&lt;p&gt;I want to highlight something important.&lt;/p&gt;

&lt;p&gt;You might have noticed that, even though I did not go to Harvard, I went to a somewhat fancy high school, and then to a somewhat fancy engineering school. Those are the places where my connections eventually led to getting into tech &amp;amp; finding my dream job.&lt;/p&gt;

&lt;p&gt;This was only possible because I come from middle-class. Had I come from a more modest background, those opportunities would not have been there for me to seize in the first place.&lt;/p&gt;

&lt;p&gt;I point this out because while it is easy to remember the hard work we achieved to get to where we are today, it is also easy to not notice the subtle ways invisible privileges made all of this possible for us. Let's all be mindful of this.&lt;/p&gt;

&lt;h2&gt;
  
  
  What if I'm an introvert?
&lt;/h2&gt;

&lt;p&gt;A final word for introverts. Introversion is characterized by "being drained by social interactions". I am absolutely such a person, social interactions drain my energy quite fast.&lt;/p&gt;

&lt;p&gt;But then, so does physical exercise. Yet, almost anyone can eventually run a marathon with enough training.&lt;/p&gt;

&lt;p&gt;Both social interactions and running can be torture when you start. Still, those are fundamental abilities of humans. We are literally designed for it. We can learn it, and with enough training we end up loving it.&lt;/p&gt;

&lt;p&gt;Running is good for you, so is interacting with other humans, so go out there and train that muscle. It might always be tiring, but you'll enjoy it eventually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Networking is not (only, nor mostly) eating pizza at tech events.&lt;/p&gt;

&lt;p&gt;It's first and foremost about connecting with others humans.&lt;/p&gt;

&lt;p&gt;It's not really something you do for your job, it's something you do because that's what humans do and enjoy doing.&lt;/p&gt;

&lt;p&gt;So go out there and connect, and keep an eye out for opportunities to cooperate. Who knows, you might end up cooperating!&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>learning</category>
      <category>community</category>
    </item>
    <item>
      <title>💵 Why diversity is important, no, really, actually for real</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Tue, 07 May 2024 07:47:39 +0000</pubDate>
      <link>https://dev.to/samuelfaure/why-diversity-is-important-no-really-actually-for-real-1b7l</link>
      <guid>https://dev.to/samuelfaure/why-diversity-is-important-no-really-actually-for-real-1b7l</guid>
      <description>&lt;p&gt;Also available on &lt;a href="https://suchdevblog.com/opinions/WhyDiversityIsGreat.html"&gt;my blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No one really cares about diversity, and that's a huge mistake.&lt;/p&gt;

&lt;p&gt;Behind all the corporate crap that gets published on LinkedIn, we all know a company is an amoral entity whose only goal is to make as much money as possible.&lt;/p&gt;

&lt;p&gt;This is why no one actually cares about diversity. Because diversity is seen as a Good Thing® that the company &lt;em&gt;should&lt;/em&gt; strive for. But since "doing the right thing" doesn't bring money to the table, well, no one actually cares.&lt;/p&gt;

&lt;p&gt;But good news! Sometimes, doing the &lt;em&gt;moral thing&lt;/em&gt; also makes you money. Diversity is one of those.&lt;/p&gt;

&lt;p&gt;Also, bad news: no one seems to actually realise this. Hence this article. I want to explain why diversity &lt;strong&gt;actually&lt;/strong&gt; is a profitable endeavor, while avoiding any dishonest coping.&lt;/p&gt;

&lt;p&gt;While you're reading this, I will kindly ask that you to throw away all ethics, and think purely like a cold, calculating capitalist machine. Let's go:&lt;/p&gt;

&lt;h2&gt;
  
  
  Skills means money
&lt;/h2&gt;

&lt;p&gt;Let's think in terms of what a company &lt;em&gt;needs&lt;/em&gt;. A company needs &lt;strong&gt;knowledge&lt;/strong&gt; and &lt;strong&gt;skills&lt;/strong&gt; to thrive.&lt;/p&gt;

&lt;p&gt;In tech, we care about &lt;em&gt;hard skills&lt;/em&gt;. A great knowledge of languages and frameworks. I would argue those are the skills that are both the easiest to develop, to learn, and to find on the job market.&lt;/p&gt;

&lt;p&gt;We also talk about &lt;strong&gt;soft skills&lt;/strong&gt; such as &lt;em&gt;communication&lt;/em&gt; and &lt;em&gt;teamwork&lt;/em&gt;. Those are the skills that are the hardest to develop, to learn, and to find on the job market. Seasoned developers will also argue that those are the most importants skills. You can have a React genius in your team, it will only get you so far if you're unable to communicate with them or if they can't work with the team.&lt;/p&gt;

&lt;p&gt;I would argue that there are skills that are even harder to measure, to develop, and to acquire. Let's call them &lt;em&gt;softer skills&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The softest of the soft skills
&lt;/h2&gt;

&lt;p&gt;When you think "Tech worker" you will usually think: 30-something middle-class white man with glasses, with a computer science degree. Let's call this archetype the &lt;em&gt;techbro&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Well, there are only so much knowledge and skills that one single group of individuals can have.&lt;/p&gt;

&lt;p&gt;When you hire people from different backgrounds, you're hiring people with different experiences, different ways of thinking, different ways of solving problems. You're hiring people with different &lt;em&gt;softer skills&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Let's explore a few scenarios to understand how this can drive profit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Knowing your clients
&lt;/h3&gt;

&lt;p&gt;When you're building a product, you're building it for someone. You're building it for a client, a user, a human being. And human beings are diverse. They have different needs, different ways of thinking, different ways of using your product.&lt;/p&gt;

&lt;p&gt;When you have a diverse team, you have a team that can understand those different needs, those different ways of thinking, those different ways of using your product. You have a team that can build a product that is better suited for a diverse audience.&lt;/p&gt;

&lt;p&gt;Us tech wizards have all the power from the internet revolution right at our fingertips. We can build anything and solve almost any issue in the world. Yet, the amazing ideas the tech world came to were "How can I get food delivered efficiently at my doorstep" and "How can I get a taxi to come to me". Yes, those are the most pressing issues for a middle-class techbro. What about the rest of the world?&lt;/p&gt;

&lt;p&gt;But whatever, you've already built your food-delivery empire, now you need great engineers to make it work. Your goal is to make the best possible app both for your delivery workers, and for your clients.&lt;/p&gt;

&lt;p&gt;Turns out delivery workers are mostly people who don't have a computer science degree. They're not of the same socioeconomic background as your average techbro. In fact, their lives are so drastically different that you probably cannot design something that works for them without having someone of that same background in your team.&lt;/p&gt;

&lt;p&gt;You will also want to deliver food to people who are not middle-class techbros. You will want to deliver food to people who are not able to use a computer as easily as you do, use a smartphone as easily as you do, or even are not able to read as well as you do.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sidenote: sometimes, I really wonder if the executives at UberEats realise that a &lt;em&gt;lot&lt;/em&gt; of their clients are quite high on weed when they order food, and if they take this into account while designing their user experience. My guess is they don't.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is why you need diversity: to build a product that works for everyone, and get all the money from all the people.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sidenote: Remember when Google launched their Stadia console with an incredibly terrible pricing plan, and everyone was wondering just what they were thinking? To the surprise of absolutely no one, the Stadia crashed and burned completely. A more diverse team could have prevented such a horrible decisions and saved millions.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Solving problems
&lt;/h3&gt;

&lt;p&gt;We talked about the skills a diverse team can bring regarding your clients. What about the skills a diverse team can bring to the company itself?&lt;/p&gt;

&lt;h4&gt;
  
  
  Bootcamps are not evil
&lt;/h4&gt;

&lt;p&gt;The average techbro usually got a solid computer science degree from a solid university. They have a solid career in tech, and mostly evolved in that world. I would argue they often do not have a lot of experience in rest of the vast real world.&lt;/p&gt;

&lt;p&gt;This is why you should heavily consider hiring &lt;em&gt;some&lt;/em&gt; bootcamp graduates. They often are very interesting people, with a lot of experience from the real world, from other fields, and from different ways of life.&lt;/p&gt;

&lt;p&gt;In terms of hard skills, it is absolutely clear that 5 years of computer science from a reputable university absolutely obliterates 6 months of React bootcamp. You just can't get solid fundamentals in such a short period of time. But in term of softer skills, bootcamp graduates often have a lot to bring to the table.&lt;/p&gt;

&lt;p&gt;I interviewed a bunch of applicants, CS graduates and bootcampers. Contrary to popular belief, I would argue it is often less risky to hire a bootcamper. Usually, if they're in the top of their classes, they're a sure bet. I would hire the top 3 graduates in a class of 20 bootcampers in a heartbeat. The CS graduates on the other hand, well, while they usually have solid fundamentals, you can't always be so sure they'll bring much more to the table, &lt;strong&gt;especially&lt;/strong&gt; if your team is already 90% CS graduates.&lt;/p&gt;

&lt;h4&gt;
  
  
  Experience is found in the weirdest places
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://dev.to/samuelfaure/what-contributing-to-open-source-is-and-what-it-isnt-148g"&gt;One of my articles&lt;/a&gt; recently got trendy on HackerNews. Comments were mostly supportive, but a few were quite vitriolic, dismissing my work as the uneducated opinion from someone who graduated with "A fake degree from a fake school".&lt;br&gt;
This is because I studied at 42 coding school in Paris, a fact I do not hide. However, I &lt;strong&gt;absolutely disagree with the statement that I graduated with a fake degree from a fake school&lt;/strong&gt;. And this is because I never even graduated from 42. I dropped out as soon as I got a good job.&lt;/p&gt;

&lt;p&gt;I have been wise enough to not engage with the vitriol - and this wisdom comes from my past experiences. Because in another life, long before finding my way in tech, I had already established myself as a microcelebrity content creator in a completely different domain. I got the experience of do and don't. Also, you're still reading, so my guess is that I manage to stay interesting enough, and where do you think I got that skill from?&lt;/p&gt;

&lt;p&gt;Amongst other things I did in my life, I got an actual-not-fake engineering degree in food science. I designed energy drinks. I spent a year in the jungle meeting amazonian tribes to study how they made juices from palm trees fruits. I spent three months just walking from France to Portugal. I taught physics and chemistry in high school. I'm not sure how it all relates to a job in tech, but I know the sum of my experiences matters to what I bring to the table.&lt;/p&gt;

&lt;p&gt;During my fake studies at my fake school, I met incredible people. A professional poker player, now working in legaltech. A genius that wrote his first C program at the age of 12, because he was bored of Javascript which he learnt at the age of 10. An entrepreneur from marketing school that launched his startup right after. He's now a multi-millionaire. Too bad he also dropped out, he could have been a billionaire.&lt;/p&gt;

&lt;p&gt;A company hires &lt;strong&gt;people&lt;/strong&gt;. Experienced, skilled people. Always hiring the same kind of people would be like furnishing your toolshed with only hammers. Hammers are important, they're also not all you need to build a house.&lt;/p&gt;

&lt;h4&gt;
  
  
  Hiring processes need to account for this
&lt;/h4&gt;

&lt;p&gt;In the AI-driven, process-fueled recruiting world, this sadly all goes through the window. Hiring processes are now mostly automated. Human Resources do not account for the richness of the human experience. Heck, they are still looking for "Engineers with X years of experience in Y", not even accounting for the fact that X years of experience for some people in some situations absolutely doesn't mean the same for some other people in some other situations. Numbers really can only get you so far.&lt;/p&gt;

&lt;p&gt;Should I even mention technical interviews, especially the ones including leetcode? A lot has been said about it, so I probably don't need to.&lt;/p&gt;

&lt;p&gt;I will however rant about how inhumane the process is for neurodivergent people. It's not even about direct discrimination, albeit this does happen (and it did happen to me). But the whole process of recruiting just doesn't account for neurodivergent profiles. As an autistic person, I already can't wrap my head around the fact that you are &lt;em&gt;expected&lt;/em&gt;, and even &lt;em&gt;supposed&lt;/em&gt; to lie during job interviews.&lt;/p&gt;

&lt;p&gt;This is such a sad state of affairs, because neurodivergence really is a rich source of skills and experiences that can be extremely beneficial to a company. It's literally different ways to see the world, to think, to solve problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Diversity is not (only) a moral choice. It is a profitable one. I sincerely hope companies, executives and recruiters starts to realize this and account for it.&lt;/p&gt;

&lt;p&gt;In the meantime, if you agree with this article, enjoyed it or found it interesting, please get the word out. The way we think about diversity is wrong, and we need to correct it.&lt;/p&gt;

</description>
      <category>diversity</category>
      <category>interview</category>
      <category>beginners</category>
      <category>management</category>
    </item>
    <item>
      <title>💡What contributing to open-source is, and what it isn't.</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Fri, 19 Apr 2024 07:34:36 +0000</pubDate>
      <link>https://dev.to/samuelfaure/what-contributing-to-open-source-is-and-what-it-isnt-148g</link>
      <guid>https://dev.to/samuelfaure/what-contributing-to-open-source-is-and-what-it-isnt-148g</guid>
      <description>&lt;p&gt;I've been a senior developer for quite some time now, yet I've just recently understood some advice I've been given at the very beginning of my career:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Participate in Open Source!&lt;/strong&gt; It will be great for your career!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Well, as such, this is extremely bad advice.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to contribute to open-source the WRONG way
&lt;/h2&gt;

&lt;p&gt;I get it. You're a student or a junior developer. It's hard out there and you want to boost your career. You don't know what to do. Or maybe you're just enthusiastic about open-source and want to contribute.&lt;/p&gt;

&lt;p&gt;Well, you probably shouldn't.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let's build a school together!
&lt;/h3&gt;

&lt;p&gt;In French, we have an idiom for contributing: "To bring your stone (brick) to the building".&lt;/p&gt;

&lt;p&gt;Imagine if people in your city decided to gather together and build a school for the community. What an inspiring collaborative effort!&lt;/p&gt;

&lt;p&gt;So you're arriving on the building site with your brick and enthusiasm in your eyes. And very little knowledge of how building actually works, and even less knowledge on how this particular building is being built.&lt;/p&gt;

&lt;p&gt;Well, let's be honest, despite your great intentions you're probably going to be more of a nuisance than anything else here.&lt;/p&gt;

&lt;p&gt;Now imagine if, not only you do this, but two thousands other people are coming with you. Not only does this lower the odds of the school ever being built, the end result would probably be a school where no child should ever set foot.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hacktoberfest and its consequences have been a disaster for the human race
&lt;/h3&gt;

&lt;p&gt;I did Hacktoberfest three times, so I own three of their t-shirts (I'm wearing one right now. Very cozy.)&lt;/p&gt;

&lt;p&gt;As you can see on &lt;a href="https://github.com/Samuelfaure" rel="noopener noreferrer"&gt;my Github profile&lt;/a&gt; (go like and subscribe©) I am a huge open-source contributor. Well, not really. I'm a freelancer and most of my clients open-source their products. That's how I make my living. So that doesn't count, right? (More on that later).&lt;/p&gt;

&lt;p&gt;Hacktoberfest is a great, deeply flawed initiative. Trying to make people contribute to open-source is very commendable. It's also something you should absolutely not do. You don't tell people to take their bricks and find a random school to help. You're just going to make everything worse for everyone.&lt;/p&gt;

&lt;p&gt;Experienced builders will lose time and patience because of the spam, and young builders will leave bitter, believing open-source is not welcoming and/or not for them.&lt;/p&gt;

&lt;p&gt;Hacktoberfest is trying to do good, but it is promoting the very wrong idea that juniors should just go and find a place where to put a brick.&lt;/p&gt;

&lt;h3&gt;
  
  
  So who should build the school?
&lt;/h3&gt;

&lt;p&gt;The parents whose kids will be at the school, that's who. And the teachers as well. They're the ones who are going to use that school, after all.&lt;/p&gt;

&lt;p&gt;Heck, with proper supervision the kids themselves can help too. You can do open source as a beginner, you don't need to be a senior for that.&lt;/p&gt;

&lt;p&gt;But you need to be involved in the project and act accordingly, you don't just go and throw bricks around.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open-source is not about coding
&lt;/h3&gt;

&lt;p&gt;It's hard to get hired as a junior developer. You want to both get more skilled, and show that you're more skilled. Open-source contributions are seen as a potential career-boost, and that's because they are (more on that later). But just because they are, doesn't mean that this is a good reason to contribute.&lt;/p&gt;

&lt;p&gt;Why do you build a school? Because you want a school to be built. Because you need a school. Because you believe free, communal schools are important, in a world where education gets more and more expensive.&lt;/p&gt;

&lt;p&gt;You build it to enjoy the final product, you don't build it for the sake of building it, or (mostly) to train your building skills. You can enjoy building, that's fine, but that's not the point. Your love for building won't make for a good product in the end.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhc8ulship7mg70kxnb47.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhc8ulship7mg70kxnb47.png" alt="oglaf comic illustrating the point"&gt;&lt;/a&gt; &lt;em&gt;Comic source: Oglaf&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How to contribute to open-source the RIGHT way
&lt;/h2&gt;

&lt;p&gt;The following point is by far the most important part of this article.&lt;/p&gt;

&lt;h3&gt;
  
  
  If you don't use it, you lose it
&lt;/h3&gt;

&lt;p&gt;The best thing you can do to contribute to open-source is to &lt;strong&gt;actually use&lt;/strong&gt; open-source products.&lt;/p&gt;

&lt;p&gt;By being an open-source user, you open yourself to being an open-source contributor. An annoying bug? Report it, so it can get fixed, so both you and other users can enjoy a better product.&lt;/p&gt;

&lt;p&gt;There's a feature you wish the product had? Ask for it!&lt;/p&gt;

&lt;p&gt;No one is fixing that bug, no one is adding your feature? Well, guess it's time to get your own hands dirty then.&lt;/p&gt;

&lt;p&gt;This is how you do open-source. You follow the purpose of open-source, not just your love for building.&lt;/p&gt;

&lt;p&gt;And of course, always ask the other contributors before doing anything (usually via opening an issue). Remember that this is a team effort.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contributing to open-source means taking responsibility
&lt;/h3&gt;

&lt;p&gt;I'm an Arch Linux user btw, and I only recently started maintaining a package on the AUR (a community-managed collection of packages).&lt;/p&gt;

&lt;p&gt;I've been needing this package, but no one was maintaining it. Infuriating! I can't use an unmaintained package! If only there was a solution!&lt;/p&gt;

&lt;p&gt;Oh, right, almost forgot. I can do that myself.&lt;/p&gt;

&lt;p&gt;You know it's good, useful open-source when it feels like a chore. You do the job because, well, you kinda have to. The fact that it's open source just means other people will enjoy your work for free, and in turn you will enjoy their work for free.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sidenote: Did you know squirrels can't remember where they store acorns for the winter? They solve this via communal efforts. If all squirrels fill the forest with acorn reserves, then they will easily stumble upon acorns when the winter comes.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  To hell with contributing, just make your own thing.
&lt;/h3&gt;

&lt;p&gt;When aspiring junior devs ask me what they should build, I always reply: "Well, what do you need?".&lt;/p&gt;

&lt;p&gt;Think hard. You probably need a tool that either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;do not exist&lt;/li&gt;
&lt;li&gt;or it exists as a paid service&lt;/li&gt;
&lt;li&gt;or it is free but is spying on your data&lt;/li&gt;
&lt;li&gt;or the most common situation, it already exists but got &lt;a href="https://en.wikipedia.org/wiki/Enshittification" rel="noopener noreferrer"&gt;enshittified&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Well, just go and make it, and open your code while you're at it. Congratulation, you're doing open source, and doing it right!&lt;/p&gt;

&lt;h3&gt;
  
  
  Or just get paid for it
&lt;/h3&gt;

&lt;p&gt;I've been building stuff for the French government for many years now. One of the reasons why I keep working with this client is that all the code we produce is open-sourced by default.&lt;/p&gt;

&lt;p&gt;One of the first projects I built was a public API for querying public data. This open-source project has been used by thousands of private companies, one of them even ended up hiring me.&lt;/p&gt;

&lt;p&gt;So yeah, open source can indeed help your career. For me, working in open source was both an ideological and career-savvy move. I helped myself while also helping the common good. Just because you get paid for it doesn't mean you aren't doing open source and doing it right.&lt;/p&gt;

&lt;p&gt;So I'm keeping those Hacktoberfest t-shirts.&lt;/p&gt;

</description>
      <category>career</category>
      <category>opensource</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>🧠 How to be a great software engineer without using your brain.</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Tue, 09 Apr 2024 08:55:35 +0000</pubDate>
      <link>https://dev.to/samuelfaure/how-to-be-a-great-software-engineer-without-using-your-brain-1g5k</link>
      <guid>https://dev.to/samuelfaure/how-to-be-a-great-software-engineer-without-using-your-brain-1g5k</guid>
      <description>&lt;p&gt;Edit: Now also available on &lt;a href="https://suchdevblog.com/lessons/HowToNotUseYourBrain.html"&gt;my blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.&lt;/em&gt; - Bill Gates&lt;/p&gt;

&lt;p&gt;This article is intended to teach you how to do your daily job as a software engineer -and do it &lt;em&gt;very well&lt;/em&gt;- with the minimal amount of efforts.&lt;/p&gt;

&lt;p&gt;While I do believe this will have some interesting information for most readers, it will be an &lt;em&gt;especially&lt;/em&gt; great read for people who struggle with ADHD. If you know a programmer or aspiring programmer in this situation, you might help them (and myself) by sharing this article.&lt;/p&gt;

&lt;p&gt;Let's start.&lt;/p&gt;




&lt;h2&gt;
  
  
  I - Using Your Brain Considered Harmful
&lt;/h2&gt;

&lt;h3&gt;
  
  
  I dislike using my brain.
&lt;/h3&gt;

&lt;p&gt;The reason is, using your brain is &lt;em&gt;hard&lt;/em&gt;. Most people will avoid doing hard things too often. If you can do a great job without efforts, then why should you? You don't get extra points for difficulty.&lt;/p&gt;

&lt;p&gt;Job satisfaction increases when you're not suffering. Your energy levels stays high, your productivity as well.&lt;/p&gt;

&lt;p&gt;There is a secret to achieving high efficiency with minimal efforts, it's called "being smart about it". Martial artists achieve high efficiency by applying high pressure onto an opponent's sensitive points. That's knowledge well used.&lt;/p&gt;

&lt;p&gt;Let's be smart about it then.&lt;/p&gt;

&lt;h2&gt;
  
  
  II - Problem: Software engineering is complicated.
&lt;/h2&gt;

&lt;p&gt;Well, then we just have to make it simple, this way we won't have to think too much.&lt;/p&gt;

&lt;p&gt;Turns out, this task is also the best description of the work of a software engineer: &lt;em&gt;reducing complexity&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Complexity is bad. &lt;a href="https://grugbrain.dev/#grug-on-complexity"&gt;Very, very bad&lt;/a&gt;. It is your job to make everything as simple as possible. As we will discuss later, this is the part where you actually need to be smart and use your brain.&lt;/p&gt;

&lt;p&gt;We achieve simplicity via both programming practices, and work methodologies. Some examples:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programming practices&lt;/strong&gt;&lt;br&gt;
Elegant, high-quality code. Following best practices. Using the right OOP patterns at the right time, functional programming when it makes sense. Refactoring. Avoiding &lt;a href="https://dev.to/samuelfaure/the-technical-debt-explained-with-a-kitchen-analogy-518h"&gt;technical debt&lt;/a&gt; and spaghetti code. You get the idea, but this is not what this article is about, we're here for the next section:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Work methodologies&lt;/strong&gt;&lt;br&gt;
Let's explore some work methods that will help you save on all that precious brainpower.&lt;/p&gt;

&lt;h2&gt;
  
  
  III - When to think hard, and how to do it.
&lt;/h2&gt;

&lt;p&gt;As you will notice, the methodologies I will detail are not really about &lt;em&gt;not thinking&lt;/em&gt;. They are about &lt;em&gt;thinking hard, at the right time&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I do believe there are merits in the saying: "Sleep only when you're very sleepy, eat only when you're very hungry". I would add: "Think hard only when you really need to think hard".&lt;/p&gt;

&lt;p&gt;Knowing when to think hard &lt;em&gt;and then actually thinking hard&lt;/em&gt; is key to building great software.&lt;/p&gt;

&lt;p&gt;Here are two great work methods to achieve &lt;em&gt;great thinking&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deep work&lt;/strong&gt;: as explained by Cal Newport in his (amazing) book, it's all about maximizing work efficiency by achieving high focus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pomodoros&lt;/strong&gt;: By cutting your work into small time fractions and combining this with &lt;em&gt;deep work&lt;/em&gt;, you can actually achieve your best work.&lt;/p&gt;

&lt;p&gt;Feel free to research those topics, because I will not detail them here. We're going to focus less on &lt;em&gt;how&lt;/em&gt; to use your brain and more on &lt;em&gt;when&lt;/em&gt; to use your brain.&lt;/p&gt;

&lt;h2&gt;
  
  
  IV - Work methodologies for the dumb and the lazy.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;a href="https://dev.to/samuelfaure/how-atomic-git-commits-dramatically-increased-my-productivity-and-will-increase-yours-too-4a84"&gt;Atomic Git commits&lt;/a&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The way you use Git can force you to use your brain more efficiently. I strongly advise you to read the linked article, it explains why quite well.&lt;/p&gt;

&lt;p&gt;The gist is: using Atomic Git commits forces you to map in your head the exact suite of commits necessary to achieve your goals, in small steps.&lt;/p&gt;

&lt;p&gt;Breaking up a big task into smaller, simpler, easier steps? That's the textbook recipe for reducing complexity!&lt;/p&gt;

&lt;p&gt;The difficulty with this method is that you have to pay in mental currency &lt;em&gt;at the very beginning&lt;/em&gt;. As they say, "A week of coding can save on 30 minutes of planning". Still, because thinking is &lt;em&gt;hard&lt;/em&gt;, we tend not to do it. That is a mistake, because you will have to pay the interests later.&lt;/p&gt;

&lt;p&gt;Once you've cut your task into smaller steps, you can turn off your brain. You won't need that bag of meat anymore.&lt;/p&gt;

&lt;h3&gt;
  
  
  BDD, Not TDD.
&lt;/h3&gt;

&lt;p&gt;So I'm definitely not making friends here (hello ThePrimeagen, hope you like this one as well), since this is a very controversial topic. This will digress somewhat, but I think in an interesting way. Disclaimer, this is only my opinion, yadda-yadda.&lt;/p&gt;

&lt;p&gt;I strongly believe that Behavior-Driven Development is an amazing tool to use your brain as little as possible while achieving high-quality code.&lt;/p&gt;

&lt;p&gt;I use the term "Behavior-Driven Development" to address a common criticism of Test-Driven Development, which is "You don't know what you want at first, so when doing TDD you have to rewrite your tests once you know what you want".&lt;/p&gt;

&lt;p&gt;I believe there is a misunderstanding here between opponents and proponents of TDD, and the misunderstanding might stem from confusion between TDD and BDD.&lt;/p&gt;

&lt;p&gt;What supporters of TDD/BDD are hearing is: "I don't know the specifications I'm supposed to fulfill". This sounds ridiculous: If you don't know what you're supposed to achieve, you should definitely go have a brain-using session until you clarified your specifications.&lt;/p&gt;

&lt;p&gt;What the opponents of TDD are &lt;em&gt;actually&lt;/em&gt; saying is: "I don't know the &lt;em&gt;steps&lt;/em&gt; that will lead me to fulfill my specifications".&lt;/p&gt;

&lt;p&gt;The difference between those is basically unit testing. Of course you very rarely know what the details of your code will look like before you write it, so if you're unit testing small portions of code -such as your methods- you will end up rewriting a lot of (mostly useless) tests and have a miserable time.&lt;/p&gt;

&lt;p&gt;The right smallest unit to test in an OOP context is in my opinion generally the Class. And if you thought long enough about the architecture of your code (for example when you were breaking down your task in smaller steps, see &lt;em&gt;Atomic Git Commits&lt;/em&gt;), you will know which classes you want at every step of the way.&lt;/p&gt;

&lt;p&gt;Hence, you will never have to rewrite anything.&lt;/p&gt;

&lt;p&gt;As I said before, I do believe that you should think long and hard before doing any coding, at least until you know &lt;em&gt;exactly&lt;/em&gt; what your specifications are, including some &lt;em&gt;hard&lt;/em&gt; thinking about possible edge cases.&lt;/p&gt;

&lt;p&gt;This is what BDD is all about: thinking hard about your &lt;em&gt;exact specifications&lt;/em&gt; and coding them first. You know what you want, and once it's in the code, you just need to make the specs go brrrr green.&lt;/p&gt;

&lt;p&gt;Frankly, once your specs are written down, you can turn off your brain. The rest of the work can barely be called "work".&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I hope you found something interesting in this article. Don't hesitate to share if you think this can help someone struggle less with the daily demands of software engineering.&lt;/p&gt;

&lt;p&gt;As for discussing pro or against TDD/BDD, the comment section is down there 👇.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>coding</category>
    </item>
    <item>
      <title>12 Signs you might be burning out 🔥🚒</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Fri, 24 Nov 2023 15:29:07 +0000</pubDate>
      <link>https://dev.to/samuelfaure/12-signs-you-might-be-burning-out-368d</link>
      <guid>https://dev.to/samuelfaure/12-signs-you-might-be-burning-out-368d</guid>
      <description>&lt;h2&gt;
  
  
  I - You aren't excited about work anymore
&lt;/h2&gt;

&lt;p&gt;If you aren't happy about working, either your job sucks or you're burning out. In both cases you need to act on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  II - Your social life is dipping
&lt;/h2&gt;

&lt;p&gt;You haven't seen your friends in a while.&lt;/p&gt;

&lt;h2&gt;
  
  
  III - You're making more mistakes at work
&lt;/h2&gt;

&lt;p&gt;Would you have introduced this bug if you were at the top of your game?&lt;/p&gt;

&lt;h2&gt;
  
  
  IV - You feel "Lazy" about shipping high-quality code
&lt;/h2&gt;

&lt;p&gt;It's working. It does the job. Who cares if it's not perfect? (the &lt;a href="https://dev.to/samuelfaure/the-technical-debt-explained-with-a-kitchen-analogy-518h"&gt;technical debt&lt;/a&gt;, that's who).&lt;/p&gt;

&lt;h2&gt;
  
  
  V - You think the situation will be better when X will be gone
&lt;/h2&gt;

&lt;p&gt;"I just need to finish this project then it will all be better" - you probably need some rest, then it will &lt;em&gt;actually&lt;/em&gt; be all better.&lt;/p&gt;

&lt;h2&gt;
  
  
  VI - You feel like crap in the evenings
&lt;/h2&gt;

&lt;p&gt;Work isn't supposed to make your life worse, it's supposed to make your life better.&lt;/p&gt;

&lt;h2&gt;
  
  
  VII - You have "very good reasons" to not take any time off
&lt;/h2&gt;

&lt;p&gt;That's also a red flag. If for any reason you can't afford to take some time off, you probably overworked yourself already. And you almost always &lt;em&gt;can&lt;/em&gt; actually take some time off, and definitely should.&lt;/p&gt;

&lt;h2&gt;
  
  
  VIII - Your life hygiene has been deteriorating
&lt;/h2&gt;

&lt;p&gt;Been skipping leg day at the gym recently? Started smoking again? Been drinking a bit more than usual? Have your sleep been worse lately? Are your back pains back? Think deeply about what you're doing to yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  IX - You can't immediately tell when you took your last vacations
&lt;/h2&gt;

&lt;p&gt;If it's so far behind you that you don't remember the last time you took them, then it's time for new vacations.&lt;/p&gt;

&lt;h2&gt;
  
  
  X - You think about work when you're not working
&lt;/h2&gt;

&lt;p&gt;Not just a little bit, and not in an excited, positive way.&lt;/p&gt;

&lt;h2&gt;
  
  
  XI - You feel bad on Sunday evenings
&lt;/h2&gt;

&lt;p&gt;Good old Sunday evening blues. Anybody with a crappy job, or who's burning out, will know about them.&lt;/p&gt;

&lt;h2&gt;
  
  
  XII - If you're honest with yourself, you just know it
&lt;/h2&gt;

&lt;p&gt;We Humans are terrifyingly good at lying to ourselves, but deep down we often know the truth and how we should act on it.&lt;/p&gt;

&lt;p&gt;If this list rings a bell or several, please take some time to reflect on it.&lt;/p&gt;

&lt;p&gt;Ask your significant other(s), your friends and family for their opinions. They aren't driving the car, which means they're in a better position to see the landscape.&lt;/p&gt;

&lt;p&gt;Take care of yourself first. What's better for you is also better for your job.&lt;/p&gt;

</description>
      <category>career</category>
      <category>productivity</category>
      <category>management</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The robot invasion of Dev.to</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Fri, 28 Apr 2023 08:55:47 +0000</pubDate>
      <link>https://dev.to/samuelfaure/the-robot-invasion-of-devto-4oe4</link>
      <guid>https://dev.to/samuelfaure/the-robot-invasion-of-devto-4oe4</guid>
      <description>&lt;p&gt;In &lt;a href="https://dev.to/samuelfaure/is-dev-to-victim-of-its-own-success-1ioj"&gt;a previous article&lt;/a&gt;, I've been complaining about the sheer lack of quality on Dev.to, or at the very least about the incredibly low signal-to-noise ratio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authors Vs Readers
&lt;/h2&gt;

&lt;p&gt;As I was explaining, the incentives of the platform and readers are at odds with the incentives of (most of) the authors.&lt;/p&gt;

&lt;p&gt;The readers on Dev.to want good quality content which can easily be found.&lt;/p&gt;

&lt;p&gt;The authors on Dev.to want recognition, personal branding, and sometimes just good old link building (linking to their personal product/pages for SEO).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sidenote: Not all authors. Some do seem to enjoy writing and sharing knowledge. But looking at what's published, this seems to be an extreme minority.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now, I personally think it's great that authors get personal benefits for sharing their knowledge online. I love writing, but I also love being read, and if a future recruiter love what I wrote, that's a good motivation booster.&lt;/p&gt;

&lt;p&gt;But there are two ways to go for that. You either spend a long time carefully crafting an interesting, insightful article... or you just spam whatever.&lt;/p&gt;

&lt;p&gt;Since my last article complaining about the state of affairs (Published on the 6 of July, 2021), we lived through an AI revolution. And now, I would say that the robot invasion have begun, but that's not true. The robots have already invaded, and they won. Dev.to belongs to the Robots.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ChatGPT problem on Dev.to
&lt;/h2&gt;

&lt;p&gt;Searching for interesting articles on the "relevant" section, a tremendous amount are GPT-generated. Almost all of them via ChatGPT: you can recognize the subtle flavor inherent to ChatGPT's training, such as its tendency to reply in 5 to 10 bullet points.&lt;/p&gt;

&lt;p&gt;We do live in an age where you can't be sure that something was AI-generated, or is just poorly-written human content. Thankfully, we have tools such as &lt;a href="https://www.zerogpt.com/"&gt;zeroGPT&lt;/a&gt; to detect if something is AI-generated.&lt;/p&gt;

&lt;p&gt;I even suspect the process to be automatized. It would be trivial to write a list of 20 prompts somewhere, then write a script to regularly copy-paste directly from ChatGPT to Dev.to. There you go, 20 "interesting" articles for your personal branding.&lt;/p&gt;

&lt;h2&gt;
  
  
  There are (almost) no AI-assisted articles on the platform
&lt;/h2&gt;

&lt;p&gt;It's all generated. Sometimes it is clear the author took less than a minute modifying a few words and adding titles or even an introduction. But the articles are completely AI-generated.&lt;/p&gt;

&lt;p&gt;Very few posts are actually "chat-assisted", meaning GPT was used to write parts of the article, but a human wrote big pieces of the article themselves. Most of them are entirely, completely, copy-pasted from ChatGPT.&lt;/p&gt;

&lt;p&gt;I checked more than 100 AI-generated articles, only 1 or 2 were detected as "AI-assisted". I'm not a fan of AI-assisting for writing, but this isn't the problem here. The problem is AI-generation and extreme laziness leading to terrible content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Obviously, this is very bad.
&lt;/h2&gt;

&lt;p&gt;Our AI technology is impressive. Revolutionary, even. But we still haven't breached the AGI milestone where an AI can actually produce new, interesting, insightful content.&lt;/p&gt;

&lt;p&gt;So this is only amplifying the biggest issue on Dev.to: the lack of good, interesting content, and the drowning of such content in a sea of mediocrity.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Dev.to guidelines on this?
&lt;/h2&gt;

&lt;p&gt;This is my personal interpretation of Dev.to's &lt;a href="https://dev.to/devteam/guidelines-for-ai-assisted-articles-on-dev-17n6"&gt;Guidelines for AI-assisted content.&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I mention this is a personal interpretation of the guidelines, because I personally find them unclear and a tad confusing.&lt;/p&gt;

&lt;p&gt;It seems that Dev.to authorizes AI-generated content, under the conditions that the post discloses that the content was AI-generated.&lt;/p&gt;

&lt;p&gt;On the 100+ posts I detected were AI-generated (not AI-assisted, but 100% generated), absolutely none disclosed that information.&lt;/p&gt;

&lt;p&gt;The guidelines also mention that AI-assisted and AI-generated articles should not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Be published with the main purpose of building a personal brand, building a social media presence, or gaining clout.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;While this rule is great in spirit, it is absolutely unenforceable and therefore useless. Without the ability to read minds, you cannot know the main intentions of an author.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can be done?
&lt;/h2&gt;

&lt;p&gt;Here are some acting suggestions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Hardening &amp;amp; clarifying the guidelines: My personal opinion is that AI-generated content, and maybe even AI-enhanced content, have absolutely no place on Dev.to or any publishing website that strives for a modicum of quality. Any breaking of this rule should be cause for a ban.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hiring extra moderators to enforce those rules. As much as I love to report guidelines-breaking articles in an effort to increase Dev.to's overall quality, it feels not only like removing a drop of water from the ocean, but instead passing that drop of water to another person who might or might not decide it belongs in the ocean.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I did not find any way to become a moderator myself, just a "trusted user", which doesn't seem to confer extra moderation power.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The lowest hanging fruit: Implementing auto-detection for GPT-generated text on each new publication. The technology exists and is already reliable and robust.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I love writing on Dev.to. I love publishing on a platform full of enthusiast developers. I love the sense of community, and I love the efforts from the team to curate content. My last two articles made it to 'Top 7 weekly', and I'm infinitely grateful to the team for choosing me.&lt;/p&gt;

&lt;p&gt;But I don't love reading on Dev.to. It's just so hard to find insightful, interesting content in the sea of robots all yelling for your attention.&lt;/p&gt;

&lt;p&gt;I do hope it gets better in the future, but it won't happen by itself. We need to do something about the robots.&lt;/p&gt;

</description>
      <category>meta</category>
      <category>ai</category>
      <category>beginners</category>
      <category>writing</category>
    </item>
    <item>
      <title>📈 Productivity and Well-being: A summary of what works.</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Wed, 19 Apr 2023 13:31:39 +0000</pubDate>
      <link>https://dev.to/samuelfaure/productivity-and-well-being-a-summary-of-what-works-55og</link>
      <guid>https://dev.to/samuelfaure/productivity-and-well-being-a-summary-of-what-works-55og</guid>
      <description>&lt;p&gt;I've been working for a very long time in remote-only positions by now, while mentoring remote-working students.&lt;/p&gt;

&lt;p&gt;This article will summarize what I found worked for me and most of my students. Most of this should work for you too, and it will work particularly well in a remote work setting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Some people think more productivity means less well-being. Those people are wrong. They might be victims of management structures that do not understand the fundamental truth of intellectual work:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your productivity is a direct byproduct of your well-being;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your well-being tend to increase when you're productive&lt;/strong&gt; (up to a point).&lt;/p&gt;

&lt;p&gt;By taking care of yourself, you are fulfilling your duties both to yourself and to your employer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step One: Setting your priorities straight
&lt;/h2&gt;

&lt;p&gt;Do a quick categorization of what are the most important things in your life right now. Here's mine:&lt;/p&gt;

&lt;p&gt;1/ Health&lt;br&gt;
2/ Family and closest friends&lt;br&gt;
3/ Work&lt;/p&gt;

&lt;p&gt;If your health and close relationships aren't on top, please ask yourself why that is, and what the consequences of such a choice could mean for your future.&lt;/p&gt;

&lt;p&gt;Now that we agreed about your priorities, we can start the process.&lt;/p&gt;
&lt;h2&gt;
  
  
  Step Two: Life hygiene
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;"Life hygiene" is a french idiom that (very) imperfectly translates to "Lifestyle".&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We're stating the obvious in that one, but the obvious often bears repeating.&lt;/p&gt;
&lt;h3&gt;
  
  
  Physical exercise
&lt;/h3&gt;

&lt;p&gt;This is &lt;strong&gt;NOT&lt;/strong&gt; optional.&lt;/p&gt;

&lt;p&gt;Not only does your health need it, it will increase your mood and your focus.&lt;/p&gt;
&lt;h3&gt;
  
  
  Sleep
&lt;/h3&gt;

&lt;p&gt;This is literally how your brain learns things. If you don't have a good sleep schedule, absolutely prioritize working on that issue. &lt;/p&gt;
&lt;h3&gt;
  
  
  Posture
&lt;/h3&gt;

&lt;p&gt;Back pains suck. They really do. And let's be clear: if you want a career in programming, you WILL have back pain issues if you don't work on it. If you don't already know the 101 of correct posture, google it right after reading this article (or better, ask ChatGPT).&lt;/p&gt;

&lt;p&gt;So you should maintain a correct posture while sitting, right? Well, yes, but it won't be enough for most people. You will probably still end up with bad back pains.&lt;/p&gt;

&lt;p&gt;A standing desk can be life-changing. It will also not be enough; you will want a solution where you can alternate between sitting and standing, for two reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standing all day can be very hard when you first start.&lt;/li&gt;
&lt;li&gt;Standing all day can bring about as many issues as sitting all day.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before anything, take regular breaks and move around. Alternate postures as much as possible. &lt;strong&gt;The best posture is your next posture&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Finally, if all of this is not enough (and I suspect for many of you it won't be), learn Yoga. A daily deep yogi muscle relaxation is the most powerful tool there is against back pain.&lt;/p&gt;
&lt;h4&gt;
  
  
  Bonus: Yoga Crash Course
&lt;/h4&gt;

&lt;p&gt;Lay down on the floor on your back. Inhale 5 to 7 seconds in, hold for 2, exhale for 9 seconds. Try to relax your body as much as possible. Do this 10 mins everyday. Congratulations, you're doing Yoga.&lt;/p&gt;
&lt;h3&gt;
  
  
  Food
&lt;/h3&gt;

&lt;p&gt;Please don't underestimate how much what you're eating can make you feel like shit.&lt;/p&gt;

&lt;p&gt;Before devoting my life to code, I used to work as a food scientist. I can sum up years of research about what you should probably be eating, in the form of a haiku:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bit of everything,
But mostly vegetables.
Yes. Vegetables.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Taking care of your Circadian rhythm
&lt;/h3&gt;

&lt;p&gt;Most people with sleep issues just have a fucked-up circadian rhythm, or "internal clock". Do take care of that.&lt;/p&gt;

&lt;p&gt;The single most important advice I have on this topic is to get outside, first thing in the morning, for about 10 minutes. The morning light entering your eyes will tune your internal clock to the "morning" setting.&lt;/p&gt;

&lt;p&gt;For more tips on this topic, and as a general amazing resource for science-based tools for your well-being, I recommend the entirety of &lt;a href="https://www.youtube.com/watch?v=4b6bwcWK6GE"&gt;The Huberman Podcast&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step Three: Focusing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Noise-cancelling headphones
&lt;/h3&gt;

&lt;p&gt;They will be of tremendous help to you if you can't focus with sounds around you (or without music). If you work in an open space, that might even be mandatory.&lt;/p&gt;

&lt;p&gt;Choose a model that you can wear for long hours without any pain (you're not working hard to avoid back pains just to end up with head pains). Sony's WH-1000 XM4 are a solid choice if you can afford them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Be by yourself. Or don't.
&lt;/h3&gt;

&lt;p&gt;Some people work better alone in a room. Some people work better when other people are present. If you can afford a choice here, try and see what works for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Pomodoro technique
&lt;/h3&gt;

&lt;p&gt;Many guides exist on that topic, so I won't go into details. The gist of it is to work in cycles of 50 minutes + 10 minute breaks.&lt;/p&gt;

&lt;p&gt;During those 50 minutes of work, you should practice &lt;a href="https://www.goodreads.com/en/book/show/25744928"&gt;Deep work&lt;/a&gt;. Absolutely no distraction, work on your focus.&lt;/p&gt;

&lt;p&gt;During those 10 minute breaks, I highly recommend that you &lt;strong&gt;stretch&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I am not kidding when I say that the Pomodoro technique is the most important productivity tool for remote work.&lt;/p&gt;

&lt;p&gt;Although the pomodoro technique works extremely very well for some people, many of them end up not using it anyway. &lt;a href="https://dev.to/samuelfaure/the-problem-with-the-basecamp-books-or-why-our-work-culture-sucks-3a7b"&gt;Knowing something works and not doing it anyway is a classic problem&lt;/a&gt;. Don't be like this: if something works for you, persevere.&lt;/p&gt;

&lt;p&gt;Sidenote: the opposite is also true. If something doesn't work for you, absolutely do not persevere as it, but change something.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stimulants
&lt;/h3&gt;

&lt;p&gt;Coffee works great if you use it with moderation, as long as it's not disrupting your sleep.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Big Screen Or two
&lt;/h3&gt;

&lt;p&gt;Many companies researched how to boost productivity for their employees. Apparently, the only two things that they found worked were: Coffee, and bigger screens.&lt;/p&gt;

&lt;p&gt;If you're working on a small laptop screen, consider investing in at least one bigger screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step Four: Making Space
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Cleaning your environment
&lt;/h3&gt;

&lt;p&gt;&amp;lt;&amp;lt; A clean space is a clean mind &amp;gt;&amp;gt;. When your head is a mess, your environment is a mess. When your environment is a mess, your head is a mess.&lt;/p&gt;

&lt;p&gt;This applies both to real life and to your virtual environment: files everywhere on your computer are increasing your mental load as well. Clean your spaces, including your desktop, including the one inside your computer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cleaning your head
&lt;/h3&gt;

&lt;p&gt;If you're not managing your stress, you're not managing your head.&lt;/p&gt;

&lt;p&gt;A regular meditation practice will not only help you focus better by directly training your focus skills, but will also clear your head of the unnecessary clutter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cleaning your code
&lt;/h3&gt;

&lt;p&gt;Having technical debt is really bad for your productivity, but also for your well-being. &lt;a href="https://dev.to/samuelfaure/the-technical-debt-explained-with-a-kitchen-analogy-518h"&gt;Here's an article explaining why.&lt;/a&gt;. So work on your technical debt. Keep it as small as possible&lt;/p&gt;

&lt;p&gt;A great method to clean your space - virtual, mental, and code - is the Marie Kondo philosophy. Throw things away. For more informations on this, read the &lt;a href="https://dev.to/samuelfaure/the-marie-kondo-guide-for-the-clean-developer-h0"&gt;Marie Kondo guide for the Clean Developer&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step Five: Work methodologies
&lt;/h2&gt;

&lt;p&gt;Being able to focus is great, but if you don't have a good workflow, it will be useless.&lt;/p&gt;

&lt;h3&gt;
  
  
  TDD
&lt;/h3&gt;

&lt;p&gt;Test-driven development is a cult. And I'm in it. We keep preaching this methodology for a good reason: it &lt;strong&gt;works&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's actually extremely hard to practice TDD well; just like the game of Go, you can know the rules yet still suck at it. It takes years and years of practice to actually do well.&lt;/p&gt;

&lt;p&gt;When you suck at TDD, it still saves you time on the middle and long-term. When you're good at TDD, it also saves you time on the short term.&lt;/p&gt;

&lt;h3&gt;
  
  
  Atomic Git Commits
&lt;/h3&gt;

&lt;p&gt;Please refer to &lt;a href="https://dev.to/samuelfaure/how-atomic-git-commits-dramatically-increased-my-productivity-and-will-increase-yours-too-4a84"&gt;my article on the topic.&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  AI is your friend
&lt;/h3&gt;

&lt;p&gt;Artificial Intelligence will probably not replace us in the near future, but using AI will definitely boost your productivity by an order of magnitude. I'm not sponsored by Github but I'll say it anyway: 10 dollars a month for Copilot is more than worth it.&lt;/p&gt;

&lt;p&gt;And don't be afraid to ask ChatGPT immediately when you don't know something. AI is the new Google.&lt;/p&gt;

&lt;p&gt;And while this article was not written by ChatGPT, most of my automated tests at work mostly are. Just copy-paste your class, ask for some tests, and 80% of the work is done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step Six: Don't Overdo It
&lt;/h2&gt;

&lt;p&gt;The problem with an increased productivity is that you'll be able to work a lot.&lt;/p&gt;

&lt;p&gt;The problem with working a lot is that you might end up working too much.&lt;/p&gt;

&lt;p&gt;The problem with working too much is that you'll end up harming your well-being, hence your productivity.&lt;/p&gt;

&lt;p&gt;A note about deep work: deep work is much, much more intense than non-deep work. You probably cannot produce 8 hours of your best code every day without burning out real fast.&lt;/p&gt;

&lt;p&gt;Manage yourself, respect yourself, this is a marathon not a sprint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;If you implement everything we discussed here, not only will you be a more productive person, you'll also be significantly happier. I promise you as much.&lt;/p&gt;

&lt;p&gt;Also, if I forgot anything that works for you, please tell me in the comments!&lt;/p&gt;

&lt;p&gt;Happy life, happy coding.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>webdev</category>
      <category>learning</category>
    </item>
    <item>
      <title>How atomic Git commits dramatically increased my productivity - and will increase yours too</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Tue, 07 Mar 2023 06:02:22 +0000</pubDate>
      <link>https://dev.to/samuelfaure/how-atomic-git-commits-dramatically-increased-my-productivity-and-will-increase-yours-too-4a84</link>
      <guid>https://dev.to/samuelfaure/how-atomic-git-commits-dramatically-increased-my-productivity-and-will-increase-yours-too-4a84</guid>
      <description>&lt;p&gt;&lt;em&gt;Atomic: of or forming a single irreducible unit or component in a larger system.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Also available on &lt;a href="https://suchdevblog.com/lessons/AtomicGitCommits.html"&gt;my blog&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Knowing VS Actually Knowing
&lt;/h2&gt;

&lt;p&gt;I remember when my first mentor told me about Test-Driven Development. A great methodological approach to software engineering. It took me just a few minutes to understand what it was and how it worked.&lt;/p&gt;

&lt;p&gt;Then I spent the next six months actively not practicing it. TDD is hard when you start, so you just... don't.&lt;/p&gt;

&lt;p&gt;Half a year later, I was hitting my head against a wall trying to build a new feature. I forced myself for the first time to actually do TDD by the book. The wall that was blocking my progress disappeared instantly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/samuelfaure/the-problem-with-the-basecamp-books-or-why-our-work-culture-sucks-3a7b"&gt;In a previous article&lt;/a&gt;, I explained how many managers and tech leads often know exactly how to make our industry better... yet don't. There is always a good reason to not do things right. And somehow we still end up surprised when we're doing things wrong.&lt;/p&gt;

&lt;p&gt;This long introduction is here to illustrate a point: you can &lt;em&gt;know&lt;/em&gt; what you should do, but you might not know how important it is to &lt;em&gt;actually do it&lt;/em&gt;. So many people out there, just like I did before, know how TDD is great... yet still don't use it.&lt;/p&gt;

&lt;p&gt;The simplest concepts can often completely change the way you work... if you would only apply them. Introducing: the atomic git commits.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's an atomic git commit?
&lt;/h2&gt;

&lt;p&gt;Working with atomic git commits means your commits are of the smallest possible size. Each commit does one, and only one simple thing, that can be summed up in a simple sentence.&lt;/p&gt;

&lt;p&gt;The amount of code change doesn't matter. It can be a letter or it can be a hundred thousand lines, but you should be able to describe the change with one simple short sentence.&lt;/p&gt;

&lt;p&gt;Ideally, you also want your test suite to be in the green when you commit. Your changes might be "atomic", i.e the smallest possible, but they should also be "complete", which means your test suite always follow through.&lt;/p&gt;

&lt;p&gt;As small as possible, but complete: this is an atomic git commit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why should you write atomic git commits?
&lt;/h2&gt;

&lt;p&gt;There are a few great advantages to practicing atomic git commits, and we'll briefly detail them. But the last one really is the most important. It might completely change the way you approach your work, increase your productivity by an order of magnitude, and make your job much more enjoyable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reason number 1: An atomic change is a reversible change
&lt;/h3&gt;

&lt;p&gt;We all know this simple truth about software: the requirements are &lt;em&gt;always&lt;/em&gt; changing. By writing atomic git commits, we allow ourselves to revert any changes by a simple commit revert. This already increases your productivity tremendously.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reason number 2: A clean git history
&lt;/h3&gt;

&lt;p&gt;When shit hit the fan, a clean git history means the difference between pain and salvation. It's like insuring your house: seems useless, until there's a fire.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reason number 3: Pull requests are much easier to review
&lt;/h3&gt;

&lt;p&gt;Your team will absolutely love you for this.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reason number 4: A much, much better workflow
&lt;/h3&gt;

&lt;p&gt;This is by far the most important reason to practice atomic git commits: it completely alters the way you approach problem-solving.&lt;/p&gt;

&lt;p&gt;If you're like me, you might have a tendency while developing a feature, to just... &lt;em&gt;do it&lt;/em&gt;. Entirely.&lt;/p&gt;

&lt;p&gt;Then you realize how you did not think everything through.&lt;/p&gt;

&lt;p&gt;You need to change more that you expected. Some edge cases aren't taken into account. You broke some unrelated tests, they need fixing. Soon, you end up in a maze of your own making. You're lost. Your head hurts. You can't make any progress without being entirely focused. &lt;/p&gt;

&lt;p&gt;Now, this is the &lt;em&gt;wrong&lt;/em&gt; way to do things. And worse, you already know the &lt;em&gt;right&lt;/em&gt; way, because it's so obvious.&lt;/p&gt;

&lt;p&gt;The well-known method to complete a big, complex task: cut it down into smaller, manageable, tiny steps. Each step -its own simple problem to solve. This is obvious advice that you probably already heard many times... But are you actually practicing it in your daily job?&lt;/p&gt;

&lt;p&gt;Well, here's a great way to actually practice it: write atomic git commits.&lt;/p&gt;

&lt;p&gt;By forcefully working in atomic commits, you're approaching the work the right way, by simplifying it into smaller steps. After all, &lt;em&gt;simplifying complexity&lt;/em&gt; is the very core of our job. So why aren't we always consciously doing it?&lt;/p&gt;

&lt;p&gt;Of course this advice might sound obvious. But if my past experience proves anything, it's that the obvious really bears repeating, and even more importantly, it bears &lt;em&gt;practicing&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Make your work simpler, better, more manageable, and most importantly: &lt;em&gt;make it easier&lt;/em&gt;. Take small steps. Write small commits. Atomic commits. You will love them.&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>github</category>
      <category>programming</category>
    </item>
    <item>
      <title>Why aren't you on Neovim yet?</title>
      <dc:creator>Samuel-Zacharie FAURE</dc:creator>
      <pubDate>Wed, 11 May 2022 08:47:02 +0000</pubDate>
      <link>https://dev.to/samuelfaure/why-arent-you-on-neovim-yet-48oc</link>
      <guid>https://dev.to/samuelfaure/why-arent-you-on-neovim-yet-48oc</guid>
      <description>&lt;p&gt;Just discovered Neovim today. I can't believe how much I've been missing out!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exactly like VIM, but faster&lt;/li&gt;
&lt;li&gt;Better performances&lt;/li&gt;
&lt;li&gt;Works out-of-the-box with my extensive VIM configuration&lt;/li&gt;
&lt;li&gt;Installation and configuration was a breeze, don't need to change anything&lt;/li&gt;
&lt;li&gt;Did I mention that it was faster?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And obviously it's free and open-source.&lt;/p&gt;

&lt;p&gt;Here's a quick installation guide if you want to get started: just copy-paste this in &lt;code&gt;~/.config/nvim/init.vim&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &amp;amp;packpath = &amp;amp;runtimepath
source ~/.vimrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will make Neovim pick up your current VIM config. So if you end up not liking Neovim for some reason, your VIM config is still intact. You can even have both installed at the same time.&lt;/p&gt;

&lt;p&gt;So, why aren't you on Neovim yet?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>opensource</category>
      <category>vim</category>
    </item>
  </channel>
</rss>
