<?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: Thodoris Kouleris</title>
    <description>The latest articles on DEV Community by Thodoris Kouleris (@tkouleris).</description>
    <link>https://dev.to/tkouleris</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%2F439274%2F77130249-99d6-4bb3-85a4-e52284e07552.png</url>
      <title>DEV Community: Thodoris Kouleris</title>
      <link>https://dev.to/tkouleris</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tkouleris"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Fri, 06 Mar 2026 03:30:26 +0000</pubDate>
      <link>https://dev.to/tkouleris/-21mc</link>
      <guid>https://dev.to/tkouleris/-21mc</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/sylwia-lask" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F3535771%2Fe22860d5-274b-43c9-819b-56b162e5bd5a.jpeg" alt="sylwia-lask"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/sylwia-lask/the-real-skill-in-programming-is-debugging-everything-else-is-copy-paste-i39" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;The Real Skill in Programming Is Debugging. Everything Else Is Copy-Paste&lt;/h2&gt;
      &lt;h3&gt;Sylwia Laskowska ・ Mar 5&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>discuss</category>
      <category>programming</category>
    </item>
    <item>
      <title>AI: From Imposter Syndrom to Dunning-Kruger Effect</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Sun, 22 Feb 2026 10:38:40 +0000</pubDate>
      <link>https://dev.to/tkouleris/ai-from-imposter-syndrom-to-dunning-kruger-effect-420c</link>
      <guid>https://dev.to/tkouleris/ai-from-imposter-syndrom-to-dunning-kruger-effect-420c</guid>
      <description>&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/from-imposter-syndrom-to-dunning-krugger-effect" rel="noopener noreferrer"&gt;original post&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I started writing code as a professional programmer, I believed that everyone else was writing better code than me, that they were better programmers, and that they were smarter. Maybe that was true to some degree, there will always be someone better than you, but the reality was that I was experiencing Imposter Syndrome.&lt;/p&gt;

&lt;p&gt;Imposter Syndrome is persistent self-doubt, the fear of being exposed as a fraud, and the inability to internalize success. It often drives high achievers toward burnout, and it is a condition that many people in the tech industry suffer from.&lt;/p&gt;

&lt;p&gt;Before Google, programmers could get stuck on a problem for a long time. They had to search through books, collaborate with others, and think outside the box to find solutions. This process could break a programmer, but at the same time, it built a strong foundation of knowledge and experience.&lt;/p&gt;

&lt;p&gt;When Google and the Internet arrived, the core process remained mostly the same. The difference was speed and accessibility. You could search from your computer, ask questions in forums, and chat with other programmers. Still, at the end of the day, you had to write the code yourself. Even if you copy-pasted a solution, you had to read it, understand it, and adapt it to fit your needs. That effort mattered.&lt;/p&gt;

&lt;p&gt;These processes made programmers doubt their knowledge, stay humble, and work harder to compete with others. This environment fostered Imposter Syndrome, but it also pushed programmers to improve. Today, however, Imposter Syndrome seems to be fading, replaced by the Dunning–Kruger effect.&lt;/p&gt;

&lt;p&gt;The Dunning–Kruger effect is a cognitive bias in which people with limited knowledge or competence greatly overestimate their abilities. AI tools can amplify this illusion. They can make you believe you are an expert programmer, even when writing in languages you have never used, solving problems you have never truly understood, and building applications you have never experienced developing.&lt;/p&gt;

&lt;p&gt;This lack of real effort, combined with overconfidence, risks producing junior programmers who struggle to fix bugs, read and understand code, or develop strong problem-solving skills. Experience and critical thinking are slowly replaced by blind trust in the “magic” of AI.&lt;/p&gt;

&lt;p&gt;Experienced developers may be more resilient, if they resist the temptation of overly fast and easy workflows that companies will inevitably push to keep up with competition. Otherwise, software quality will decline, bugs will multiply, and years of hard earned development practices may be lost as everyone chases the AI rabbit down the rabbit hole.&lt;/p&gt;

