<?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: Karthikeyan</title>
    <description>The latest articles on DEV Community by Karthikeyan (@karthi_keyan03).</description>
    <link>https://dev.to/karthi_keyan03</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2612813%2F40e41c39-35fb-45d7-8a41-6a1d5313970d.jpeg</url>
      <title>DEV Community: Karthikeyan</title>
      <link>https://dev.to/karthi_keyan03</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/karthi_keyan03"/>
    <language>en</language>
    <item>
      <title>Pressure is a Privilege</title>
      <dc:creator>Karthikeyan</dc:creator>
      <pubDate>Mon, 31 Aug 2026 14:27:12 +0000</pubDate>
      <link>https://dev.to/karthi_keyan03/pressure-is-a-privilege-8kf</link>
      <guid>https://dev.to/karthi_keyan03/pressure-is-a-privilege-8kf</guid>
      <description>&lt;h2&gt;
  
  
  08.08.2026
&lt;/h2&gt;

&lt;p&gt;Welcome to Karthi’s blah blah… This article is about a term called &lt;strong&gt;“Pressure is a Privilege.”&lt;/strong&gt; I’ve heard this phrase used by many legends like Billie Jean King, Virat Kohli, and Novak Djokovic, and I finally understood why they say it. On 08.08.2026, I experienced the feeling of this phrase in my own life. Hey readers, come, let’s dive into that Saturday…&lt;/p&gt;

&lt;h3&gt;
  
  
  Before Pressure
&lt;/h3&gt;

&lt;p&gt;On a chill-weather morning, my day started as usual waking up late, rushing into the bus, and somehow finishing my breakfast of that weird-looking idli. I reached the office at around 10:00 AM. The first half an hour was surprisingly smooth. The machine was running automatically, no disturbance, no drama. Of course, with the machine making all those sounds, calling it “peaceful” would be a little too much, but still, the day had started pleasantly.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;And then, suddenly, a team walked in and asked us to &lt;strong&gt;STOP.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  In Pressure
&lt;/h3&gt;

&lt;p&gt;The head of the team came in with the first question: “Why is this feature still not completed? It should be running with that, right?” Then he suddenly looked at me and asked, “Why hasn’t this been done?” I just stood there like a rock — no reaction, no movement, nothing. That’s when I realized I was the only developer present from my team, which meant I had to take this responsibility on my shoulders.&lt;/p&gt;

&lt;p&gt;The requirement was simple: if a part fails at the first station, the remaining stations should not perform the operation on that part. They should simply skip it.&lt;/p&gt;

&lt;p&gt;Since my lead was absent, the manager asked me how much time I would need to complete it. It was around 11:00 AM, I said, “One hour for development and one hour for testing.”&lt;/p&gt;

&lt;h3&gt;
  
  
  Technical Handle and Struggles
&lt;/h3&gt;

&lt;p&gt;By Technically it was not hard so much the station 1 should be must happen, since the data cannot be passed from station to station , we used to store the data in data base. by checking the data of before station the we can declare the station should perform or not&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Sample Draft&lt;/span&gt;
&lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;stationResult&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;GetStationResult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;partNumber&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stationResult&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Run the next task&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Set station process completed and skip the tasks&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the logic was correct , while running the stations , I get another bug the data of station 1 itself haven't updated in the database, its an issue of &lt;em&gt;Null-coalescing operator&lt;/em&gt; (??), the real struggle is i want to reset all the stations and check with a new part and after checking with five cycles , I strongly believed everything was fine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Another Stop, Another Problem, Another Pressure
&lt;/h3&gt;

&lt;p&gt;After completing that, I went to have my lunch. When I came back and visited the next group of people, they stopped the machine again and started looking for a Software Developer.&lt;/p&gt;

&lt;p&gt;They came with another question: &lt;strong&gt;“Why haven’t we handled MES and TRACE?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I had absolutely no idea about MES or TRACE. In my mind, I was like, &lt;strong&gt;“What the hell are these, and who even needs this?”,&lt;/strong&gt; So, I asked my senior for some help and slowly understood what they were actually talking about.&lt;/p&gt;

&lt;p&gt;For those who are wondering what MES and Trace actually mean:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MES (Manufacturing Execution System):&lt;/strong&gt; MES manages and records the assembly process by capturing production information such as part details, station status, process results, and production quantities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trace Data:&lt;/strong&gt; Trace data records the detailed history of each assembled part, such as the part/serial number, component information, process parameters, test results, and timestamps. Basically, it helps us know exactly what happened to a part throughout the entire process.&lt;/p&gt;

