<?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: Cole Diffin </title>
    <description>The latest articles on DEV Community by Cole Diffin  (@arcticshadow).</description>
    <link>https://dev.to/arcticshadow</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%2F13567%2Fc3bb3b33-dc32-46dd-afde-7b0ea16aef87.png</url>
      <title>DEV Community: Cole Diffin </title>
      <link>https://dev.to/arcticshadow</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arcticshadow"/>
    <language>en</language>
    <item>
      <title>Getting to Know Myself</title>
      <dc:creator>Cole Diffin </dc:creator>
      <pubDate>Thu, 27 Oct 2022 22:20:45 +0000</pubDate>
      <link>https://dev.to/arcticshadow/getting-to-know-myself-42gk</link>
      <guid>https://dev.to/arcticshadow/getting-to-know-myself-42gk</guid>
      <description>&lt;p&gt;I’d like to share some inspiration and something a little different.&lt;/p&gt;

&lt;p&gt;I’ve been doing a lot of self awareness and learning about myself lately and trying to understand what I want out of a career/role. I thought I knew. I thought I knew many times. I’ve changed jobs/roles and never found something that quite stuck. I’ve always given my all to any role I undertake, but have never found ‘the one’. A trusted mentor helped me to understand a bit about myself recently (and I didn’t even know at the time that they were mentoring me) Which has led me on a fast track to getting to know myself.&lt;/p&gt;

&lt;p&gt;I enjoy development and engineering in general. I enjoy people and culture both building and supporting. I enjoy delivering products and seeing the product evolve. I enjoy making a change in the world, and knowing that I had a hand in even just a tiny amount of something that made someone's day better. I enjoy building things, and not just in the engineering space - in my garden and workshop too!  I enjoy teaching, sharing knowledge and finding the right way to do things (even when the right way is not practical or possible) . I've learnt that knowing the right way lets you understand the consequences and tradeoffs for doing it the wrong way. And that it's ok to do it wrong, as long as you understand why. I enjoy the process, both tearing it down and building it back up. I enjoy efficiency and finding the best solution to a problem. I enjoy helping people to both realise and become the best version of themselves. I enjoy researching, designing, finding new tech and evaluating if it is fit for purpose. Helping to establish direction, tech choices, guidance on implementation. I enjoy customer service, supporting the products, hearing and taking on board feedback.&lt;br&gt;
To achieve all these things over the years I've been a Developer/Engineer (at various levels), Tech Leads, Practice Leads, Team Leads. I’ve worked on Frontend, Backend Full-Stack, DevOps SecOps and so many more ‘disciplines’ that people often identify as roles. &lt;/p&gt;

&lt;p&gt;But here's the thing; anytime I pick up a role that associates with the ‘engineering’ path the role will evolve towards management. Every time I pickup a role from the management path, it evolves towards the engineering path.&lt;/p&gt;

&lt;p&gt;And that leads me nicely into the first key learning that I've come into. A management role does not have to be management. We don’t have to force people into moulds that they don’t fit. It’s not commonplace in NZ from what I have seen, but apparently it’s growing overseas to have Engineering Manager roles where the role is a servant leadership role to the engineering team, and can work as closely with the tech as wanted and needed, but the role is not considered a ‘resource’ towards delivery. I.e. an Engineering Manager can engineer, but does not deliver (in the traditional sense). An engineering manager can use their engineering and technical background to decipher the unknown, to unblock the delivery team(s), or to improve the efficiency of systems. The engineering manager's role is to provide, to facilitate and to allow the team to solve the problems. The Engineering manager should guide, assist facilitate, provide guardrails and direction setting as required, but not actively contribute to the work. This allows the team(s) to grow organically and become empowered to make decisions, and empowered to make mistakes - when a team is given this level of autonomy with the appropriate measures to align that autonomy with the objectives of the business - A truly powerful force will emerge.&lt;/p&gt;

&lt;p&gt;I’ve seen and been part of high performing teams. I didn’t understand it at the time, and I didn't understand my contributions and how they were affecting the team. I have tried to replicate the conditions of the high performing team, but at the time, I didn't have the understanding of how my actions were impacting others. &lt;/p&gt;

&lt;p&gt;I’ve been lucky enough to trial a Senior Engineering Manager role with my company for a while which has allowed me to experience first hand what feels like a culmination of years of learnings - and I truly believe that this is my path, unfortunately, it’s not a role that my current company are able to keep open. I’ve had a taste now and I am very willing to try and pick up a role somewhere in engineering leadership where I can continue to share my many years of experience to improve shape and build awesome teams and humans!&lt;/p&gt;

&lt;p&gt;Now the request part: Do you know of any places that are looking for a collection of talents that can help to shape their engineering team(s) into the best version of themselves?&lt;/p&gt;

&lt;p&gt;The ‘job title’ is a super hard distinction to make. In larger companies - it’s possibly something like ‘engineering manager’  in a mid sized company it could be Head of Engineering, In a small company it possibly could be a CTO role. In my research so far, all these roles have similar responsibilities in their own way.&lt;/p&gt;

</description>
      <category>engineering</category>
      <category>management</category>
      <category>personal</category>
      <category>story</category>
    </item>
    <item>
      <title>YAWS</title>
      <dc:creator>Cole Diffin </dc:creator>
      <pubDate>Wed, 01 Nov 2017 00:50:12 +0000</pubDate>
      <link>https://dev.to/arcticshadow/yaws-6em</link>
      <guid>https://dev.to/arcticshadow/yaws-6em</guid>
      <description>&lt;p&gt;EDIT: The description dosn't show in the Full View, so the title doesn't make much sense... "Yet Another Webpack Story"&lt;/p&gt;