&lt;p&gt;Yet within this potential decline lies a glimmer of hope. When programmers and companies finally realize that using AI tools exclusively to build products, to “vibe-code” entire systems, is a factory for generating problems, they may begin to use AI the way it should be used: as a tool. A powerful one, but still just a tool, meant to support programmers, products, and companies, not replace understanding, effort, and responsibility.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>Tech Heroes #12: Grace Hopper</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Sun, 08 Feb 2026 08:15:06 +0000</pubDate>
      <link>https://dev.to/tkouleris/tech-heroes-12-grace-hopper-3b25</link>
      <guid>https://dev.to/tkouleris/tech-heroes-12-grace-hopper-3b25</guid>
      <description>&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/amazing-grace" rel="noopener noreferrer"&gt;original post&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today, we’re firing up a tribute to a woman who did more than write code.She reshaped how humans talk to machines. If you’ve ever written a line of code (if you read this article probably you have) that reads like English instead of a chaotic mess of 1 and 0, you’re standing on Grace Hopper’s shoulders.&lt;/p&gt;

&lt;p&gt;As programmers, we often take high-level languages for granted. But before Grace, programming meant fighting with hardware or crafting machine code. She challenged that reality, arguing that software should be readable, expressive, and designed for people—not just machines. In doing so, she helped turn programming from an arcane craft into a human-centered discipline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Amazing Grace
&lt;/h2&gt;

&lt;p&gt;Born in New York City in 1906, Grace Hopper was a mathematical force of nature from the very beginning. She earned her Ph.D. in Mathematics from Yale in 1934—an extraordinary achievement at a time when few people, and even fewer women, reached that level of academia.&lt;/p&gt;

&lt;p&gt;During World War II, she joined the United States Naval Reserve and was assigned to the Bureau of Ships Computation Project at Harvard. There, she became one of the very first programmers of the Harvard Mark I, one of the earliest electromechanical computers ever built.&lt;/p&gt;

&lt;p&gt;She eventually rose to the rank of Rear Admiral in the U.S. Navy and, even after officially “retiring,” was repeatedly called back to active duty—her knowledge was simply too valuable to lose. More than a pioneer, she was a living bridge between the age of room-sized machines and vacuum tubes and the dawn of modern, personal computing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Queen of Software
&lt;/h2&gt;

&lt;p&gt;In 1952, Grace developed the A-0 System, the first functional compiler. At the time, her peers told her it was impossible because "computers only did arithmetic." She proved them wrong, allowing programs to be translated from human-readable instructions into machine code.&lt;/p&gt;

&lt;p&gt;Later, she was a primary driver behind the creation of COBOL (Common Business-Oriented Language). Her philosophy was that data processing should be done in English words rather than symbols, a move that opened the world of computing to the business sector.&lt;/p&gt;

&lt;p&gt;While she didn't technically invent the term Bug, she famously popularized it. In 1947, her team found a literal moth stuck in a relay of the Harvard Mark II, causing the system to fail. She taped the moth into the logbook, noting they were "debugging" the system.&lt;/p&gt;

&lt;h2&gt;
  
  
  The most dangerous phrase in the language is, ‘We’ve always done it this way
&lt;/h2&gt;

&lt;p&gt;As developers, much of what we do today exists because she refused to accept the status quo. She believed software could be a universal tool build for people, not just mathematicians or engineers.&lt;/p&gt;

&lt;p&gt;Every time we hit compile or choose clarity over cleverness in a function name, we’re echoing Admiral Hopper’s philosophy. Her greatest contribution wasn’t just teaching machines to work faster—it was teaching them to understand us.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Code Kata #1: Bank Account</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Mon, 02 Feb 2026 03:53:22 +0000</pubDate>
      <link>https://dev.to/tkouleris/code-kata-1-bank-account-220h</link>
      <guid>https://dev.to/tkouleris/code-kata-1-bank-account-220h</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Write a class named BankAccount that implements the following public interface:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public interface BankAccount
{
    void deposit(int amount)
    void withdraw(int amount)
    void printStatement()
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Note you can do this exercise in any programming language, translate the above code as appropriate)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example statement&lt;/strong&gt;&lt;br&gt;
When you call the ‘printStatement’ method, something like the following is printed on standard output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Date       || Amount || Balance
2012-01-14 || -500   || 2500
2012-01-13 || 2000   || 3000
2012-01-10 || 1000   || 1000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This example statement shows one withdrawal on 14th January 2012, and two deposits on 13th and 10th January respectively.&lt;/p&gt;