&lt;p&gt;And then I understood — if the machine was the player, MES and TRACE were the scorecard keeping track of every move.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real Pressure
&lt;/h3&gt;

&lt;p&gt;This was the &lt;strong&gt;real pressure&lt;/strong&gt; I faced. I had no idea what exactly I should do or what the correct solution was to achieve this. But somehow, this pressure pushed me to think harder and come up with a promising solution. I asked my lead for 3 hours — including development and testing.&lt;/p&gt;

&lt;p&gt;When I started the development, there were nearly 20 people standing around me and watching me. In my mind, I was like, &lt;em&gt;“Why does it feel like I’m writing my exam paper with the entire class watching?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Initially, I created a class and a global object for it. I maintained a queue structure for passing the data. I started recording the machine start time, process time, part value, and machine end time. I also started recording the gantry start and end times, so that we could calculate the cycle time in the future.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;Queue&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Data&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Queue&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Data&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;();&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Data&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// needed properties&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The development was completed across all five stations. Now came the next part — I had to make sure both the database data upload and the MES/TRACE uploads were working properly.&lt;/p&gt;

&lt;p&gt;Thank God! In the &lt;strong&gt;very first cycle&lt;/strong&gt;, everything worked as expected. By the fifth cycle, everything was working fine, and the timing was also within the expected limit. And finally, the machine was running smoothly again.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I Learnt
&lt;/h3&gt;

&lt;p&gt;Just like,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;decision-making is an art, handling pressure is also an art.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pressure brings a great sense of responsibility and pushes you to think beyond what you normally would. So, when pressure comes your way, don’t try to run away from it. Face it, work through it, and let it push you forward. That’s when you truly discover what you are capable of.&lt;/p&gt;

&lt;p&gt;Sometimes, pressure doesn’t come to break you — it comes to show you how strong you can actually be. And maybe that’s why they say, &lt;strong&gt;“Pressure is a Privilege.”&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  No Heroics, Just a Day at Work
&lt;/h3&gt;

&lt;p&gt;I’m not here to talk about some heroic performance of mine. I just wanted to share that day with you — the things I faced, the pressure I went through, and how I managed to overcome it.&lt;/p&gt;

&lt;p&gt;Anyway, that’s all for this one. Let’s meet again in the next technical blog.&lt;/p&gt;

&lt;p&gt;Bye from &lt;strong&gt;Karthi’s blah blah…&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
    </item>
    <item>
      <title>Nobody Told Me Motors Needed Software Too</title>
      <dc:creator>Karthikeyan</dc:creator>
      <pubDate>Sun, 05 Jul 2026 17:43:30 +0000</pubDate>
      <link>https://dev.to/karthi_keyan03/nobody-told-me-motors-needed-software-too-1goh</link>
      <guid>https://dev.to/karthi_keyan03/nobody-told-me-motors-needed-software-too-1goh</guid>
      <description>&lt;h1&gt;
  
  
  Life transition from margin-left : 3px to x-axis move : 3mm
&lt;/h1&gt;

&lt;p&gt;Welcome to Karthi's Blah Blah. I'm going to share my experience of how a web developer who was stuck with Git, servers, and deployments moved into the “Automation” field and was surprised that “Motors need software too...?!” This article describes the transition I made in my career, where the world doesn’t care :)&lt;/p&gt;




&lt;h3&gt;
  
  
  What is Automation?
&lt;/h3&gt;

&lt;p&gt;Automation is the art of making machines perform tasks automatically using software, sensors, motors, and controllers. Think of it as programming, but instead of updating a screen, your code controls real-world movements and actions. In simple terms, it's where software meets hardware to make factories smarter, faster, and more efficient.&lt;/p&gt;




&lt;h3&gt;
  
  
  Day 1 in Automation
&lt;/h3&gt;

&lt;p&gt;In childhood, I used to play with a motor that I bought for my 5th standard windmill project. At that time, I didn't know that in the future I was going to work with it. While entering into automation, my first day felt like, “Wow, I'm going to work with huge machines and cutting-edge technology,” and I felt proud of myself. But when I got a laptop and saw the C# code, I was searching for where the Controller.cs file was... and then life changed.&lt;/p&gt;

&lt;p&gt;Here they used to say Gantry, movement points, motion cards — it felt like switching to another language commentary while watching IPL. When they said PLC, my mind started thinking about...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Padding&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Line-height&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Color&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;I came from localhost:4200… and landed in a factory with 4200 wires.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Technical Struggles
&lt;/h3&gt;

