<?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: Conlin Durbin</title>
    <description>The latest articles on DEV Community by Conlin Durbin (@wuz).</description>
    <link>https://dev.to/wuz</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%2F28677%2F832cee31-d4b7-492e-9854-b74192026b8c.jpg</url>
      <title>DEV Community: Conlin Durbin</title>
      <link>https://dev.to/wuz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wuz"/>
    <language>en</language>
    <item>
      <title>Upgrade your incident retrospectives with this template</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Wed, 19 May 2021 15:13:33 +0000</pubDate>
      <link>https://dev.to/wuz/upgrade-your-incident-retrospectives-with-this-template-2a89</link>
      <guid>https://dev.to/wuz/upgrade-your-incident-retrospectives-with-this-template-2a89</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TL;DR: Get the template &lt;a href="https://drive.google.com/file/d/15xl9sKe2xIAsJNB9rTMFoL5Wp7-aGsWS/view?usp=sharing" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The more time you spend working for tech companies, the more likely it is that you will run a retrospective for an incident. &lt;/p&gt;

&lt;p&gt;There are lots of theories out there about how to perform retros — from Amazon's &lt;em&gt;"Five Why's"&lt;/em&gt; strategy to Netflix's &lt;em&gt;Dispatch&lt;/em&gt; tooling.&lt;/p&gt;

&lt;p&gt;For most engineering teams however, incident response ends with the fix and a couple words or paragraphs about what happened. This is a great starting place, but often times focusing on &lt;em&gt;what&lt;/em&gt; happened over &lt;em&gt;what caused&lt;/em&gt; it to happen means we are missing out on the ability to see the patterns in our incidents and responses and learn a build on those. Making the shift from thing about incidents to thinking about the systems that produce them is a great next step to improve your responses.&lt;/p&gt;

&lt;p&gt;I've been using a template to record all the information related to an incident for a while now, I thought you all might like to see it!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Template
&lt;/h2&gt;

&lt;p&gt;The template focuses on a few main sections and is a simple to copy Google Doc. You can find it &lt;a href="https://drive.google.com/file/d/15xl9sKe2xIAsJNB9rTMFoL5Wp7-aGsWS/view?usp=sharing" rel="noopener noreferrer"&gt;here&lt;/a&gt;! The rest of this post will be a breakdown of each section and how to use it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Event Details
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fm8sl2opautxlv2f3o16b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fm8sl2opautxlv2f3o16b.png" alt="Event Details screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The header of the document focuses on some simple details about the event. First, put in the incident's date and give this document a title. Focus on something short and descriptive like "&lt;em&gt;Product Name&lt;/em&gt; AWS outage". Ideally, you will be filling this out on the same day it happens, but if not make sure the date at the top is the date the incident happened. This makes it easy to search logs, chat messages, and PR's for what happened that day if people want to do more investigation.&lt;/p&gt;

&lt;p&gt;The next section is &lt;strong&gt;Details&lt;/strong&gt;, which records to type of event. Type definitions are largely up to you, but make sure they are standardized and documented somewhere. Some examples might be "Vulnerability", "Third Party", or "Production Bug". I'd recommending starting of with just a few types and adapting your system as you gather more information - if a few incidents are similar and don't cleanly fit a type, consider adding a new one.&lt;/p&gt;

&lt;p&gt;Up next is the name of the Assignee - this is the incident leader, the person responsible for handling the incident (and hopefully the person filling out the template).&lt;br&gt;
Next is a bit of metadata on this incident: Were customers impacted, what notifications were sent when it happened, and what was the source of detection (i.e. who or what reported this incident)?&lt;/p&gt;

&lt;h2&gt;
  
  
  Incident Details
&lt;/h2&gt;

&lt;p&gt;The next bit is a table for writing up the details of the incident. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F1mplpfldpoekeo2l4few.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F1mplpfldpoekeo2l4few.png" alt="CleanShot 2021-05-10 at 11.51.26"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;First, type up a quick description of what's happening. Feel free to tweak and refine this as the situation changes - at the end you should have a short overview of the event and solution.&lt;/p&gt;

&lt;h3&gt;
  
  
  General Notes
&lt;/h3&gt;

&lt;p&gt;This is a great session for tossing quick notes as you are going. It helps keep track of various findings and artifacts while you are still learning about them. This section is most useful when you are still working on the incident, but it can also store any links/notes that don't fit into other categories later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fextowuao2c0vramvdgol.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fextowuao2c0vramvdgol.png" alt="CleanShot 2021-05-10 at 11.51.41"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Contributors &amp;amp; Enablers
&lt;/h3&gt;

&lt;p&gt;Here is where we start to get to the important bits of the document. Instead of focusing on root cause analysis or the 5 whys, we're going to focus on contributors and enablers. No incident is ever caused by just one thing, rather they are the result of a flaw in a complex system of tooling, engineers, and opportunity costs. Here, we focus on the things that enabled this incident to occur or contributed to the impact it had. For example, a broken production push might have been enabled by a mis-configured deployment file or a lack of testing around a specific area of the application. Silenced logs and an engineer on vacation might have contributed to the impact it had. By logging these things, we get an idea of the holes in our system. &lt;/p&gt;

&lt;h3&gt;
  
  
  Mitigators
&lt;/h3&gt;

&lt;p&gt;Mitigators are the things that went right - what made this have less of an impact than it could have? For example, perhaps a critical notification was seen caught by the on-call process or an engineer happened to be looking at a page when they noticed a bug. These kind of insights help you develop resilient pathways through which your incidents travel. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F5vbb9kpcytlcyge02zd0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F5vbb9kpcytlcyge02zd0.png" alt="CleanShot 2021-05-10 at 11.51.54"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Customer Impact
&lt;/h3&gt;

&lt;p&gt;This section is relatively straightforward - were customers impacted and what was the extent of that impact? Did production go down for everyone or was this a small bug for a single customer?&lt;/p&gt;

&lt;h3&gt;
  
  
  Difficulties in Handling