&lt;p&gt;Notes&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You cannot change the public interface of the BankAccount&lt;/li&gt;
&lt;li&gt;We’re using ints to represent money, which in general may not be the best idea. In a real system, we would always use a datatype with guaranteed arbitrary precision, but doing so here would distract from the main purpose of the exercise.&lt;/li&gt;
&lt;li&gt;Don’t worry about matching the exact formatting of the bank statement, the important thing is to print a table that has column headings and which orders transactions by date.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/code-kata-bank-account" rel="noopener noreferrer"&gt;the solution&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
    </item>
    <item>
      <title>Data Structures #5: Stack</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Sun, 25 Jan 2026 12:00:13 +0000</pubDate>
      <link>https://dev.to/tkouleris/data-structures-5-stack-55je</link>
      <guid>https://dev.to/tkouleris/data-structures-5-stack-55je</guid>
      <description>&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/stack" rel="noopener noreferrer"&gt;original post&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Stack
&lt;/h2&gt;

&lt;p&gt;Think of a stack of clean trays in a cafeteria. When you need one, you always take the tray right off the top. You wouldn't try to pull one out from the middle or the bottom—that would be a mess! The tray that was put on the pile last is the very first one to be picked up.&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%2Fi868h89nk8kby4uc8trm.jpg" 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%2Fi868h89nk8kby4uc8trm.jpg" alt=" " width="600" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is exactly how a Stack works in programming. It follows a simple rule called LIFO, which stands for Last-In, First-Out. It’s like a "one-way" storage system where you can only add or remove things from the very top. Whether it’s hitting "Undo" on your keyboard or clicking the "Back" button on your browser, you're just grabbing the last thing you did from the top of the stack.&lt;/p&gt;

&lt;p&gt;The Stack under the hood&lt;br&gt;
In a Stack, you only need to worry about two main moves. Imagine you have a narrow container where you can only drop things in from the top.&lt;/p&gt;

&lt;p&gt;Push: This is just a fancy word for adding something to the top of the pile.&lt;br&gt;
Pop: This means removing the item that’s currently on the very top.&lt;/p&gt;

&lt;p&gt;Because you can only get to the top item, you don't have to go searching through the whole pile. It’s quick, organized, and predictable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# 1. Create an empty stack (a list)
my_stack = []

# 2. PUSH: Adding items to the top
my_stack.append("Book A")
my_stack.append("Book B")
my_stack.append("Book C")

print("Stack after pushing:", my_stack)
# Output: ['Book A', 'Book B', 'Book C'] - C is on top!

# 3. POP: Removing the item from the top
top_item = my_stack.pop()

print("Item removed:", top_item)
# Output: Book C

print("Stack now:", my_stack)
# Output: ['Book A', 'Book B']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  When it is used
&lt;/h2&gt;

&lt;p&gt;The applications of a stack are almost everywhere but we don't really see it. The most common use is in undo/redo functionality in text editors Another use is browser history when we press the back button. Even in compilers use stack. Where you think the famous "Stack Overflow" came from?&lt;/p&gt;

</description>
      <category>datastructures</category>
    </item>
    <item>
      <title>Forgotten Technologies #9: DVD</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Sun, 18 Jan 2026 12:08:14 +0000</pubDate>
      <link>https://dev.to/tkouleris/forgotten-technologies-9-dvd-4000</link>
      <guid>https://dev.to/tkouleris/forgotten-technologies-9-dvd-4000</guid>
      <description>&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/dvd" rel="noopener noreferrer"&gt;original post&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few days ago, Greece was finally blessed with access to the HBO Max platform. At last, I could legally watch the movies and TV series I’ve wanted to see for a long time. However, while I was browsing the catalog, it hit me: I used to buy movies and series on DVD and had a wonderful library. I eventually gave all my DVDs away because I no longer own a DVD player, I don't even have a disc drive in my computers anymore.&lt;/p&gt;

&lt;p&gt;The DVD was a "magic disc" that became a major trend around 1996. I distinctly remember watching a review of the DVD release for Batman Forever. It was a massive upgrade from the CD, offering significantly more storage and the ability to hold a movie in high quality. DVDs replaced VHS tapes very quickly for several reasons: the PlayStation 2 included a built-in player, PCs began offering DVD drives (though before CPUs were powerful enough to handle the stream, you needed a dedicated decoding card), and standalone players eventually became very affordable.&lt;/p&gt;

&lt;p&gt;If you are younger and weren’t there when DVDs dominated the market, it’s hard to understand just how big the trend was. Blu-ray, the successor format, never reached the same level of universal acceptance. But evolution is inevitable, and the DVD has become history, just like every other medium before it.&lt;/p&gt;

&lt;p&gt;Now, in the "age of owning nothing," we have exchanged the beauty of tangible discs for the convenience of streaming online. I enjoy the current state of things, don't get me wrong, but I often feel that we are restricted to watching only what platforms want us to see. I truly miss the "collection" aspect of the past.&lt;/p&gt;

