<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[The Dev Curve: Meditations]]></title><description><![CDATA[The Dev Curve: Meditations]]></description><link>https://the-dev-curve-meditations.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Nov 2026 07:24:41 GMT</lastBuildDate><atom:link href="https://the-dev-curve-meditations.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Book review of unit testing principles, practices, and patterns by Vladimir Khorikov]]></title><description><![CDATA[A straightforward review]]></description><link>https://the-dev-curve-meditations.hashnode.dev/book-review-of-unit-testing-principles-practices-and-patterns-by-vladimir-khorikov</link><guid isPermaLink="true">https://the-dev-curve-meditations.hashnode.dev/book-review-of-unit-testing-principles-practices-and-patterns-by-vladimir-khorikov</guid><category><![CDATA[Technical writing ]]></category><category><![CDATA[C#]]></category><category><![CDATA[.NET]]></category><category><![CDATA[Testing]]></category><dc:creator><![CDATA[Juan Miguel Nieto]]></dc:creator><pubDate>Sat, 31 Jan 2026 05:19:19 GMT</pubDate><content:encoded><![CDATA[<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769836697986/1eb8a4e8-6e4c-4ea8-b3ae-9669e54153a5.png" alt class="image--center mx-auto" /></p>
<p>Setting up your test-suites is one of the hardest challenge a developer will find. <strong>Tests are designed to increase confidence in software quality. Yet, they lose their value when developers begin to doubt the reliability of the tests themselves.</strong></p>
<p>Tests are like the last thing a developer would learn — because it’s most likely tightly coupled into learning your fundamentals, design patterns and architecture. What I’ve learned is that a good architecture would mean a testable software design, and if you don’t know the things how to write this you can’t write a good test suites.</p>
<p>One of the good things about the book is that it first provides historical context about different approaches to writing tests. The author then explains why he believes certain approaches are better from his perspective.</p>
<p>The book is technical and discusses which parts of the codebase are most beneficial to test. Although the title focuses on unit testing, the book also covers integration testing and explains why the author recommends using it alongside unit tests. <strong>He also recommends design patterns on how you can write your test elegantly. And how your test shape should be or the number of unit tests, end-to-end and integration written.</strong></p>
<p>Overall the book really gives me a solid foundation on how would I setup a good test-suites. Bonus is that the author is on the C# side and the libraries are on the .NET ecosystem <strong>but the theories discussed here will really give you a good insights. Afterall that’s what makes programming exciting isn’t it? applying theories into your codebase.</strong></p>
]]></content:encoded></item><item><title><![CDATA[Becoming a software craftsman: 10 real steps to actually improve in C#]]></title><description><![CDATA[I myself am guilty of chasing shiny tools in C#, like jumping from learning architectures without having good fundamentals. Well we can fix that.]]></description><link>https://the-dev-curve-meditations.hashnode.dev/becoming-a-software-craftsman-10-real-steps-to-actually-improve-in-c</link><guid isPermaLink="true">https://the-dev-curve-meditations.hashnode.dev/becoming-a-software-craftsman-10-real-steps-to-actually-improve-in-c</guid><category><![CDATA[meditations]]></category><category><![CDATA[C#]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Mindset]]></category><category><![CDATA[#growth]]></category><dc:creator><![CDATA[Juan Miguel Nieto]]></dc:creator><pubDate>Sat, 11 Oct 2025 13:21:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1760188815453/4df723c7-c425-4697-947a-44d47ef3d2ce.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-1-write-your-types-dont-use-var">1.) Write your types, don’t use var.</h3>
<p>Using var hides the true types of your identifiers. Having to know every type that you pass on parameters, methods, helpers, etc., is really a good practice. It’s because we have good IDEs now that you can’t appreciate this for now, but having to code on an online compiler without that static typing and those compilation errors will make you realize to <strong>write your</strong> <strong>types explicitly</strong>. You will be exposed to types that are not usual on your code writing. Types like <code>IQueryable</code> that are often abstracted on your var keyword when you write your queries using LINQ. Of course, there is an exception dealing with anonymous types, but I hope you do get the point.</p>
<h3 id="heading-2-know-linq-the-bread-and-butter-of-c">2.) Know LINQ — The Bread and Butter of C</h3>
<p>You can’t code in C# without encountering LINQ. Whether you’re querying a collection, filtering data from a database, or transforming. You will spend a lot of time writing LINQ, and it’s beautiful, isn’t it? It’s like a chained poetry. It’s expressive. One thing I stumbled upon is this article/blog. https://steven-giesel.com/blogPost/00443661-f75b-4694-852b-175b4a10d6c4/linq-mindmap-net-10-edition He builds a LINQ Mindmap to really embed that LINQ knowledge in yourself.</p>
<h3 id="heading-3-sql-before-orm">3.) SQL before ORM</h3>
<p>Having a good understanding of SQL will make you understand your ORM better. Yes, everyone will start and jump at using <strong>Entity Framework Core</strong> simply because there are a lot of resources there and .NET dev influencers that are using it. Having a grasp on SQL will make you write queries better at LINQ + EF Core. You will understand how your ORM behaves.</p>
<h2 id="heading-4-know-your-heroes">4.) Know your heroes</h2>
<p>Know your heroes, just like the old saying, If you wish to be successful in some field, you gotta know the people that you consider successful in that field. Following successful/famous devs, like the ones who created your favorite library. Oftentimes, they have blogs and accounts on X (Twitter) you will be updated on their projects and field of study. It’s a good investment of your time considering how much technical debt you need to study in order to somehow lessen that gap to your heroes. And by technical debt, I mean the knowledge that you need to amass in order to be somehow considered decent.</p>
<h2 id="heading-5-take-an-ai-detox">5. Take an AI Detox</h2>
<p>Yes, having assisted programming is the best feeling; just by clicking a tab will trigger Co-Pilot auto suggestions on the code you are writing. Don’t push code that you barely understand. A good programmer can explain the code that he/she has written line by line.</p>
<h2 id="heading-6-know-thy-compiler">6. Know Thy Compiler</h2>
<p>This will be your edge on AI. We are now in the age of AI, although the quality of the devs is getting lower because of trading productivity for learning. But this is our time to be better. <strong>Knowing IL code is a must</strong> in this age of AI. Having that confidence that you know what your compiler is implicitly doing. There are a lot of extensions and IDEs that are offering viewers, trust me, it will be worth it.</p>
<h2 id="heading-7-skip-architecture-for-now">7. Skip Architecture (For Now)</h2>
<p>Stop arguing about architecture; there will always be a tradeoff. Skip that for now, accept that you are not a seasoned developer. Avoid worrying about architecture for now and just start building fundamentals - I don’t know why .NET devs are obsessed with architecture. As someone who is new, you just need to <strong>build your fundamentals and know your tools pretty well, like really well.</strong></p>
<h2 id="heading-8-leetcode-but-with-purpose">8. Leetcode, but With Purpose</h2>
<p>Solve LeetCode problems , If you’re not comfortable doing LeetCode problems and you argue that you would rather build a project, it means that you are not a decent C# dev. Leetcode but with purpose. You can start doing LeetCode in order to practice and build your LINQ skills. Just be comfortable writing LINQ with C#.</p>
<h2 id="heading-9-blog-it-or-lose-it">9. Blog it or Lose it</h2>
<p>I can’t stress this enough: <strong>every developer should have a digital repository for their coding career</strong>. Whether it’s a blog, a private Notion page, a YouTube channel, a GitHub repo collection, or even voice memos, it doesn’t matter. What matters is that you <strong>start recording what you learn</strong>, what you build, and how you solve things. Not all things you read will stick. You will forget it. So create that digital repository. Your future self will thank you for starting this.</p>
<h2 id="heading-10-be-honest-with-yourself-you-know-that-you-dont-know-a-lot">10. Be honest with yourself, you know that you don’t know a lot</h2>
<p>The first step in learning is accepting that you don’t know a lot.</p>
<p>Very straightforward, don’t pretend that you understand the code that your colleague wrote. You can explain why the senior wrote that snippet. <strong>Don’t run from ignorance, tackle it!</strong></p>
]]></content:encoded></item><item><title><![CDATA[How full is full when you say Full-Stack Developer?]]></title><description><![CDATA[A meditations on why should we all pursue being a specialist.]]></description><link>https://the-dev-curve-meditations.hashnode.dev/how-full-is-full-when-you-say-full-stack-developer</link><guid isPermaLink="true">https://the-dev-curve-meditations.hashnode.dev/how-full-is-full-when-you-say-full-stack-developer</guid><category><![CDATA[Programming Blogs]]></category><category><![CDATA[software development]]></category><category><![CDATA[Software Engineering]]></category><category><![CDATA[Mindset]]></category><category><![CDATA[#codenewbies]]></category><dc:creator><![CDATA[Juan Miguel Nieto]]></dc:creator><pubDate>Thu, 21 Aug 2025 04:39:59 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1755751009668/769471d3-af25-486e-b72e-c17f61c8dda2.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Now don’t mind the title of the books, I just want a visual representation of books to somehow portray on the readers how much book you need to read in <strong>order to be decent at something</strong>. The name of books there is not relevant but my point is that’s the capacity or volume of books you need to learn to be actually decent at something.</p>
<p><strong>FullStack as a Trap: A Reflection</strong></p>
<p>In my opinion being a full-stack is a trap for someone who is new on the software engineering field.</p>
<p><strong>I would rather be a junior on a specific end (front-end or back-end)</strong> rather than be a full-stack developer who works at the client side and server side but doesn’t have a deep understanding on what he / she is doing.</p>
<p>Yes, fullstack is a lucrative career. It looks great on a résumé and often comes with appealing salaries. But in my view, <strong>being a specialist will be far more rewarding in the long run</strong>.</p>
<p><strong>It healed my impostor syndrome</strong> when I just focused on back-end. Having to understand your code line by line and not prompting your way to production will surely make your confidence grow. Also by going back to fundamentals and not skimming through the hot technologies, Please.</p>
<p><strong>The Industry Problem — and the root of your impostor syndrome</strong></p>
<p>Forgive me for what I’m going to say but, I noticed that there are just people in the industry that are guilty of this. We call ourselves “fullstack,” but what we’re really doing is building on top of frameworks without truly understanding the foundations beneath them. Of course you will feel a fraud, cause you don’t know how that x library works!</p>
<p>I think this the <strong>root of impostor syndrome</strong>, atleast on my own experience. Not having to question, how did that happen? Like example when you are using a library , a back-end library by just injecting that piece of code that x feature is working. Question it, like the famous Automapper library on the .NET community how did it map your entities to your DTO? The answer is reflection in c#. I’m not saying that you should really understand it to the point you can roll your own libraries. But having a grasp on those tools will surely make you a better software craftsman.</p>
<p><strong>The Learning Problem</strong></p>
<p>How can you learn or say that you are fluent in a technology <strong>when every year the knowledge that you need to partake increments?</strong> It’s impossible to learn everything in and remain good or relevant in an industry like tech, but having a deep understanding and a good fundamentals will surely make you still relevant for 1-3 years in a particular stack. That’s why full-stack isn’t for the new ones, It’s for the much seasoned developers who already have an in-depth understanding of one area, who are already experienced on more projects.</p>
<p>So here is my take, If you are lucky enough to land a role that let’s you dedicate yourself to one end. You may escape the paradox that ensnares a lot of new developers. You might be much more closer to the stillness, on the state of stillness that you are somewhat comfortable / decent on utilizing your stack.  </p>
<p>“<strong><em>Now will you choose to learn broadly and risk knowing shallowly, or learn deeply and risk irrelevance?”</em></strong></p>
]]></content:encoded></item></channel></rss>