<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title>Chemaclass - career</title><subtitle>Tech Lead sharing practical insights on software craftsmanship, TDD, leadership, Bitcoin, and AI. Blog posts, book summaries, and conference talks.</subtitle><link rel="self" type="application/atom+xml" href="https://chemaclass.com/tags/career/atom.xml"/><link rel="alternate" type="text/html" href="https://chemaclass.com"/><generator uri="https://www.getzola.org/">Zola</generator><updated>2026-07-14T00:00:00+00:00</updated><id>https://chemaclass.com/tags/career/atom.xml</id><entry xml:lang="en"><title>Working With the Garage Door Open</title><subtitle>Visibility is passive, signal is not</subtitle><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><published>2026-07-14T00:00:00+00:00</published><updated>2026-07-14T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/working-with-the-garage-door-open/"/><id>https://chemaclass.com/blog/working-with-the-garage-door-open/</id><summary type="html">Working in the open lets people help while the work is still shapeable. But an open door is passive. The real skill is pushing the right signal to the right room.</summary><content type="html">&lt;p>Most people work with the garage door closed. They work in private and raise it only when the car is polished and parked. The neighbors see a finished thing. Never the work.&lt;/p>
&lt;p>The phrase comes from writer Robin Sloan. Researcher &lt;a rel="external" href="https://notes.andymatuschak.org/Work_with_the_garage_door_up">Andy Matuschak&lt;/a> turned it into a practice: notes and half-baked ideas visible to anyone walking past.&lt;/p>
&lt;p>Open the door.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>It means showing the work while it’s still in progress. The draft with the ugly variable names. The experiment you’re halfway through. Not the demo. The middle.&lt;/p>
&lt;h2 id="why-we-keep-it-closed">Why we keep it closed
&lt;a class="heading-anchor" href="#why-we-keep-it-closed" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Fear, mostly. A closed door protects you. Nobody judges a mess they can’t see.&lt;/p>
&lt;p>So we hide the drafts. We only push code once it’s clean enough to survive review. By the time anyone sees the work, every real decision was made in private.&lt;/p>
&lt;p>That instinct feels safe. It costs you the exact moments where help was still possible.&lt;/p>
&lt;blockquote>
&lt;p>A finished result can only be admired. A work in progress can be shaped.&lt;/p>
&lt;/blockquote>
&lt;h2 id="what-the-open-door-gives-you">What the open door gives you
&lt;a class="heading-anchor" href="#what-the-open-door-gives-you" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>When people see the middle, they can change it. A teammate spots the dead-end approach before you sink another day into it. A junior asks the “dumb” question that turns out to be the real problem. &lt;a href="/blog/effective-pair-programming/">Pair programming&lt;/a> is this at its purest: the door open, live.&lt;/p>
&lt;p>The open door also kills the myth that seniors don’t struggle. When a junior watches you get stuck and google an error you “should” know, they learn what real work looks like. Not the highlight reel.&lt;/p>
&lt;p>I lived this with &lt;a href="/blog/bashunit/">bashunit&lt;/a>, my bash testing library. I shipped it imperfect. Everyone who looked inside the garage shaped it: bug reports, feature requests, pull requests. Same with &lt;a href="/blog/phel-first-release/">Phel&lt;/a> and &lt;a href="/blog/inside-the-claude-folder/">my public &lt;code>.claude&lt;/code> folder&lt;/a>. &lt;a href="/blog/open-source-software/">The open-source way&lt;/a>.&lt;/p>
&lt;h2 id="but-an-open-door-isn-t-enough">But an open door isn’t enough
&lt;a class="heading-anchor" href="#but-an-open-door-isn-t-enough" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Here’s the trap. You leave the door up, open a PR, write notes in a shared doc, and wait for help to arrive.&lt;/p>
&lt;p>It doesn’t. Nobody wanders into your garage.&lt;/p>
&lt;p>Visibility is passive. “Public by default” is the floor, not the goal.&lt;/p>
&lt;blockquote>
&lt;p>Leaving the door open is not the same as inviting someone in.&lt;/p>
&lt;/blockquote>
&lt;p>The skill isn’t openness. It’s pushing the right signal to the right people, on purpose.&lt;/p>
&lt;h2 id="push-signal-to-the-right-room">Push signal to the right room
&lt;a class="heading-anchor" href="#push-signal-to-the-right-room" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Every channel comes with an expectation of who reads it. Matching your update to it is the whole game. Post in the wrong room and you’re noise or invisible.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>The whole company reads it.&lt;/strong> &lt;code>#general&lt;/code>. Post only what matters to everyone.&lt;/li>
&lt;li>&lt;strong>The tech team reads it.&lt;/strong> &lt;code>#engineering&lt;/code>. Where a work-in-progress update belongs.&lt;/li>
&lt;li>&lt;strong>Interested people opt in.&lt;/strong> &lt;code>#insights&lt;/code>: industry news, customer signals. Useful, but nobody has to read it.&lt;/li>
&lt;li>&lt;strong>Nobody has to read it.&lt;/strong> &lt;code>#random&lt;/code>. Say whatever.&lt;/li>
&lt;/ul>
&lt;p>Same update, four different outcomes depending on where it lands. Learn the map before you broadcast.&lt;/p>
&lt;h2 id="what-a-good-signal-looks-like">What a good signal looks like
&lt;a class="heading-anchor" href="#what-a-good-signal-looks-like" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>A good update is not &lt;em>“hey, I pushed something.”&lt;/em> It carries enough context that a reader can engage without asking you a single question.&lt;/p>
&lt;p>Say I’m halfway through a pilot: a new way to slice and &lt;a href="/blog/pull-request-vs-pair-prog/">review pull requests&lt;/a>, tested on one team. I don’t wait for the end. A short update goes to &lt;code>#engineering&lt;/code>: where I’m stuck, plus one explicit ask. &lt;em>“Has anyone tried this with a monorepo?”&lt;/em> gets answers.&lt;/p>
&lt;p>When the pilot ends, the result goes to the same room:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>What I tried&lt;/strong> and why it mattered.&lt;/li>
&lt;li>&lt;strong>What worked&lt;/strong>, with a concrete before and after.&lt;/li>
&lt;li>&lt;strong>What didn’t&lt;/strong>, honestly. The failed part is the most useful part.&lt;/li>
&lt;li>&lt;strong>What you’d do&lt;/strong> to try it yourself.&lt;/li>
&lt;/ul>
&lt;p>Both are signals, not statuses. They turn one team’s experiment into something the whole org can copy or shoot down. This is &lt;a href="/blog/ship-show-ask/">Ship, Show, Ask&lt;/a> applied past the pull request.&lt;/p>
&lt;h2 id="start-small">Start small
&lt;a class="heading-anchor" href="#start-small" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Pick one thing this week. One experiment, one draft, one stuck moment. Do two things: leave the door open, then walk out and tell the right room it’s there.&lt;/p>
&lt;p>You’ll get help you didn’t expect. You’ll teach someone without meaning to. And the fear that kept the door down will look smaller from the other side.&lt;/p>
&lt;p>The polished result impresses people. The pushed signal is how the work gets better.&lt;/p>
&lt;p>Open the door. Then point at it.&lt;/p>
&lt;aside class="kudos">
&lt;span class="kudos__icon" aria-hidden="true">🧠&lt;/span>
&lt;div class="kudos__content">
&lt;p>Thanks to my colleague Aike, who gave me the idea in one of our conversations about making work visible.&lt;/p>
&lt;/div>
&lt;/aside>
&lt;p>&lt;img src="/images/blog/2026-07-14/footer.webp" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="en"><title>The Eternal Return</title><subtitle>A mirror in the present</subtitle><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2026-06-01T00:00:00+00:00</published><updated>2026-06-02T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/the-eternal-return/"/><id>https://chemaclass.com/blog/the-eternal-return/</id><summary type="html">Nietzsche used eternal return as a test. Life uses it as a mirror. Patterns rhyme not to predict the future, but to reveal who you become under pressure.</summary><content type="html">&lt;p>Nietzsche proposed a thought experiment in &lt;em>The Gay Science&lt;/em>. Imagine a demon visits you at night and says: this life you have lived, you will live again, infinite times, exactly the same. Every joy, every regret, every detail. Would you collapse, or would you celebrate?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>He did not mean it literally. He meant it as a test. Can you live in a way that you would willingly relive?&lt;/p>
&lt;p>Years passed before that idea found me again. Not as philosophy. As pattern.&lt;/p>
&lt;h2 id="events-that-rhyme">Events That Rhyme
&lt;a class="heading-anchor" href="#events-that-rhyme" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>A situation happens. Some time later, a different situation happens. Different people, different stakes, different city. Yet the shape feels familiar. Not the surface, not déjà vu, but something underneath. The same kind of pressure, the same kind of decision, the same kind of room you have to walk into.&lt;/p>
&lt;p>It is not that the events are connected. They are not. Causality does not link them. Your brain links them, because exposure to enough life produces collisions of shape. The more you live, the more shapes accumulate. Eventually, the new one rhymes with the old one.&lt;/p>
&lt;p>I have felt this many times. Changing companies, closing one chapter of work and starting another, with new people and new constraints, yet the same internal weather rising in me as I cross the threshold. Quieter moments too: a certain light in October, a certain silence in January, that returns each year and brings with it the same kind of thoughts, the same curiosities, the same questions I never quite finished asking.&lt;/p>
&lt;h2 id="the-trap-of-false-wisdom">The Trap of False Wisdom
&lt;a class="heading-anchor" href="#the-trap-of-false-wisdom" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The easy conclusion is: I have seen this before, I know what to do. That conclusion is wrong.&lt;/p>
&lt;p>The events are not the same. The lesson from the past one does not transfer cleanly. Acting as if it does is the most common way experienced people make experienced mistakes. They mistake recognition for understanding.&lt;/p>
&lt;blockquote>
&lt;p>Familiarity of shape is not knowledge of solution.&lt;/p>
&lt;/blockquote>
&lt;h2 id="what-repetition-actually-gives">What Repetition Actually Gives
&lt;a class="heading-anchor" href="#what-repetition-actually-gives" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>What repeats is not the situation. What repeats is you, inside the situation.&lt;/p>
&lt;p>The same kind of pressure surfaces the same parts of you. The same kind of decision exposes the same instincts, the same fears, the same default moves. The first time, you are too inside it to see. The second time, you start to notice. The third time, you can name what is happening while it happens.&lt;/p>
&lt;p>That is the gift. Not predictive wisdom about the world. Diagnostic awareness about yourself.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-06-01/middle.webp" alt="Repeated life patterns revealing who you become under pressure" />&lt;/p>
&lt;h2 id="exposure-is-the-variable">Exposure Is the Variable
&lt;a class="heading-anchor" href="#exposure-is-the-variable" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The people who get this benefit are not the smart ones. They are the exposed ones. The ones who took the difficult job, said yes to the hard conversation, sat with uncomfortable feedback, moved cities when it would have been easier to stay, accepted the project they were not ready for.&lt;/p>
&lt;blockquote>
&lt;p>Patterns cannot rhyme if you only ever live one shape.&lt;/p>
&lt;/blockquote>
&lt;p>This is why staying open matters. &lt;a href="https://chemaclass.com/blog/embrace-the-change/">Welcoming change&lt;/a> is not personality, it is method. It is how you accumulate the raw material that, much later, lets you recognize yourself under pressure.&lt;/p>
&lt;h2 id="ten-years-later">Ten Years Later
&lt;a class="heading-anchor" href="#ten-years-later" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Ten years ago I was &lt;a href="/books/">writing a book&lt;/a> of my thoughts. I wrote every few days, just to read it back the next morning and understand myself better. I am not that person anymore.&lt;/p>
&lt;p>Every beginning carries the shape of an end. Accepting that lets you stop chasing finality and pay attention to the process itself.&lt;/p>
&lt;p>Process over goal. The role you take matters less than the persona you build inside it. The impact you leave is not what you intended, it is the shape of the absence you create when you are gone.&lt;/p>
&lt;h2 id="what-is-in-your-control">What Is in Your Control
&lt;a class="heading-anchor" href="#what-is-in-your-control" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The events themselves are mostly not in your control. What complications arrive, when, with what severity: not yours to decide.&lt;/p>
&lt;p>What is yours: whether you stay long enough to see the shape. Whether you reflect afterward instead of moving on cleanly. Whether you let the next collision teach you something about yourself rather than insisting it teach you something about the world.&lt;/p>
&lt;blockquote>
&lt;p>The world repeats nothing. You repeat almost everything.&lt;/p>
&lt;/blockquote>
&lt;h2 id="the-real-eternal-return">The Real Eternal Return
&lt;a class="heading-anchor" href="#the-real-eternal-return" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Nietzsche’s demon was not asking about reincarnation. He was asking whether you have lived a life worth being. The test is internal.&lt;/p>
&lt;p>So ask yourself. If this exact life repeated forever, every detail unchanged, would the honest answer be joy or regret? You are the only one who can answer, and the hardest one to answer truthfully.&lt;/p>
&lt;p>I love being alive. The fact it ends is what gives the time inside it weight. If I do not like who I am becoming, I still have time to change. That is the only useful thing recurrence ever offered. Not knowledge of the future. A mirror in the present.&lt;/p>
&lt;blockquote>
&lt;p>We get one life. Make it one you would relive.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2026-06-01/footer.webp" alt="A mirror in the present, not a prediction of the future" />&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/KqhPdzqqask"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>What Success Means to Me</title><subtitle>A simple definition that changed how I live</subtitle><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2025-09-15T00:00:00+00:00</published><updated>2025-09-15T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/what-success-means-to-me/"/><id>https://chemaclass.com/blog/what-success-means-to-me/</id><summary type="html">Success is waking up knowing that what you do makes the people around you, and yourself, happier. No complex formula. Just consistency over perfection, and building habits that align with what matters.</summary><content type="html">&lt;p>For the longest time, I thought success was about hitting certain milestones. Getting that promotion. Earning a specific salary. Building something that people would recognize.&lt;/p>
&lt;p>But I’ve realized that’s not what gets me out of bed in the morning.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="the-real-measure">The real measure
&lt;a class="heading-anchor" href="#the-real-measure" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Success, for me, is straightforward now: &lt;strong>waking up knowing that what I do makes the people around me, and myself, happier&lt;/strong>.&lt;/p>
&lt;p>It took me a while to get here. This definition might not feel simple to everyone, and that’s okay. But for me, it clarified everything.&lt;/p>
&lt;p>No complex formula. No checklist of achievements.&lt;/p>
&lt;blockquote>
&lt;p>Success is about those small moments when you help a colleague solve a tricky problem, when you share something that makes someone smile, or when you finish the day feeling like you actually added some good to the world.&lt;/p>
&lt;/blockquote>
&lt;p>This applies whether you’re leading a team or just showing up as yourself. As I wrote about &lt;a href="/blog/great-leadership">great leadership&lt;/a>, real leadership starts with your own life and behavior. It’s fundamentally about making the people around you better, not just achieving targets.&lt;/p>
&lt;h2 id="why-happiness-matters">Why happiness matters
&lt;a class="heading-anchor" href="#why-happiness-matters" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I used to think that focusing on happiness was somehow trivial. Like it wasn’t “serious” enough as a goal. But I’ve learned that making people happy, genuinely happy, is one of the hardest and most rewarding things you can do.&lt;/p>
&lt;h3 id="what-does-this-mean-in-practice">What does this mean in practice?
&lt;a class="heading-anchor" href="#what-does-this-mean-in-practice" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Being present when someone needs you&lt;/li>
&lt;li>Creating things that solve real problems&lt;/li>
&lt;li>Choosing kindness over being right&lt;/li>
&lt;li>Finding joy in what you do, even on tough days&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>When you focus on making others happier, you usually end up happier yourself. It’s not zero-sum. It compounds.&lt;/p>
&lt;/blockquote>
&lt;p>This connects deeply with &lt;a href="/blog/understanding-people">understanding people&lt;/a> and how they think. When you truly understand that everyone processes the world differently, you become better at creating genuine happiness, not just what you think should make them happy.&lt;/p>
&lt;h2 id="the-daily-practice">The daily practice
&lt;a class="heading-anchor" href="#the-daily-practice" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="how-does-this-look-in-daily-life">How does this look in daily life?
&lt;a class="heading-anchor" href="#how-does-this-look-in-daily-life" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>For me, it’s about checking in with myself regularly: “Did what I do today make things better?” Not perfect. Not revolutionary. Just better.&lt;/p>
&lt;p>Sometimes that’s writing code that helps a team work more smoothly. Sometimes it’s taking time to really listen to someone. Sometimes it’s just being patient when everything feels chaotic.&lt;/p>
&lt;p>It’s not always easy. Some days you miss the mark. But having this simple definition of success makes decisions clearer. When you’re wondering whether to take on a project, accept an opportunity, or say no to something, you can ask yourself: “Will this make me and the people around me happier?”&lt;/p>
&lt;h3 id="consistency-over-perfectionism">Consistency over perfectionism
&lt;a class="heading-anchor" href="#consistency-over-perfectionism" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Here’s something I’ve learned the hard way: &lt;strong>success is built through consistency, not perfection&lt;/strong>.&lt;/p>
&lt;p>Perfectionism will paralyze you. It whispers that nothing is good enough, that you should wait until conditions are ideal, that one mistake invalidates everything. It’s a trap.&lt;/p>
&lt;p>What actually works? Showing up. Day after day. Building small habits that compound over time.&lt;/p>
&lt;p>As James Clear explains in &lt;a href="/readings/atomic-habits/">Atomic Habits&lt;/a>, real change comes from the compound effect of hundreds of small decisions. You don’t need to be perfect. You need to be consistent.&lt;/p>
&lt;blockquote>
&lt;p>Don’t try to make a habit perfect, just repeat it.&lt;/p>
&lt;/blockquote>
&lt;p>This means:&lt;/p>
&lt;ul>
&lt;li>Writing a few lines of code every day beats waiting for the perfect architecture&lt;/li>
&lt;li>Having a short, genuine conversation beats waiting for the perfect moment&lt;/li>
&lt;li>Making small improvements consistently beats waiting for the big breakthrough&lt;/li>
&lt;/ul>
&lt;p>The goal isn’t to never fail. It’s to build habits that align with making yourself and others happier, and to keep showing up even when you stumble.&lt;/p>
&lt;blockquote>
&lt;p>This is where &lt;a href="/blog/the-process-itself-is-the-goal">the process itself becomes the goal&lt;/a>. It’s not about reaching some final destination of “being successful”, it’s about building daily habits and practices that align with what actually matters to you.&lt;/p>
&lt;/blockquote>
&lt;h2 id="success-is-personal">Success is personal
&lt;a class="heading-anchor" href="#success-is-personal" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Your definition of success will probably be different from mine, and that’s not just okay, it’s necessary.&lt;/p>
&lt;p>“&lt;a href="/blog/have-you-always-been-like-this">Have I always been like this?&lt;/a>” The answer is no. I certainly wasn’t. Our understanding of what matters evolves as we grow. That’s part of the journey.&lt;/p>
&lt;p>If you’re feeling stuck or unsure about what you’re working toward, try this: &lt;strong>figure out what truly makes you and the people you care about happier&lt;/strong>. Not what you think should make you happy. Not what looks impressive from the outside.&lt;/p>
&lt;p>Just what actually works for you.&lt;/p>
&lt;p>And be ready to &lt;a href="/blog/embrace-the-change">embrace the change&lt;/a> when your definition shifts, &lt;strong>because it will&lt;/strong>. What success means to you today might look different tomorrow. That’s not failure. That’s growth.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;p>At the end of the day, if you wake up knowing that what you do brings more happiness into the world, including your own, you’re probably doing something right.&lt;/p>
&lt;/blockquote>
&lt;p>That feels like success to me.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-11-15/footer.webp" alt="what success means to me" />&lt;/p>
&lt;hr />
&lt;p>&lt;strong>Thanks&lt;/strong> to my friend Toni, for &lt;a rel="external" href="https://x.com/Chemaclass/status/1989652323925377462">bringing up&lt;/a> this question and inspiring this reflection.&lt;/p></content></entry><entry xml:lang="en"><title>Principles of Economics</title><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2025-06-22T00:00:00+00:00</published><updated>2025-06-22T00:00:00+00:00</updated><author><name>
Saifedean Ammous</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/principles-of-economics/"/><id>https://chemaclass.com/readings/principles-of-economics/</id><summary type="html">If you've ever scratched your head at the economy, wondered why prices keep rising, or questioned why money seems to lose value over time, Principles of Economics by Saifedean Ammous might blow your mind. It's not your typical dry economics book. Instead, it's a bold, no-nonsense guide to understanding how the world really works, through the lens of Austrian economics. Here's what stood out to me.</summary><content type="html">&lt;p>If you’ve ever scratched your head at the economy, wondered why prices keep rising, or questioned why money seems to lose value over time, Principles of Economics by Saifedean Ammous might blow your mind.&lt;/p>
&lt;p>It’s not your typical dry economics book. Instead, it’s a bold, no-nonsense guide to understanding how the world really works, through the lens of Austrian economics. Here’s what stood out to me.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="1-economics-human-action">1. Economics = Human Action
&lt;a class="heading-anchor" href="#1-economics-human-action" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Ammous starts with something super simple but powerful: economics is just people making choices. Every time we choose to do one thing over another, that’s economics in action.&lt;/p>
&lt;p>Forget all the charts and equations you might’ve seen in school. Real economics begins with you trying to make life better, one decision at a time.&lt;/p>
&lt;h2 id="2-time-preference-how-much-you-value-the-future">2. Time Preference = How Much You Value the Future
&lt;a class="heading-anchor" href="#2-time-preference-how-much-you-value-the-future" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>This idea was a game-changer: your time preference is how much you value stuff now vs. later.&lt;/p>
&lt;ul>
&lt;li>If you spend everything today, you’ve got a high time preference.&lt;/li>
&lt;li>If you save and plan for tomorrow, you’ve got a low time preference.&lt;/li>
&lt;/ul>
&lt;p>Low time preference leads to building cool things. Like businesses, families, skyscrapers, or even civilizations. High time preference? That’s fast food, impulse buying, and short-term thinking.&lt;/p>
&lt;h2 id="3-good-money-strong-society">3. Good Money = Strong Society
&lt;a class="heading-anchor" href="#3-good-money-strong-society" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The quality of a society’s money affects everything. If your money constantly loses value (&lt;em>hello, inflation&lt;/em>), people stop saving and start living for today.&lt;/p>
&lt;p>He argues that government-controlled “fiat” money is the problem, and we need a return to “hard money” (like gold or &lt;a href="/tags/bitcoin/">Bitcoin&lt;/a>) that holds its value over time. Good money helps people plan, save, and grow wealth across generations.&lt;/p>
&lt;h2 id="4-producing-stuff-takes-time-and-that-matters">4. Producing Stuff Takes Time, and That Matters
&lt;a class="heading-anchor" href="#4-producing-stuff-takes-time-and-that-matters" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Making things isn’t instant. It takes time, tools, and planning. Ammous explains how advanced economies only exist because people invest in long-term production: factories, machines, supply chains.&lt;/p>
&lt;p>That’s only possible when people trust their money and their future. So again, low time preference is key.&lt;/p>
&lt;h2 id="5-entrepreneurs-not-governments-drive-progress">5. Entrepreneurs, Not Governments, Drive Progress
&lt;a class="heading-anchor" href="#5-entrepreneurs-not-governments-drive-progress" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>If there’s a hero in this book, it’s &lt;strong>the entrepreneur&lt;/strong>: the person who &lt;strong>takes risks&lt;/strong>, builds businesses, and &lt;strong>creates value&lt;/strong>.&lt;/p>
&lt;p>Ammous has zero love for central planners, regulations, or government bailouts. He’s all about free markets and letting smart people solve problems without interference. When prices are honest and money is sound, people figure things out on their own.&lt;/p>
&lt;h2 id="6-inflation-and-central-planning-big-red-flags">6. Inflation and Central Planning? Big Red Flags
&lt;a class="heading-anchor" href="#6-inflation-and-central-planning-big-red-flags" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Ammous doesn’t pull punches. He’s very critical of how governments manage money and the economy.&lt;/p>
&lt;p>He sees inflation as a sneaky form of theft and believes that constant meddling (like printing money or setting interest rates) only makes things worse. He even calls out entire fields like climate economics and ESG as being more about politics than real economics.&lt;/p>
&lt;h2 id="7-bitcoin-the-grand-finale">7. Bitcoin: The Grand Finale
&lt;a class="heading-anchor" href="#7-bitcoin-the-grand-finale" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>While this book isn’t just about Bitcoin, it clearly leads there. After explaining why our current money system is broken, Ammous points to Bitcoin as the best solution we’ve seen in over a century.&lt;/p>
&lt;p>It’s digital, limited, and no one can mess with it. Bitcoin is the return of sound money, and a chance to fix a lot of what’s wrong today.&lt;/p>
&lt;h2 id="final-thoughts-a-crash-course-in-real-economics">Final Thoughts: A Crash Course in Real Economics
&lt;a class="heading-anchor" href="#final-thoughts-a-crash-course-in-real-economics" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>“Principles of Economics” is like an economics red pill. It’s straightforward, bold, and sometimes brutal. But if you’re tired of the usual financial nonsense, this book will hit you like a breath of fresh air.&lt;/p>
&lt;p>You’ll walk away with a new lens to see the world: why prices rise, why saving matters, and why the kind of money we use shapes everything.&lt;/p>
&lt;h2 id="austrian-economics-vs-keynesian-economics">Austrian Economics vs Keynesian Economics
&lt;a class="heading-anchor" href="#austrian-economics-vs-keynesian-economics" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/GUvTJ0xy74c"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Digital Minimalism</title><subtitle>Choosing a Focused Life in a Noisy World</subtitle><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2025-02-16T00:00:00+00:00</published><updated>2025-02-16T00:00:00+00:00</updated><author><name>
Cal Newport</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/digital-minimalism/"/><id>https://chemaclass.com/readings/digital-minimalism/</id><summary type="html">In an era dominated by constant connectivity, the concept of digital minimalism emerges as a refreshing antidote. Coined by Cal Newport, this philosophy isn't about rejecting technology but rather about using it with greater intention and care. By implementing digital minimalism, individuals can reclaim focus, reduce anxiety, and cultivate deeper, more meaningful relationships.</summary><content type="html">&lt;p>In an era dominated by constant connectivity, the concept of digital minimalism emerges as a refreshing antidote. Coined by Cal Newport, this philosophy isn’t about rejecting technology but rather about using it with greater intention and care. By implementing digital minimalism, individuals can reclaim focus, reduce anxiety, and cultivate deeper, more meaningful relationships.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="the-core-principles-of-digital-minimalism">The Core Principles of Digital Minimalism
&lt;a class="heading-anchor" href="#the-core-principles-of-digital-minimalism" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Newport’s approach to digital minimalism is built on three fundamental ideas:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Clutter is Costly&lt;/strong>: Unnecessary digital distractions fragment our attention and drain our mental energy. By decluttering our digital lives, we regain control over our focus and time.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Optimization is Essential&lt;/strong>: Rather than mindlessly accepting every new app or platform, digital minimalists carefully curate their technology use to align with their values and goals.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Intentionality is Key&lt;/strong>: Digital minimalists don’t just cut back on screen time; they deliberately choose how and when to engage with technology to maximize its benefits while minimizing its drawbacks.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="the-30-day-digital-declutter">The 30-Day Digital Declutter
&lt;a class="heading-anchor" href="#the-30-day-digital-declutter" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>One of Newport’s most actionable strategies is the 30-day digital declutter. The idea is simple:&lt;/p>
&lt;ul>
&lt;li>Take a &lt;strong>30-day break&lt;/strong> from all non-essential digital tools.&lt;/li>
&lt;li>During this period, &lt;strong>explore alternative offline activities&lt;/strong> that bring fulfillment.&lt;/li>
&lt;li>After 30 days, &lt;strong>reintroduce only&lt;/strong> the digital tools that &lt;strong>add value to your life&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>This method serves as a reset, allowing individuals to assess which technologies truly enhance their lives rather than simply consuming their time.&lt;/p>
&lt;h2 id="the-benefits-of-digital-minimalism">The Benefits of Digital Minimalism
&lt;a class="heading-anchor" href="#the-benefits-of-digital-minimalism" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Those who embrace digital minimalism often report:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Improved Focus&lt;/strong>: With fewer distractions, deep work and meaningful projects become easier to accomplish.&lt;/li>
&lt;li>&lt;strong>Reduced Anxiety&lt;/strong>: Less exposure to social media and endless notifications results in a calmer, more present mindset.&lt;/li>
&lt;li>&lt;strong>Richer Relationships&lt;/strong>: By prioritizing face-to-face interactions, digital minimalists cultivate stronger and more meaningful personal connections.&lt;/li>
&lt;li>&lt;strong>Increased Productivity&lt;/strong>: Fewer digital distractions translate into higher efficiency and greater creative output.&lt;/li>
&lt;/ul>
&lt;h2 id="practical-steps-to-get-started">Practical Steps to Get Started
&lt;a class="heading-anchor" href="#practical-steps-to-get-started" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>If you’re ready to experiment with digital minimalism, here are some simple steps to begin:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Audit Your Digital Life&lt;/strong>: Identify which apps, platforms, and devices are consuming the most time without offering meaningful benefits.&lt;/li>
&lt;li>&lt;strong>Set Screen Time Limits&lt;/strong>: Use built-in tools on your phone or computer to cap the amount of time spent on certain apps.&lt;/li>
&lt;li>&lt;strong>Establish Tech-Free Zones&lt;/strong>: Designate areas like the bedroom or dining table as screen-free spaces.&lt;/li>
&lt;li>&lt;strong>Prioritize Analog Activities&lt;/strong>: Replace digital distractions with books, hobbies, and in-person interactions.&lt;/li>
&lt;li>&lt;strong>Schedule “Offline” Hours&lt;/strong>: Set intentional times during the day when you completely disconnect from digital devices.&lt;/li>
&lt;/ul>
&lt;h2 id="final-thoughts">Final Thoughts
&lt;a class="heading-anchor" href="#final-thoughts" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Digital minimalism &lt;strong>is not about rejecting technology&lt;/strong> altogether. &lt;strong>It’s about using it in a way that enhances&lt;/strong> rather than diminishes &lt;strong>our quality of life&lt;/strong>. By taking a more mindful approach to our digital &lt;a href="/tags/habits/">habits&lt;/a>, we can reclaim our time, improve our well-being, and refocus on what truly matters.&lt;/p>
&lt;hr />
&lt;h2 id="video-summary">Video Summary
&lt;a class="heading-anchor" href="#video-summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/sJdZ7kmA2QQ"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h3 id="cal-newport-interviewed-by-lex-fridman">Cal Newport interviewed by Lex Fridman
&lt;a class="heading-anchor" href="#cal-newport-interviewed-by-lex-fridman" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/y3Umo_jd5AA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Man's Search for Meaning</title><subtitle>Purpose in despair: Frankl's holocaust insights</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2024-11-29T00:00:00+00:00</published><updated>2024-11-29T00:00:00+00:00</updated><author><name>
Viktor E. Frankl</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/mans-search-for-meaning/"/><id>https://chemaclass.com/readings/mans-search-for-meaning/</id><summary type="html">In Man's Search for Meaning, Frankl not only shares his harrowing experiences from the Holocaust but also presents a profound philosophy on the human condition. This book is a testament to the resilience of the human spirit, exploring how even in the darkest of times, individuals can find purpose and meaning.</summary><content type="html">&lt;p>In “Man’s Search for Meaning,” Frankl not only shares his harrowing experiences from the Holocaust but also presents a profound philosophy on the human condition. This book is a testament to the resilience of the human spirit, exploring how even in the darkest of times, individuals can find purpose and meaning.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Frankl’s insights into the psychology of survival and his development of &lt;a rel="external" href="https://en.wikipedia.org/wiki/Logotherapy">logotherapy&lt;/a> offer a unique lens through which we can view our own lives. As we delve into the depths of his narrative, we are invited to reflect on our personal search for meaning, challenging us to consider how we find purpose amidst life’s trials and tribulations.&lt;/p>
&lt;h2 id="part-1-experiences-in-a-concentration-camp">Part 1: Experiences in a Concentration Camp
&lt;a class="heading-anchor" href="#part-1-experiences-in-a-concentration-camp" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Frankl, an Austrian psychiatrist, recounts his experiences in Nazi concentration camps, including Auschwitz and Dachau, during World War II.&lt;/p>
&lt;p>He describes the psychological stages prisoners went through: shock upon arrival, apathy where they became emotionally numb to survive, and finally, the phase of disillusionment or bitterness if they were liberated.&lt;/p>
&lt;p>Frankl emphasizes that even in the most horrific conditions, finding a purpose or meaning can provide the strength to survive. He notes that those who had something to live for, like a loved one or a personal project, were more likely to endure.&lt;/p>
&lt;h2 id="part-2-logotherapy-in-a-nutshell">Part 2: Logotherapy in a Nutshell
&lt;a class="heading-anchor" href="#part-2-logotherapy-in-a-nutshell" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>This section introduces Frankl’s psychotherapeutic method, which he developed based on his experiences. Logotherapy focuses on the meaning of human existence as well as on man’s search for such a meaning.&lt;/p>
&lt;p>Unlike Freud’s “will to pleasure” or Adler’s “will to power,” Frankl proposes the “will to meaning” as the primary motivational force in humans.&lt;/p>
&lt;p>Three Paths to Meaning:&lt;/p>
&lt;ul>
&lt;li>Achievement: Doing a deed or creating work.&lt;/li>
&lt;li>Experience: Experiencing something or encountering someone (love).&lt;/li>
&lt;li>Attitude: The attitude we take toward unavoidable suffering.&lt;/li>
&lt;/ul>
&lt;p>Even in extreme situations, Frankl asserts that one can choose one’s attitude towards the situation, which can be a significant source of meaning.&lt;/p>
&lt;p>He discusses this concept as the feeling of meaninglessness in modern society, leading to various psychological issues. Logotherapy aims to guide individuals to find personal meaning.&lt;/p>
&lt;h2 id="key-takeaways">Key Takeaways
&lt;a class="heading-anchor" href="#key-takeaways" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="meaning-of-life">Meaning of Life
&lt;a class="heading-anchor" href="#meaning-of-life" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Frankl argues there is no one universal meaning to life; rather, meaning is unique to each individual and can shift over time.&lt;/p>
&lt;h3 id="suffering-and-meaning">Suffering and Meaning
&lt;a class="heading-anchor" href="#suffering-and-meaning" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Not all suffering must be devoid of meaning; it can be a path to finding or reaffirming meaning.&lt;/p>
&lt;h3 id="responsibility">Responsibility
&lt;a class="heading-anchor" href="#responsibility" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Each person has the responsibility to find their own meaning, which also entails the freedom to choose one’s path.&lt;/p>
&lt;p>Frankl’s book is not just a memoir but a testament to human resilience and the power of the human spirit to transcend even the worst circumstances through the discovery of meaning.&lt;/p>
&lt;hr />
&lt;h2 id="quotes">Quotes
&lt;a class="heading-anchor" href="#quotes" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;blockquote>
&lt;p>“Ultimately, man should not ask what the meaning of his life is, but rather he must recognize that it is he who is asked.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“We needed to stop asking about the meaning of life, and instead to think of ourselves as those who were being questioned by life, daily and hourly.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“Everything can be taken from a man but one thing: the last of the human freedoms, to choose one’s attitude in any given set of circumstances, to choose one’s own way.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“Freedom, however, is not the last word. Freedom is only part of the story and half of the truth. Freedom is but the negative aspect of the whole phenomenon whose positive aspect is responsibleness.”&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="personal-notes">Personal notes
&lt;a class="heading-anchor" href="#personal-notes" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>My favorite aspect of the book is its portrayal of life as an ongoing shift in perspectives, both from within oneself and in relation to the external world. It’s like adjusting a camera lens, zooming in or out based on context, recognizing that we are simultaneously individual entities and part of a larger collective.&lt;/p>
&lt;p>This approach helps you gain a broader perspective, allowing awareness of both your limitations and your significance within any given scenario. Consequently, life doesn’t inherently possess meaning; rather, it’s the meaning we choose to attribute to it that shapes our existence.&lt;/p>
&lt;hr />
&lt;h2 id="animated-book-summary">Animated book summary
&lt;a class="heading-anchor" href="#animated-book-summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/-srD1Deh9Xg?t=64"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>People Skills</title><subtitle>From code to collaboration</subtitle><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2024-09-02T00:00:00+00:00</published><updated>2024-09-02T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/people-skills/"/><id>https://chemaclass.com/blog/people-skills/</id><summary type="html">So, you're a software developer, and you've mastered coding languages, algorithms, and all the tech stuff. That's awesome! But here's the deal: technical skills alone won't get you as far as you might think. If you can't work well with others, it doesn't matter how great your code is, nobody will want to work with you.</summary><content type="html">&lt;p>So, you’re a software developer, and you’ve mastered coding languages, algorithms, and all the tech stuff. That’s awesome! But here’s the deal: technical skills alone won’t get you as far as you might think.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>If you can’t work well with others, it doesn’t matter how great your code is, nobody will want to work with you.&lt;/p>
&lt;h2 id="why-people-skills-matter-in-software">Why People Skills Matter in Software
&lt;a class="heading-anchor" href="#why-people-skills-matter-in-software" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>In software development, collaboration is everything. Projects aren’t just solo endeavors. You will be part of a team, with other developers, designers, or even non-tech folks like managers and clients. How you communicate, collaborate, and handle feedback can make or break your success.&lt;/p>
&lt;h3 id="the-brilliant-but-difficult-teammate">The Brilliant but Difficult Teammate
&lt;a class="heading-anchor" href="#the-brilliant-but-difficult-teammate" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Think about it. Have you ever had that one teammate who’s brilliant but hard or nearly impossible to work with? Maybe they don’t listen, get all the credit, or make everything more complicated than it needs to be. No one likes working with that person, right? It’s the same for you. If you can’t get along with your team, it doesn’t matter how good your code is.&lt;/p>
&lt;h3 id="what-being-a-good-team-player-means">What Being a Good Team Player Means
&lt;a class="heading-anchor" href="#what-being-a-good-team-player-means" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Being a good team player means listening to others, being open to feedback, sharing ideas, and, most importantly, being respectful and considerate. You want people to enjoy working with you, not avoid it.&lt;/p>
&lt;p>Good people skills help you build strong working relationships, solve problems faster, and create a better work environment for everyone. Don’t just aim to be a coding expert, ensure you’re also great to work with.&lt;/p>
&lt;h3 id="the-long-term-impact">The Long-Term Impact
&lt;a class="heading-anchor" href="#the-long-term-impact" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>In the long run, your people skills can boost your success as much, if not more, than your technical abilities. They play a vital role in a team’s success and make the work experience enjoyable for everyone involved.&lt;/p>
&lt;blockquote>
&lt;p>People skills are as necessary as technical skills. No one will want to work with you if you are not a good team player.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2024-09-02/middle.jpg" alt="people working together" />&lt;/p>
&lt;h2 id="what-are-people-skills">What are people skills?
&lt;a class="heading-anchor" href="#what-are-people-skills" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The competencies that enable you to interact effectively and smoothly with others.&lt;/p>
&lt;h3 id="core-communication-skills">Core Communication Skills
&lt;a class="heading-anchor" href="#core-communication-skills" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Communication&lt;/strong>: The ability to clearly convey ideas, listen actively, and engage in meaningful conversations. This includes both verbal and non-verbal communication.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Empathy&lt;/strong>: Understanding and being sensitive to the feelings, thoughts, and experiences of others. It involves seeing things from someone else’s perspective.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Emotional intelligence&lt;/strong>: Recognizing and managing your own emotions and understanding and influencing the emotions of others.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="collaboration-skills">Collaboration Skills
&lt;a class="heading-anchor" href="#collaboration-skills" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Teamwork&lt;/strong>: Working well with others to achieve common goals. This includes collaboration, sharing responsibilities, and supporting colleagues.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Conflict resolution&lt;/strong>: The ability to handle disagreements and disputes constructively, finding solutions that satisfy all parties involved.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Negotiation&lt;/strong>: Finding mutually acceptable solutions or compromises during discussions or disagreements.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="growth-and-influence">Growth and Influence
&lt;a class="heading-anchor" href="#growth-and-influence" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Adaptability&lt;/strong>: Being flexible and open to change, adjusting your approach as needed to meet different situations or personalities.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Leadership&lt;/strong>: Inspiring and guiding others, providing direction, and fostering a positive environment.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Networking&lt;/strong>: Building and maintaining professional relationships that can provide support, opportunities, and resources.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>These skills are essential in almost every job and help build strong relationships, enhance teamwork, and create a positive work environment.&lt;/p>
&lt;/blockquote>
&lt;h3 id="why-they-re-harder-than-you-think">Why They’re Harder Than You Think
&lt;a class="heading-anchor" href="#why-they-re-harder-than-you-think" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>These are often called interpersonal or soft skills, but mastering them can be surprisingly challenging, perhaps even more so than many technical skills. Unlike “hard skills,” which are tangible and can often be learned through a few hours or days of study, people skills involve navigating the intricate web of human emotions, experiences, and expectations.&lt;/p>
&lt;p>While technical skills might require you to dive into documentation, run experiments, and refine your approach, understanding and relating to people is far more complex.&lt;/p>
&lt;p>Humans bring their feelings, backgrounds, and routines into interactions, adding layers of complexity beyond machines’ straightforward logic. These personal details shape the reality we perceive, making interpersonal skills an essential yet complex part of effective communication and collaboration.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-09-02/footer.webp" alt="people skills matter" />&lt;/p></content></entry><entry xml:lang="en"><title>Great Engineering</title><subtitle>A great engineer is not just a great coder</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><published>2023-12-30T00:00:00+00:00</published><updated>2023-12-30T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/great-engineering/"/><id>https://chemaclass.com/blog/great-engineering/</id><summary type="html">Coding is not just another job. In the right environment, writing software can be really fun and, even more, it can be your personal hobby as well! So... you might be focused on coding, coding and more coding to level up your own career skills.</summary><content type="html">&lt;p>Coding is not just another job. Writing software can be really fun and, even more, it can be your personal hobby as well! You might be focused on coding, coding and more coding to level up your own career skills.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>That itself is not bad at all! Practice makes the master, so a lot of coding will inevitably help you improve your coding skills… but there are &lt;a href="/blog/the-path-to-seniority-in-software/">other aspects&lt;/a> that you need to keep in mind in order to help you grow into a great engineer.&lt;/p>
&lt;p>As a software engineer, your job is not “just to write software” for its own sake, but to &lt;strong>use software to solve actual business problems&lt;/strong>. To make that happen there are plenty of different methodologies out there, for sure. However, we must agree that you need to identify and understand your customer’s needs in order to know what to actually build.&lt;/p>
&lt;p>You need to know your product, at least until certain level, so you can design your software using a similar language closer to the business, which will help its evolution and overall quality. This will be beneficial for the future (and present) maintenance of the product.&lt;/p>
&lt;p>IT, Software, Product and People topics are highly interconnected, and having at least a common ground of understanding the relation between these can help the overall goal of every single individual.&lt;/p>
&lt;p>The result of a great team work is not equal as the sum of the individual parts, as it’s multiplying the created value among their peers. To that, great communication skills are a key part of it in order to create as much clarity as possible from any different abstraction level.&lt;/p>
&lt;p>That’s why a great engineer is a knowledgeable person about business, customer, product, and coding. Understanding these points have a strong impact on your daily work as it creates a difference between the average and the great engineer.&lt;/p>
&lt;hr />
&lt;p>Image original by &lt;a rel="external" href="https://hybridhacker.email">Nicola Ballotta&lt;/a>.&lt;/p></content></entry><entry xml:lang="en"><title>The Alchemist</title><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2023-11-07T00:00:00+00:00</published><updated>2023-11-07T00:00:00+00:00</updated><author><name>
Paulo Coelho</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/the-alchemist/"/><id>https://chemaclass.com/readings/the-alchemist/</id><summary type="html">A classic novel about Santiago, a boy who embarks on a journey seeking treasure in Egypt, learning the true importance of self-improvement and what really matters in life.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>The Alchemist is a classic novel in which a boy named Santiago embarks on a journey seeking treasure in the Egyptian pyramids after having a recurring dream about it. On the way meets mentors, falls in love, and most importantly, learns the true importance of who he is and how to improve himself and focus on what really matters in life.&lt;/p>
&lt;h4 id="video-summary">Video Summary
&lt;a class="heading-anchor" href="#video-summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/b41MXNaFJj0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>The Peter Principle</title><subtitle>The rise to a level of incompetence</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2023-09-30T00:00:00+00:00</published><updated>2023-09-30T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/the-peter-principle/"/><id>https://chemaclass.com/blog/the-peter-principle/</id><summary type="html">The Peter principle states that a person who is competent at their job will earn a promotion to a position that requires different skills. If the promoted person lacks the skills required for the new role, they will be incompetent at the new level, and will not be promoted again.</summary><content type="html">&lt;p>A person who is competent at their job will get promoted to a position that requires other skills. If they lack the skills for the new role, they will be incompetent at the new level, and will not be promoted again.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>If the person is competent in the new role, they will be promoted again and will continue to be promoted until reaching a level at which they are incompetent. Being incompetent, the individual will not qualify for promotion again, and so will remain stuck at this final placement or Peter’s plateau.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;p>There are incentives at play. People work hard to reach a particular position or salary. Once they achieve that, some get lazy. Once people lose passion, they stop learning. They might fail to keep up with new developments, which might lead to poor work quality. To protect their comfort zone, they challenge any new idea or person that could make their life unconformable. Incompetent employees are often unhappy.&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/IbFr5DAyZBM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;h2 id="have-you-experienced-the-peter-principle">Have you experienced the Peter Principle?
&lt;a class="heading-anchor" href="#have-you-experienced-the-peter-principle" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I’ve seen this several times during my 10-year career, working in different companies with people in various departments at different levels. It’s indeed more dangerous than it seems because it can kill the spirit of a healthy environment and company.&lt;/p>
&lt;p>Creating awareness about this can help you to be cautious to avoid this from happening to yourself, or at least trigger warnings when you feel this might be happening to you.&lt;/p>
&lt;h3 id="what-can-you-do-about-it">What can you do about it?
&lt;a class="heading-anchor" href="#what-can-you-do-about-it" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>If you can recognize this situation within your company, I recommend helping to create awareness about it. Talk to each other. If you feel you can’t, that’s a symptom of an &lt;a href="/blog/unhealthy-working-environment/">unhealthy working environment&lt;/a>, and that’s something more significant to deal with.&lt;/p>
&lt;p>If you are the one experiencing this in “first person,” I would recommend you:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Talk to your manager; ask for training, mentoring, or whatever you need to get the skills you lack, from confidence, communication, or anything that could help your new role. Maybe you didn’t get enough or proper training for the new job, which requires different skills.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Consider pivoting back where you were good and keep mastering that, helping and inspiring those next to you. Not everybody has to be promoted all the time.&lt;/p>
&lt;/li>
&lt;/ul></content></entry><entry xml:lang="en"><title>Never Ending Loop</title><subtitle>Writing to help myself sleep</subtitle><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2023-07-05T00:00:00+00:00</published><updated>2023-07-05T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/never-ending-loop/"/><id>https://chemaclass.com/blog/never-ending-loop/</id><summary type="html">It is hard sometimes to get to bed with the mind blank because, more often than not, I think about my next reading, learning, talk, or what I will write this or next month.</summary><content type="html">&lt;p>It is hard sometimes to get to bed with the mind blank because, more often than not, I think about my next reading, learning, talk, or what I will write this or next month.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>It is funny to remind that eight years ago, I stayed up for hours until all kinds of thoughts got out on paper, so I used to write one or more of them every week. Sometimes innocent thoughts came to my brain and didn’t let me sleep properly. Sometimes deep and full of worry that reflected how I struggled with certain situations that I was living in or remembering from my past youth.&lt;/p>
&lt;p>I kept writing for three years; I wrote a lot, another format than I usually do today; a deep and personal &lt;a rel="external" href="https://chemaclass.com/books/">book&lt;/a> about my thoughts and feelings with the primary motivation of reading them later and doing some retrospectives to help me understand myself better. Nowadays, I like to mix my passion around software quality and people puzzles to achieve true excellence in my profession, always aiming for an honest and healthy egoism of helping others that could help me later. The better the people around me are, the better they will help others and me.&lt;/p>
&lt;p>Back then, I used to write about my current and past feelings, always with a touch of illusion wanting to express myself differently for my future self. I remember clearly, in the beginning, I wanted the main readers to be my siblings, my family, to know how I was doing so far away from all of them, after migrating to another country, far away from my family. However, as the months passed by, the main reader changed to be no one but myself.&lt;/p>
&lt;p>I spent hours on each thought, page, chapter… Drafting the initial idea and then reading it out loud once, twice, again, and again the day afterward. Helping this way to discover that part of myself that tried to reflect what was going on inside.&lt;/p>
&lt;p>I can see some similarities nowadays. However, I no longer see the need to write about those deep old past thoughts because they healed. Instead, I can reflect and see how they did and how.&lt;/p>
&lt;p>Writing is one of my favorite ways to express myself, especially when I cannot sleep. It reminds me of those years, and I think greatly about the incredible evolution since then.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-07-05/footer.webp" alt="blog-footer" />&lt;/p>
&lt;blockquote>
&lt;p>Original photos from my trip to Tuscany, Italy, last month.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="en"><title>Learned Helplessness</title><subtitle>An acceptance of powerlessness</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2023-06-08T00:00:00+00:00</published><updated>2023-06-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/learned-helplessness/"/><id>https://chemaclass.com/blog/learned-helplessness/</id><summary type="html">Learned helplessness is the behavior exhibited by a subject after enduring repeated aversive beyond their control. It was initially thought to be caused by the subject's acceptance of their powerlessness by discontinuing attempts to escape or avoid the aversive stimulus.</summary><content type="html">&lt;p>Learned helplessness is the behavior exhibited by a subject after enduring repeated aversive stimuli beyond their control.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>It was initially thought to be caused by the subject’s acceptance of their powerlessness by discontinuing attempts to escape or avoid the aversive stimulus.&lt;/p>
&lt;h2 id="experiments">Experiments
&lt;a class="heading-anchor" href="#experiments" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="a-classroom-with-different-assessments">A classroom with different assessments
&lt;a class="heading-anchor" href="#a-classroom-with-different-assessments" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/gFmFOmprTt0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;blockquote>
&lt;p>Charisse Nixon, Ph.D Developmental Psychologist at Penn State Erie, The Behrend College and Director of Research and Evaluation for The Ophelia Project discusses the phenomenon of learned helplessness.&lt;/p>
&lt;/blockquote>
&lt;h3 id="original-docking-shocks-and-harnesses">Original: Docking shocks and harnesses
&lt;a class="heading-anchor" href="#original-docking-shocks-and-harnesses" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>In 1967, the American psychologist Martin Seligman at the University of Pennsylvania researched docking shocks and harnesses.&lt;/p>
&lt;p>In &lt;strong>Part 1&lt;/strong> of this study, three groups of dogs were placed in harnesses. Group 1 dogs were put in a harness for some time and released later. Groups 2 and 3 consisted of “yoked pairs.” Dogs in Group 2 were given electric shocks randomly, which the dog could end by pressing a lever. Each dog in Group 3 was paired with a Group 2 dog; whenever a Group 2 dog got a shock, its paired dog in Group 3 got a shock of the same intensity and duration, but its lever did not stop the shock. To a dog in Group 3, it seemed that the shock ended randomly because their paired dog in Group 2 was causing it to stop. Thus, for Group 3 dogs, the shock was “inescapable.”&lt;/p>
&lt;p>In &lt;strong>Part 2&lt;/strong> of the experiment, the same three groups of dogs were tested in a shuttle-box apparatus (a chamber containing two rectangular compartments divided by a barrier a few inches high). The dogs could escape shocks on one side of the box by jumping over a low partition to the other. The dogs in Groups 1 and 2 quickly learned this task and escaped the shock. Most of the Group 3 dogs, which had previously “learned” that nothing they did affected the shocks, lay down passively and whined when shocked.&lt;/p>
&lt;hr />
&lt;p>Even though this experiment was demonstrated with different types of animals, it also applies to people. This is visible in children when they integrate early failure to ask for help, frustration, giving up, poor motivation, and procrastination. And these points carry on as people age.&lt;/p>
&lt;blockquote>
&lt;p>Because, if you “cannot do anything”, why would you even try it?&lt;/p>
&lt;/blockquote>
&lt;p>All this leads to anxiety and depression, and people think nothing can be done about their current situations and feelings.&lt;/p>
&lt;h2 id="learned-optimism">Learned optimism
&lt;a class="heading-anchor" href="#learned-optimism" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The antidote to learned helplessness is &lt;strong>learned optimism&lt;/strong>. These people are higher achievers, have better overall health, and have lower levels of depression.&lt;/p>
&lt;h3 id="how-do-you-practice-it">How do you practice it?
&lt;a class="heading-anchor" href="#how-do-you-practice-it" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Permanence&lt;/strong>: bad events or failures are not permanent. So, you can recover faster than people stuck in these situations. However, good things or events happen for a good reason that you’ve worked on.&lt;/li>
&lt;li>&lt;strong>Pervasiveness&lt;/strong>: do not generalize failure. Failing in one area in your life should not affect other areas.&lt;/li>
&lt;li>&lt;strong>Personalization&lt;/strong>: bad events are external to blame, outside yourself, as you did all you could have done.&lt;/li>
&lt;/ul>
&lt;p>Isolate the problem and don’t extrapolate it to other areas. Stop generalizing failure.&lt;/p>
&lt;hr />
&lt;h3 id="english">English
&lt;a class="heading-anchor" href="#english" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Z8n1oUhp-EM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h3 id="espanol">Español
&lt;a class="heading-anchor" href="#espanol" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/E99XmEIPmf8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Have You Always Been Like This?</title><subtitle>How to find a balance of growth and happiness</subtitle><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2023-03-16T00:00:00+00:00</published><updated>2023-03-16T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/have-you-always-been-like-this/"/><id>https://chemaclass.com/blog/have-you-always-been-like-this/</id><summary type="html">Have you always been like this? Constantly reading books, writing blog posts, public speaker in conferences and meet-ups, learning in your private time, etc...? The short answer is: no, and let me tell you how I ended up in this situation.</summary><content type="html">&lt;p>I’ve got this question recently, a couple of times, and this is a great topic to share.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>“Have you always been like this? Constantly reading books, writing blog posts, public speaker in conferences and meet-ups, learning in your private time, etc…?”&lt;/p>
&lt;/blockquote>
&lt;p>The short answer is: no, and let me tell you how I ended up in this situation.&lt;/p>
&lt;hr />
&lt;h2 id="i-used-to-be-introvert">I used to be introvert
&lt;a class="heading-anchor" href="#i-used-to-be-introvert" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I used to be an introvert, but with work and effort, I managed to master some public speaking skills.&lt;/p>
&lt;blockquote>
&lt;p>Sharing knowledge is hard because first, you need to have it.&lt;/p>
&lt;/blockquote>
&lt;p>I used to dislike reading; I always preferred other sources of getting information and learning new things. Of all of them, reading was the most boring one.&lt;/p>
&lt;blockquote>
&lt;p>Reading is hard, because it needs your entire attention.&lt;/p>
&lt;/blockquote>
&lt;p>However, I have always enjoyed writing since I was a kid. For personal circumstances, writing was a way to express and reflect on me, doing regular retrospectives about the ideas in my head.&lt;/p>
&lt;h3 id="writing-to-the-rescue">Writing to the rescue
&lt;a class="heading-anchor" href="#writing-to-the-rescue" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;blockquote>
&lt;p>Combining “sharing knowledge” and “reading” from and to myself.&lt;/p>
&lt;/blockquote>
&lt;p>Writing was (and still is) a way to sort out my thoughts, especially during hard times; writing was a way to escape from the world. It helped me to understand myself better the day after. And it worked.&lt;/p>
&lt;p>Knowing your limitations can help you understand your reality and fight against it. Life is hard enough to accept whatever “is there,” even if you are dissatisfied with it, especially if you have a reason for that.&lt;/p>
&lt;p>I learned that I don’t want to waste my time in a life I will regret when I die. For that reason, I started seeking opportunities to grow at everything I do all the time.&lt;/p>
&lt;h3 id="will-i-always-be-like-this">Will I always be like this?
&lt;a class="heading-anchor" href="#will-i-always-be-like-this" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;blockquote>
&lt;p>“Are you all the time 100% learning and being productive?”&lt;/p>
&lt;/blockquote>
&lt;p>You cannot be 100% productive all the time. That’s impossible because of our human nature. Life is about constant “ups and downs,” which is also part of its beauty. It’s your responsibility to understand yourself; I mean, truly understand your emotions and your persona.&lt;/p>
&lt;p>These are questions that can help you keep the focus while building yourself. When asking these types of questions, try looking from a rational and external point of view. Leave out emotions and personal feelings.&lt;/p>
&lt;ul>
&lt;li>Who are “you”?&lt;/li>
&lt;li>What differentiate “you” from other people?&lt;/li>
&lt;li>What differentiate “today’s you” from “you a year ago”?&lt;/li>
&lt;li>What about your “you” in 1 year?&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Within your context and possibilities, you are what you choose to be. And that’s what differentiates you from your past and your future. The actions you do, the way you communicate and interact with others, the decisions you choose, etc…, differentiate you. That’s what differentiates you from yourself at another point in time.&lt;/p>
&lt;p>This is why I enjoy reading (or listening to a book) per month. This is why I enjoy learning anytime, all the time. This is why I like to share what I know with others. This is who I choose to be.&lt;/p>
&lt;p>A few years ago, I wrote about &lt;a href="/blog/the-process-itself-is-the-goal/">the process itself as the goal&lt;/a>, which says basically: “&lt;em>Repetition is the key. Make it easier to do what you want to do. Make it harder to do what you want to stop doing. Enjoy the process: that’s the goal.&lt;/em>”&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-03-16/middle.webp" alt="blog-middle" />&lt;/p>
&lt;h2 id="how-much-time-do-i-have">How much time do I have?
&lt;a class="heading-anchor" href="#how-much-time-do-i-have" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I like to prove myself wrong and challenge the status quo. I even decided to investigate, for example, how I could be one &lt;a rel="external" href="https://chemaclass.com/talks/">speaker&lt;/a> in an international conference last year. The hardest step is always the first; once you’re there, it’s more fun than you initially thought. I might write a dedicated post about this “public speaking” topic. For now, you can check some tips I wrote about &lt;a href="/blog/improve-your-tech-talk/">improving your public speaking talks&lt;/a>.&lt;/p>
&lt;p>Regarding reading, I need around 4 to 6 hours (on average) to finish a book. A typical working day can be divided into 3 slots of 8h; 8 sleep, 8 work, 8 leisure (or other obligations). I don’t work on the weekend, so those days are 16h each of leisure/obligations. So, assuming I work 5 days per week, this means &lt;em>5 days x 8 hours (working days) + 2 days x 16 hours (weekend) = 72 hours&lt;/em> of leisure/obligations time within a week!&lt;/p>
&lt;h3 id="time-is-not-the-problem">Time is not the problem
&lt;a class="heading-anchor" href="#time-is-not-the-problem" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Within a month, I have &lt;strong>72 hours x 4 weeks = 288 hours&lt;/strong> of leisure/obligations time to spare with my girlfriend, talking to my family, playing music, partying or chilling with friends, going to the gym, walking in a park, traveling to other cities…, but also going to the supermarket, doing the dishes, preparing the evening meals, clean the apartment, commuting to work…, all of this requires time as well.&lt;/p>
&lt;p>The problem isn’t time but the priorities I define. Within a month, I can really do a lot of things. The issue I usually encounter is not having a clear goal about what I want to reach in the middle-long goal for myself.&lt;/p>
&lt;p>There might be others, but &lt;a href="/readings/the-power-of-habits/">The power of habits&lt;/a> and &lt;a href="/readings/atomic-habits/">Atomic habits&lt;/a> were the books I read so far about habits that impacted me the most, and I think they might help you if you are struggling with habits that you would like to change anyhow. It all starts by understanding yourself within your context.&lt;/p>
&lt;p>I don’t expect things to change from one day to another. I enjoy experimenting, combining habits, and trying different approaches to improve and get the best out of them over time. Losing fear of failure and seeking constant and continuous improvement is a life-changing mentality.&lt;/p>
&lt;p>What keeps me moving is &lt;u>the time I have left&lt;/u> and the idea of thinking, “&lt;strong>what would I like to have changed?&lt;/strong>” And in such a case, “&lt;strong>Why didn’t I?&lt;/strong>”&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-03-16/footer.webp" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="en"><title>Different Beliefs About Software Quality</title><subtitle>Some thoughts about software quality among your team</subtitle><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2022-10-08T00:00:00+00:00</published><updated>2022-10-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/different-beliefs-about-software-quality/"/><id>https://chemaclass.com/blog/different-beliefs-about-software-quality/</id><summary type="html">What to do when working on "bad software" and you can't improve it because it is against the beliefs of your peers? Should you change the company?</summary><content type="html">&lt;p>I recently got a great question on Twitter which got me thinking for a while and I decided to share my thoughts about it.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;h2 id="the-tweet-that-started-this">The tweet that started this
&lt;a class="heading-anchor" href="#the-tweet-that-started-this" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>But first, some context: I am feeling great because the codebase where I work is getting better and better, so I am tweeting this:&lt;/p>
&lt;blockquote>
&lt;p>“As software improves with time, you can feel you’re doing right.”&lt;/p>
&lt;/blockquote>
&lt;p>And then I got a question asking for suggestions:&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-10-08/tweet.jpg" alt="blog-tweet" />&lt;/p>
&lt;p>So there we go…&lt;/p>
&lt;hr />
&lt;h2 id="my-answer">My answer
&lt;a class="heading-anchor" href="#my-answer" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="create-agreements">Create agreements
&lt;a class="heading-anchor" href="#create-agreements" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>The first thing is to create agreements about what quality software means for your team and yourself. This helps clarify
what software culture you want to establish and work towards that direction. Leaving your company should be the &lt;em>last
resort&lt;/em> once you have no other option.&lt;/p>
&lt;p>Before thinking about leaving your company, I would ask you:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Why do you think&lt;/strong> you cannot improve the working codebase of your company?&lt;/li>
&lt;li>&lt;strong>What can you do&lt;/strong> to reduce the friction between your different beliefs regarding what quality means for software?&lt;/li>
&lt;/ul>
&lt;p>There is no perfect codebase to work on because software is a living entity and constantly changes. So, at least for me,
quality software is the one that can cope with change smoothly.&lt;/p>
&lt;p>Once you have agreed on that goal, and while there are multiple ways to achieve that result, my favorite way of working
is keeping an &lt;strong>agile mindset&lt;/strong> with doses of &lt;strong>extreme programming&lt;/strong> values, principles, and practices in mind.&lt;/p>
&lt;h3 id="software-is-about-people">Software is about people
&lt;a class="heading-anchor" href="#software-is-about-people" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Software is not just about writing &lt;em>clean and solid code&lt;/em>. This is indeed desired, and we should aim for that, but we must
first understand why we want that. The “&lt;em>why&lt;/em>” is based on the &lt;strong>values&lt;/strong> that you have as a team.&lt;/p>
&lt;p>If you don’t share the same purpose, the same “why,” then you won’t &lt;em>enjoy&lt;/em> working together, and in such a case, I would
advise looking for another company that shares your values. But, before that, I would strongly suggest fixing the deeper
issue and helping your team improve.&lt;/p>
&lt;h3 id="understanding-your-why">Understanding your why
&lt;a class="heading-anchor" href="#understanding-your-why" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>You first need to deeply understand your “&lt;em>why&lt;/em>” so you can transmit this to your peers and the people around you. Have
you tried all you can to create awareness about your “&lt;em>why&lt;/em>”?&lt;/p>
&lt;p>Some ideas include encouraging collaborative programming (pair/mob), presenting some internal tech talks, creating a
culture of sharing knowledge on a regular daily basis, creating awareness about the current status quo, and looking for
opportunities to improve everywhere.&lt;/p>
&lt;h3 id="your-career-path">Your career path
&lt;a class="heading-anchor" href="#your-career-path" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>If, after several months of (really) trying these ideas, none of them work, look for a new company that shares your
beliefs. After all, you’re the first and primary responsible person for taking care of your career path.&lt;/p>
&lt;blockquote>
&lt;p>Original &lt;a rel="external" href="https://x.com/Chemaclass/status/1578425454562021376">twitter thread&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>&lt;img src="/images/blog/2022-10-08/footer.webp" alt="blog-footer" />&lt;/p>
&lt;h2 id="extra-thoughts">Extra thoughts
&lt;a class="heading-anchor" href="#extra-thoughts" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>If &lt;strong>you want something to be different&lt;/strong>, don’t wait till it’s changed automatically. Try to &lt;strong>change it&lt;/strong>; if it’s not
working, leave it. Maybe you don’t belong in that place.&lt;/p>
&lt;p>On the other hand, it’s crucial to reflect if you see that pattern often repeating (changing companies too quickly). In
such a case, maybe the problem isn’t the companies but yourself.&lt;/p>
&lt;p>Software development is not just about code but &lt;strong>business&lt;/strong>. It’s essential to be aware of finding a fair &lt;em>trade-off&lt;/em>
between speed, costs, and quality, depending on the situation. You might want to use some &lt;em>tech debt&lt;/em> to conquer the
market as soon as possible.&lt;/p>
&lt;p>It doesn’t make sense to have “low quality” as part of the identity of any team. Every team has certain quality
expectations. Therefore, the &lt;strong>key&lt;/strong> here is to &lt;strong>agree on what good quality is&lt;/strong>.&lt;/p>
&lt;aside class="kudos">
&lt;span class="kudos__icon" aria-hidden="true">🧠&lt;/span>
&lt;div class="kudos__content">
&lt;p>Thanks to my former Engineer Manager, Evgenii Sokolov, who inspired me to write these extra lines after sharing the original post.&lt;/p>
&lt;/div>
&lt;/aside></content></entry><entry xml:lang="en"><title>The Path to Seniority in Software</title><subtitle>How to become a Senior Software Developer?</subtitle><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2022-06-08T00:00:00+00:00</published><updated>2022-06-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/the-path-to-seniority-in-software/"/><id>https://chemaclass.com/blog/the-path-to-seniority-in-software/</id><summary type="html">Real seniority goes beyond job titles. It's about impact, mentoring others, owning outcomes, and raising the bar for your entire team.</summary><content type="html">&lt;p>We all have been junior developers at some point. This is easy to know because it sits at the very beginning of your
career. Your responsibilities were narrowed down by other peers who were looking after you.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>At some point, after months or years, you got your promotion or another job, where you weren’t a junior
anymore, but an intermediate.&lt;/p>
&lt;p>An intermediate (also known as middle) is something between junior and senior. You know now that you are not a junior
anymore, you know how to deliver value but yet you also have mixed feelings about seniority. You want to be a senior,
but you don’t know how. There is no clear path to achieving this goal.&lt;/p>
&lt;p>Wait for a second… there are actually two easy ways to get the senior title! You can get promoted as such in your
company, or you can start a new position as a “senior” in another company, easy right?&lt;/p>
&lt;h2 id="marketing-and-politics">Marketing and politics
&lt;a class="heading-anchor" href="#marketing-and-politics" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Unfortunately, the “seniority” level is very much polluted by marketing and politics. First, what
does it mean “senior” in this context? In all the companies where I have been working (if not all) I have always been
surrounded by people who claimed to be “seniors” when in reality only a few I would consider such.&lt;/p>
&lt;p>Our senior label is inflated by companies needing experts on paper more than in reality, and this is a
problem we need to deal with and speak about.&lt;/p>
&lt;p>Seniority generally means more experience, but how do you calculate this? It is easy from a company’s point of view:
more years in the industry. But, is the number of years you have been working really relevant in an industry that is
constantly changing and evolving? Actually, this wouldn’t be a big issue if you have the software fundamentals
well interiorized, but funny enough, I have seen these fundamentals in only ~10% of the seniors I have met across many
years and several companies.&lt;/p>
&lt;p>The fact that you have been working for 10 or more years doesn’t necessarily mean you are a “senior” with software.
What else can we measure in order to identify if you deserve indeed this title?&lt;/p>
&lt;h3 id="it-is-not-all-about-the-money">It is not all about the money
&lt;a class="heading-anchor" href="#it-is-not-all-about-the-money" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Let us be honest, senior titles are better paid than junior or middle positions. If you have the chance to get a higher
salary because you got the “senior” in your job title, well, it wouldn’t be clever to reject it. But, independently of
politics and marketing, we must address some seniority fundamentals to understand better what the word “senior” means in
this context.&lt;/p>
&lt;blockquote>
&lt;p>It is not all about the money, but also about the responsibilities that come with seniority.&lt;/p>
&lt;/blockquote>
&lt;h2 id="seniority-fundamentals">Seniority fundamentals
&lt;a class="heading-anchor" href="#seniority-fundamentals" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Being senior in our software industry is not about “the number of years of experience” but:&lt;/p>
&lt;ul>
&lt;li>How well do you &lt;strong>transmit your knowledge&lt;/strong> to others? Sharing what you know is a core task for a senior person.&lt;/li>
&lt;li>How well do you &lt;strong>collaborate&lt;/strong> with other people, including the PM/PO and other teams? Collaboration is crucial
to creating a constant feedback loop.&lt;/li>
&lt;li>How well do you &lt;strong>work together&lt;/strong> with your peers? Pair-programming builds team cohesion and helps everyone become
better.&lt;/li>
&lt;li>How strong are your &lt;strong>testing&lt;/strong> skills? Testing is tied to the quality of your work, and a senior should aim
for an incremental design.&lt;/li>
&lt;li>How well do you understand &lt;strong>delivering value constantly&lt;/strong> in small chunks? The sooner you deliver value, the
sooner you get feedback about it.&lt;/li>
&lt;li>How deep is your &lt;strong>technical knowledge&lt;/strong> of quality software and the trade-offs to get there?
SOLID principles, clean code, TDD, refactoring as part of your daily job, low coupling, high cohesion, appropriate
data structures, and choosing the right solution (KISS, YAGNI…).&lt;/li>
&lt;li>How well do you adapt and &lt;strong>cope with change&lt;/strong>? Change is inevitable, so we must learn to
deal with it, especially the parts we cannot control.&lt;/li>
&lt;li>How developed is your &lt;strong>entrepreneurial thinking&lt;/strong>? Always keeping the organization’s goals in mind.&lt;/li>
&lt;/ul>
&lt;p>As you can see, there is no mention of concrete technology or years of experience. Why? Because technology is just an
“implementation detail”, and experience comes by practicing and attitude, not by letting the time pass by.&lt;/p>
&lt;h3 id="attitude-is-important">Attitude is important
&lt;a class="heading-anchor" href="#attitude-is-important" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>We’ve got two persons:&lt;/p>
&lt;p>A) a person who is working for 15 years, doing relatively the same every day, and without caring about his own skills.
He just does what others tell him to do.&lt;/p>
&lt;p>B) a person who is working for 5 years, challenging herself every week, trying different approaches when dealing with
problems, and sharpening her own skills constantly.&lt;/p>
&lt;p>Can you see the main difference? No, it’s not the 10 years difference of “experience” between them, but their &lt;strong>attitude&lt;/strong>.&lt;/p>
&lt;p>We wrongly understand that &lt;em>a year of experience must come with learning and knowledge&lt;/em>, so we tend to use time as a
measurement of seniority. But I argue that the “attitude factor” is equal or even more important. I have been surrounded
by many people who call themselves seniors with 3, 6, 10, and more years of “experience” but lacking attitude, and you
could clearly see this problem on a daily basis.&lt;/p>
&lt;blockquote>
&lt;p>You need this combination to build yourself as a truly senior developer; time, experience, and most importantly:
attitude towards &lt;strong>improving your own skills and the ones that surround you&lt;/strong>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="where-to-start">Where to start
&lt;a class="heading-anchor" href="#where-to-start" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Seniority is not granted, it is practiced. You don’t wait for the title, you build the behavior until the title catches
up. Start small, and start now:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Teach what you know.&lt;/strong> Pick one thing you understand and explain it to someone this week. If you can’t explain it,
you don’t own it yet.&lt;/li>
&lt;li>&lt;strong>Seek the uncomfortable.&lt;/strong> Volunteer for the task slightly beyond you. Growth lives at the edge of what you can
already do.&lt;/li>
&lt;li>&lt;strong>Reflect on purpose.&lt;/strong> After each project, ask what you would do differently. Experience without reflection is just
repetition.&lt;/li>
&lt;/ul>
&lt;p>The path is not a promotion. It is the daily decision to improve yourself and the people around you. Do that long
enough, and the title becomes a formality.&lt;/p></content></entry><entry xml:lang="en"><title>Jonathan Livingston Seagull</title><subtitle>A story</subtitle><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2022-01-08T00:00:00+00:00</published><updated>2022-01-08T00:00:00+00:00</updated><author><name>
Richard Bach</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/jonathan-livingston-seagull/"/><id>https://chemaclass.com/readings/jonathan-livingston-seagull/</id><summary type="html">A fable in novella form about a seagull who is trying to learn about life and flight, and a homily about self-perfection.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>A fable in novella form about a seagull who is trying to learn about life and flight, and a homily about self-perfection.&lt;/p>
&lt;h2 id="plot">Plot
&lt;a class="heading-anchor" href="#plot" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>The book tells the story of Jonathan Livingston Seagull, a seagull who is bored with daily squabbles over food. Seized
by a passion for flight, he pushes himself and learns everything he can about flying. His increasing unwillingness to
conform finally results in his expulsion from the flock. Now an outcast, he continues to learn, becoming increasingly
pleased with his abilities while leading a peaceful and happy life.&lt;/p>
&lt;p>One day Jonathan meets two gulls who take him to a “higher plane of existence” in which there is no heaven, but a better
world found through perfection of knowledge. There he meets another seagull who loves to fly. He discovers that his
sheer tenacity and desire to learn make him “pretty well a one-in-a-million bird.” In this new place, Jonathan befriends
the wisest gull, Chiang, who takes him beyond his previous self-education, and teaches him how to move instantaneously
to anywhere else in the universe. The secret, Chiang says, is to “begin by knowing that you have already arrived.”&lt;/p>
&lt;p>But, unsatisfied with his new life, Jonathan returns to Earth to find others like himself to tell them what he’d learned
and to spread his love for flight. His mission is successful, and Jonathan gathers around himself a flock of other gulls
who have been outlawed for not conforming. The first of his students, Fletcher Lynd Seagull, ultimately becomes a
teacher in his own right, and Jonathan leaves to teach other flocks.&lt;/p>
&lt;blockquote>
&lt;p>This novella has been translated into over thirty languages.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="audiobook">Audiobook
&lt;a class="heading-anchor" href="#audiobook" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/8COt1n3jDqA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Start with Why</title><subtitle>How Great Leaders Inspire Everyone to Take Action</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2021-11-28T00:00:00+00:00</published><updated>2021-11-28T00:00:00+00:00</updated><author><name>
Simon Sinek</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/start-with-why/"/><id>https://chemaclass.com/readings/start-with-why/</id><summary type="html">Start with Why asks (and answers) the questions: why are some people and organizations more innovative, more influential, and more profitable than others? Why do some command greater loyalty from customers and employees alike? Even among the successful, why are so few able to repeat their success over and over?</summary><content type="html">&lt;p>&lt;em>Start with Why&lt;/em> asks (and answers) the questions: why are some people and organizations more innovative, more
influential, and more profitable than others? Why do some command greater loyalty from customers and employees alike?
Even among the successful, why are so few able to repeat their success over and over?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;p>The ability to inspire those around you and to achieve remarkable things starts with WHY. Those who start with WHY never
manipulate, they inspire.&lt;/p>
&lt;p>People like Martin Luther King Jr., Steve Jobs, and the Wright Brothers had little in common, but they all started with
WHY. They realized that people won’t truly buy into a product, service, movement, or idea until they understand the WHY
behind it.&lt;/p>
&lt;ul>
&lt;li>The ability to inspire those around you and to achieve remarkable things starts with WHY.&lt;/li>
&lt;li>Any organization can explain what it does; some can explain how they do it; but very few can clearly articulate why.&lt;/li>
&lt;li>Your WHY is your purpose, cause or belief.&lt;/li>
&lt;li>Every inspiring leader and organization, regardless of size or industry, starts with WHY.&lt;/li>
&lt;li>When your WHY goes fuzzy, it becomes much more difficult to maintain the growth, loyalty, and inspiration that helped
drive your original success.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>People don’t buy WHAT you do, they buy WHY you do it.&lt;/p>
&lt;/blockquote>
&lt;p>Great leaders are able to inspire people to act. And those who are able to inspire give people a sense of purpose or
belonging that has little to do with any external incentive or benefit to be gained.&lt;/p>
&lt;hr />
&lt;h2 id="video-summary">Video Summary
&lt;a class="heading-anchor" href="#video-summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/u4ZoJKF_VuA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Become an Effective Software Engineering Manager</title><subtitle>How to Be the Leader Your Development Team Needs</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2021-06-27T00:00:00+00:00</published><updated>2021-06-27T00:00:00+00:00</updated><author><name>
James Stanier</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/effective-software-em/"/><id>https://chemaclass.com/readings/effective-software-em/</id><summary type="html">A great compilation of all topics that are important for management: 1:1s, performance reviews, hiring and laying off, workplace politics, remote work, and others.</summary><content type="html">&lt;p>A great compilation of all topics that are important for management: 1:1s, performance reviews, hiring and laying off,
workplace politics, remote work, and others.&lt;/p>
&lt;p>The book is divided into 3 parts: the first part covers things a new manager should know, the second and third parts go
into topics that all managers should master.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Although I kept nodding along with the bits of advice, I sometimes felt it was too “wordy” or going into too many
details that I wasn’t interested in. That said, I kept moving forward, and I am glad that I finished it, gathering a lot
of useful tips.&lt;/p>
&lt;hr />
&lt;p>My takeaways from this book:&lt;/p>
&lt;h2 id="part-1-getting-oriented">Part 1 - Getting Oriented
&lt;a class="heading-anchor" href="#part-1-getting-oriented" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="chapter-01-a-new-adventure">Chapter 01: A New Adventure
&lt;a class="heading-anchor" href="#chapter-01-a-new-adventure" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Practical advice on things to do the first week and finding misalignment signals on your first week.&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-02-manage-yourself-first">Chapter 02: Manage Yourself First
&lt;a class="heading-anchor" href="#chapter-02-manage-yourself-first" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>A good reminder of how getting your things an order comes first - this is a pre-requisite to you being efficient, as a
manager.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Your calendar it is both for you and other people to use. Keep it tidy and meaningful. It represents you. Making meetings public by default can help others reason better about how to schedule time with you.”&lt;/p>
&lt;/blockquote>
&lt;h2 id="part-2-working-with-individuals">Part 2 - Working with Individuals
&lt;a class="heading-anchor" href="#part-2-working-with-individuals" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="chapter-03-interfacing-with-humans">Chapter 03: Interfacing with Humans
&lt;a class="heading-anchor" href="#chapter-03-interfacing-with-humans" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>This chapter covers a lot of ground on how to communicate with others.&lt;/li>
&lt;li>Think twice before broadcasting information.&lt;/li>
&lt;li>Be consistent in your communications style.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Don’t communicate when you want to, but when you need to.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="chapter-04-one-to-ones">Chapter 04: One-to-Ones
&lt;a class="heading-anchor" href="#chapter-04-one-to-ones" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>It’s their meeting, not yours.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Try to get your direct reports to do 70% of the talking. If you feel like solving their problem for them, don’t. Ask another question and let them arrive at the conclusion themselves. This is an art that takes some practice.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="chapter-05-the-right-job-for-the-person">Chapter 05: The Right Job for the Person
&lt;a class="heading-anchor" href="#chapter-05-the-right-job-for-the-person" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Motivation and the hierarchy of needs. Developing skills with some practical examples on doing so.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“However, as their manager, you can work with them to place these career achievements at the bottom of their skill tree, and then plan out the milestones along the way that they can aim for to make measurable progress. Thus pushing the frontier of their zone of proximal development further and further.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="chapter-06-the-most-wonderful-time-of-the-year-performance-reviews">Chapter 06: The Most Wonderful Time of the Year (Performance Reviews)
&lt;a class="heading-anchor" href="#chapter-06-the-most-wonderful-time-of-the-year-performance-reviews" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Preparing for performance reviews ahead of time. Getting peer feedback, and doing this via email, for example.&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-07-join-us-hiring">Chapter 07: Join Us! (Hiring)
&lt;a class="heading-anchor" href="#chapter-07-join-us-hiring" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>The case for not needing the most senior candidate.&lt;/li>
&lt;li>Culture fit.&lt;/li>
&lt;li>Setting up an interview process.&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-08-game-over-attrition">Chapter 08: Game Over (Attrition)
&lt;a class="heading-anchor" href="#chapter-08-game-over-attrition" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>People leaving is normal.&lt;/li>
&lt;li>Voluntary resignations that are:
&lt;ul>
&lt;li>“good reasons”, aka you could have not done much about it.&lt;/li>
&lt;li>“bad reasons”, that is you could have caught (and addressed) things early like coworker conflict, lack of
challenge, compensation.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“As a manager, you are doomed to failure if you think that you are going to keep everyone in your current team indefinitely. […]
You should never fight to keep staff if you cannot actually provide the conditions under which they can become happier than they already are. You’ll just defer their departure.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="chapter-09-how-to-win-friends-and-influence-people-being-well-connected">Chapter 09: How to win friends and influence people (Being well-connected)
&lt;a class="heading-anchor" href="#chapter-09-how-to-win-friends-and-influence-people-being-well-connected" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Building your network . Making introductions, checking in with others.&lt;/li>
&lt;li>Coaching and mentoring.&lt;/li>
&lt;/ul>
&lt;h2 id="part-3-the-bigger-picture">Part 3 - The Bigger Picture
&lt;a class="heading-anchor" href="#part-3-the-bigger-picture" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="chapter-10-humans-are-hard">Chapter 10: Humans are Hard
&lt;a class="heading-anchor" href="#chapter-10-humans-are-hard" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Working harder or faster isn’t what you should be focusing on. Instead, you should be creating the conditions that
make your staff happy and productive through nurturing their autonomy, mastery, and purpose.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“At more senior levels, During bad times, you will get the fingers pointed at you as you are fundamentally accountable, even though it may have not been your fault.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="chapter-11-projects-are-hard">Chapter 11: Projects are Hard
&lt;a class="heading-anchor" href="#chapter-11-projects-are-hard" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>“The eye off Sauron” - working on high-stakes projects.&lt;/li>
&lt;li>Things slowing down as the team is growing. More (legacy) code, more problems to deal with.&lt;/li>
&lt;li>Scope, resources and time balance.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Lead from the front: As a leader, you need to set the example for the rest of the team. Put in the work. The hardest projects can become career-defining moments. Own them and be there.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="chapter-12-the-information-stock-exchange">Chapter 12: The Information Stock Exchange
&lt;a class="heading-anchor" href="#chapter-12-the-information-stock-exchange" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Spies and gatekeepers.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“As a manager, you will be required to make regular decisions about how much you should share with other staff and when.”&lt;/p>
&lt;/blockquote>
&lt;ul>
&lt;li>Workplace politics.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“In workplace politics, your network of peers is important as it allows you to be more broadly informed about how the wider business feels about your own initiatives and priorities.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="chapter-13-letting-go-of-control">Chapter 13: Letting Go of Control
&lt;a class="heading-anchor" href="#chapter-13-letting-go-of-control" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Remove distractions and recharge properly outside work.&lt;/li>
&lt;li>Use 10% of your time each week to do nothing and let your thoughts emerge.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Let go of outcomes that you cannot control. Be accepting of trying your best, and encourage the same behavior in your staff. Unpredictable results are normal. Failure is acceptable. As long as you are trying your best, and you are enabling your team to try your best, then you have nothing to worry about.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="chapter-14-good-housekeeping">Chapter 14: Good Housekeeping
&lt;a class="heading-anchor" href="#chapter-14-good-housekeeping" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Turn problems into learning opportunities.&lt;/li>
&lt;li>Work on improving the team communication.&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-15-dual-ladders">Chapter 15: Dual Ladders
&lt;a class="heading-anchor" href="#chapter-15-dual-ladders" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Designing an Individual Contributor and Manager track is vital to a healthy engineering organization culture.&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-16-the-modern-workplace">Chapter 16: The Modern Workplace
&lt;a class="heading-anchor" href="#chapter-16-the-modern-workplace" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Diversity and inclusion.&lt;/li>
&lt;li>Remote working.&lt;/li>
&lt;li>Lead by example: work-life-balance.&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-17-startups">Chapter 17: Startups
&lt;a class="heading-anchor" href="#chapter-17-startups" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Management doesn’t mean bureaucracy.&lt;/li>
&lt;li>Good management is a light touch and continued collaboration.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Remember that start-up experience is highly sought after because being impactful in that environment involves being enterprising, self-motivated, collaborative, and quick to learn. Even if the start-up itself doesn’t work out, your next gig will be all the better for it.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="chapter-18-the-crystal-ball">Chapter 18: The Crystal Ball
&lt;a class="heading-anchor" href="#chapter-18-the-crystal-ball" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Your career vision. Looking back, looking ahead.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“An important part of a long and fulfilling life is purpose. Purpose is not about economic status or feeling well-being. It’s about a life worth living.”&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Cf6tX1ZPwvE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>Open-Source Software</title><subtitle>The power of contributing to OSS</subtitle><category term="open-source" scheme="https://chemaclass.com/tags/open-source/" label="Open Source"/><category term="git" scheme="https://chemaclass.com/tags/git/" label="Git"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2021-05-03T00:00:00+00:00</published><updated>2021-05-03T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/open-source-software/"/><id>https://chemaclass.com/blog/open-source-software/</id><summary type="html">A practical guide to open-source software: its benefits, how to start contributing, and why sharing code accelerates your career growth.</summary><content type="html">&lt;p>Every project you ship stands on open-source software. Your framework, your test runner, your compiler, the small library you never think about.&lt;/p>
&lt;p>You use it every day. The real question is whether you ever give back.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Giving back is not charity. It is one of the fastest ways to grow as a developer.&lt;/p>
&lt;h2 id="what-is-oss">What is OSS?
&lt;a class="heading-anchor" href="#what-is-oss" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Open-source is not the same as free software. Free software is one kind of open-source, but open-source does not have to be free to use. Two examples draw the line. &lt;a rel="external" href="https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE">PHPUnit&lt;/a> is open-source and free. &lt;a rel="external" href="https://github.com/spryker/spryker-core/blob/master/LICENSE">Spryker&lt;/a> is open-source and paid. Both publish their code for anyone to read.&lt;/p>
&lt;blockquote>
&lt;p>OSS is software that is public, open to the world.&lt;/p>
&lt;/blockquote>
&lt;h2 id="benefits">Benefits
&lt;a class="heading-anchor" href="#benefits" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Two groups win from open-source: the companies that publish it, and the people who contribute.&lt;/p>
&lt;h3 id="for-companies">For companies
&lt;a class="heading-anchor" href="#for-companies" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Open access drives adoption. The easier the code is to get, the faster people build on it. Training and tutorials pull in newcomers and grow the ecosystem. The code tends to sit on the cutting edge, because software that stands still goes obsolete. A public project gathers a community around it, and public channels make that community easy to join.&lt;/p>
&lt;p>And because anyone can read the source, anyone can check its quality. That is trust you cannot fake.&lt;/p>
&lt;h3 id="for-individual-contributors">For individual contributors
&lt;a class="heading-anchor" href="#for-individual-contributors" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>You pick what you work on. You practice real skills without the pressure of a production outage. You get to play with the newest features of your language, or try a language you have never touched.&lt;/p>
&lt;p>You also sharpen the soft skills that carry a career: writing clearly, explaining a change, holding your ground when people disagree.&lt;/p>
&lt;blockquote>
&lt;p>The code teaches the hard skills. The disagreements teach the rest.&lt;/p>
&lt;/blockquote>
&lt;h2 id="contributing-to-oss">Contributing to OSS
&lt;a class="heading-anchor" href="#contributing-to-oss" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="getting-started-with-github">Getting started with GitHub
&lt;a class="heading-anchor" href="#getting-started-with-github" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Starting is easy, and you have two doors. Open your own project, or contribute to one that already exists. A pet project fits the first door perfectly.&lt;/p>
&lt;h3 id="pet-projects">Pet projects
&lt;a class="heading-anchor" href="#pet-projects" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>A pet project is a playground to build real software and train real skills. Put it on your public GitHub profile and you get every benefit of contributing to OSS, plus one more: you answer to nobody. You set the roadmap. You decide what to build and how. You are your own boss.&lt;/p>
&lt;blockquote>
&lt;p>The project is there for you. You are responsible to play, explore, and push past your limits.&lt;/p>
&lt;/blockquote>
&lt;h3 id="my-pet-projects">My pet projects
&lt;a class="heading-anchor" href="#my-pet-projects" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>&lt;strong>Active:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/agnostic-ai">agnostic-ai&lt;/a>: write AI agents, skills, rules, and hooks once, use them in every AI CLI.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/bashdep">bashdep&lt;/a>: a simple dependency manager for Bash.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/phel-snake">phel-snake&lt;/a>: the snake game in your terminal, written in Phel.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/EdifactParser">edifact-parser&lt;/a>: a parser for a UN/EDIFACT file format in PHP.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/unspent">unspent&lt;/a>: a PHP library for UTXO-like bookkeeping with unspent entries.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Inactive:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/create-pr">create-pr&lt;/a>: a Bash script to open a pull request from your branch and context.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Abandoned:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/stock-ticker">stock-ticker&lt;/a>: get a notification with the news from your favorite Tickers.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/JiraStatusNotifier">jira-status-notifier&lt;/a>: Notify when the JIRA tickets don’t move along.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/php-best-practices">php-best-practices&lt;/a>: what I considered best practices for web-dev (archived).&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/php-scaffolding">php-scaffolding&lt;/a>: a basic PHP scaffolding with Docker (archived).&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/knob-mvc">knob-mvc&lt;/a>: a framework to create WordPress templates (2015/2017).&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>… and many more on &lt;a rel="external" href="https://github.com/Chemaclass">github.com/Chemaclass&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h3 id="my-oss-organization-contributions">My OSS organization contributions
&lt;a class="heading-anchor" href="#my-oss-organization-contributions" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>&lt;strong>Active:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/phel-lang/phel-lang">phel-lang&lt;/a>: Phel is a functional programming language that compiles to PHP.
It is a dialect of Lisp inspired by Clojure and Janet. I already wrote a post about
this: &lt;a href="/blog/phel-first-release/">Phel: A Lisp that compiles to PHP&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/gacela-project/gacela">gacela-project&lt;/a>: Gacela is a PHP framework that helps you to improve the
design of your application by splitting the logic into different modules.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Abandoned:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/NuevaMetal/nm_template">nm_template&lt;/a>: The base template for NuevaMetal (2013-2016).&lt;/li>
&lt;/ul>
&lt;h2 id="knowledge-sharing-and-impact">Knowledge Sharing and Impact
&lt;a class="heading-anchor" href="#knowledge-sharing-and-impact" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Code is only half of it. The other half is what you write down and hand to the next person.&lt;/p>
&lt;h3 id="blog-posts">Blog posts
&lt;a class="heading-anchor" href="#blog-posts" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="/blog/pull-request-vs-pair-prog/">Pull Requests vs Pair Programming&lt;/a>&lt;/li>
&lt;li>&lt;a href="/blog/the-process-itself-is-the-goal/">The Process Itself Is the Goal&lt;/a>&lt;/li>
&lt;li>&lt;a href="/blog/the-art-of-refactoring/">The Art of Refactoring: When, How, and Why&lt;/a>&lt;/li>
&lt;li>&lt;a href="/blog/the-art-of-testing/">The Art of Testing: Where Design Meets Quality&lt;/a>&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>… and many more on &lt;a rel="external" href="https://chemaclass.com/blog/">https://chemaclass.com/blog/&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h3 id="the-beauty-of-oss">The beauty of OSS
&lt;a class="heading-anchor" href="#the-beauty-of-oss" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Contribute in public long enough and you start to see your own growth. The corrections you keep making. The code you wrote last year, already aged. The mistakes, all of them, in the open. And underneath, the slow proof that you are getting better.&lt;/p>
&lt;p>You build a sixth sense for patterns you have hit before, the good ones and the painful ones.&lt;/p>
&lt;p>&lt;strong>Show your skills. Help the people around you.&lt;/strong> That is &lt;a href="/blog/working-with-the-garage-door-open/">working with the garage door open&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>Open-source software offers you one of the best opportunities to start building a career of continuous improvement.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>This is a (Spanish) talk that I did remotely on April 2021,
for &lt;a rel="external" href="https://www.meetup.com/phpmad/events/277733306/">PHPMad Madrid Community&lt;/a>. I present all these ideas
together with a live demo of how to contribute to a real OSS.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/GE5wR_SC_P4"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr /></content></entry><entry xml:lang="en"><title>Embrace the Change</title><subtitle>Who moved my cheese?🧀</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2021-03-01T00:00:00+00:00</published><updated>2021-03-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/embrace-the-change/"/><id>https://chemaclass.com/blog/embrace-the-change/</id><summary type="html">The tale is a beautiful metaphor of the different attitudes that people adopt as part of their identity in life when they have to confront any change.</summary><content type="html">&lt;p>The book &lt;em>Who moved my cheese?&lt;/em> presents a tale inside the main story that consists of 4 characters: two mice, &lt;strong>Sniff&lt;/strong> and &lt;strong>Scurry&lt;/strong>, and two little persons, &lt;strong>Hem&lt;/strong> and &lt;strong>Haw&lt;/strong>.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Published in 1998, and I just read it at the beginning of 2021. Better late than never. Actually, thanks to my brother Jesús, who recommended it to me.&lt;/p>
&lt;blockquote>
&lt;p>They live in a Maze (that represents one’s environment) and in order to survive they need to go out of their comfort zone and look for cheese (which represents happiness and success).&lt;/p>
&lt;p>The tale starts when both groups end up at “Cheese Station C”, full of cheese. The humans established routines while the mice kept their instincts active.&lt;/p>
&lt;p>One day the mice arrive at the “Cheese Station C” and find no cheese left. So they go out to find more cheese somewhere else. On the contrary, when Hem and Haw see that there is no cheese left, they start complaining. Hem, angry and annoyed, demands “Who moved my cheese?!”. Both humans counted on the cheese supply being endless and constant, so they weren’t prepared for the unexpected. The main difference here is how Haw and Hem react to this situation.&lt;/p>
&lt;p>Hem denies moving away from the “Cheese Station C”, so he keeps going there every day expecting to find cheese without success, being weaker, and with continuous fear of doing something different. Haw, on the other hand, decides to laugh at the situation, turns down his fear, and goes out looking for more cheese.&lt;/p>
&lt;p>… I will leave the rest of the tale to you.&lt;/p>
&lt;/blockquote>
&lt;p>The tale is a beautiful metaphor of the different attitudes that people adopt as part of their identity in life when they have to confront any change.&lt;/p>
&lt;blockquote>
&lt;p>Noticing small changes early helps you adapt to the bigger changes that are to come.&lt;/p>
&lt;/blockquote>
&lt;p>This book is full of lessons that apply to everyone no matter who they are or when they read it. I fully recommend it.&lt;/p>
&lt;h3 id="my-favorite-lessons-of-the-book">My favorite lessons of the book
&lt;a class="heading-anchor" href="#my-favorite-lessons-of-the-book" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ol>
&lt;li>Change happens.
They keep moving the cheese.&lt;/li>
&lt;li>Anticipate change.
Get ready for the cheese to move.&lt;/li>
&lt;li>Monitor change.
Smell the cheese often so you know when it’s getting old.&lt;/li>
&lt;li>Adapt to change quickly.
The quicker you let go of old cheese, the sooner you can enjoy new cheese.&lt;/li>
&lt;li>Change.
Move with the cheese.&lt;/li>
&lt;li>Enjoy change.
Enjoy the taste of new cheese&lt;/li>
&lt;li>Be ready to change quickly and enjoy it again.
They keep moving the cheese.&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>“Everyone knows that not all change is good or even necessary. But in a world that is constantly changing, it is to our advantage to learn how to adapt and enjoy something better. It is not what is in the story of “Who moved my cheese?” but how you interpret it and apply it to your own situation that gives it the value.“ - Ken Blanchard.&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/OvYCLxqkfvY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;blockquote>
&lt;p>“Life moves on and so should we” - Spencer Johnson&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="en"><title>Who moved my cheese?</title><subtitle>An Amazing Way to Deal With Change In Your Work and In Your Life</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2021-01-16T00:00:00+00:00</published><updated>2021-01-16T00:00:00+00:00</updated><author><name>
Spencer Johnson</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/who-moved-my-cheese/"/><id>https://chemaclass.com/readings/who-moved-my-cheese/</id><summary type="html">This book presents a tale inside the main story that consists of 4 characters: two mice, Sniff and Scurry, and two little persons, Hem and Haw.</summary><content type="html">&lt;p>This book presents a tale inside the main story that consists of 4 characters: two mice, &lt;strong>Sniff&lt;/strong> and &lt;strong>Scurry&lt;/strong>, and two little persons, &lt;strong>Hem&lt;/strong> and &lt;strong>Haw&lt;/strong>.&lt;/p>
&lt;p>The tale is a beautiful metaphor of the different attitudes that people adopt as part of their identity in life when they have to confront any change.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="my-favorite-lessons-of-the-book">My favorite lessons of the book
&lt;a class="heading-anchor" href="#my-favorite-lessons-of-the-book" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ol>
&lt;li>Change happens.
They keep moving the cheese.&lt;/li>
&lt;li>Anticipate change.
Get ready for the cheese to move.&lt;/li>
&lt;li>Monitor change.
Smell the cheese often so you know when it’s getting old.&lt;/li>
&lt;li>Adapt to change quickly.
The quicker you let go of old cheese, the sooner you can enjoy new cheese.&lt;/li>
&lt;li>Change.
Move with the cheese.&lt;/li>
&lt;li>Enjoy change.
Enjoy the taste of new cheese&lt;/li>
&lt;li>Be ready to change quickly and enjoy it again.
They keep moving the cheese.&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>“Everyone knows that not all change is good or even necessary. But in a world that is constantly changing, it is to our advantage to learn how to adapt and enjoy something better. It is not what is in the story of “Who moved my cheese?” but how you interpret it and apply it to your own situation that gives it the value.“ - Ken Blanchard.&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/OvYCLxqkfvY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>I wrote a blog post about this book: &lt;a href="/blog/embrace-the-change/">Embrace the change&lt;/a>&lt;/p></content></entry><entry xml:lang="en"><title>The Process Itself Is the Goal</title><subtitle>How to focus and have self-discipline</subtitle><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2020-09-08T00:00:00+00:00</published><updated>2020-09-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/the-process-itself-is-the-goal/"/><id>https://chemaclass.com/blog/the-process-itself-is-the-goal/</id><summary type="html">No goal should be an achievement on its own, but the process itself that helps us to go in the direction of these goals.</summary><content type="html">&lt;p>No goal should be an achievement on its own, but the process itself that helps us to go in the direction of these goals.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Goals, in business and in life in general, should be conceived as directions, where their real intention is to help us accomplish more in the way we planned or want.&lt;/p>
&lt;blockquote>
&lt;p>If we get rewarded only for results and not for processes, we will become pretty miserable.&lt;/p>
&lt;/blockquote>
&lt;p>Society doesn’t reward the journey, but the results, and that’s exactly part of the problem when you are too focused on how society acts on you. Of course, it’s important to listen to society, but it’s more important to listen to ourselves in order to improve constantly. Continuous improvement doesn’t apply to software only but to everything in life.&lt;/p>
&lt;h2 id="how-do-i-keep-myself-focused">How do I keep myself focused?
&lt;a class="heading-anchor" href="#how-do-i-keep-myself-focused" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>This is a totally subjective topic that might be different from person to person. That said, I think it might be useful to share my thoughts with you, so I’ll do it.&lt;/p>
&lt;h3 id="self-reflection">Self-reflection
&lt;a class="heading-anchor" href="#self-reflection" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>I used to write my thoughts in a “diary” for some years. Back then, in 2015, when I moved to Germany, I didn’t know many people here, and the environment was completely new.
I decided to write my thoughts to myself in order to read them the day after and do some retrospection about it. Finally, after around 3 years, in December 2017, I published a book named &lt;a rel="external" href="http://ojosenunrecuerdo.es/">“Ojos en un recuerdo”&lt;/a>. That book is the compilation of those thoughts. No story behind it. They are as they came. You can see the evolution of the topics and about what and how they were written.&lt;/p>
&lt;p>&lt;img src="/images/blog/2020-09-08/oeur-books.jpg" alt="ojos en un recuerdo books" />&lt;/p>
&lt;p>The exercise of self-reflection itself was more important than the book! The goal here wasn’t writing a book at all. The goal was the self-projection to understand what was going on inside myself. Publishing those thoughts in a book was an accident. A beautiful accident, though.
This habit of thinking about my actions and decisions (what do I do and why) helped me to develop who I am nowadays.&lt;/p>
&lt;h3 id="sports">Sports
&lt;a class="heading-anchor" href="#sports" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Exercise helps my mind to disconnect from the tech area. It keeps my body active using some energy in a different environment. But most importantly, it helps to get fully tired before going to bed. I feel myself resting much better if I’ve done some sport during the day: contact sports, fitness studio, or simply running.&lt;/p>
&lt;blockquote>
&lt;p>The specific sport itself is an irrelevant detail as far as you feel comfortable. The act of doing sport is the key here.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2020-09-08/bjj-berlin-2020.jpg" alt="jiu-jitsu training in berlin" />&lt;/p>
&lt;h3 id="books">Books
&lt;a class="heading-anchor" href="#books" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>I try to read tech throughout the day and non-tech during the night. For example, some days before going to work or after working time I might read a tech book. And some days before going to sleep I like to read a non-tech one. This way, I feed my brain with knowledge and I also provide it with non-tech space, so it can rest from code and enjoy other “universes” as well.
Some suggestions that helped me to understand how we behave, why we do what we do, and therefore build some habits that I didn’t know how to:&lt;/p>
&lt;ul>
&lt;li>The Power of Habit, by Charles Duhigg.&lt;/li>
&lt;li>Atomic Habits, by James Clear.&lt;/li>
&lt;li>Scrum: Doing Twice the Work in Half the Time, by Jeff Sutherland.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2020-09-08/atomic-habits.jpg" alt="atomic habits book" />&lt;/p>
&lt;h2 id="personal-tricks">Personal tricks
&lt;a class="heading-anchor" href="#personal-tricks" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>I wish I would have read much more. Nowadays, with the number of distractions that we have, keeping yourself focused is pretty hard. Some tricks that help me a lot when I want to focus:&lt;/p>
&lt;ul>
&lt;li>I keep my personal phone always in silence and vibration mode.&lt;/li>
&lt;li>I used to spend hours on social media; a lot of time wasted. Not anymore. I reduced the social media noise to the minimum by removing the apps that prevent me from being as productive as I want. Some of them from my phone, others the account itself.&lt;/li>
&lt;li>I used to play video games. Not anymore. Instead, I go to GitHub to work on my pet projects, contribute to an open-source project, or simply read a book.&lt;/li>
&lt;li>When I go for a run, I enjoy it twice by listening to a 45-min podcast that I want to listen to since the very morning. The reward of listening to the podcast is linked with the act of going out and running. I conscientiously created that habit.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>It’s not about removing your old habits but replacing them with new ones.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2020-09-08/chema-jumping.jpg" alt="chema jumping outdoors" />&lt;/p>
&lt;h3 id="how-to-improve-your-habits">How to improve your habits
&lt;a class="heading-anchor" href="#how-to-improve-your-habits" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Habits emerge without our consent. To save energy, the brain creates a habit loop that looks for a trigger to cue a behavior.&lt;/p>
&lt;ul>
&lt;li>Willpower can be learned. It needs exercise, like a muscle.&lt;/li>
&lt;li>Small successes are the building blocks of bigger wins.&lt;/li>
&lt;li>Focus less on goals and more on systems and processes.&lt;/li>
&lt;li>To change habits, change how you identify yourself.&lt;/li>
&lt;li>To build good habits, the environment is more important than being motivated.&lt;/li>
&lt;li>To break a bad habit, reduce exposure to the cues that cause it.&lt;/li>
&lt;li>Bundle an action you want to do with an action you need to do.&lt;/li>
&lt;li>Don’t try to make a habit perfect, just repeat it.&lt;/li>
&lt;li>Reduce friction for good habits and increase friction for bad habits.&lt;/li>
&lt;li>Like in Scrum, removing waste is fundamental to get better.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Repetition is the key. Make it easier to do what you want to do. Make it harder to do what you want to stop doing. Enjoy the process: that’s the goal.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2020-09-08/chema-next-turm.jpg" alt="chema by a tower" />&lt;/p>
&lt;h2 id="interesting-links">Interesting links
&lt;a class="heading-anchor" href="#interesting-links" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://heleo.com/charles-duhigg-13-key-insights-charles-duhiggs-power-habit/2026/">13 key insights from The Power of Habit&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://medium.com/@saurinparikh/the-most-interesting-useful-takeaways-from-atomic-habits-9acc20bdc858">The most interesting takeaways from Atomic Habits&lt;/a>&lt;/li>
&lt;li>&lt;a href="/readings/atomic-habits/">Atomic Habits in my readings&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="en"><title>7 languages in 7 weeks</title><subtitle>Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2020-05-21T00:00:00+00:00</published><updated>2020-05-21T00:00:00+00:00</updated><author><name>
Bruce Tate</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/7-languages-in-7-weeks/"/><id>https://chemaclass.com/readings/7-languages-in-7-weeks/</id><summary type="html">A hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Learn how each language thinks differently and broaden your perspective on programming.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is
good, how about Seven Languages in Seven Weeks? In this book you’ll get a hands-on tour of Clojure, Haskell, Io, Prolog,
Scala, Erlang, and Ruby. Whether your favorite language is on that list, you’ll broaden your perspective of
programming by examining these languages side-by-side. You’ll learn something new from each, and best of all, you’ll
learn how to learn a language quickly.&lt;/p>
&lt;hr />
&lt;p>I created this repository with all my learnings while I was reading and playing aroung with the languages from this book
&lt;a rel="external" href="https://github.com/Chemaclass/7LangIn7Weeks">https://github.com/Chemaclass/7LangIn7Weeks&lt;/a>&lt;/p></content></entry><entry xml:lang="en"><title>How to Improve Your Tech-Talk (or Any Other Presentation)</title><subtitle>Some tips to improve your communication skills</subtitle><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2019-11-18T00:00:00+00:00</published><updated>2019-11-18T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/blog/improve-your-tech-talk/"/><id>https://chemaclass.com/blog/improve-your-tech-talk/</id><summary type="html">We have found ourselves attending a meeting that felt like we were wasting our time with a monologue that is either hard to follow or doesn't seem so interesting as it could. Let's fix this.</summary><content type="html">&lt;p>We have found ourselves attending a meeting that felt like we were wasting our time with a “monologue” that is either hard to follow or doesn’t seem so interesting as it could.
Let’s fix this.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Therefore, I was thinking about it, and I tried to get some keys to improving their general quality. It applies to all presentations but also tech-talks and other tech presentations in which engineers are usually involved.&lt;/p>
&lt;h2 id="structure-of-the-talk">Structure of the talk
&lt;a class="heading-anchor" href="#structure-of-the-talk" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>To explain how I think a good presentation should look like I will address three main topics that are relevant to structure and design your presentation.&lt;/p>
&lt;ol>
&lt;li>Content of the presentation: what message do you want to convey to whom and how?&lt;/li>
&lt;li>Design and Layout: how you can design an easy-to-follow presentation that supports your talk instead of taking away the attention from what you are actually trying to say.&lt;/li>
&lt;li>Lastly, I think also the audience is responsible for making a tech talk successful, so I will also add a reminder about the role and responsibilities of the listeners.&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="/images/blog/2019-11-18/talking.jpg" alt="person talking to an audience" />&lt;/p>
&lt;h3 id="consider-your-audience">Consider your audience
&lt;a class="heading-anchor" href="#consider-your-audience" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>When you prepare your presentation, ask yourself:&lt;/p>
&lt;ul>
&lt;li>Who is attending the talk?&lt;/li>
&lt;li>Which backgrounds do they have?&lt;/li>
&lt;li>Which position do they have?&lt;/li>
&lt;li>Which information is relevant to them?&lt;/li>
&lt;li>Do they have to know all the keywords that you would like to use?&lt;/li>
&lt;/ul>
&lt;h3 id="introduce-the-topic">Introduce the topic
&lt;a class="heading-anchor" href="#introduce-the-topic" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Create some atmosphere. Try to answer these questions:&lt;/p>
&lt;ul>
&lt;li>Why should they listen to you?&lt;/li>
&lt;li>Why should they spend their time in another meeting?&lt;/li>
&lt;li>What will they have learned by the end of the talk?&lt;/li>
&lt;li>What is your main message?&lt;/li>
&lt;/ul>
&lt;p>Every meeting should have an output and an outcome. Keep it in mind.&lt;/p>
&lt;h3 id="create-a-storyline">Create a Storyline
&lt;a class="heading-anchor" href="#create-a-storyline" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>When preparing the main content of your talk, think about a storyline that connects your arguments. This makes it easier for the audience to follow.&lt;/li>
&lt;li>Stick to the messages that are necessary to explain your idea or concept.&lt;/li>
&lt;li>Leave out any unnecessary information that is not relevant to the core of your message.&lt;/li>
&lt;/ul>
&lt;h3 id="build-a-conclusion">Build a conclusion
&lt;a class="heading-anchor" href="#build-a-conclusion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Summarize the main conclusion(s) in a concise way:&lt;/p>
&lt;ul>
&lt;li>What is the conclusion of this meeting?&lt;/li>
&lt;li>What are the learnings from this meeting?&lt;/li>
&lt;li>What are the open questions or next steps?&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2019-11-18/books.jpg" alt="stack of books" />&lt;/p>
&lt;h2 id="design-and-layout">Design and Layout
&lt;a class="heading-anchor" href="#design-and-layout" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="write-less-talk-more">Write less, talk more
&lt;a class="heading-anchor" href="#write-less-talk-more" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>A tech-talk is about learning new ideas and concepts.&lt;/li>
&lt;li>A presentation should support your talk, not replace or replicate what you have said.&lt;/li>
&lt;li>The more words on the slide, the fewer they will be remembered.&lt;/li>
&lt;li>Use visuals/graphics that support your talk instead of additional text.&lt;/li>
&lt;/ul>
&lt;h3 id="large-fonts">Large fonts
&lt;a class="heading-anchor" href="#large-fonts" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>If you have some code to present, consider:&lt;/p>
&lt;ul>
&lt;li>If it is a picture: use large fonts inside. I recommend using https://carbon.now.sh/ for simple snippets. Or just screenshots from your favorite IDE.&lt;/li>
&lt;li>If you code in live: prepare your editor in advance. Use the Presentation Mode of your IDE.&lt;/li>
&lt;/ul>
&lt;h2 id="role-of-the-audience">Role of the Audience
&lt;a class="heading-anchor" href="#role-of-the-audience" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="responsibilities-of-the-attendee">Responsibilities of the attendee
&lt;a class="heading-anchor" href="#responsibilities-of-the-attendee" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>No unnecessary phone usage, like Twitter, Instagram, Facebook, WhatsApp, Telegram, etc.&lt;/li>
&lt;li>Keep your questions for the questions time, unless the presenter mentions at the very beginning that you can ask at any moment. Usually, it’s better not to interrupt the topic, so we can ask the questions at the end.&lt;/li>
&lt;li>Show interest in the topic. The presenter should have spent some time preparing the slides for you.&lt;/li>
&lt;li>Pair with the presenter the interest of the topic. This is also the responsibility of the presenter. You both should be eager to learn more about the topic.&lt;/li>
&lt;/ul>
&lt;h3 id="inner-questions">Inner questions
&lt;a class="heading-anchor" href="#inner-questions" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Was it worth the time that we all spent in this room?&lt;/li>
&lt;li>Do we regret the attendance of this meeting?&lt;/li>
&lt;/ul>
&lt;p>At the end of the meeting, we should ask these questions in order to improve. Ask other people for their feedback, so we can grow further and together.&lt;/p>
&lt;p>&lt;img src="/images/blog/2019-11-18/footer.jpg" alt="audience at a presentation" />&lt;/p></content></entry><entry xml:lang="en"><title>Atomic Habits</title><subtitle>An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2019-11-12T00:00:00+00:00</published><updated>2019-11-12T00:00:00+00:00</updated><author><name>
James Clear</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/atomic-habits/"/><id>https://chemaclass.com/readings/atomic-habits/</id><summary type="html">People think that when you want to change your life, you need to think big. James Clear has discovered another way. He knows that real change comes from the compound effect of hundreds of small decisions. He calls them atomic habits.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>People think that when you want to change your life, you need to think big. James Clear has discovered another way. He
knows that real change comes from the compound effect of hundreds of small decisions. He calls them atomic habits.&lt;/p>
&lt;h3 id="takeaways">Takeaways
&lt;a class="heading-anchor" href="#takeaways" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Focus more on systems and processes and less on goals&lt;/li>
&lt;li>Change how you identify yourself&lt;/li>
&lt;li>The environment is more important than being motivated&lt;/li>
&lt;li>To break a bad habit, reduce exposure to the cues that cause it&lt;/li>
&lt;li>Bundle an action you want to do with an action you need to do&lt;/li>
&lt;li>Instead of saying “I have to,” say “I get to”&lt;/li>
&lt;li>Don’t try to make a habit perfect, just repeat it&lt;/li>
&lt;li>Reduce friction for good habits and increase friction for bad habits&lt;/li>
&lt;li>To make something not seem like a chore, do it for short periods of time&lt;/li>
&lt;li>To achieve long-term goals, make small habits rewarding&lt;/li>
&lt;li>Never miss more than once of a habit&lt;/li>
&lt;/ul>
&lt;p>I wrote a blog post about this topic: &lt;a href="/blog/the-process-itself-is-the-goal/">The process itself is the goal&lt;/a>&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/YT7tQzmGRLA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>The Power of Habit</title><subtitle>Why We Do What We Do, and How to Change</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2017-03-20T00:00:00+00:00</published><updated>2017-03-20T00:00:00+00:00</updated><author><name>
Charles Duhigg</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/the-power-of-habits/"/><id>https://chemaclass.com/readings/the-power-of-habits/</id><summary type="html">Charles Duhigg explores the science behind habit formation, showing how habits work, why they exist, and practical strategies to transform them for personal and professional growth.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h2 id="takeaways">Takeaways
&lt;a class="heading-anchor" href="#takeaways" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;ol>
&lt;li>All habits operate the same way&lt;/li>
&lt;li>Changing a habit means changing one key aspect…&lt;/li>
&lt;li>…and changing one habit can change a lot of things&lt;/li>
&lt;li>Willpower is a muscle&lt;/li>
&lt;li>Practice, practice, practice&lt;/li>
&lt;/ol>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Zq2LVa36ukk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>The Pragmatic Programmer</title><subtitle>The journey to mastery</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2016-10-01T00:00:00+00:00</published><updated>2016-10-01T00:00:00+00:00</updated><author><name>
Andrew Hunt</name></author><author><name>
David Thomas</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/the-pragmatic-programmer/"/><id>https://chemaclass.com/readings/the-pragmatic-programmer/</id><summary type="html">Key takeaways from Hunt and Thomas's classic on pragmatic software development, including DRY principles, the right mindset, and how to choose and master your tools.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h3 id="takeaways">Takeaways
&lt;a class="heading-anchor" href="#takeaways" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Don’t Repeat Yourself.&lt;/li>
&lt;li>Mindset is as important as knowledge.&lt;/li>
&lt;li>Good code is easier to change than bad design.&lt;/li>
&lt;li>Choose great tools and become fluent with them.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h4 id="don-t-repeat-yourself-dry">Don’t Repeat Yourself (DRY)
&lt;a class="heading-anchor" href="#don-t-repeat-yourself-dry" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.&lt;/li>
&lt;li>DRY is about the duplication of knowledge, of intent. It’s about expressing the same thing in two different places,
possibly in two totally different ways.&lt;/li>
&lt;/ul>
&lt;h4 id="mindset-is-as-important-as-knowledge">Mindset is as important as knowledge
&lt;a class="heading-anchor" href="#mindset-is-as-important-as-knowledge" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;p>Some important aspects of this mindset include:&lt;/p>
&lt;ul>
&lt;li>Taking responsibility for your work by not making excuses or passing blame when things go wrong.&lt;/li>
&lt;li>Writing software that’s good enough. This means not wasting time on things that are better than they need to be to
make the product successful.&lt;/li>
&lt;li>Not ignoring technical debt. The authors use the analogy of broken windows:&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Don’t leave “broken windows” (bad designs, wrong decisions, or poor code) unrepaired.
Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up.
Perhaps you can comment out the offending code, or display a “Not Implemented” message, or substitute dummy data instead.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="en"><title>The Clean Coder</title><subtitle>A Code of Conduct for Professional Programmers</subtitle><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2016-08-01T00:00:00+00:00</published><updated>2016-08-01T00:00:00+00:00</updated><author><name>
Robert C. Martin</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/the-clean-coder/"/><id>https://chemaclass.com/readings/the-clean-coder/</id><summary type="html">Robert C. Martin's guide to professional behavior in software development, covering time management, pressure handling, TDD practices, and what it truly means to be a software craftsman.</summary><content type="html">&lt;p>Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care
deeply about the practice of creating software. They treat it as a craft. They are professionals.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="readers-will-learn">Readers will learn
&lt;a class="heading-anchor" href="#readers-will-learn" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>What it means to behave as a true software craftsman&lt;/li>
&lt;li>How to deal with conflict, tight schedules, and unreasonable managers&lt;/li>
&lt;li>How to get into the flow of coding, and get past writer’s block&lt;/li>
&lt;li>How to handle unrelenting pressure and avoid burnout&lt;/li>
&lt;li>How to combine enduring attitudes with new development paradigms&lt;/li>
&lt;li>How to manage your time, and avoid blind alleys, marshes, bogs, and swamps&lt;/li>
&lt;li>How to foster environments where programmers and teams can thrive&lt;/li>
&lt;li>When to say &lt;strong>No&lt;/strong> and how to say it&lt;/li>
&lt;li>When to say &lt;strong>Yes&lt;/strong> and what yes really means&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="summary">Summary
&lt;a class="heading-anchor" href="#summary" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="chapter-1-professionalism">Chapter 1: Professionalism
&lt;a class="heading-anchor" href="#chapter-1-professionalism" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Being a professional means taking full responsibility for one’s actions.&lt;/li>
&lt;li>First rule is not doing harm to the function nor the structure of the software.&lt;/li>
&lt;li>You will always make occasional mistakes, but you must learn from each.&lt;/li>
&lt;li>You should be certain about all code you release and firmly expect QA to find nothing wrong with it.
&lt;ul>
&lt;li>Test it and test it again.&lt;/li>
&lt;li>Automate your tests.&lt;/li>
&lt;li>Design your code to be easy to test.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>You should follow the Boy Scout rule and always leave a module a little cleaner than you found it so that it becomes
easier to change over time, not harder.&lt;/li>
&lt;li>Your career is &lt;strong>your responsibility&lt;/strong>, not your boss nor your employers.
&lt;ul>
&lt;li>Spending 20 hours a week beyond your normal work to improve your knowledge and skills.&lt;/li>
&lt;li>Read, experiment, practice (kata), talk to other, collaborate, look over the fence, mentor.&lt;/li>
&lt;li>It should be fun.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Also, know your domain, identify with your customer (no “us vs. them”, ever).&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-2-saying-no">Chapter 2: Saying No
&lt;a class="heading-anchor" href="#chapter-2-saying-no" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Professionals have the courage to say no to their managers.&lt;/li>
&lt;li>Managers and developers have roles that are often adversarial, because on the short term, their goals tend to
conflict.&lt;/li>
&lt;li>The higher the stakes, the more valuable a “no” becomes, and the harder to say.&lt;/li>
&lt;li>Good teams will successfully work towards a yes, but only a right yes, that will later work out in practice.&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-3-saying-yes">Chapter 3: Saying Yes
&lt;a class="heading-anchor" href="#chapter-3-saying-yes" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>There are three parts to making a commitment:
&lt;ul>
&lt;li>You say you will do it&lt;/li>
&lt;li>You mean it&lt;/li>
&lt;li>You actually do it&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Your commitment must respect the limits of what you expect (based on your experience) you can and cannot do.
&lt;ul>
&lt;li>If you recognize you will probably not be able to meet a commitment, you need to raise a red flag immediately.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-4-coding">Chapter 4: Coding
&lt;a class="heading-anchor" href="#chapter-4-coding" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Programming requires a level of focus that few other disciplines require.&lt;/li>
&lt;li>“The zone” (or “flow”) is not as good as people think: you will be locally productive, but will often lose the bigger
picture and possibly product not-so-good designs.&lt;/li>
&lt;li>Interruptions are bad distractions.
&lt;ul>
&lt;li>Pair programming is helpful to cope with them.&lt;/li>
&lt;li>TDD helps to make the pre-interruption context reproducible.
&lt;ul>
&lt;li>Minimize time spent debugging&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Coding is a &lt;strong>marathon&lt;/strong>, not a sprint, so conserve the energy and creativity.&lt;/li>
&lt;li>Leave when it’s time, even in the middle of something important.&lt;/li>
&lt;li>Continuously re-estimate your best/likely/worst completion time and speak up as soon as you recognize you will likely
be late.
&lt;ul>
&lt;li>Do not allow anyone to rush you.&lt;/li>
&lt;li>Use a proper definition of “done”, with sufficiently high quality requirements.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Programming is too hard for anyone, so get help and provide help to others, in particular (but not only) in mentoring
style.
&lt;ul>
&lt;li>Don’t be shy from asking.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-5-test-driven-development">Chapter 5: Test-Driven Development
&lt;a class="heading-anchor" href="#chapter-5-test-driven-development" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://en.wikipedia.org/wiki/Test-driven_development">TDD&lt;/a> is not a cure-all and is impractical or inappropriate in
some (rare) cases.&lt;/li>
&lt;li>TDD Cycle:
&lt;ol>
&lt;li>Add a test&lt;/li>
&lt;li>Run all tests. The new test should fail for expected reasons&lt;/li>
&lt;li>Write the simplest code that passes the new test&lt;/li>
&lt;li>All tests should now pass&lt;/li>
&lt;li>Refactor as needed&lt;/li>
&lt;li>Repeat&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-6-practicing">Chapter 6: Practicing
&lt;a class="heading-anchor" href="#chapter-6-practicing" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>A programming Kata is a precise set of choreographed keystrokes and mouse movements that simulates the solving of some
programming problem.
&lt;ul>
&lt;li>A Kata is about the process, not the solution.&lt;/li>
&lt;li>You aren’t solving the problem because you already know the solution.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-7-acceptance-testings">Chapter 7: Acceptance Testings
&lt;a class="heading-anchor" href="#chapter-7-acceptance-testings" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Avoid garbage in, garbage out. Make sure you understand the requirements.
&lt;ul>
&lt;li>Creating this understanding means removing ambiguity.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The best way to do this is defining acceptance tests:
&lt;ul>
&lt;li>All customer’s conditions need to be fulfilled by automated tests to prove the expected software behavior.&lt;/li>
&lt;li>Success of those tests constitutes the definition of “Done”.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Code implementation should start only when the tests are complete.&lt;/li>
&lt;li>Unlike unit tests (which are only for programmers), the audience of acceptance tests are both: business and
developers.&lt;/li>
&lt;li>Run all tests in a continuous integration and immediately fix any failures.&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-8-test-strategies">Chapter 8: Test Strategies
&lt;a class="heading-anchor" href="#chapter-8-test-strategies" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Consider QA part of the team. They act as specifiers: writing acceptance tests, including the failure cases and corner
cases, and perform exploratory testing.&lt;/li>
&lt;li>Testing pyramid:
&lt;ul>
&lt;li>Most tests are unit tests. By developer and for developers.&lt;/li>
&lt;li>Many tests are component or integration tests. By QA or Business assisted by Developers. For Business and
Developers.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-9-time-management">Chapter 9: Time management
&lt;a class="heading-anchor" href="#chapter-9-time-management" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Management roles in software development requires good time management.&lt;/li>
&lt;li>Meeting are necessary but are also often huge time wasters, so avoid meeting that have no clear benefit &amp;lt;- this is a
professional obligation.&lt;/li>
&lt;li>Meeting must have an agenda and a clear goal.
&lt;ul>
&lt;li>Agile stand up meetings can be an efficient format.&lt;/li>
&lt;li>Iteration planning should take 5% of the iteration.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Concentration (focus) is a scarce resource.
&lt;ul>
&lt;li>Use it well when present and recharge with simpler tasks (meetings) and breaks in between.&lt;/li>
&lt;li>How to improve?
&lt;ul>
&lt;li>Sport.&lt;/li>
&lt;li>Creative input.&lt;/li>
&lt;li>Short breaks every 45 minutes.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-10-estimation">Chapter 10: Estimation
&lt;a class="heading-anchor" href="#chapter-10-estimation" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Estimation is the source of most distrust between business people and developers because the latter provide estimate
which the former treats like commitments.
&lt;ul>
&lt;li>Both are insufficiently aware that the estimate really is a probability distribution, not a fixed number.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-11-pressure">Chapter 11: Pressure
&lt;a class="heading-anchor" href="#chapter-11-pressure" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>The professional developer is calm and decisive under pressure, adhering to his training and disciplines, knowing that
they are the best way to meet pressing deadlines and commitments.&lt;/li>
&lt;li>Avoid situations that cause pressure via:
&lt;ul>
&lt;li>make only commitments you can fulfill&lt;/li>
&lt;li>keep your code clean&lt;/li>
&lt;li>work in such a way that you need not change it when in crisis&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Don’t panic. Talk with your team. Don’t rush. Trust your disciplines.&lt;/li>
&lt;li>Offer to pair to others in crisis.&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-12-collaboration">Chapter 12: Collaboration
&lt;a class="heading-anchor" href="#chapter-12-collaboration" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Not all but most programmers like working alone. But we need to understand the goals of the surrounding people,
including business folks.
&lt;ul>
&lt;li>This requires &lt;strong>communication&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Likewise, within the development team: only collective code ownership and pairing produce a good level of
communication.
&lt;ul>
&lt;li>Programming is all about &lt;strong>communication&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-13-teams-and-projects">Chapter 13: Teams and Projects
&lt;a class="heading-anchor" href="#chapter-13-teams-and-projects" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Teams need time (months) to gel, to really get to know each other and learn to truly work together.
&lt;ul>
&lt;li>Assigning fractional people to different projects is a bad idea, as is breaking up a good team at the end of a
project.&lt;/li>
&lt;li>Instead, assigning several projects to one team can work well.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="chapter-14-mentoring-apprenticeship-and-craftsmanship">Chapter 14: Mentoring, Apprenticeship and Craftsmanship
&lt;a class="heading-anchor" href="#chapter-14-mentoring-apprenticeship-and-craftsmanship" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Young programmers need mentoring.
&lt;ul>
&lt;li>Mentoring can be implicit or explicit.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Given that we entrust software with all aspects of our lives, a reasonable period of training and supervised practice
would be appropriate.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>In this lesson, Uncle Bob demonstrates the need to write a clean code and establishes the bases to achieve it,
being these bases of a social and scientific nature. Making it clear that the future of programming is based on an
ethical and polite code.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/7EmboKQH8lM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>In this second lesson, Uncle Bob teaches us the purpose of comments in the code, breaking the paradigm that commenting
is something “I have to do” for the simple fact that we mistakenly consider that commenting is a good practice. For
Uncle Bob, writing a comment is a sign of failure, since a good code must be able explain by itself: Fewer Comments =
Better Code.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/2a_ytyt9sf8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>In this third lesson, Uncle Bob focuses on raising awareness, given the need to increase the level of criteria in code
production. Pointing to the lack of preparation in most programmers, as one of the main reasons for the inefficiency in
software development today.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Qjywrq2gM8o"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>In this fourth lesson, Uncle Bob introduces us to a software development methodology oriented through testing. This is
the Test-Driven Development (TDD), a practice with a long learning curve, but with significant results to generate a
more robust, safer, more maintainable code and with greater development efficiency.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/58jGpV2Cg50"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="en"><title>97 Things Every Programmer Should Know</title><subtitle>Collective whisdom from the experts</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2016-07-15T00:00:00+00:00</published><updated>2016-07-15T00:00:00+00:00</updated><author><name>
Kevlin Henney</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/readings/97-things-every-programmer-should-know/"/><id>https://chemaclass.com/readings/97-things-every-programmer-should-know/</id><summary type="html">Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. With the 97 short and extremely useful tips for programmers in this book, you'll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.</summary><content type="html">&lt;p>Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. With the 97
short and extremely useful tips for programmers in this book, you’ll expand your skills by adopting new approaches to
old problems, learning appropriate best practices, and honing your craft through sound advice.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="my-main-key-takeaways">My main key takeaways
&lt;a class="heading-anchor" href="#my-main-key-takeaways" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>01.- Pay off technical debt as soon as possible.&lt;/p>
&lt;p>02.- Learn and master &lt;strong>functional programming&lt;/strong>.&lt;/p>
&lt;ul>
&lt;li>It makes your code less prone to error and easier to debug.&lt;/li>
&lt;/ul>
&lt;p>03.- Don’t guess what a user would do; get users to do things and watch them.&lt;/p>
&lt;p>04.- &lt;strong>Automate&lt;/strong> coding standards.&lt;/p>
&lt;p>05.- Write &lt;strong>simple&lt;/strong> code, simple descriptive names, simple relationships.&lt;/p>
&lt;p>06.- Before you refactor: consider the existing tests and code.&lt;/p>
&lt;ul>
&lt;li>Work in increments, make sure the tests still pass after every change.&lt;/li>
&lt;/ul>
&lt;p>08.- Always leave code &lt;strong>cleaner&lt;/strong> than you found it, even if you didn’t write it.&lt;/p>
&lt;p>10.- Choose your libraries/frameworks carefully to avoid unnecessary complexity.&lt;/p>
&lt;p>11.- Make your code easy to understand using &lt;strong>domain&lt;/strong> terms.&lt;/p>
&lt;p>13.- The &lt;strong>layout&lt;/strong> of the code is also important.&lt;/p>
&lt;p>14.- Use code &lt;strong>reviews&lt;/strong> focusing on knowledge-sharing among team members.&lt;/p>
&lt;p>15.- Objects &lt;strong>immutable&lt;/strong> whenever relevant. Each variable should have the smallest possible scope. Never include more than four function arguments.&lt;/p>
&lt;p>18.- Take &lt;strong>responsibility&lt;/strong> for your own education and never stop learning.&lt;/p>
&lt;ul>
&lt;li>That can be done with just a bit of time each week and there are many ways to go about it (e.g. podcasts, lessons, books, etc.).&lt;/li>
&lt;/ul>
&lt;p>19.- When designing an API, aim to make it &lt;strong>easy to use&lt;/strong>, not convenient to code.&lt;/p>
&lt;p>20.- Deploy early and &lt;strong>often&lt;/strong>. Do not leave it until the end of the project.&lt;/p>
&lt;p>22.- Improving your skills should be on your daily basis.&lt;/p>
&lt;p>23.- Adapt the technical level of your domain-specific language to your audience.&lt;/p>
&lt;p>24.- &lt;strong>Don’t be afraid&lt;/strong> to break things if that’s what’s necessary to fix things.&lt;/p>
&lt;p>25.- Careful with your test data because that might go public accidentally.&lt;/p>
&lt;p>26.- Handle your errors as they appear, don’t leave it for later.&lt;/p>
&lt;p>27.- Learn &lt;strong>different&lt;/strong> programming languages.&lt;/p>
&lt;ul>
&lt;li>Learn their own “culture” or way of doing things.&lt;/li>
&lt;li>It’ll make you definitely a better programmer.&lt;/li>
&lt;/ul>
&lt;p>28.- Don’t just catch your errors, really handle them.&lt;/p>
&lt;p>29.- Understand at least some complexities of your business, not just programming.&lt;/p>
&lt;p>30.- &lt;strong>DRY&lt;/strong>: Don’t Repeat Yourself.&lt;/p>
&lt;p>32.- Encapsulate behavior, not just state.&lt;/p>
&lt;p>33.- Floating point numbers inevitably can create errors in calculations.&lt;/p>
&lt;p>34.- &lt;strong>Open source&lt;/strong> is a great opportunity to do interesting work and develop programming skills.&lt;/p>
&lt;p>36.- Give proper &lt;strong>context&lt;/strong> when asking for help, because people can’t just guess what’s going on.&lt;/p>
&lt;p>37.- It’s not about the long hours. Learn to &lt;strong>work effectively&lt;/strong>.&lt;/p>
&lt;ul>
&lt;li>Dedicate time to continuous learning and to think about what you’re doing.&lt;/li>
&lt;/ul>
&lt;p>38.- Write proper &lt;strong>bug reports&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Precisely how to reproduce the bug,&lt;/li>
&lt;li>how often it appears,&lt;/li>
&lt;li>what should have happened,&lt;/li>
&lt;li>what actually happened.&lt;/li>
&lt;/ul>
&lt;p>39.- Don’t write unnecessary code.&lt;/p>
&lt;ul>
&lt;li>Only write code that adds value and is needed right now.&lt;/li>
&lt;li>&lt;strong>Remove dead code&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>41.- The main cause of delays in application response time is a high number of remote &lt;strong>interprocess&lt;/strong> communications, not the algorithm.&lt;/p>
&lt;ul>
&lt;li>DB connections, for example.&lt;/li>
&lt;/ul>
&lt;p>42.- If a compiler warning shows up in your build, fix it.&lt;/p>
&lt;ul>
&lt;li>Don’t leave it for later. Even if it’s not going to be a problem in production.&lt;/li>
&lt;li>Compiler == any static code analysis for non compiled languages.&lt;/li>
&lt;/ul>
&lt;p>43.- Learning to use &lt;strong>command line&lt;/strong> tools is a valuable educational experience, and you might end up preferring them.&lt;/p>
&lt;p>44.- Learn (at least) two different languages and paradigms well.&lt;/p>
&lt;p>45.- Invest some time to &lt;strong>master&lt;/strong> the IDE you’re using.&lt;/p>
&lt;ul>
&lt;li>It’ll make your life easier and save you time in the long run.&lt;/li>
&lt;/ul>
&lt;p>46.- Know and work with your limitations: budget, resources, time, etc.&lt;/p>
&lt;p>47.- Work in &lt;strong>small tasks&lt;/strong>, don’t be afraid to throw away changes.&lt;/p>
&lt;ul>
&lt;li>You’ll still have the insight you gained from the experience.&lt;/li>
&lt;li>Know what you need to accomplish beforehand.&lt;/li>
&lt;/ul>
&lt;p>48.- Use a relational DB if your application is going to handle a large, persistent, interconnected set of data.&lt;/p>
&lt;p>49.- Learn to &lt;strong>communicate&lt;/strong> well in many “languages”: not just to your machine, but also to business partners, and maybe even pick up a foreign language too.&lt;/p>
&lt;ul>
&lt;li>It’s good for connections and for life.&lt;/li>
&lt;/ul>
&lt;p>54.- Think twice before implementing “temporary solutions”.&lt;/p>
&lt;p>55.- Make &lt;strong>GUI&lt;/strong> easy to use correctly and hard to use incorrectly.&lt;/p>
&lt;ul>
&lt;li>Anticipate errors and find ways to prevent them.&lt;/li>
&lt;li>It’s about the user’s experience, not your own.&lt;/li>
&lt;/ul>
&lt;p>56.- In projects, find ways to make &lt;strong>the invisible visible&lt;/strong>.&lt;/p>
&lt;p>57.- Message passing leads to better &lt;strong>scalability&lt;/strong> in parallel systems.&lt;/p>
&lt;p>58.- Write code that other people can easily &lt;strong>understand&lt;/strong>.&lt;/p>
&lt;p>59.- Using &lt;strong>polymorphism&lt;/strong> in your classes and objects reduces the need for if/else statements, which results in smaller, safer code.&lt;/p>
&lt;p>60.- QA is your friend, not your enemy.&lt;/p>
&lt;p>61.- Version your releases.&lt;/p>
&lt;p>62.- Make sure your source code clearly states what the program is doing.&lt;/p>
&lt;p>63.- Learn about the build process. It’s an important part of development.&lt;/p>
&lt;p>64.- Practice &lt;strong>pair programming&lt;/strong>.&lt;/p>
&lt;p>65.- Prefer &lt;strong>domain-specific types&lt;/strong> over primitive types.&lt;/p>
&lt;ul>
&lt;li>They make the code more readable and less prone to errors in development.&lt;/li>
&lt;/ul>
&lt;p>67.- A professional takes &lt;strong>personal responsibility&lt;/strong> for their career and their code.&lt;/p>
&lt;p>68.- Use version control.&lt;/p>
&lt;p>69.- Sometimes the best way to solve a problem is to step away from the computer and let the solution magically appear in your mind.&lt;/p>
&lt;p>70.- Reading code is a good way to &lt;strong>learn&lt;/strong>. Other people’s or your old code.&lt;/p>
&lt;p>72.- Reinventing the wheel is a great way to develop your skills.&lt;/p>
&lt;p>75.- If the code you wrote is truly horrifying, don’t try to fix. &lt;strong>Delete it&lt;/strong> and start again.&lt;/p>
&lt;p>76.- Apply the Single Responsibility Principle (&lt;strong>SRP&lt;/strong>).&lt;/p>
&lt;p>77.- If a client or team member requests a product change, don’t dismiss it outright even if you don’t agree. Ask why instead.&lt;/p>
&lt;ul>
&lt;li>That will lead to a more productive conversation and better results.&lt;/li>
&lt;/ul>
&lt;p>78.- If you’re doing the same thing over and over, try to find a way to &lt;strong>automate it&lt;/strong>.&lt;/p>
&lt;p>79.- Take advantage of code analysis tools.&lt;/p>
&lt;p>80.- Write tests based on the &lt;strong>desired functionality&lt;/strong> of your program, not incidental behavior.&lt;/p>
&lt;p>83.- Testing takes time, but it ensures the &lt;strong>quality&lt;/strong> of the end product. Do it.&lt;/p>
&lt;p>85.- There are many benefits to collaborative work and pair programming.&lt;/p>
&lt;p>86.- Sometimes fixing a mistake in the code leads to uncovering a hidden error.&lt;/p>
&lt;p>87.- Write code &lt;strong>with other programmers in mind&lt;/strong>.&lt;/p>
&lt;p>88.- Learn to use Unix tools. Learn how to use the &lt;strong>terminal&lt;/strong>.&lt;/p>
&lt;p>89.- Use the right algorithm and data structure for the job.&lt;/p>
&lt;ul>
&lt;li>To do that, you need to understand them well.&lt;/li>
&lt;/ul>
&lt;p>90.- Have a good logging policy.&lt;/p>
&lt;p>91.- Using the DRY principle helps you identify and repair performance bottlenecks.&lt;/p>
&lt;p>92.- Testers and programmers should &lt;strong>collaborate&lt;/strong>.&lt;/p>
&lt;p>93.- Write code as if you had to support it for the &lt;strong>rest of your life&lt;/strong>.&lt;/p>
&lt;p>94.- Try to write &lt;strong>“small” functions&lt;/strong>.&lt;/p>
&lt;ol start="95">
&lt;li>Good tests act as &lt;strong>documentation&lt;/strong> for the code they’re testing.&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>They describe how the code works.&lt;/li>
&lt;/ul>
&lt;ol start="96">
&lt;li>
&lt;p>To be a good programmer, you have to care about the &lt;strong>quality&lt;/strong> of the code.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Really, really &lt;strong>discuss things&lt;/strong> with your customers before assuming you understand what they want.&lt;/p>
&lt;/li>
&lt;/ol></content></entry></feed>