&lt;p&gt;Initially, It was very new for me to understand the hardware interaction with me and my C# knowledge. My C# knowledge was still useful, but the world around it had completely changed. I had a blank mindset and more questions inside me..&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;How I'm going to survive in this?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What are those motion card, cylinders, motors..&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What we are going to do inside this large rectangular building box?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In web development, I was comfortable with &lt;strong&gt;MVC&lt;/strong&gt; Architecture. Now everyone was talking about &lt;strong&gt;MVVM&lt;/strong&gt;, Prism, Threads, Motion Helpers, Axis Groups, and Real-Time Communication.&lt;/p&gt;

&lt;p&gt;As the saying goes,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can't judge a fish by its ability to climb a tree."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The biggest surprise? - There was no browser to refresh. No F12 Developer Tools. No Console.log() to save me. When my lead says it's an error , Like every web developer, I instantly opened Visual Studio and started hunting for red squiggly lines. He looked at me, laughed, and said, ""Not that error... the motor has an error!" , On that day I have realised '&lt;em&gt;Not every error has a stack trace. Some errors have a physical address&lt;/em&gt;'.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Hero's Training Montage
&lt;/h3&gt;

&lt;p&gt;Every day I learned something that wasn't even mentioned in my engineering textbooks. But slowly, &lt;strong&gt;Rome wasn't built in a day&lt;/strong&gt;. One thing this journey taught me is that industrial automation is much more than just writing C# code. It requires understanding how software, hardware, and real-time communication work together.&lt;/p&gt;

&lt;p&gt;I learned the &lt;strong&gt;MVVM architecture&lt;/strong&gt; and &lt;strong&gt;Prism&lt;/strong&gt; framework for building WPF applications, which was very different from the MVC pattern I used in web development. I also understood the importance of &lt;strong&gt;Tasks, Threads, and the Dispatcher&lt;/strong&gt; to keep the UI responsive while continuously communicating with hardware in the background.&lt;/p&gt;

&lt;p&gt;Another major learning was the concept of &lt;strong&gt;Finite State Machines (FSM)&lt;/strong&gt;. Unlike web applications, machines must always follow a defined sequence of states such as Idle, Homing, Running, and Emergency Stop to ensure safe operation.&lt;/p&gt;

&lt;p&gt;I also gained hands-on experience working with &lt;strong&gt;motion controllers, servo motors, sensors, cylinders, and industrial communication protocols like EtherCAT&lt;/strong&gt;. Interacting with hardware through vendor-provided &lt;strong&gt;DLLs&lt;/strong&gt; taught me how software can directly control physical devices.&lt;/p&gt;

&lt;p&gt;Most importantly, I learned that automation isn't just about making code work—it's about making machines work &lt;strong&gt;safely, reliably, and continuously&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Debugging
&lt;/h3&gt;

&lt;p&gt;The most important skill every developer should have is debugging. For me, it helps to identify problems quickly. But debugging becomes very difficult during asynchronous running operations because if we place a breakpoint, the whole machine freezes, which may affect the next stations too. The whole scenario of Dry Run will be like the movie “&lt;strong&gt;Maanaadu&lt;/strong&gt;” — “&lt;em&gt;He came... He shot... He died... The day repeats&lt;/em&gt;” — similarly, “&lt;em&gt;The machine goes left and right and gets stuck... debugging starts and the Dry Run repeats.&lt;/em&gt;”&lt;/p&gt;

&lt;p&gt;I also learned a painful truth:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In Web Development, bugs break screens.&lt;/p&gt;

&lt;p&gt;In Automation, bugs start making sounds.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  The Final Commit (For Now)
&lt;/h3&gt;

&lt;p&gt;Moving from web development to automation was definitely not a simple branch switch — it felt like migrating an entire project without documentation. From fixing CSS alignment issues to controlling real machine movements, every day introduced a new challenge and a new lesson.&lt;/p&gt;

&lt;p&gt;I still write bugs, I still debug, and I still wonder why something isn't working. The only difference is that earlier I refreshed the browser hoping it would work... now sometimes I restart the machine hoping it behaves.&lt;/p&gt;

&lt;p&gt;The journey is still running, the learning thread is still alive, and this commit is definitely not the final version.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>csharp</category>
      <category>mvvm</category>
      <category>wpf</category>
    </item>
  </channel>
</rss>