&lt;/h3&gt;

&lt;p&gt;This section is pretty similar to the "Contributors &amp;amp; Enablers" section, but more focused on "one-off" events that made this more difficult to handle. Was there a holiday that made it hard to coordinate? Maybe the logs weren't logging correctly or the incident monitoring software didn't ping right away. These events aren't always solvable, but the do give a clearer picture of your weak spots.   &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F8l6lcvl5mdv9td7yilfd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F8l6lcvl5mdv9td7yilfd.png" alt="CleanShot 2021-05-10 at 11.52.15"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Artifacts
&lt;/h3&gt;

&lt;p&gt;This section is for any artifacts that were created for the resolution of this incident - charts, documents, dashboards, etc. Anything that was generated for the explicit purpose of gather/collating data for the resolution of the incident.&lt;/p&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;p&gt;This section is for all the links, PR's, tickets, etc that are related to this incident. This should give a holistic view of all the work related to this incident.&lt;/p&gt;

&lt;h2&gt;
  
  
  Timeline
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fxpas8m2lcnbtr2hsoymc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fxpas8m2lcnbtr2hsoymc.png" alt="CleanShot 2021-05-10 at 11.52.19"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The final page contains a basic table template for tracking the timeline of the event with a simple branching color scheme to highlight co-incident work. It's a lot easier to fill this out as you go, but it can be filled out after the fact as well. Reading this should give a casual observer a basic understanding of what happened and what steps were taken to solve the incident.&lt;/p&gt;

&lt;h1&gt;
  
  
  Final thoughts
&lt;/h1&gt;

&lt;p&gt;This document should help you start tracking and logging the important information around your incidents, but all that data isn't super useful unless you are learning from it. A great way to do that is to have incident review meetings monthly - each team puts together a quick slideshow with the data contained here and presents it to the other teams. Bonus points for taking notes and pointing out commonalities. Even bonus-er points for coming up with some strategies to try out to lessen the impact of contributors or make mitigators even more impactful.&lt;/p&gt;

&lt;p&gt;I hope this template is helpful! What does your incident response look like? What kind of learning does it optimize for?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cover Image by &lt;a href="https://unsplash.com/@jpvalery?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Jp Valery&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/response?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>incident</category>
      <category>devops</category>
      <category>template</category>
      <category>resiliency</category>
    </item>
    <item>
      <title>Build Something That Makes a Difference</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Wed, 13 May 2020 19:36:50 +0000</pubDate>
      <link>https://dev.to/wuz/build-something-that-makes-a-difference-1h6k</link>
      <guid>https://dev.to/wuz/build-something-that-makes-a-difference-1h6k</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This was a post I wrote almost a year ago. I just now am getting around to sharing it.&lt;br&gt;
If you didn't know, Codeland is online this year! &lt;a href="https://codelandconf.com/"&gt;Check it out!&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m back from Codeland, and I’ve had some time to sleep and decompress. I had an inspiring and fulfilling weekend in NYC.&lt;/p&gt;

&lt;p&gt;I spent 5 days in NYC and had an absolutely fantastic time. I explored the city - hanging out with some old friends and making some great new ones.&lt;/p&gt;

&lt;p&gt;The conference, Codeland, was an exceptional experience! I met so many great people and heard talks that inspired and encouraged me.&lt;/p&gt;

&lt;p&gt;The morning started out with some talks. Luna Malbroux gave a lively introduction to EquiTable, a bill-splitting app born out of a comedy code jam. The app illustrates the intersection of comedy, technology, and inclusion. One of the big takeaways for me was that we are obligated to build inclusivity into the tools we work on. Her jokes had the crowd roaring and really hit home that this conference was going to be something different.&lt;/p&gt;

&lt;p&gt;Pedro Cruz gave an incredible talk on his work using drones to aid the victims of natural disasters. That talk reminded me that there are incredible things that we can be doing with technology. Unless we work to experience the wider world community, we can’t make those things inclusive and innovative.&lt;/p&gt;

&lt;p&gt;After this, I jumped to my workshop, where I met some great devs from the Midwest and hacked on an IoT chip. I haven’t done hardware related stuff in a while, and I really enjoyed it! From there, it was off to lunch and into the next set of talks.&lt;/p&gt;

&lt;p&gt;The second set of talks kicked off with Ali Spittel, who discussed why developers should think about blogging. Her journey started last year when she began writing blog posts to help her learn new things. One of the best ways to give back to the development community is to write.&lt;/p&gt;

&lt;p&gt;Up next, Omayeli Arenyeka gave a talk on building a gendered dictionary. The talk was pretty technical, covering where she got her data and how she merged it all together. The end result was a dictionary that showed which words in the English language are gendered - things like king and queen. The dictionary lives online and is an incredible look into how our language shapes our thoughts. Why do we often think that “doctor” is a “male” word? What would our world be like if we started thinking and communicating without gendered language?&lt;/p&gt;

&lt;p&gt;Michael Winslow gave a fascinating talk on the challenge of programming a cross-fade. There are tons of implications to consider when fading out one song and fading in another. This talk was technical, fun, and inspiring. There are so many interesting problems out there that we could solve with technology if we give it a shot.&lt;/p&gt;

&lt;p&gt;Art Meets Algorithms, given by Kristen Webster, was a fascinating look at how we can use computers to create art that would be impossible for a human to create by hand. Algorithms have an inherent structure and beauty to them, which we can use to create fascinating art.&lt;/p&gt;

&lt;p&gt;The last talk in this set was from Jo-Wayne Josephs, who spoke about her experience as an LGBTQ+ immigrant to the US. She shared her story of coming to the US, trying to find work while waiting for asylum, and finally being granted asylum here. It’s unbelievable all the things immigrants have to go through to live, work, and improve themselves here. One major takeaway I had from this is that a functional diversity and inclusion program should include resources for people looking for asylum or citizenship. There are tons of great organizations out there and even just having a list of the ones that might be helpful is a significant first step.&lt;/p&gt;

