<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Trần Hoàng Long</title>
    <description>The latest articles on DEV Community by Trần Hoàng Long (@produde).</description>
    <link>https://dev.to/produde</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2629071%2Fea2d8cd1-694d-45ec-b675-80d5310c7f94.jpg</url>
      <title>DEV Community: Trần Hoàng Long</title>
      <link>https://dev.to/produde</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/produde"/>
    <language>en</language>
    <item>
      <title>High Level Judge Prompting Visualized</title>
      <dc:creator>Trần Hoàng Long</dc:creator>
      <pubDate>Sun, 02 Feb 2025 14:20:27 +0000</pubDate>
      <link>https://dev.to/produde/high-level-judge-prompting-visualized-3ikn</link>
      <guid>https://dev.to/produde/high-level-judge-prompting-visualized-3ikn</guid>
      <description>&lt;p&gt;Hi, if you’re new here, I’m &lt;a href="https://github.com/produdez" rel="noopener noreferrer"&gt;Produdez&lt;/a&gt;, I built a simple llm judge lately to learn more about prompt engineering and the evaluation process. Allow me to share the process from a high level perspective.&lt;/p&gt;

&lt;p&gt;Let's go through the process of making an LLM judge, with some simple examples and illustrations.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A judge is an llm bot that output include some form of binary output like (PASS / FAIL) so that automated evaluation of metric can be calculated.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. The Brain Storm
&lt;/h2&gt;

&lt;p&gt;We would start with an initial idea, eg: "judge a valid question", then, we would carve out our initial &lt;br&gt;
Requirements, such as: question must have "?"&lt;br&gt;
And brainstorm some data samples from that requirement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F007b66dkhpr21lbttisb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F007b66dkhpr21lbttisb.png" alt="Image description" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then what if the data sample looks ... unsure. &lt;br&gt;
You likely encounter cases in this process of brain storming that require you to make a decision.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do we ignore this case and make it FAIL&lt;/li&gt;
&lt;li&gt;Or do we validate it and update our requirements rule set.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkwk1h6yawuny826w2bih.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkwk1h6yawuny826w2bih.png" alt="Image description" width="800" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;New "ambiguous sample" means potential new/updated requirement&lt;/p&gt;

&lt;p&gt;This create a brainstorming loop of constantly coming up with new samples from your ideas/requirement and have your requirements refined to match the emerging data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fji7k4pxzuedvhtn3t5ow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fji7k4pxzuedvhtn3t5ow.png" alt="Image description" width="800" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After that, we would end up with a list of initial requirements, call it Requirements V1, and Sample Data V1&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Prompt Preparation / Init Prompting
&lt;/h2&gt;

&lt;p&gt;So now we have a list of "rules" for our judge and the data that should represent those rules.&lt;br&gt;
What I would do now is crafting a Prompt V1 from our requirements. Just a very simple, baseline prompt that adhere to some of the rules. And for the dataset, I would clean it up, format properly into Dataset V1 to later be used in the prompt iteration pipeline&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwis9falccm72frfld4mv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwis9falccm72frfld4mv.png" alt="Image description" width="800" height="709"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An example starting prompt here for our example could be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SysPrompt: You'll be given a sentence, is it a question? Make sure it has "?"
Message: Sentence: ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;You can see that I did not try to pack all the requirements we came up with into the prompt. Cause right now that's unnecessary, we'll be iterating on it later anyways, this is just a starting point.&lt;/em&gt;&lt;br&gt;
The more cumbersome thing for the engineer to prepare is the Evaluation System and the Iteration &lt;/p&gt;

&lt;p&gt;Pipeline itself, this is so that we can easily:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Try out our prompt&lt;/li&gt;
&lt;li&gt;Run on all tests, get result&lt;/li&gt;
&lt;li&gt;Does analysis and reasoning on fail result&lt;/li&gt;
&lt;li&gt;Improve dataset or prompt or both (among other things)&lt;/li&gt;
&lt;li&gt;(Repeat)
Which is exactly our next step&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  3. Prompt Iterating
&lt;/h2&gt;