</description>
      <category>techtalks</category>
    </item>
    <item>
      <title>Computer Science Series #3: Web Dev Challenge</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Sun, 11 Jan 2026 10:22:54 +0000</pubDate>
      <link>https://dev.to/tkouleris/computer-science-series-3-web-dev-challenge-41mf</link>
      <guid>https://dev.to/tkouleris/computer-science-series-3-web-dev-challenge-41mf</guid>
      <description>&lt;p&gt;Web Dev Challenge is a high-stakes reality show where "programming influencers" have 4 hours to build apps. It perfectly blends education with entertainment, showing how experts solve real problems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/web-dev-challenge" rel="noopener noreferrer"&gt;read more&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Laravel: Invokable Controllers</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Sun, 04 Jan 2026 10:38:00 +0000</pubDate>
      <link>https://dev.to/tkouleris/laravel-invokable-controllers-odd</link>
      <guid>https://dev.to/tkouleris/laravel-invokable-controllers-odd</guid>
      <description>&lt;p&gt;Invokable Controllers in Laravel handle a single action using the __invoke method. They simplify routing by mapping a URL directly to a class, promoting clean code and the Single Responsibility Principle.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/invokable-controller" rel="noopener noreferrer"&gt;read more&lt;/a&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
    </item>
    <item>
      <title>Forgotten Technologies #8: Google+</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Sat, 27 Dec 2025 10:55:02 +0000</pubDate>
      <link>https://dev.to/tkouleris/forgotten-technologies-8-google-3dfl</link>
      <guid>https://dev.to/tkouleris/forgotten-technologies-8-google-3dfl</guid>
      <description>&lt;p&gt;A post-mortem on Google+, the social media experiment that failed despite Google’s infinite resources. From forced YouTube integration to its 2019 shutdown, it remains a lesson in tech hubris.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/google+" rel="noopener noreferrer"&gt;read more&lt;/a&gt;&lt;/p&gt;

</description>
      <category>socialmedia</category>
    </item>
    <item>
      <title>The Chronicles of a Windows 11 Installation</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Sun, 14 Dec 2025 13:22:33 +0000</pubDate>
      <link>https://dev.to/tkouleris/the-chronicles-of-a-windows-11-installation-lgg</link>
      <guid>https://dev.to/tkouleris/the-chronicles-of-a-windows-11-installation-lgg</guid>
      <description>&lt;p&gt;Recently, I decided to switch from Windows 10 to Windows 11. It wasn’t the first time I upgraded from one version of Windows to another, but this time something felt different.&lt;/p&gt;

&lt;p&gt;I downloaded the ISO directly from Microsoft and...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/the-chronicles-of-a-windows-11-installation" rel="noopener noreferrer"&gt;read more&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Computer Science Series #2: The IT Crowd</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Sun, 07 Dec 2025 10:31:38 +0000</pubDate>
      <link>https://dev.to/tkouleris/computer-science-series-2-the-it-crowd-bhd</link>
      <guid>https://dev.to/tkouleris/computer-science-series-2-the-it-crowd-bhd</guid>
      <description>&lt;p&gt;A quirky British sitcom about two misfit IT guys and their tech-clueless manager, trapped in a chaotic office basement where every small problem spirals into hilarious disaster.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/the-it-crowd" rel="noopener noreferrer"&gt;read more&lt;/a&gt;&lt;/p&gt;

</description>
      <category>weeklyretro</category>
    </item>
    <item>
      <title>Computer Science Series #1: Halt and Catch Fire</title>
      <dc:creator>Thodoris Kouleris</dc:creator>
      <pubDate>Sun, 30 Nov 2025 09:33:13 +0000</pubDate>
      <link>https://dev.to/tkouleris/computer-science-series-1-halt-and-catch-fire-2hn8</link>
      <guid>https://dev.to/tkouleris/computer-science-series-1-halt-and-catch-fire-2hn8</guid>
      <description>&lt;p&gt;Halt and Catch FireHalt and Catch Fire is one of those series that never blew up when it aired, but honestly deserved way more attention. It’s set in the ’80s and early ’90s, right in the middle of the personal-computing boom, and follows a small...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tkouleris.eu/blog/halt-and-catch-fire" rel="noopener noreferrer"&gt;read more&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>womenintech</category>
    </item>
  </channel>
</rss>