&lt;p&gt;We had a break here, where we met with the conference sponsors. I met some inspiring folks from Github, and a company called Raise.dev, who are creating an impressive way to help new developers work on real projects and learn real-world development skills.&lt;/p&gt;

&lt;p&gt;Finally, we all came back into the theatre to hear a talk from Scott Hanselman about building an artificial pancreas. There were some incredible technical pieces to this talk - from Bluetooth and radio communications to building applications to help monitor glucose levels. However, to me, the most critical part of the talk was how it inspired developers to find something that seems set or unchangeable and use technology to change it. The proprietary technology that powers glucose monitors doesn’t speak to the technology that powers insulin pumps, so some intrepid hackers made a device that bridges that gap. There are so many problems out there that could be improved with technology.&lt;/p&gt;

&lt;p&gt;I think my favorite takeaway from the conference was a joke line from Michael Winslow’s talk on building cross-fade technology. In talking about being a DJ and channeling a bit of Uncle Ben, he said, &lt;strong&gt;“With great volume, comes great responsibility.”&lt;/strong&gt; &lt;br&gt;
I know what was meant by this line at the time, but I think it sums up the conference better than I ever could. In the world of tech, we tend to forget just how much volume we have. When Facebook “moves fast and breaks things,” they do so at the expense of those unable to be broken. When we limit our intake of immigrants through draconian immigration law, we miss out on the incredible people that want to make our country better. We exist in a noisy industry, and we have a responsibility to use that volume in the right way.&lt;/p&gt;

</description>
      <category>codeland</category>
      <category>general</category>
    </item>
    <item>
      <title>Design Systems 101</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Wed, 01 Apr 2020 14:12:55 +0000</pubDate>
      <link>https://dev.to/wuz/design-systems-101-1ogo</link>
      <guid>https://dev.to/wuz/design-systems-101-1ogo</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F8jtaN4C.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F8jtaN4C.gif"&gt;&lt;/a&gt;&lt;/p&gt;

How a design system speeds up page design




&lt;h1&gt;
  
  
  What the heck is a design system?
&lt;/h1&gt;

&lt;p&gt;Let's start out with a couple quotes to set the mood:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A design system’s purpose is to provide consistent, tested and reusable solutions for a common UX problem.&lt;br&gt;
&lt;a href="https://medium.com/git-out-the-vote/pantsuit-the-hillary-clinton-ui-pattern-library-238e9bf06b54#.c6rnwv18f" rel="noopener noreferrer"&gt;&lt;em&gt;Mina Markham&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;blockquote&gt;
&lt;p&gt;A style guide is an artifact of the design process. A design system is a living, funded product with a roadmap &amp;amp; backlog, serving an ecosystem.&lt;br&gt;
&lt;a href="https://articles.uie.com/a-design-system-isnt-a-project-its-a-product-serving-products/" rel="noopener noreferrer"&gt;&lt;em&gt;Nathan Curtis&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  So what is a design system?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimgur.com%2FMBiECbM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimgur.com%2FMBiECbM.png" alt="A design system is..."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, it's not a box of Legos. It's more like the Lego factory.&lt;/p&gt;

&lt;h2&gt;
  
  
  People | Tools | Patterns | Guidelines | Values
&lt;/h2&gt;

&lt;p&gt;A good design system is a collaboration between many parts of a business and product. It is a distillation of a companies values and people into a set of guidelines, tools, and patterns that make rapid development easier and enable a team to produce accessible functional tools.&lt;/p&gt;

&lt;p&gt;A design system is integrated - it's built into the product and organization/product development process, not merely a style guide you reference&lt;/p&gt;

&lt;p&gt;A design system is shared - it’s actually shared and adopted across the organization, in order to cover major part of the product&lt;/p&gt;

&lt;p&gt;A design system contains patterns - can be patterns and/or components. &lt;/p&gt;

&lt;p&gt;A design system contains principles - there is underlying principles behind the patterns that guide the work&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We think we merely design and build websites and apps. And that’s true  for the most part. After all, that’s what our clients pay us to do, and the products we create are the vehicles that generate money and success for our organizations. It seems natural to focus on the final implementations rather than the underlying system. The live products remain the primary focus of everyone’s attention, while any pattern library exists as an offshoot that simply provides helpful documentation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Deliverables
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://polaris.shopify.com/" rel="noopener noreferrer"&gt;Shopify&lt;/a&gt; has a great example of the various deliverables that might be produced from a design system. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimgur.com%2FOD8p6kX.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimgur.com%2FOD8p6kX.png" alt="an example of shopify's deliverables"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Patterns
&lt;/h3&gt;

&lt;p&gt;Rules around accessibility, internationalization, layout patterns, and error messages would all be gathered in the Patterns section.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://polaris.shopify.com/patterns-and-guides/product-experience-principles#navigation" rel="noopener noreferrer"&gt;Example&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Content
&lt;/h3&gt;

&lt;p&gt;Rules about website content, blog posts, and documentation all fall into the content portion of the design system. &lt;br&gt;
&lt;strong&gt;&lt;a href="https://polaris.shopify.com/content/product-content#section-write-for-a-grade-7-reading-level" rel="noopener noreferrer"&gt;Example&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Style Guide
&lt;/h3&gt;

&lt;p&gt;Rules about design and the creation of visual elements fall into the style guide portion.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://polaris.shopify.com/design/colors" rel="noopener noreferrer"&gt;Example&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Style
&lt;/h3&gt;

&lt;p&gt;Code style and formatting, stylelint rules, and CSS patterns are all part of the code style portion of a design system.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://about.lessonly.engineering/styleguide/css" rel="noopener noreferrer"&gt;Example&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Component Library
&lt;/h3&gt;