&lt;p&gt;Here's a glimpse of the pipeline&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsz127sfksvtzq7ktu055.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsz127sfksvtzq7ktu055.png" alt="Image description" width="800" height="709"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this step, it might be helpful to mention this. Some of you would wonder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Why build this complex pipeline when we can use Anthropic Workbench?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To that the simple answer is "Scope", or "Scale".&lt;/p&gt;

&lt;p&gt;It might be easy for you as a prompter to judge a result of a summarization bot you build and quickly iterate, but what if there are more requirements than a quick glance could capture? What if there are more test cases than you can read? What if the prompt has to evolve overtime growing with your company's interest while adhering to the same requirements?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;These problems at scale are ones that a single work bench can not help capture. Hence this pipeline of automated evaluation and update.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, let's go through the thought process behind the pipeline using our "is question" example.&lt;/p&gt;

&lt;p&gt;Here's the ideal progress&lt;/p&gt;

&lt;p&gt;Using the same dataset, you keep getting better result each new prompt, aiming for the illusive 100% (or similar 98, 95)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F30q9bu2fuk20nlqe40lj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F30q9bu2fuk20nlqe40lj.png" alt="Image description" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But there's reasons this is not the full picture of the process:&lt;br&gt;
Your dataset is small, they do not fully represent the requirements of the task yet&lt;br&gt;
Your requirement might not be fully concrete yet, you haven't added all the rules, or haven't thought of enough&lt;br&gt;
There are edge cases yet to be address, this means more examples and more rules&lt;br&gt;
OR simply put, your dataset and rule is only V1. It's incomplete&lt;/p&gt;

&lt;p&gt;There's no doubt in this process that eventually new data samples would emerge, either from your new sparks of idea, edge cases or simply contradiction in the initial setup. And with new data means modification of requirements, which could mean invalidation of many prompts that you currently have.&lt;/p&gt;

&lt;p&gt;The example below shows &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;some new samples that comes up during iteration&lt;/li&gt;
&lt;li&gt;and force a change to a requirement, making the prompt V3 very hard to be iterated on &lt;/li&gt;
&lt;li&gt;So if you can't easily edit a prompt, what do you do?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffapud5y2m3jyzyyer5ba.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffapud5y2m3jyzyyer5ba.png" alt="Image description" width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Cause your current prompt V3, they're optimized for the current requirements, but as new ones are added/changed. You have to adapt them to the new rules.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  How to iterate when rules change?
&lt;/h3&gt;

&lt;p&gt;So you spent your WHOLE day prompting and prompting away then you realize the requirements need and update, and you panik? What to do&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftbhd8go4gqhaleoot5fq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftbhd8go4gqhaleoot5fq.png" alt="Image description" width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fear not, cause here's where you prompting brain and ingenuity comes to play. Remember all those prompts you crafted? Don't just throw them away.&lt;br&gt;
There's something I like to call "Core Logic" that is the main essence of your prompt. Instead of looking at the walls of text that you created, find the core and compare it to the new requirements.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If there's good logic that's not invalidated, extract that part out and keep it&lt;/li&gt;
&lt;li&gt;If not much logic is affected, maybe you can get away with using the whole prompt again&lt;/li&gt;
&lt;li&gt;If not, well, back to step 2 you go with a new requirement and prompt all together. But carry the core invalidated logic as something "not" to do instead.
Here's how it looks below&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmiqztdti98b2lztaxlh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmiqztdti98b2lztaxlh.png" alt="Image description" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would argue this is also personal taste, but I find this the most organized way that one can proceed without invalidating their own work. You extract the useful parts of your best performer and continue.&lt;br&gt;
But notice that sometimes the optimized version of a prompt like V3 contains a lot of FLUFF and might not be the best target for base logic extraction, maybe a more simple and purer one could be the go to, maybe your V2 or even V1.&lt;br&gt;
Of course, the new prompt V4 is very pure and basic, it would not perform well, but with the core logic valid, you at least know that this is something of a baseline that you could use to iterate on.&lt;br&gt;
That's how you iterate.&lt;/p&gt;

&lt;h3&gt;
  
  
  So to recap section 3.
&lt;/h3&gt;

