<?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: Rus Kuzmin</title>
    <description>The latest articles on DEV Community by Rus Kuzmin (@goldennoodles).</description>
    <link>https://dev.to/goldennoodles</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%2F412427%2F803974ee-038b-43e2-96f4-810f6e7ddae6.jpeg</url>
      <title>DEV Community: Rus Kuzmin</title>
      <link>https://dev.to/goldennoodles</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/goldennoodles"/>
    <language>en</language>
    <item>
      <title>Meetings – The Real Boss Fight</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Sat, 14 Jun 2025 15:25:49 +0000</pubDate>
      <link>https://dev.to/goldennoodles/meetings-the-real-boss-fight-681</link>
      <guid>https://dev.to/goldennoodles/meetings-the-real-boss-fight-681</guid>
      <description>&lt;p&gt;If programming is about solving problems, then meetings are about talking about solving problems. Or, if we’re being honest, sometimes just talking full stop (&lt;em&gt;some people love the sound of their own voices&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Don’t get me wrong...  some meetings are genuinely useful. Sprint planning, architecture chats, roadmap sessions that actually go somewhere. But let’s face it: not all meetings are cut from the same cloth. Some are just glorified calendar clutter.&lt;/p&gt;

&lt;h2&gt;
  
  
  "This could've been an email"
&lt;/h2&gt;

&lt;p&gt;If I had a pound for every time I’ve heard that (&lt;em&gt;or thought it silently while slowly dying inside&lt;/em&gt;) I’d probably have enough to retire. Or at the very least, a fancy coffee with some oat milk nonsense (&lt;em&gt;Sorry! I just prefer lots of black coffee but that's just me&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;You log onto a 15 minute Teams call with ten other people. No one’s quite sure why they’re there. Someone shares the wrong screen, someone else forgets they’re on mute, and that one poor soul keeps dropping in and out like it’s a wifi themed game of hide and seek.&lt;/p&gt;

&lt;p&gt;You leave more confused than when you joined. Meanwhile, the jira ticket you were actually supposed to be working on? Still staring back at you, judging.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stand up that never quite stands up
&lt;/h2&gt;

&lt;p&gt;Daily stand ups are meant to be quick and snappy – “What did you do yesterday, what are you doing today, anything blocking you?” Sorted.&lt;/p&gt;

&lt;p&gt;Instead, you often get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A developer giving a full play by play of their entire Git history.&lt;/li&gt;
&lt;li&gt;A line manager asking questions of which they should know the answers to.&lt;/li&gt;
&lt;li&gt;A ten minute debate on whether the ticket title should say "fix" or "refactor".&lt;/li&gt;
&lt;li&gt;Don't even get me started on PO questions...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And suddenly, a 15 minute check in turns into a 1 hour energy drain. It’s still morning, but you’re already emotionally clocked off.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meetings named like boss fights
&lt;/h2&gt;

&lt;p&gt;Alright, I’m not completely anti meeting. Some are genuinely great.&lt;/p&gt;

&lt;p&gt;The good ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Help you untangle gnarly bugs with fresh eyes.&lt;/li&gt;
&lt;li&gt;Leave you feeling more clear headed than confused.&lt;/li&gt;
&lt;li&gt;Give you insight into what you've missed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A 15 minute focused chat can easily save two hours of typing “any updates on this?”.&lt;/p&gt;

&lt;p&gt;Deep dive architecture meetings? Lovely, as long as there’s some structure and not just yap, yap, yap.&lt;/p&gt;

&lt;h2&gt;
  
  
  But isn’t communication important?
&lt;/h2&gt;

&lt;p&gt;Of course it is. In fact, I’d argue communication is half the job. Writing clean, clever code is lovely. But making sure others understand it is a whole other skill set (&lt;em&gt;read my other posts hehe&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Still, if we’re in five meetings a day, wedging in bits of coding between them like some sort of productivity Tetris, something’s clearly gone wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Am I wrong?
&lt;/h2&gt;

&lt;p&gt;Meh, this is all just my experience, not sure if you'd feel the same but some questions for you;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What’s the most pointless meeting you’ve ever sat through?&lt;/li&gt;
&lt;li&gt;How do you keep team collaboration alive without drowning in calls?&lt;/li&gt;
&lt;li&gt;Should devs have the legal right to auto decline Friday afternoon meetings? (I’ll draft the petition lol)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm tired, and have been working over the weekend,&lt;/p&gt;

&lt;p&gt;Still no gin,&lt;br&gt;
Rus&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>programming</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>So You Want to Be a Senior Engineer...</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Thu, 12 Jun 2025 18:33:21 +0000</pubDate>
      <link>https://dev.to/goldennoodles/so-you-want-to-be-a-senior-engineer-2jl3</link>
      <guid>https://dev.to/goldennoodles/so-you-want-to-be-a-senior-engineer-2jl3</guid>
      <description>&lt;p&gt;Ah yes, the elusive title: Senior Software Engineer. Sounds fancy, doesn’t it? Makes your CV look impressive, probably gets you a bit more attention on LinkedIn, and maybe even lets you escape the odd stand up meeting unscathed. But let’s get one thing straight... being “senior” isn’t just about how many years you’ve been bashing keys or the number of PR's you approve.&lt;/p&gt;

&lt;p&gt;No, it’s a whole different game.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 10x Nonsense
&lt;/h2&gt;

&lt;p&gt;You’ve heard the legend the “10x engineer” who does the work of ten mere mortals, drinks black coffee by the litre (&lt;em&gt;me haha)&lt;/em&gt;, and churns out production ready code faster than the rest of us can open our laptops. Sounds cool, right? Shame it’s mostly nonsense.&lt;/p&gt;

&lt;p&gt;Being senior isn’t about typing faster or writing smarter one liners. It’s about thinking first. It’s about building things that make sense, not just things that work. Sometimes, it’s about knowing when not to build anything at all &lt;em&gt;&lt;strong&gt;and when to push back&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Yes, really... Sometimes the most senior move is saying, “Let’s not do this.” And then defending that decision in a room full of people who very much want to do it differently... &lt;em&gt;like your PO or architect&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Welcome to Your New Side Job: Therapist
&lt;/h2&gt;

&lt;p&gt;Once you hit the senior label, you’re no longer just a dev, you’re unofficially promoted to part time team therapist.&lt;/p&gt;

&lt;p&gt;Junior dev’s stuck on a problem and quietly spiralling? PO stressed because a deadline’s slipping? QA pinging you with a blocker five minutes before Friday drinks?&lt;/p&gt;

&lt;p&gt;Yep. That’s your problem now.&lt;/p&gt;

&lt;p&gt;Your job includes keeping the team afloat, not just technically, but emotionally. It’s about guiding without patronising. It’s code reviews with tact, not condescension. Being gentle but not too gentle. Basically, don’t be that person... &lt;em&gt;you know the one.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Some Days You Architect, Some Days You Mop
&lt;/h2&gt;

&lt;p&gt;People think senior engineers draw diagrams, pick frameworks, and make smart sounding decisions.&lt;/p&gt;

&lt;p&gt;Which is true… on some days.&lt;/p&gt;

&lt;p&gt;On other days? You’re untangling ancient code that breaks if you so much as sneeze near it. You’re fixing “temporary” solutions that somehow made it to production three years ago. You’re muttering things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Who approved this?”&lt;/li&gt;
&lt;li&gt;“Why is this still running?”&lt;/li&gt;
&lt;li&gt;“This makes absolutely no sense...”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s not all clean design and scalable microservices. Sometimes, it’s just holding things together with duct tape and prayers... until you figure out  how to make it better, readable... understandable... &lt;em&gt;manageable&lt;/em&gt;....&lt;/p&gt;

&lt;h2&gt;
  
  
  You're Now The Shit Barer
&lt;/h2&gt;

&lt;p&gt;Now here’s the bit they really don’t tell you about: you’re the team’s umbrella.&lt;/p&gt;

&lt;p&gt;You see, higher ups love a roadmap. They love a KPI. A slide deck. A good ol’ fashioned “Can we ship this in a sprint?” conversation.&lt;/p&gt;

&lt;p&gt;Your job, as senior, is often to absorb the chaos raining down from above so your team doesn’t get drenched. You smile and nod in the meeting. You push back, gently. You translate nonsense into something your team can actually act on... or, in some heroic moments, make the nonsense disappear altogether.&lt;/p&gt;

&lt;p&gt;You’re the reason your junior doesn’t have to hear, “We need this by Friday or the whole quarter’s ruined.”&lt;br&gt;
You’re the reason the team isn’t stress chugging Red Bull at 9pm.&lt;/p&gt;

&lt;p&gt;You take the hit. You shield the mood. You filter the madness.&lt;/p&gt;

&lt;p&gt;And no, there’s no badge for this. Just another Slack DM at 6pm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Senior DON'T Know Everything
&lt;/h2&gt;

&lt;p&gt;Let’s clear this up: senior engineers get it wrong. All the time.&lt;/p&gt;

&lt;p&gt;The difference is, when we mess up, we (&lt;em&gt;hopefully&lt;/em&gt;) admit it, fix it, and help everyone learn something along the way. You’re not expected to be perfect — just honest, thoughtful, and reliable when it matters.&lt;/p&gt;

&lt;p&gt;No one wants to work with the “senior” dev who never listens, never explains, and never helps. &lt;em&gt;&lt;strong&gt;Do better, be better...&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts (Before Another Calendar Invite Drops In)
&lt;/h2&gt;

&lt;p&gt;If you’re aiming for the senior title for the pay rise or the shiny job title... fair enough. Just know what you’re walking into.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Less code. More people. Less control. More responsibility.&lt;/li&gt;
&lt;li&gt; More impact. More teaching. More chances to shape something real.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With that said... still want to be a senior engineer?&lt;/p&gt;

&lt;p&gt;Let me know... Or don’t. I’ll be in back to back meetings all day anyway.&lt;/p&gt;

&lt;p&gt;Still no gin... but some wine,&lt;/p&gt;

&lt;p&gt;Rus&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>programming</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Java Bytecode Is Just Magic, Right?</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Tue, 27 May 2025 11:50:27 +0000</pubDate>
      <link>https://dev.to/goldennoodles/java-bytecode-is-just-magic-right-48ee</link>
      <guid>https://dev.to/goldennoodles/java-bytecode-is-just-magic-right-48ee</guid>
      <description>&lt;p&gt;Let’s talk about something that makes beginners either squint at the screen in confusion or pretend it doesn’t exist (&lt;em&gt;usually the latter&lt;/em&gt;) — Java bytecode.&lt;/p&gt;

&lt;p&gt;We’ve all heard it.. “Java runs everywhere!” and “The JVM handles it for you!” That’s cute. But what does it actually mean? What is this "bytecode" thing that keeps popping up like some mystical middleman between your beautifully compiled HelloWorld.java and the machine actually doing anything?&lt;/p&gt;

&lt;p&gt;Let’s break it down.&lt;/p&gt;

&lt;h2&gt;
  
  
  Write Once, Cry Everywhere
&lt;/h2&gt;

&lt;p&gt;So, you wrote your Java programme. You clicked "Run" or mashed together some &lt;code&gt;javac&lt;/code&gt; commands, and it compiled just fine (&lt;em&gt;after the fourth typo ha!&lt;/em&gt;). But what did the compiler actually do?&lt;/p&gt;

&lt;p&gt;It didn’t translate your code into something your operating system understands directly. Instead, it produced Java bytecode, which is like a weird hybrid language that’s not quite machine code, and not quite human-friendly either (&lt;em&gt;not human friendly at all imho&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Bytecode is like Java’s own private dialect. Only the JVM speaks it. And the JVM? It's everywhere — from your posh laptop to some fridge in a smart kitchen that probably shouldn’t be running Java, but is...&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet the Middleman: The JVM
&lt;/h2&gt;

&lt;p&gt;Bytecode is universal. Machine code is not. That’s why Java gets to brag about being cross-platform.&lt;/p&gt;

&lt;p&gt;Here’s how it works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You write some code.&lt;/li&gt;
&lt;li&gt;You compile it into .class files.&lt;/li&gt;
&lt;li&gt;You give it to the JVM.&lt;/li&gt;
&lt;li&gt;The JVM interprets or &lt;em&gt;just-in-time&lt;/em&gt; compiles the bytecode into native machine instructions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So yes, Java doesn’t "run" on your machine. Java bytecode runs inside the JVM, and the JVM runs on your machine. It’s like your code is staying at a hotel and the JVM is room service.&lt;/p&gt;

&lt;h2&gt;
  
  
  But Why Bytecode Though?
&lt;/h2&gt;

&lt;p&gt;Because you get flexibility, portability and security.&lt;/p&gt;

&lt;p&gt;Bytecode isn’t random gibberish. It’s a set of instructions that follow the JVM specification. Think of it like LEGO.&lt;/p&gt;

&lt;p&gt;Well-defined blocks that can be assembled on any compatible baseplate (&lt;em&gt;aka.. any JVM&lt;/em&gt;), regardless of what hardware you’re using.&lt;/p&gt;

&lt;p&gt;Also, bytecode opens the door to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code optimisation by the JVM (which can make your Java app faster after it’s already running).&lt;/li&gt;
&lt;li&gt;Language interoperability (Kotlin, Scala, Groovy, etc.).&lt;/li&gt;
&lt;li&gt;Handy tools like javap, which lets you peek under the hood (&lt;em&gt;and regret everything&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  You Can Read It… If You Dare
&lt;/h2&gt;

&lt;p&gt;Feeling brave? Try this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;javac HelloWorld.java
javap -c HelloWorld
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll see a stack-based language that looks like a combination of Morse code and mild panic. Stuff like &lt;code&gt;aload_0&lt;/code&gt;, &lt;code&gt;invokevirtual&lt;/code&gt;, and &lt;code&gt;return&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Java isn’t just about classes, objects, and never ending getter/setter debates (&lt;em&gt;sorry&lt;/em&gt;)... It’s also about stacks, constant pools, and instructions that feel suspiciously like "You're a wizard Harry".&lt;/p&gt;

&lt;h2&gt;
  
  
  Bytecode ≠ Bad
&lt;/h2&gt;

&lt;p&gt;Don’t be scared of it. Bytecode is just the grown up version of your Java source code. It’s put on a suit, checked into the JVM, and started doing real work. And you don’t have to read it. But if you do, you’ll start to appreciate what’s really happening behind the scenes...&lt;/p&gt;

&lt;p&gt;As behind all that high-level “write once, run anywhere” magic is a remarkably well thought out system that trades readability for serious power.. which works.&lt;/p&gt;

&lt;p&gt;With all that said a few points I'd love to discuss:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have you ever looked at bytecode? Did you survive?&lt;/li&gt;
&lt;li&gt;What’s your take? Should beginners learn it early, or save it for when they’ve suffered enough, or should you even learn it?&lt;/li&gt;
&lt;li&gt;Ever tried writing bytecode directly? (Please say no...)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Still no gin,&lt;/p&gt;

&lt;p&gt;Rus&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>discuss</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Memory Optimization in Java – Or, How to Stop Leaking Your Sanity</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Tue, 20 May 2025 19:04:34 +0000</pubDate>
      <link>https://dev.to/goldennoodles/memory-optimization-in-java-or-how-to-stop-leaking-your-sanity-424k</link>
      <guid>https://dev.to/goldennoodles/memory-optimization-in-java-or-how-to-stop-leaking-your-sanity-424k</guid>
      <description>&lt;p&gt;Let's start with the obvious, Java is great. It’s got a garbage collector, it keeps your hands &lt;em&gt;mostly&lt;/em&gt; clean of manual memory management, and it’ll let you write code that just works. Until it doesn’t... Until that sweet little app of yours starts slowing down like it’s stuck in mud and your grafana memory usage chart looks like it’s climbing Everest with no plans to come back.&lt;/p&gt;

&lt;p&gt;So yes... Java handles memory for you. But if you don’t understand what it’s doing behind the scenes, it’s only a matter of time before your app becomes jabba the hutt.&lt;/p&gt;

&lt;p&gt;Let’s talk about how not to let that happen.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Garbage Collector Is Not Your Maid
&lt;/h2&gt;

&lt;p&gt;Java's garbage collector is fantastic. It takes care of unused objects so you don’t have to manually &lt;code&gt;free()&lt;/code&gt; them like in C. But here’s the catch -  the garbage collector only collects what it knows is garbage (&lt;em&gt;shocker&lt;/em&gt;).  If you're still holding references to unused objects even accidentally... It won’t touch them.&lt;/p&gt;

&lt;p&gt;This is how memory leaks happen in Java.&lt;/p&gt;

&lt;p&gt;Example?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Caching too aggressively.&lt;/li&gt;
&lt;li&gt;Static fields that accumulate data over time.&lt;/li&gt;
&lt;li&gt;Listeners that never get removed.&lt;/li&gt;
&lt;li&gt;Sessions that never end.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Garbage Collection isn't magic. &lt;strong&gt;It's bookkeeping&lt;/strong&gt;. If your bookkeeping is bad, your memory goes missing (&lt;em&gt;I wish I came up with that&lt;/em&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Be Wary of Collections
&lt;/h2&gt;

&lt;p&gt;The humble &lt;code&gt;List&lt;/code&gt;or &lt;code&gt;Map&lt;/code&gt;is often the first suspect when memory issues arise. Why you ask? Because we love shoving things in them and then forgetting about them.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Growing but not shrinking...&lt;/em&gt; Collections grow automatically, but they don’t shrink unless you ask them to.&lt;/p&gt;

&lt;p&gt;Unbounded queues or caches? If you’re putting things in and never evicting them, guess what? That’s not a cache. That’s hoarding.&lt;/p&gt;

&lt;p&gt;Tip: Use &lt;code&gt;WeakHashMap&lt;/code&gt; when possible for caches - or find some good libs online.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In a weak hashmap, items can be cleared by the garbage collector if nothing else is using the key&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Object Creation Matters More Than You Think
&lt;/h2&gt;

&lt;p&gt;Creating a lot of short lived objects isn’t always bad... modern JVMs are optimized for this. But if you’re doing it in tight loops or in performance critical paths, it can hurt.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Boxing primitives &lt;code&gt;Integer &amp;amp;| Double&lt;/code&gt; in hot paths? That adds up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Creating new &lt;code&gt;String&lt;/code&gt;objects from substrings for no reason?... We all know that person.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Logging full stack traces every 5 milliseconds? Please stop.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Know Your String Pitfalls
&lt;/h2&gt;

&lt;p&gt;Ye Ol' String... Everyone’s favourite (&lt;em&gt;probably the first data type you learnt when writing a HelloWorld app&lt;/em&gt;) but it’s also a memory hog if you’re not careful.&lt;/p&gt;

&lt;p&gt;Every &lt;code&gt;String&lt;/code&gt; in Java is immutable. So &lt;code&gt;str += "To Infinity And Beyond!"&lt;/code&gt; inside a loop? That’s creating a whole new String each time (&lt;em&gt;also your memory usage really will go to infinity and beyond... sorry ha!&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Some history for you (&lt;em&gt;Something I learnt recently&lt;/em&gt;), old school Java used to store strings in the PermGen. Sure that's gone in newer versions &lt;strong&gt;BUT&lt;/strong&gt; poorly managed strings still cause bloat.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Prior to Java 7, String literal in pool may be collected only if perm gen is included in collection (not every Full/Old GC includes perm gen in scope).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This one's for free: Use &lt;code&gt;StringBuilder&lt;/code&gt; or &lt;code&gt;StringBuffer&lt;/code&gt; when building strings in loops.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tuning the JVM Isn’t Cheating
&lt;/h2&gt;

&lt;p&gt;The JVM is powerful, but it doesn’t know your app. That’s your job.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Set appropriate &lt;code&gt;-Xms&lt;/code&gt; and &lt;code&gt;-Xmx&lt;/code&gt; Heap size values.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Choose the right garbage collector for your use case (G1, ZGC, etc).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.oracle.com/en/java/javase/17/gctuning/introduction-garbage-collection-tuning.html" rel="noopener noreferrer"&gt;Introduction to Garbage Collection Tuning&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Monitor using tools like &lt;code&gt;VisualVM&lt;/code&gt;, &lt;code&gt;jConsole&lt;/code&gt;, or others to get visibility into what’s happening under the hood.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Use the &lt;code&gt;-XX:+HeapDumpOnOutOfMemoryError&lt;/code&gt; flag. When things go bad and you want to know why.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  You Can’t Optimize What You Don’t Understand
&lt;/h2&gt;

&lt;p&gt;You don’t need to be a JVM engineer to write memory efficient code... But you do need to know how memory works. Blind trust in the garbage collector will only get you so far - maybe pretty far (&lt;em&gt;depending on what you're building&lt;/em&gt;) but when your memory usage is going to the moon? Goodluck, I hope you have lots of coffee and a nice boss.&lt;/p&gt;

&lt;p&gt;So take the time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Look at your object lifecycles.&lt;/li&gt;
&lt;li&gt;Watch your collections.&lt;/li&gt;
&lt;li&gt;Avoid unnecessary allocations.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You'll eventually start doing these things subconsciously..&lt;/p&gt;

&lt;p&gt;And yes... every now and then... read a heap dump. It builds character.&lt;/p&gt;

&lt;p&gt;A few things I’d love to discuss:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What memory profiling tool do you swear by?&lt;/li&gt;
&lt;li&gt;Ever had a memory leak in Java that gave you nightmares?&lt;/li&gt;
&lt;li&gt;Are modern GC algorithms good enough to let us “stop caring”?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Still no gin,&lt;/p&gt;

&lt;p&gt;Rus&lt;/p&gt;

</description>
      <category>java</category>
      <category>discuss</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>AI Is Writing the Code – But Are Juniors Still Learning?</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Tue, 13 May 2025 22:21:05 +0000</pubDate>
      <link>https://dev.to/goldennoodles/ai-is-writing-the-code-but-are-juniors-still-learning-4eb8</link>
      <guid>https://dev.to/goldennoodles/ai-is-writing-the-code-but-are-juniors-still-learning-4eb8</guid>
      <description>&lt;p&gt;Hello! It's been a while, a long while at that. I've been having conversations with a few colleagues and one of them stuck.&lt;/p&gt;

&lt;p&gt;Something we've seen more and more of is junior engineers leaning heavily on AI tools to write code for them. Yes, AI is amazing (if used correctly). Yes, it can save time. But no, it’s not a magic wand that will turn you into a great developer overnight.&lt;/p&gt;

&lt;p&gt;I’m not here to bash anyone. I’m here because I think this new mindset is holding juniors back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Crutch, Not A Tool
&lt;/h2&gt;

&lt;p&gt;“Why write it myself when ChatGPT can do it for me?”&lt;/p&gt;

&lt;p&gt;I’ve heard this. I’ve seen this... But here's the problem: relying on AI without truly understanding what it's doing means you’re just copy pasting your way into confusion and most probably chaos. You get the code, it runs, you move on... but do you know why it works? Do you know what to do when it doesn't?&lt;/p&gt;

&lt;p&gt;AI should support your learning, push you to understand concepts... Make it easier to grasp them with a so called "personal tutor", but not replace it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning VS Skipping
&lt;/h2&gt;

&lt;p&gt;Let me paint a picture: You’re new. You get a task. You feed it into AI. It spits out a nice looking function. You copy it, it compiles, you push. Cool, right?&lt;/p&gt;

&lt;p&gt;Now fast forward a few weeks. A bug shows up in that same code. You’re staring at a screen, reading your own commit message, and realising you don’t even remember writing that logic. Because technically... you didn’t.&lt;/p&gt;

&lt;p&gt;This is where things start to fall apart. Because programming isn’t just about writing code... It’s about understanding systems, debugging, improving, iterating. If you skip that learning curve, you’re skipping the core of the craft.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Is Not The Problem
&lt;/h2&gt;

&lt;p&gt;Let me be clear... AI is a fantastic tool. I use it... You probably use it... And we should... to an extent.&lt;/p&gt;

&lt;p&gt;But there’s a difference between:&lt;/p&gt;

&lt;p&gt;“I wrote this logic, now let me ask AI how to clean it up a little,”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;and&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;“I don’t know how to do this, let me ask AI to do all of it..." - while flooding private code to it HA!&lt;/p&gt;

&lt;h2&gt;
  
  
  Senior Engineers: Babysitting The AI
&lt;/h2&gt;

&lt;p&gt;I’ve noticed a shift... PRs from junior devs used to be messy but honest!! You could see the thought process, the effort. Now? You get a pristine looking block of code that smells a little too clean. It’s syntactically correct, logically plausible, but you can’t shake the feeling: "Did they actually write this? Do they really know what's going on here?"&lt;/p&gt;

&lt;p&gt;So you spend more time reading it. Line by line. Wondering if some obscure AI generated bug is waiting in there like a landmine.&lt;/p&gt;

&lt;p&gt;And that time adds up.&lt;/p&gt;

&lt;p&gt;Instead of fixing, working, you’re PR'ing some blind written machine code for errors (or security vulnerabilities) - Instead of working on more specific tasks.&lt;/p&gt;

&lt;p&gt;You’re double-checking that they didn’t blindly paste in a solution that breaks something downstream. The safety net gets tighter, heavier, and more exhausting.&lt;/p&gt;

&lt;p&gt;This isn’t sustainable.&lt;/p&gt;

&lt;p&gt;Code review shouldn’t feel like reverse engineering ChatGPT.&lt;/p&gt;

&lt;p&gt;That's all from me - just wanted to get my thoughts out there. Still no gin, though I've had a bottle of wine.&lt;/p&gt;

&lt;p&gt;Rus&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>ai</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How To Be A Good Developer?</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Mon, 22 Jul 2024 13:06:49 +0000</pubDate>
      <link>https://dev.to/goldennoodles/how-to-be-a-good-developer-1lfe</link>
      <guid>https://dev.to/goldennoodles/how-to-be-a-good-developer-1lfe</guid>
      <description>&lt;p&gt;Hello! It's &lt;em&gt;cough&lt;/em&gt; been a while... 4 years to be exact.&lt;/p&gt;

&lt;p&gt;I've met a lot of incredible people over the last four years and have learnt from them all, everyone I spoke to and worked with brought a unique twist to what a "good developer" is so thought it'd be interesting to discuss this.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is A Good Developer To You?
&lt;/h2&gt;

&lt;p&gt;Firstly, let's kick off with what it actually means to be a good developer. Everyone has their own perception of what this means and is typically influenced by the people you meet and the work that you do. Is a good developer someone who knows the ins and outs of the system that you're working on? Someone who is always happy to support and help? Or possibly someone you've never even met before? - Perhaps someone you watch on YouTube or read articles from? (hint hint).&lt;/p&gt;

&lt;p&gt;I can't say what it means for you, but I can say what it means to me and for a tldr; I think... all of the above.&lt;/p&gt;

&lt;p&gt;A good developer is someone who knows the ins and outs which enables them to help and support, they're responsible and are capable. They may master one disciple or multiple, they could also be a master of non. Is that a bad thing? I think not. &lt;/p&gt;

&lt;p&gt;People are too quick to jump on the band wagon of "you need to master x,y,z".. but that takes time, and considering everything is evolving and changing constantly - can you really master anything? &lt;strong&gt;Or can you get very good for a short amount of time&lt;/strong&gt;?&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is A Bad Developer?
&lt;/h2&gt;

&lt;p&gt;Now this is a tricky question, because I appreciate that everyone is good at something, and personally I think this comes down to &lt;em&gt;personality&lt;/em&gt; and &lt;em&gt;thought process&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Why do I think so? I'll give you a scenario - I worked with person x in company z, this person was a good programmer but a terrible developer. They would cut corners, not follow process and seemingly argue to attempt to prove a point (even when the point did not stand). &lt;/p&gt;

&lt;p&gt;All of this took a toll on the health of the team, people became frustrated and the negativity that this person brang started to trickle into members of the team who started saying "I don't want to join the meeting if person x was invited".&lt;/p&gt;

&lt;p&gt;Now, don't get me wrong. I am a firm believer of discussions - as this leads to better outcomes and results. What I do not believe in is trying to be the smartest in the room, like I said earlier, &lt;strong&gt;you're good at something but others are better in other things&lt;/strong&gt;. If you have a point, put it forward for discussion and listen, afterwards reflect, is the way that you proposed truly better? if so, &lt;em&gt;prove why&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This was a quick and short article, but I wanted to open up the floor for discussion. What do you think?&lt;/p&gt;

&lt;p&gt;No gin this time, it's 2pm... &lt;strong&gt;I guess it 6pm somewhere! Ha!&lt;/strong&gt;&lt;/p&gt;

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

</description>
      <category>discuss</category>
      <category>coding</category>
      <category>developer</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Programming is easy!</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Sun, 28 Jun 2020 15:36:28 +0000</pubDate>
      <link>https://dev.to/goldennoodles/programming-is-easy-d73</link>
      <guid>https://dev.to/goldennoodles/programming-is-easy-d73</guid>
      <description>&lt;p&gt;&lt;strong&gt;Gottcha!&lt;/strong&gt; But seriously, there is still this misconception that programming is easy and that anyone can do it. Although, I do believe that anyone can become a programmer it certainly is &lt;strong&gt;not easy&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get rich quick
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;"You're a programmer? Oh boy, you must be rich!"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I hear this far too often, though it is true that programming jobs pay well, this is not always the case and most of the time not for those that are starting their journey or in junior positions. This does, of course, depend on where and as a what you work as but the majority of the time it is, unfortunately, the latter. &lt;/p&gt;

&lt;p&gt;I was interviewing graduates for a grad placement in the company I work for. 4/10 of the graduates asked me what my salary is, albeit it is because I am around the same age as them and I don't see anything wrong with this as it can be an incentive to sign up with us but, its the idea behind it that was evident from their follow up questions. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can get rich from programming, but probably wont&lt;/strong&gt;. If this is your only incentive to start or continue, I suggest you look at other career choices.&lt;/p&gt;

&lt;h2&gt;
  
  
  You need a certain mindset
&lt;/h2&gt;

&lt;p&gt;I would argue that this is very much the case, you do need a certain mindset for this. There are several nights and days that I have spent staring at my monitor thinking 'It looks fine.. why are you not working!!?' Only to find a typo, improperly called variable or an unset property. This is frustrating beyond belief and can and will most certainly make you doubt yourself and your skills but you must keep pushing through and not give up. I am guilty of such crimes and have given up on many of my earlier projects because I've just become frustrated and did not enjoy what I was doing anymore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programming is problem-solving.&lt;/strong&gt; Before you even type a single line of code you are solving a problem, your idea or your work has stemmed from an identified problem regardless of what it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Times have changed
&lt;/h2&gt;

&lt;p&gt;Many languages are becoming more and more beginner-friendly and this is a good thing! but is it a great thing? The problem with simplifying things is that you lose the ability to do certain things. Take C++ and C#. In my opinion extremely different; C# supports garbage collection and automatically handles memory allocation (to mention a few) while C++ does not do either meaning you need to code the &lt;em&gt;'low-level'&lt;/em&gt; stuff.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It is getting easier and faster to do things, but by speeding down the highway you lose control over a few things... Sometimes important things&lt;/em&gt;. Take this as you will.&lt;/p&gt;

&lt;p&gt;A few points I'd love to discuss in the comments;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is knowing one language enough?&lt;/li&gt;
&lt;li&gt;What would your response be to the title?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Still no gin,&lt;/p&gt;

&lt;p&gt;Rus&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>discuss</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>Do Qualifications Really Matter?</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Tue, 23 Jun 2020 23:14:48 +0000</pubDate>
      <link>https://dev.to/goldennoodles/do-qualifications-really-matter-kji</link>
      <guid>https://dev.to/goldennoodles/do-qualifications-really-matter-kji</guid>
      <description>&lt;p&gt;Do I think you should strive for qualifications? Yes... &lt;br&gt;
Are they necessary? &lt;em&gt;&lt;strong&gt;Not anymore&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;There was a time when it was almost impossible to acquire a tech job without qualifications but oh how times have changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  August 2015
&lt;/h2&gt;

&lt;p&gt;I was young and wanting to get into tech, I applied to a job listing 'exaggerating' my experience (I did work experience at a company and instead of putting down 1 month, I put 3... (Should've put 6). It was a small startup and I had the interview with the CEO. As soon as I was called into his office I knew that there was some hostility towards me. Before I said anything, and I quote - "What makes you think you could get this job?". My heart sunk and I went into panic mode and started speaking gibberish (I've never been made to feel like that). It went on with him making constant remarks about me being young and not having any qualifications and that he didn't know why I was even selected to come in, etc. I'm still in panic mode and have become upset (not visibly but inside I was burning). I managed to stay put and finally got put onto an aptitude test (which are stupid btw) and a coding assignment. I spent 20-30 minutes on the aptitude test and about the same on the coding task. I finished and went down into the lobby while he and his senior engineer reviewed. I was called into his office and he was different, very different. He was happy, saying how I did a great job and that he didn't anticipate this from me, bla bla bla. I was offered the job. I refused. Why? Because I'm not working for someone like that. I'd rather go back to being a lifeguard (which I did). &lt;/p&gt;

&lt;p&gt;Don't be that guy... And if you meet someone like that, thank them for their time then politely see yourself out.&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;As an ex-recruiter, this was my #1 place to explore when headhunting. You can literally see everything which is why I always emphasize the importance of GitHub to those that have no qualifications. You are showing your skills, your thought processes when writing; your commit messages are &lt;em&gt;a gateway into your mind&lt;/em&gt; (don't look at mine they're gibberish). Believe it or not but you can really tell a lot about someone from their GitHub account - How active they are, their level of experience, do they cut/paste from StackOverflow, or do they actually take the time to deconstruct and re-build? Do they commit buggy code? This doesn't remove the need to actually meet with the person and offer them a task to complete but &lt;strong&gt;many headhunters shortlist based on this&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The New World
&lt;/h2&gt;

&lt;p&gt;We live in an age where technological advancement has had a massive boom, Computers are cheaper, faster, and more efficient/accessible. There is nothing stopping you from learning and picking up new things. I don't believe that a piece of paper should dictate how good you are at something. There were many a time when I picked the candidate that had no, or very little qualifications because &lt;strong&gt;&lt;em&gt;experience and knowledge are king&lt;/em&gt;&lt;/strong&gt; .&lt;/p&gt;

&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;I believe that everyone in tech should have a portfolio, and if you do have one you should be constantly adding to it. Your portfolio could be your GitHub account (see what I did there) or it could be a simple - this is what I've made and have it showcased somewhere, I suspect this is a little easier when doing things with a frontend and more difficult for backend developers but I'm sure you can think of something.&lt;/p&gt;

&lt;p&gt;The tech industry has changed and is changing every day, for the better I hope. I'd be very interested to hear about some of your experiences, good or bad.&lt;/p&gt;

&lt;p&gt;It's my birthday but no gin... yet,&lt;/p&gt;

&lt;p&gt;Rus&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The Rules Of Work.</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Mon, 22 Jun 2020 22:05:41 +0000</pubDate>
      <link>https://dev.to/goldennoodles/the-rules-of-work-4oc0</link>
      <guid>https://dev.to/goldennoodles/the-rules-of-work-4oc0</guid>
      <description>&lt;p&gt;Before we begin, I'd like to say that all these points may not resonate with you, but I'm 100% sure that a few will.&lt;/p&gt;

&lt;p&gt;The 'rules' (and I say this &lt;em&gt;very&lt;/em&gt; lightly) will vary depending on where and as what you are working as, or looking to work as. These are things I've noticed moving between smaller (startup type) companies and larger organizations.&lt;/p&gt;

&lt;p&gt;Let's kick this off, we have a lot to cover.&lt;/p&gt;

&lt;h2&gt;
  
  
  You are going to make things that you don't like/ don't want to.
&lt;/h2&gt;

&lt;p&gt;This is probably the point that will resonate with most unless you're working on your own project. You are writing code for someone else. You are in charge of creating their vision, whatever it may be. There will be times when you will disagree, offer alternatives, and sometimes get bluntly shutdown, this is normal. It's part of the job. IF this is the case and you can't work like that, I suggest you go freelance where you can decide and pick up the work that you like, but even then &lt;em&gt;the client is in control&lt;/em&gt;, they will extend a list of functionality that they want to be implemented and it is your responsibility to implement. Bluntly, &lt;strong&gt;you'll have to take some s**t and bite the bullet&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  You will/should disagree with seniors - &lt;em&gt;sometimes&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;First and foremost, this is fine. There is nothing wrong with disagreeing with &lt;strong&gt;anyone&lt;/strong&gt; in your workplace but there are ways to do this correctly which is what I see being missed by too many people. When disagreeing with someone is it just because you don't like the idea? or is it because it doesn't make sense? You know or have a better way of doing the proposed &lt;strong&gt;something&lt;/strong&gt;? If this is the case layout your argument in this order.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"I know of a better solution which is XYZ"&lt;/li&gt;
&lt;li&gt;"This will allow us to save money/ have better, reuseable code, improve security, etc."&lt;/li&gt;
&lt;li&gt;"Can we combine ideas/solutions?"&lt;/li&gt;
&lt;li&gt;"I suggest we at least explore the alternative, plan both out and come back to discuss and pick the solution that works better"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I see too many junior developers that have a wealth of knowledge hold their tongue because of a &lt;strong&gt;heirachy&lt;/strong&gt;. If you cannot speak freely without the fear of being mocked, or ridiculed I suggest you move and move fast because you will be miserable.. Trust me on this.&lt;/p&gt;

&lt;h2&gt;
  
  
  There are always delays
&lt;/h2&gt;

&lt;p&gt;Delays... A sore subject for Project Managers, and/or Product owners but they are conversations that are needed to be had. Delays happen, more so than not. And this is OK as long as you have justified reasons, Is it because you and your team were learning new things? Experimenting with new tech? As the agile saying goes, &lt;em&gt;"We ran into Unknown Unknowns"&lt;/em&gt;. Deadlines are there as a &lt;strong&gt;"We may have this finished by this timeframe but probably not"&lt;/strong&gt; and they can and most probably will move. If you're working or looking to work in a large organization delays are inevitable, most of the time this is of no fault to you or your team but rather waiting for other 3rd party teams to implement something.&lt;/p&gt;

&lt;h2&gt;
  
  
  You will spend A LOT of time planning and designing
&lt;/h2&gt;

&lt;p&gt;This one is a given. You will spend a ton of time planning and designing the code/ services you will write. This is a good thing, a plan of action, a map that you will follow. I recommend you do refinement as a team and ensure that everyone, regardless of job roles/titles understands what the piece of work is, this is especially important for junior developers. I used to get lost in my code or implementing things that are not needed because I would go off the rails and just jot down a few bullet points that I kept revising. Now, I know that designing/documenting is not fun, I hate it haha, but it is very important and should not be neglected.&lt;/p&gt;

&lt;p&gt;These are a few things that I thought new/junior developers should be aware of. There are a number of further points which I may address later, but these to me are some that stood out and should expect regardless of where/who/what you work for/as.&lt;/p&gt;

&lt;p&gt;No gin this time,&lt;/p&gt;

&lt;p&gt;Rus&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>programming</category>
      <category>work</category>
    </item>
    <item>
      <title>The Downside To Being Self-Taught.</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Sun, 21 Jun 2020 23:53:28 +0000</pubDate>
      <link>https://dev.to/goldennoodles/the-downside-to-being-self-taught-402h</link>
      <guid>https://dev.to/goldennoodles/the-downside-to-being-self-taught-402h</guid>
      <description>&lt;p&gt;First and foremost, I would like to state that I &lt;strong&gt;would&lt;/strong&gt; recommend teaching yourself to code &lt;em&gt;but&lt;/em&gt;, there are a few times when this could backfire which is something I think is important to discuss.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Beginning
&lt;/h2&gt;

&lt;p&gt;I started teaching myself from a young age, 15 if my memory serves me right (I'm 23 now), it was difficult, tedious but extremely fun and satisfying, this was way before they offered computer science as a subject in UK high schools meaning that I never had anyone to really turn to for questions or best practices which is really where some of the issues stemmed from - &lt;em&gt;I became reliant on google&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The first piece of code I wrote was not a "hello world" but a Minecraft mod (I still think its pretty cool though). I remember seeing Markus Pearson develop Minecraft and thought that it was the coolest thing I've ever seen, making numbers and letters do stuff on the computer, it was amazing! How is he able to do this? (I was young...).&lt;/p&gt;

&lt;h2&gt;
  
  
  "Get it working"
&lt;/h2&gt;

&lt;p&gt;When I started it I focused too much on the 'get it all working' instead of planning, designing, understanding the issue, debugging (properly), and ensuring my code was &lt;strong&gt;clean&lt;/strong&gt;. I've spoken to a number of my friends and colleagues that are self-taught and they agreed on this point so I suspect these branch further out than my inner and outer circle. I jumped headfirst into getting code down (and this is something that I still do till this day - occasionally). This seems to be something young or new developers do, they get excited that their code is working and forget about everything else.&lt;/p&gt;

&lt;h2&gt;
  
  
  "Testing?"
&lt;/h2&gt;

&lt;p&gt;Testing... Come on, I know you never wrote any tests when you were starting out, I sure didn't... I underestimated the importance of tests and testing the functionality of my code, It works... Why have tests? This could be the case if your code is not going to change, but what if it is? Say you're working in a large organization and your code goes through many mutations, you need to ensure that it does what it's supposed to do. I work in the financial sector, I cannot allow for the code I write to make a single mistake because that could be catastrophic. Don't get me wrong, I'm not perfect and &lt;strong&gt;I don't opt for a TDD approach each time&lt;/strong&gt; (I should... but I don't). I think in general we underestimate the importance of tests and this is definitely something self-taught/new developers neglect or place on the backburner. &lt;/p&gt;

&lt;h2&gt;
  
  
  "You can't teach an old horse new tricks"
&lt;/h2&gt;

&lt;p&gt;A saying - "you can't teach an old horse new tricks". I agree to a point. There are instances when I start writing code rather than sitting back, understanding what it is I'm trying to do, planning out my code, and then start to write. This is something that I learned to do from working in a large organization and from senior developers, a good friend and colleague of mine said this to me when I first started at the company - &lt;em&gt;"Programming is 90% figuring out what to write, and 10% actually writing it"&lt;/em&gt;. &lt;br&gt;
At the time, I didn't really understand what he meant as back then I was working on &lt;em&gt;"simple"&lt;/em&gt; stuff, but oh boy... Once we moved onto bigger and more complex projects, my lack of experience started really showing, and you may attest this to me being inexperienced but these are things that you SHOULD learn at university, and/or some very good programming courses. &lt;/p&gt;

&lt;p&gt;It's been a long night and just wanted to get some of my thoughts across, there are a few more points which I may add at a later date or make a part 2 of this post, but the gin has caught up to me.&lt;/p&gt;

&lt;p&gt;Goodnight,&lt;/p&gt;

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

</description>
      <category>beginners</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>Java/Spring Twitter Bot</title>
      <dc:creator>Rus Kuzmin</dc:creator>
      <pubDate>Fri, 19 Jun 2020 17:35:45 +0000</pubDate>
      <link>https://dev.to/goldennoodles/java-spring-twitter-bot-2ceo</link>
      <guid>https://dev.to/goldennoodles/java-spring-twitter-bot-2ceo</guid>
      <description>&lt;p&gt;Ah, ye ol' twitter bot... Gotta love them. &lt;/p&gt;

&lt;p&gt;I've been sat at home for the past couple of months self-isolating and have become dreadfully bored.. So why not work on a cool little project? I definitely didn't get super excited and giggled like I was witing my first hello world  when the @ItsMelonBot actually posted a tweet.&lt;/p&gt;

&lt;p&gt;Believe me, I know its nothing fancy, I essentially do this every day at work but it was still pretty cool non the less... It the little things in life!&lt;/p&gt;

&lt;p&gt;The journey began with me going through medium until I came across a post 'cool programming projects' and saw the twitter bot and thought... why not.&lt;/p&gt;

&lt;p&gt;I needed an idea, a retweet bot? Boring. A trend bot. Booooring. How about a melon bot?... A what?&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%2Fi%2Fzmm7m2mt4aa6gqorb9r3.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%2Fi%2Fzmm7m2mt4aa6gqorb9r3.PNG" alt="Alt Text" width="601" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I kicked started Intellij and started the process, had it finished in 15 minutes or so. The thing that did take me ages to get my head around was deploying it into Azure. Now that... that was a b****. I tried to sign up to AWS but for whatever reason AWS didn't like me very much so off to Azure I went. Azure is seriously complicated... It took a while to get my head around how it all works but we got there in the end and it made deploying my bot to the cloud much faster and easier.&lt;/p&gt;

&lt;p&gt;For anyone interested, I've created a public GitHub repo with detailed documentation and comments on how to get it up and running, thought some of you would like to play around with it or add some functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/goldennoodles/Spring-Twitter-Bot" rel="noopener noreferrer"&gt;https://github.com/goldennoodles/Spring-Twitter-Bot&lt;/a&gt;&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%2Fi%2Fq7mrxjrq5k7rwa0z61r7.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%2Fi%2Fq7mrxjrq5k7rwa0z61r7.PNG" alt="Alt Text" width="800" height="646"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just wanted to get my thoughts on paper. If you would like to see a full tutorial on deploying it, etc. Let me know!&lt;/p&gt;

&lt;p&gt;Oh and follow the bot, he's pretty funny.&lt;br&gt;
&lt;a href="https://twitter.com/ItsMelonBot" rel="noopener noreferrer"&gt;https://twitter.com/ItsMelonBot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rus - ItsMelonBot's papa.&lt;/p&gt;

</description>
      <category>java</category>
      <category>twitter</category>
      <category>spring</category>
      <category>bot</category>
    </item>
  </channel>
</rss>