&lt;p&gt;Reusable components like buttons, form fields, and grids make are part of the component library.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://polaris.shopify.com/components/forms/autocomplete#navigation" rel="noopener noreferrer"&gt;Example&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Benefits of a design system:
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Design systems bring order to chaos.&lt;/strong&gt; Everyone is kept on the same page, so the entire product remains consistent and polished throughout.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design systems improve the user experience through the repeated use of familiar and proven patterns.&lt;/strong&gt; Designing anything from scratch leaves room for error, so try to use what already works.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design systems improve workflow efficiency.&lt;/strong&gt; Product teams know exactly how components of new features should look and how to implement them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Building a design system
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimgur.com%2F2VLKmFj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimgur.com%2F2VLKmFj.png" alt="a visual representation of a design SYSTEM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions to ask
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How does the system work today and in the future?&lt;/li&gt;
&lt;li&gt;What is our vision?&lt;/li&gt;
&lt;li&gt;What problems are we trying to solve?&lt;/li&gt;
&lt;li&gt;Who does this problem most impact?&lt;/li&gt;
&lt;li&gt;What impact do we want a design system to have on how we work?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Building on a smaller team
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Don't start from scratch
&lt;/h3&gt;

&lt;p&gt;"Steal like an artist", where you can. There are lots of open design systems out there that we can borrow from. Additionally, there are lots of good tools that we can use. &lt;/p&gt;

&lt;p&gt;Even things like Bootstrap can be useful to steal from - we can find common patterns that many web-apps use and build reusable components to build them out for our companies.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;a href="https://www.invisionapp.com/inside-design/guide-to-effective-ux-audit/" rel="noopener noreferrer"&gt;UX/UI Audit&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;We can't know where we are going until we know where we are and where we have been. Before starting, get an idea of where you are, what pages you have, what components they use, and what makes sense to abstract into a design system.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Build a living document
&lt;/h3&gt;

&lt;p&gt;A design system is a living breathing collaboration between designers and developers. As such, it can and should grow and evolve - which means getting started and letting it change/evolve.&lt;/p&gt;

&lt;p&gt;Some ideas of sections:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Colors&lt;/li&gt;
&lt;li&gt;Typography&lt;/li&gt;
&lt;li&gt;Sizing/Spacing&lt;/li&gt;
&lt;li&gt;Imagery&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  4. Build a component library and document it
&lt;/h3&gt;

&lt;p&gt;Once the audit is done, begin to build out a component library. For each component, include documentation and standards. Remember that when &lt;em&gt;not&lt;/em&gt; to use a component is just as important as when you should use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Activity for getting started
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Our design system offers ____&lt;strong&gt;&lt;em&gt;[kit scope]&lt;/em&gt;&lt;/strong&gt;____&lt;br&gt;
released as ____&lt;strong&gt;&lt;em&gt;[kit outputs]&lt;/em&gt;&lt;/strong&gt;__&lt;br&gt;
and documented at ____&lt;strong&gt;&lt;em&gt;[kit doc site]&lt;/em&gt;&lt;/strong&gt;__&lt;br&gt;
produced by ____&lt;strong&gt;&lt;em&gt;[people]&lt;/em&gt;&lt;/strong&gt;______&lt;br&gt;
in order to serve ____&lt;strong&gt;&lt;em&gt;[products]&lt;/em&gt;&lt;/strong&gt;____&lt;br&gt;
products and experiences.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  To infinity and beyond
&lt;/h1&gt;

&lt;p&gt;As the design system grows and evolves it enables us to work in interesting and new ways. &lt;/p&gt;

&lt;h2&gt;
  
  
  Giving Back
&lt;/h2&gt;

&lt;p&gt;One great thing about a design system is that it can live out in the open. It's a great way to represent your Product/Engineering brand and give back to the community. &lt;/p&gt;

&lt;h2&gt;
  
  
  DesignOps
&lt;/h2&gt;

&lt;p&gt;DesignOps (also called div-ops!), much like DevOps, is a fast-growing field. A design system is the first step in implementing a DesignOps team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://clearleft.com/posts/design-ops-a-new-discipline" rel="noopener noreferrer"&gt;https://clearleft.com/posts/design-ops-a-new-discipline&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Full Stack Design systems
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;When you’re creating a bespoke Design System for a specific product, you have the opportunity to not just group common UI elements together, but to actually represent your core product concepts at many levels. I call this a &lt;strong&gt;Full Stack Design System.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.intercom.com/blog/the-full-stack-design-system/" rel="noopener noreferrer"&gt;[Link]&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Tips
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Any design system is better than no design system at all.
&lt;/h3&gt;

&lt;p&gt;Get something built sooner, rather than later.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;GitHub’s design system, Primer, was being revamped internally and privately. Doing so, Diana said, was in part because her team faced Imposter Syndrome comparing Primer to the systems of matured and larger organizations like AirBnb’s DLS, Shopify’s Polaris, and the US Web Design System. Primer felt unpolished in comparison. Many components were deprecated.&lt;br&gt;
&lt;strong&gt;&lt;a href="https://medium.com/tradecraft-traction/eight-things-you-need-to-know-about-design-systems-bae8bd884b3b" rel="noopener noreferrer"&gt;[Link]&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Build systems, not pages
&lt;/h3&gt;

&lt;p&gt;The web is massive and diverse - it is no longer enough to build webpages. Instead, we need to think about responsive and adaptive design made up of components.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.atomicdesign.bradfrost.com/chapter-1/" rel="noopener noreferrer"&gt;http://www.atomicdesign.bradfrost.com/chapter-1/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Pay attention to the team's limits
&lt;/h3&gt;

&lt;p&gt;We can't build a design system in a day, a sprint, or a quarter. Even starting with just a sketch file that makes the creation of new features and pages consistent is a good base. &lt;/p&gt;

&lt;h3&gt;
  
  
  Organization is key
&lt;/h3&gt;

&lt;p&gt;Avoid "quick and dirty", you'll only bite yourself later. Make sure people know what is happening and get input from everyone that might touch the system. The worst possible timeline is some people using the design system and others not using it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Have a single source of truth
&lt;/h3&gt;

&lt;p&gt;Have a sharable Sketch library and component library that everyone uses while working on the design system.&lt;/p&gt;