&lt;p&gt;When prompt iteration, when you don't have to update your dataset, you just prompt engineer.&lt;br&gt;
But, when the DS update, you need to utilize the core knowledge of your prompt to reconstruct it for the new requirement.&lt;br&gt;
This "core" is honestly very tricky as I have a tendency to over complicate a prompt very quick and loose sight of what are the main parts of it. But i believe that if we conduct our experiment disciplined. Keeping track of what the prompt "DO", either via note, or structure, ... it would help very much as the prompt and the complexity of the project requires us to not only patch the prompt but even rewrite it.&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;The end. Hope you had a great read. Leave a like and comment !!&lt;/p&gt;

&lt;p&gt;Written by &lt;a href="https://github.com/produdez" rel="noopener noreferrer"&gt;Produde&lt;/a&gt; 👨‍💻&lt;/p&gt;

&lt;p&gt;Find me on: &lt;a href="https://www.linkedin.com/in/produdez" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; 💼 | &lt;a href="https://twitter.com/produdez" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; 🐦 | &lt;a href="https://www.youtube.com/@long.produde" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; 🎥 | &lt;a href="https://ko-fi.com/F1F6184XUR" rel="noopener noreferrer"&gt;Buy me a coffee ☕&lt;/a&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>ai</category>
      <category>promptengineer</category>
      <category>promptevaluation</category>
    </item>
    <item>
      <title>You Should Use Git Switch 🛠️</title>
      <dc:creator>Trần Hoàng Long</dc:creator>
      <pubDate>Mon, 30 Dec 2024 07:58:51 +0000</pubDate>
      <link>https://dev.to/produde/you-should-use-git-switch-oif</link>
      <guid>https://dev.to/produde/you-should-use-git-switch-oif</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I'm trying out short blog versions for smaller topics - I hope you find it insightful! ✨&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you're working with branches in Git, you should use &lt;code&gt;git switch&lt;/code&gt;. It's a newer, safer command specifically designed for branch operations that was introduced in Git 2.23 to reduce confusion and prevent mistakes. But wait - why am I telling you to use &lt;code&gt;git checkout&lt;/code&gt; then? Let me explain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Syntax Overview 📝
&lt;/h2&gt;

&lt;p&gt;Let's look at both commands first:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git switch&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Switch to existing branch&lt;/span&gt;
git switch feature-branch

&lt;span class="c"&gt;# Create and switch to new branch&lt;/span&gt;
git switch &lt;span class="nt"&gt;-c&lt;/span&gt; new-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;git checkout&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Switch to existing branch&lt;/span&gt;
git checkout feature-branch

&lt;span class="c"&gt;# Create and switch to new branch&lt;/span&gt;
git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; new-feature

&lt;span class="c"&gt;# Restore file to last commit&lt;/span&gt;
git checkout &lt;span class="nt"&gt;--&lt;/span&gt; file.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Main Difference 🔍
&lt;/h2&gt;

&lt;p&gt;Here's the key thing - &lt;code&gt;git checkout&lt;/code&gt; is like a Swiss Army knife 🔪. It can switch branches AND restore files. Meanwhile, &lt;code&gt;git switch&lt;/code&gt; only does one thing: branch operations. This specialization is exactly what makes &lt;code&gt;git switch&lt;/code&gt; safer for branching, but also what makes &lt;code&gt;git checkout&lt;/code&gt; more powerful overall.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to Use Each Command ⚡️
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Use git switch when: 🌿
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  You're working with branches (creating, switching)&lt;/li&gt;
&lt;li&gt;  You want clear, unambiguous operations&lt;/li&gt;
&lt;li&gt;  You're using Git 2.23 or newer&lt;/li&gt;
&lt;li&gt;  You want to play it safe&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Use git checkout when: 🚀
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  You need to restore files to their last committed state&lt;/li&gt;
&lt;li&gt;  You want to check out specific commits (entering detached HEAD state)&lt;/li&gt;
&lt;li&gt;  You're working with older Git versions&lt;/li&gt;
&lt;li&gt;  You need its versatile functionality for advanced operations&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;While &lt;code&gt;git switch&lt;/code&gt; is safer for branch operations, &lt;code&gt;git checkout&lt;/code&gt; remains essential due to its versatility. Understanding both commands and their appropriate use cases will make you a more effective Git user.&lt;/p&gt;