&lt;p&gt;I bet you are here thinking I'm going to tell you how awesome Webpack is. Sorry, you may wish to take this opportunity to find something else to read. Don't worry about it. I won't mind if you don't continue reading my opinion piece. Seriously. It's Ok...&lt;/p&gt;

&lt;p&gt;Webpack. It's great right? does everything. It 'Just Works(TM)'? &lt;/p&gt;

&lt;p&gt;I've always felt a certain dislike for Webpack - without every truly being able to explain it. I've (finally - after years of avoiding it) used Webpack a couple of times recently and still and not sold on it's "awesomeness".&lt;/p&gt;

&lt;p&gt;To start with, Webpack 2 had come out about 2 weeks before I picked it up for the first time. I was aware of this, and figured there would be minor inconsistencies from 1, and that most things would still 'Just work(TM)'. No. Just No. After spending way too long, I discovered that pretty much every plugin created on the internet was now incompatible, and all the tutorials on getting started were out of date. Sometime later, I had a working instance of Webpack 2 with enough plugins and understanding I felt like next time would be better.&lt;/p&gt;

&lt;p&gt;Next Time, was not better. I happened to start a spike project with Webpack, and found out that Webpack 3 was now available. I figure why not, surely they learned from there mistakes the first time. And made it an easier transition. No. After spending far longer than I care to admit, I reverted to my previous Webpack 2 config and gave up on 3.&lt;/p&gt;

&lt;p&gt;I've had a couple of other dealings with Webpack in various scenarios, but nothing to write home about. It was always on my mind that people rave about Webpack, and I constantly hear how awesome it is. I've kept an open mind on things, but I've never seen nice clear instructions on how to do anything more than basic bundling. (Yes, I know you can do many things with Webpoack, but it ends up a convoluted mess)&lt;/p&gt;

&lt;p&gt;Until Today.&lt;/p&gt;

&lt;p&gt;I came across some really neat examples of code-splitting and lazy loading, in the Webpack docs of all places. I was pretty amazed - Could Webpack finally be on a winning streak. &lt;/p&gt;

&lt;p&gt;I haven't mentioned until now that both at work and personally, I've been using Browserify quite heavily, combined with other tools to achieve the same results as Webpack. I've been open to switching, but as per experiences, have not really seen the benefit of doing so. &lt;/p&gt;

&lt;p&gt;After discovering Webpack's code splitting and other fun features, I did a quick search to see how/if Browserify supported anything similar, and came across this: &lt;a href="https://gist.github.com/substack/68f8d502be42d5cd4942"&gt;https://gist.github.com/substack/68f8d502be42d5cd4942&lt;/a&gt; a very detailed breakdown and comparison of many Webpack features, and code snippets and more. Reading through that article, my daily wtf/wow rate went up by quite a number. I had no idea that Browserify did all that. I've only been using the basics, and performing some of the more complex actions via other tools, or custom rolled scripts. &lt;/p&gt;

&lt;p&gt;I now understand a lot better about why I dislike Webpack, and I'm happy to continue doing so for the perceivable future. But for the present, time to start exploring the Browserify ecosystem again, and see what other advancements have happened in the last couple of years I may be missing out on.  &lt;/p&gt;

</description>
      <category>webpack</category>
    </item>
    <item>
      <title>Screaming Snakes in Javascript</title>
      <dc:creator>Cole Diffin </dc:creator>
      <pubDate>Tue, 02 May 2017 03:41:26 +0000</pubDate>
      <link>https://dev.to/arcticshadow/screaming-snakes-in-javascript</link>
      <guid>https://dev.to/arcticshadow/screaming-snakes-in-javascript</guid>
      <description>

&lt;p&gt;SCREAMING_SNAKES case has no place in modern day javascript. &lt;/p&gt;

&lt;p&gt;It's ugly, it's vulgar, and it makes any code less desirable to read. I feel like my eyes are being yelled at for doing something wrong when I read it. &lt;/p&gt;

&lt;p&gt;The most common place I see SCREAMING_SNAKES, is when someone uses it to define a constant. At the top of a file. Let's think about that for a second. They took the effort to arrange their code in such a way they can put the constant at the top. (let's assume it had positive outcomes and wasn't a pointless re-factor) now, when I open their code, the first thing that hits me in the face is a stack of SCREAMING_SNAKES! They all kind of meld together - typically, I'll just ignore them and move on to where the &lt;em&gt;real&lt;/em&gt; code begins. Then at periodic places throughout the code, I get a SCREAMING_SNAKE to the face, which I probably do want to decipher this time, and hopefully, it's named carefully so I can determine the content of the variable based on the name (entirely different rant.)&lt;/p&gt;

&lt;p&gt;It's 2017. We have the good(?) fortune to have hundreds of build tools at our disposal to work around browser caveats and implement half baked specs that make embedding SCREAMING_SNAKES completely un-necessary, a.k.a imports!&lt;/p&gt;

&lt;p&gt;In my opinion, take your dirt SCREAMING_SNAKES and move them to a separate file. You can even call that file constants.js if that fits in with your file structure. Export all your constants, then you can import them where ever you need to. (and, they will be proper constants i.e. immutable thanks to the transpiler tasks in your build pipeline.) And guess what, you don't need to make them SCREAMING_SNAKE case to make your point.&lt;/p&gt;

&lt;p&gt;The history of SCREAMING_SNAKE case in javascript (based on my 1 person poll around the office) is due to the need to identify the constant as a constant, so people didn't accidentally change it. This is no longer an issue, due to the immutable nature mentioned above. &lt;/p&gt;


</description>
      <category>rant</category>
      <category>opinion</category>
      <category>javascript</category>
      <category>textcasing</category>
    </item>
  </channel>
</rss>