&lt;h1&gt;
  
  
  Links &amp;amp; Tools
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.abstract.com/blog/category/customer-stories/" rel="noopener noreferrer"&gt;Abstract's Customer Stories&lt;/a&gt; - Stories from Abstract's customers, who are using Abstract to build collaborative design systems&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.designsystems.com/" rel="noopener noreferrer"&gt;Design Systems&lt;/a&gt; - A Figma publication for design systems&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/eightshapes-llc/getting-developers-started-with-a-design-system-d814fd390389" rel="noopener noreferrer"&gt;Getting Developers Started with a Design System&lt;/a&gt; - A good article on ramping developers into a design system.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://designsystemsrepo.com/tools/" rel="noopener noreferrer"&gt;Design Systems Repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.invisionapp.com/inside-design/getting-executive-ok-design-system/" rel="noopener noreferrer"&gt;Getting executive buy-in for your design system | Inside Design Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/eightshapes-llc/picking-parts-products-people-a06721e81742" rel="noopener noreferrer"&gt;Picking Parts, Products &amp;amp; People - EightShapes - Medium&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://abc.useallfive.com/?ref=producthunt" rel="noopener noreferrer"&gt;Accessible Brand Colors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.goabstract.com/" rel="noopener noreferrer"&gt;Sketch version control &amp;amp; design workflow management - Abstract&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>designsystems</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Introducting RunCLI</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Wed, 21 Aug 2019 14:17:16 +0000</pubDate>
      <link>https://dev.to/wuz/introducting-runcli-m55</link>
      <guid>https://dev.to/wuz/introducting-runcli-m55</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I just released the first version of a new little tool called RunCLI. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://runc.li"&gt;RunCLI&lt;/a&gt; let's you easily share commands with a URL. It's really basic right now - just paste a command in the textbox and click "Create". The main use case is for apps like Twitter, where sharing a medium-sized CLI command is difficult to do well.&lt;/p&gt;

&lt;p&gt;Here is an example with a Git command:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://runc.li/#Z2l0IGxvZyAtLXByZXR0eT0iQCVoIiAtLW51bXN0YXQgLS1mb2xsb3cgPEZJTEVfTkFNRT4gfCBncmVwIC12IFx8IHwgIHRyICJcbiIgIiAiIHwgdHIgIkAiICJcbiIgfCBhd2sgJyQyID4gNCB7IHByaW50ICQyLCAkMywgJDEgfSc%3D"&gt;https://runc.li/#Z2l0IGxvZyAtLXByZXR0eT0iQCVoIiAtLW51bXN0YXQgLS1mb2xsb3cgPEZJTEVfTkFNRT4gfCBncmVwIC12IFx8IHwgIHRyICJcbiIgIiAiIHwgdHIgIkAiICJcbiIgfCBhd2sgJyQyID4gNCB7IHByaW50ICQyLCAkMywgJDEgfSc%3D&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I probably won't add a lot more to this, but I'd love to know what you would like to see it do!&lt;/p&gt;

</description>
      <category>commandline</category>
      <category>tools</category>
      <category>cli</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Your favorite `git` aliases?</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Tue, 20 Aug 2019 15:29:56 +0000</pubDate>
      <link>https://dev.to/wuz/your-favorite-git-aliases-3bd5</link>
      <guid>https://dev.to/wuz/your-favorite-git-aliases-3bd5</guid>
      <description>&lt;p&gt;What &lt;code&gt;git&lt;/code&gt; aliases do you use? Why do you like them?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>git</category>
      <category>terminal</category>
    </item>
    <item>
      <title>What's something you wished people would ask you about more?</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Thu, 01 Aug 2019 12:20:36 +0000</pubDate>
      <link>https://dev.to/wuz/what-s-something-you-wished-people-would-ask-you-about-more-4k0o</link>
      <guid>https://dev.to/wuz/what-s-something-you-wished-people-would-ask-you-about-more-4k0o</guid>
      <description>&lt;p&gt;Just a fun Thursday morning question. What is one thing you wish people would ask you more?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>5 tips for your first 5 days as a new dev</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Mon, 29 Jul 2019 21:32:14 +0000</pubDate>
      <link>https://dev.to/wuz/5-tips-for-your-first-5-days-as-a-new-dev-1h8l</link>
      <guid>https://dev.to/wuz/5-tips-for-your-first-5-days-as-a-new-dev-1h8l</guid>
      <description>&lt;p&gt;Starting your first developer position can be daunting. Even after a few years, switching companies can be stressful. Here are a few tips to make transitioning into a new team easier, especially focused on new developers.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Meet people outside the product/engineering team
&lt;/h1&gt;

&lt;p&gt;You're going to be siloed for a lot of your job, working closely with designers, product managers, and other engineers. One of the best ways to feel integrated and understand the larger impact you are having on the team. Reach out to some salespeople or a support person. If you are in an engineering-dominated company (like a Google or Apple), reach out to someone on a separate engineering team (preferably not another engineer).&lt;/p&gt;

&lt;p&gt;Ask that person to get coffee with you or if they want to eat lunch during your first week. Chat with them about what they like best about the company, what food places they like around the area, or where there favorite quite places are around the office.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Take some time to get your developer environment set up
&lt;/h1&gt;

&lt;p&gt;A lot of the developers I know are pretty particular about their developer environment. Joining a new team and working on a new product is a great time to get your development environment set up the way you like it. You are already going to be less productive than normal, so take some time to try out that new tool or workflow you've been wanting to check out. Worst case, you hate it and it makes you a little less productive for your first week. No harm done! &lt;/p&gt;

&lt;p&gt;If you are looking for some new tools, check out this community #discuss I put out a bit ago: &lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/wuz" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6-WKqfBX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://media.dev.to/cdn-cgi/image/width%3D150%2Cheight%3D150%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto/https%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Fuser%252Fprofile_image%252F28677%252F832cee31-d4b7-492e-9854-b74192026b8c.jpg" alt="wuz"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/wuz/what-are-your-favorite-developer-tools-een" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;What are your favorite developer tools?&lt;/h2&gt;
      &lt;h3&gt;Conlin Durbin ・ Jun 28 '19&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tools&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#macos&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#linux&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h1&gt;
  
  
  3. Write some code, make a commit