&lt;p&gt;Written by &lt;a href="https://github.com/produdez" rel="noopener noreferrer"&gt;Produde&lt;/a&gt; 👨‍💻&lt;/p&gt;

&lt;p&gt;Find me on: &lt;a href="https://www.linkedin.com/in/produdez" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; 💼 | &lt;a href="https://twitter.com/produdez" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; 🐦 | &lt;a href="https://www.youtube.com/@long.produde" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; 🎥 | &lt;a href="https://ko-fi.com/F1F6184XUR" rel="noopener noreferrer"&gt;Buy me a coffee ☕&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Welcome to My Corner of the Internet! 🏡</title>
      <dc:creator>Trần Hoàng Long</dc:creator>
      <pubDate>Sun, 29 Dec 2024 10:59:17 +0000</pubDate>
      <link>https://dev.to/produde/welcome-to-my-corner-of-the-internet-4fdk</link>
      <guid>https://dev.to/produde/welcome-to-my-corner-of-the-internet-4fdk</guid>
      <description>&lt;p&gt;Hey there! 👋 I'm Trần Hoàng Long, but you can call me Produde. Welcome to my little space on the internet where I share bits and pieces of my life, thoughts, and work!&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Am I? 🤔
&lt;/h2&gt;

&lt;p&gt;I'm a developer who loves building things for the web, but that's just one part of me! I'm also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A curious mind always excited to learn new things 🧠&lt;/li&gt;
&lt;li&gt;  Someone who enjoys documenting their journey 📝&lt;/li&gt;
&lt;li&gt;  A person who believes in sharing knowledge and experiences 🌱&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I Write About 📚
&lt;/h2&gt;

&lt;p&gt;This blog is my digital garden where I plant various seeds of thoughts about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Life observations and personal growth 🌟&lt;/li&gt;
&lt;li&gt;  Technical adventures and coding challenges 💻&lt;/li&gt;
&lt;li&gt;  Book insights and learning notes 📖&lt;/li&gt;
&lt;li&gt;  Random musings and creative ideas ✨&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Bit About My Tech Stack 🛠️
&lt;/h2&gt;

&lt;p&gt;When it comes to the technical side, here's what I work with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Frontend&lt;/strong&gt;: Building beautiful user experiences with Svelte and Vue.js 🎨. Svelte 5.0 is my new favorite framework 💪, I'm a total noob right now but learning fast 🚀.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Backend&lt;/strong&gt;: Crafting robust systems with Laravel and its awesome ecosystem 🏗️. I did work a lot with python but not right now 😅 for my current project.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Databases&lt;/strong&gt;: Making data work smarter, not harder 💾, with ML and LLM if possible. I'm big fan of MongoDB and PostgreSQL.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Let's Connect! 🤝
&lt;/h2&gt;

&lt;p&gt;This space is meant to be a cozy corner where I share my journey - both in tech and life. Whether you're here to learn, share, or just browse around, I hope you'll find something interesting!&lt;/p&gt;

&lt;p&gt;You can find me across the web:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  🐙 GitHub: &lt;a href="https://github.com/produdez" rel="noopener noreferrer"&gt;produdez&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  💼 LinkedIn: &lt;a href="https://www.linkedin.com/in/produdez" rel="noopener noreferrer"&gt;produdez&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  🐦 Twitter: &lt;a href="https://twitter.com/produdez" rel="noopener noreferrer"&gt;produdez&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  ✍️ Medium: &lt;a href="https://medium.com/@produde" rel="noopener noreferrer"&gt;@produde&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  📧 Substack: &lt;a href="https://produde.substack.com/" rel="noopener noreferrer"&gt;produde.substack.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to explore my posts, thoughts, and projects. Maybe you'll find something that resonates with you or sparks your curiosity!&lt;/p&gt;

&lt;p&gt;Welcome aboard this journey of continuous learning and sharing! 🚀✨&lt;/p&gt;

&lt;p&gt;Remember: Life is more fun when we learn and grow together! 🌈&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