&lt;/h1&gt;

&lt;p&gt;On every team I've ever joined, I've made it my goal to have committed code in the first week. It gives you a good win in your first week and something to share if your team has Friday retros or team shares. It doesn't have to be anything too big - maybe you fix a small UI bug or pick up a little performance improvement. A good engineering team will have a way of tracking new developer work. If yours doesn't, ask another engineer for some help finding something that meets the criteria of being small and doesn't require much knowledge of the app. Then you can suggest tracking those kinds of stories in the future for when new devs come on! Double win!&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Leave on time
&lt;/h1&gt;

&lt;p&gt;This is a hard one and a good team will make sure you do it. Don't stay late because you are the "newbie". That establishes bad habits. Unless you have a fun event to stay after for, I'd recommended leaving at the usual time. Even if there is another engineer that stays around much later, don't feel like you have to emulate that behavior. Establish a healthy balance between work and home. Make sure that working late is an exception, never the rule.&lt;/p&gt;

&lt;h1&gt;
  
  
  5. Work hard, but not too hard
&lt;/h1&gt;

&lt;p&gt;This final suggestion ties directly into the last one. I've heard this recommended as working at about &lt;code&gt;60%&lt;/code&gt; effort your first week. Don't go all out. You have plenty of time to prove yourself and you definitely don't want to peak in your first week on a team. Slowly integrate yourself into the codebase, learn about the team dynamics, and spend some time just settling in. Then, once you are acquainted with the team, start ramping up your effort. It not only makes you look better, but it will help you and the team ease into you being involved. &lt;/p&gt;

&lt;p&gt;This doesn't mean that you should produce low-quality work, but instead produce a lower quantity for your first week or so. &lt;/p&gt;




&lt;p&gt;Hopefully these tips help! I'd love to hear your thoughts in the comments or on &lt;a href="https://twitter.com/CallMeWuz"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>engineer</category>
    </item>
    <item>
      <title>The Radar Gun Problem</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Wed, 10 Jul 2019 00:00:00 +0000</pubDate>
      <link>https://dev.to/wuz/the-radar-gun-problem-3jk0</link>
      <guid>https://dev.to/wuz/the-radar-gun-problem-3jk0</guid>
      <description>&lt;p&gt;The other day, I was driving home from an event and there was a massive slowdown on the highway. I assumed that there was a crash or some construction up ahead, but as I got closer to the bottleneck, I realized that the only difference was that there was a cop standing on the side of the highway with a radar gun. Just the presence of a monitor slowed down the performance of the system.&lt;/p&gt;

&lt;p&gt;Later that week, I was debugging some Javascript code and ran into a problem I have hit a few times. I had a fairly intensive process looping over a lot of values. I took the standard approach to debug a JS problem and dropped in a &lt;code&gt;console.log&lt;/code&gt;. I refreshed the page, opened the console... and almost crashed my browser.&lt;/p&gt;

&lt;p&gt;Calling a &lt;code&gt;console.log&lt;/code&gt; with an intensive process takes a lot of memory, it turns out. I've run into this before, but this time the traffic slowdown really made me think about it. Let's talk a bit about something I'm calling the RadarGun Problem.&lt;/p&gt;

&lt;p&gt;In many situations, the fix for the problem is changing where the observation happens. Moving the &lt;code&gt;console.log&lt;/code&gt; outside of the loop - either after or before -is a good option. You can also change the method of observation - drop in a&lt;code&gt;debugger;&lt;/code&gt; and step through it, introducing a purposeful bottleneck to prevent an accidental one.&lt;/p&gt;

&lt;p&gt;Have you run into this before? How have you solved it?&lt;/p&gt;

</description>
      <category>principles</category>
      <category>opinion</category>
      <category>javascript</category>
    </item>
    <item>
      <title>What are your favorite developer tools?</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Fri, 28 Jun 2019 14:49:47 +0000</pubDate>
      <link>https://dev.to/wuz/what-are-your-favorite-developer-tools-een</link>
      <guid>https://dev.to/wuz/what-are-your-favorite-developer-tools-een</guid>
      <description>&lt;p&gt;Happy Friday!&lt;/p&gt;

&lt;p&gt;We're getting new laptops at work, which means I have a good opportunity to re-evaluate my development setup. What lesser-known tools should I check out?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>tools</category>
      <category>macos</category>
      <category>linux</category>
    </item>
    <item>
      <title>Learning React in 2019: What is React?</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Wed, 29 May 2019 00:00:00 +0000</pubDate>
      <link>https://dev.to/wuz/learning-react-in-2019-what-is-react-5e99</link>
      <guid>https://dev.to/wuz/learning-react-in-2019-what-is-react-5e99</guid>
      <description>&lt;p&gt;Spend any amount of time working in the Javascript ecosystem and you'll probably hear a lot about React. Opinions on what the library is/does/should be are as numerous as the people working with it. Let's explore what React is and what the most important parts of the framework are.&lt;/p&gt;

&lt;h2&gt;
  
  
  Officially
&lt;/h2&gt;

&lt;p&gt;If you visit the &lt;a href="https://reactjs.com"&gt;React homepage&lt;/a&gt;, you'll find a great description of what React is. Right at the top, you will see the words "A JavaScript library for building user interfaces". Let's break that down a bit.&lt;/p&gt;

&lt;h3&gt;
  
  
  "Javascript"
&lt;/h3&gt;

&lt;p&gt;An important note here is that React is and probably will always be a Javascript framework. Even when you are dealing with React Native or another library, you are going to be working with Javascript code.&lt;/p&gt;

&lt;h3&gt;
  
  
  "Building user interfaces"
&lt;/h3&gt;

&lt;p&gt;Here is the "big idea". React - through concepts like the virtual DOM, diffing algorithms, and fibers - is a fast, reactive way to build user interfaces. With tools like React Native, this expands to a large number of devices - React is &lt;em&gt;not&lt;/em&gt; a web-only library.&lt;/p&gt;




&lt;h2&gt;
  
  
  Like this post?
&lt;/h2&gt;

&lt;p&gt;It is the first in a series "Learning React in 2019" that I am working on. If you like it, subscribe to my newsletter below - I send out weekly updates about my posts, breakdowns of what I'm learning, and some great links I found around the web.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;center&gt;🎉&lt;a href="https://mailchi.mp/c86513b586f3/dev"&gt;Sign up now!&lt;/a&gt;🎉&lt;/center&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  The important parts of React
&lt;/h2&gt;

&lt;p&gt;Likely, you have heard a lot about different features in React - the virtual DOM, components, state, hooks, and more all make up the different tools in your toolbox. Which of these are important when you are just starting out? Where should you focus?&lt;/p&gt;

&lt;h3&gt;
  
  
  Javascript
&lt;/h3&gt;

&lt;p&gt;The best thing you can do to help improve your React skills is to work on your Javascript ones. React is built in Javascript and a good understanding of classes and functions will get you very far!&lt;/p&gt;

&lt;h3&gt;
  
  
  The Virtual DOM
&lt;/h3&gt;

&lt;p&gt;The Virtual DOM is one of the ways in which React is so fast. Instead of doing complex operations like swapping &lt;code&gt;div&lt;/code&gt; and re-rendering lists on the &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/DOM"&gt;DOM&lt;/a&gt;, React uses a virtual representation of the DOM. If you think about the DOM as an object, it could have nodes like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    node: 'html',
    children: [
        { node: 'head', ...headElements }
        { node: 'body', ...bodyElements }
    ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That object is an example of the Virtual DOM. It's much faster to swap out an element in an array than it is to swap out an &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; rendered in the DOM. If you are doing lots of DOM updates, then React can batch them and god &lt;em&gt;much&lt;/em&gt; faster.&lt;/p&gt;

&lt;p&gt;After to work on your JS skills a bit, I'd highly recommend checking out a tutorial on building your own basic Virtual DOM (like &lt;a href="https://medium.com/@deathmood/how-to-write-your-own-virtual-dom-ee74acc13060"&gt;this one&lt;/a&gt;). You'll get a much better idea of what you are working with, which helps a lot when learning.&lt;/p&gt;

&lt;h3&gt;
  
  
  State Management
&lt;/h3&gt;

&lt;p&gt;Finally, another major piece of React is state management. A great way to think about React is as a framework for presenting slices of state as a view. A component in that case is just the rendered view for a specific state. Think about this: if you have a list of items in an array stored in state, let's call it &lt;code&gt;numbers&lt;/code&gt;, the rendered list of &lt;code&gt;li&lt;/code&gt;'s is a slice of that state, at that particular time. If you add something to the array, the &lt;code&gt;li&lt;/code&gt;'s update and you get a new slice of state.&lt;/p&gt;

&lt;p&gt;Learning to manage your state in a React app is a great way to build performant web apps. We'll cover more on that in a later article!&lt;/p&gt;




&lt;p&gt;It's not hard to level up quickly in React. A base understanding of the way React apps work and what React is can go a long way in helping you build great, performant front-ends. Next time, we'll cover more about JSX and how it works.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>react</category>
      <category>javascript</category>
      <category>learning</category>
    </item>
    <item>
      <title>Where to find hosting?</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Wed, 15 May 2019 11:49:00 +0000</pubDate>
      <link>https://dev.to/wuz/where-to-find-hosting-1ni4</link>
      <guid>https://dev.to/wuz/where-to-find-hosting-1ni4</guid>
      <description>&lt;h1&gt;
  
  
  New site, new series
&lt;/h1&gt;

&lt;p&gt;I just released a &lt;a href="https://wuz.fyi"&gt;new personal website&lt;/a&gt; and I wanted to write up a guide to creating a personal website in 2019. Here is what we will be covering:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://dev.to/wuz/where-to-find-hosting-1ni4"&gt;Hosting your personal site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Writing your copy (Coming Soon)&lt;/li&gt;
&lt;li&gt;Laying down some HTML (Coming Soon)&lt;/li&gt;
&lt;li&gt;Adding some style (Coming Soon)&lt;/li&gt;
&lt;li&gt;Interactive Personal Sites (Coming Soon)&lt;/li&gt;
&lt;li&gt;Getting a domain name (Coming Soon)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's dive in!&lt;/p&gt;

&lt;h1&gt;
  
  
  Choosing the right hosting
&lt;/h1&gt;

&lt;p&gt;The hosting you choose for your site comes down to a few important factors. First, you need to decide what kind of site you are going to host. Is it a simple HTML site? React/Gatsby? Or maybe you want a full Wordpress installation? Those choices will help dictate what host you want to go with. This site is running on Gatsby, so I want a host that makes deploying and updating my site easy.&lt;/p&gt;

&lt;h1&gt;
  
  
  Some different options
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Netlify
&lt;/h2&gt;

&lt;p&gt;Netlify is the webhost that I use for this site - its easy to set up, works really well with Gatsby and doesn't cost me anything! In addition, they have some really interesting addons that you can use to build out login systems, AWS lambda functions, and large media hosting. I am investigating some of these things to build out some tools in conjunction with this site and some React courses I am working on.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://netlify.com"&gt;Link to Netlify&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NearlyFreeSpeech
&lt;/h2&gt;

&lt;p&gt;For a good, free as in speech option, I'd highly recommend NearlyFreeSpeech. They cost very little and provide a great service with support for Ruby, Node, Python and more for like 25 cents a month. I use them to host a few personal services, like my calendar. I used to run my personal site on them, but Netlify was just too great and worked too well with Gatsby.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nearlyfreespeech.net/"&gt;Link to NearlyFreeSpeech&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  DigitalOcean
&lt;/h2&gt;

&lt;p&gt;DigitalOcean is another great option if you want a lot of customization. It's almost more like running your site through AWS, but their backend is a lot more user friendly. This option costs a bit more, but is a great solution if you need what they provide. I use DigitalOcean to host a few side projects and the analytics engine for my personal site.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.digitalocean.com/"&gt;Link to DigitalOcean&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wordpress.com
&lt;/h2&gt;

&lt;p&gt;Wordpress.com is a great option if you want to run a Wordpress site - the pricing is fair and they will handle basically everything for you. If you are getting started in tech and don't want to have to worry about building your blog, this is a &lt;em&gt;great&lt;/em&gt; choice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.wordpress.com/"&gt;Link to Wordpress.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bluehost
&lt;/h2&gt;

&lt;p&gt;Bluehost (and many other more traditional hosts out there) offer one-click installation of all sorts of tools like Wordpress, Drupal, and more! These hosts have tons of documentation around them and can be a really good, low-cost option. They will support all kinds of sites and typically have really good tech to handle a lot of website load.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.bluehost.com/"&gt;Link to Bluehost&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;All in all, I would highly recommend using Netlify - its a great way to learn a bit about backends without getting too in-depth and their support for various architectures is just great. You can find really good tutorials online for setting up a site with Netlify and the community around them is really great!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>hosting</category>
      <category>career</category>
      <category>website</category>
    </item>
    <item>
      <title>Getting started with Deno</title>
      <dc:creator>Conlin Durbin</dc:creator>
      <pubDate>Thu, 18 Apr 2019 13:21:04 +0000</pubDate>
      <link>https://dev.to/wuz/getting-started-with-deno-e1m</link>
      <guid>https://dev.to/wuz/getting-started-with-deno-e1m</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Deno has hit 1.0 and with it, there has been some major discussion around whether the project needs an explicit CoC. The original maintainer seems to think it doesn't and I can't recommend that you use Deno until they do. &lt;br&gt;
&lt;strong&gt;A Code of Conduct is a necessary part of any open source project.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In case you missed it, the new Javascript and Typescript runtime from Ryan Dahl, the creator of Node, &lt;a href="https://deno.land/"&gt;has been released&lt;/a&gt;! It's got some really cool features and is ready for public use! Let's look at a few of the neat features and get started with a simple hello world!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Deno?
&lt;/h2&gt;

&lt;p&gt;Deno is a new runtime for Typescript (and Javascript) written mostly in Rust. It has some &lt;a href="https://deno.land/manual.html#goals"&gt;great goals&lt;/a&gt; and some very interesting "Non-Goals", like not using &lt;code&gt;npm&lt;/code&gt; and not having a package.json.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting it installed
&lt;/h2&gt;

&lt;p&gt;Installing deno is as easy as running this command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;curl -fsSL https://deno.land/x/install/install.sh | sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then copy the &lt;code&gt;export&lt;/code&gt; line and add it to your &lt;code&gt;~/bashrc&lt;/code&gt; or &lt;code&gt;~/bash_profile&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Open a new terminal and run &lt;code&gt;deno&lt;/code&gt;. You should get a &lt;code&gt;&amp;gt;&lt;/code&gt; prompt. Type &lt;code&gt;exit&lt;/code&gt; and let's dig into some features!&lt;/p&gt;

&lt;h2&gt;
  
  
  Cool features in Deno
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Typescript by default
&lt;/h3&gt;

&lt;p&gt;Deno is integrated to run Typescript files by default. It basically makes types in Javascript a first-class citizen. No more compiling through Babel to use Typescript in server-side Javascript.&lt;/p&gt;

&lt;h3&gt;
  
  
  Importing from a URL
&lt;/h3&gt;

&lt;p&gt;Deno lets you import from the web, just like you can in the browser. Just add a URL where you would usually name a module:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;bgBlue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;red&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;bold&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://deno.land/std/colors/mod.ts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  A Standard Library
&lt;/h3&gt;

&lt;p&gt;Furthermore, Deno has a standard library that is easy to import and use. There are modules that do a couple of different things, like HTTP handling, datetime work, and file system work. You can check it out &lt;a href="https://github.com/denoland/deno_std"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Uses ES modules
&lt;/h3&gt;

&lt;p&gt;Finally, Deno only supports ES module syntax, which means no more &lt;code&gt;require()&lt;/code&gt; statements, just good ole' &lt;code&gt;import x from "y"&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hello World Example
&lt;/h2&gt;

&lt;p&gt;Let's look at a quick Hello World that highlights a few of those features!&lt;/p&gt;

&lt;p&gt;Copy this into a &lt;code&gt;hello-world.ts&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;bgBlue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;red&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;bold&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://deno.land/std/colors/mod.ts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sayHello&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;world&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;bgBlue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;red&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;bold&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Hello &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;!`&lt;/span&gt;&lt;span class="p"&gt;))));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;span class="nf"&gt;sayHello&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nf"&gt;sayHello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Conlin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can now run that with &lt;code&gt;deno hello-world.ts&lt;/code&gt; and it should print out some stuff.&lt;/p&gt;

&lt;p&gt;Change one of the &lt;code&gt;sayHello&lt;/code&gt; calls to &lt;code&gt;sayHello(15);&lt;/code&gt; and rerun it. You should see a type error since 15 isn't a string! That's pretty cool!&lt;/p&gt;

&lt;p&gt;You'll also notice how to import from a URL - it's getting some console color stuff from the standard library!&lt;/p&gt;

&lt;h1&gt;
  
  
  Final thoughts
&lt;/h1&gt;

&lt;p&gt;Deno isn't quite ready for the production use - there are a couple &lt;a href="https://deno.land/benchmarks.html#req-per-sec"&gt;bugs&lt;/a&gt;, but development is moving forward quickly! This is definitely a cool new open source project and one to keep an eye on!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>typescript</category>
      <category>deno</category>
    </item>
  </channel>
</rss>
