<?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>Forem: Kayla Sween</title>
    <description>The latest articles on Forem by Kayla Sween (@kayla).</description>
    <link>https://forem.com/kayla</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%2F187691%2Ff43eef2b-163b-4bcb-86c2-a3fe6afbc564.jpeg</url>
      <title>Forem: Kayla Sween</title>
      <link>https://forem.com/kayla</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kayla"/>
    <language>en</language>
    <item>
      <title>4 Strategies for Picking a Conference Talk Topic</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Wed, 02 Nov 2022 13:00:00 +0000</pubDate>
      <link>https://forem.com/kayla/strategies-for-picking-a-conference-talk-topic-3flg</link>
      <guid>https://forem.com/kayla/strategies-for-picking-a-conference-talk-topic-3flg</guid>
      <description>&lt;p&gt;As the organizer for &lt;a href="https://magnoliajs.com"&gt;MagnoliaJS&lt;/a&gt; and as a conference speaker, the two questions I get asked most often from people wanting to get into conference speaking are "what should I talk about?" and "how do I pick a conference talk topic?" The only I answer I can really give is the typical senior dev answer... it depends. Here are a few things to consider when deciding on a conference talk.&lt;/p&gt;

&lt;h2&gt;
  
  
  You could talk about something you're comfortable with.
&lt;/h2&gt;

&lt;p&gt;I'd recommend talking about something you've already been working with and are at least somewhat knowledgable about. Agreeing to give a conference talk is already nerve-wracking without having to learn a new skill or technology to give the talk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Or you could talk about something completely new!
&lt;/h2&gt;

&lt;p&gt;On the other hand, agreeing to talk about something you're not very comfortable with &lt;em&gt;can&lt;/em&gt; push you to learn more about that topic, if that's what motivates you! If you've been excited to try a new JavaScript framework but haven't quite had the time to devote to it, submitting a Call for Papers (CFP, also could stand for Call for Proposals) about it gives you the perfect excuse to build something with it! &lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Please don't do this if it will cause you too much stress! ❤️)&lt;/em&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  You could talk about something you're passionate about.
&lt;/h2&gt;

&lt;p&gt;Giving a conference talk on something that gets you excited will make preparing and giving the talk so much easier. The audience will be able to sense your enthusiasm and help energize you throughout the talk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you love CSS?&lt;/strong&gt; Give a talk about animations, grid vs flex, or whatever cool thing you've learned CSS can do! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are you excited about accessibility?&lt;/strong&gt; Talk about how to make sites more accessible! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you enjoy mentoring others?&lt;/strong&gt; Talk about how to be a better mentor or mentee!&lt;/p&gt;

&lt;h2&gt;
  
  
  Talk about your experiences.
&lt;/h2&gt;

&lt;p&gt;Not every tech conference talk has to be a technical talk. In fact, I believe I learn far more from the ones that &lt;em&gt;aren't&lt;/em&gt; technical! You could talk about how you got into tech or things you've learned from video games that translate well into development or career skills.&lt;/p&gt;

&lt;p&gt;The hardest part about speaking at conferences is picking a topic (and the 20 minutes before you get on stage when you're wondering why you agreed to do this 😅). Hopefully this post has given you some ideas for your first CFP. If you've got one in mind, &lt;a href="https://sessionize.com/magnoliajs-2023/"&gt;MagnoliaJS's CFP&lt;/a&gt; is open now! &lt;/p&gt;

&lt;p&gt;Some of the topics covered in this post were given at &lt;a href="https://www.youtube.com/watch?v=CuXySKar5t0&amp;amp;list=PL3AGFUw2kOSOHsZgebsiOcbs8wxcCF1LG"&gt;MagnoliaJS 2022&lt;/a&gt;. All of the talks are on YouTube so go check them out!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cover image from &lt;a href="https://undraw.co/illustrations"&gt;unDraw&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>speaking</category>
      <category>techtalks</category>
    </item>
    <item>
      <title>I wrote a crawler for the first time.</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Fri, 12 Feb 2021 15:58:51 +0000</pubDate>
      <link>https://forem.com/kayla/i-wrote-a-crawler-for-the-first-time-58l3</link>
      <guid>https://forem.com/kayla/i-wrote-a-crawler-for-the-first-time-58l3</guid>
      <description>&lt;p&gt;Early on in the pandemic, I decided that I wanted a way to track the moving average of cases per day in my state, Mississippi, since that wasn't something our Department of Health had a graph for at the time. Since I thought, "you know, this won't be too long... I could definitely just do this for a few months," I had been manually adding data for every single day until the end of January. I would frequently forget or just not want to look at the data for a month or more at a time. I realized I needed to find a way to automate this process so I didn't have to go back through the last month's data to update my graph. So, I decided to finally write a crawler to get all that data from our state’s Department of Health website without even thinking about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Crawler
&lt;/h2&gt;

&lt;p&gt;For me, this was the easy part. I wanted to write a web crawler in a language I was comfortable with to get it up relatively quickly, so I decided on JavaScript. I took bits and pieces from various tutorials I had found and decided on using Axios to grab the data and Cheerio to parse it.&lt;/p&gt;

&lt;p&gt;To start out, I added Axios and Cheerio to my site.&lt;/p&gt;

&lt;p&gt;for yarn: &lt;code&gt;yarn add axios cheerio&lt;/code&gt;&lt;br&gt;
for npm: &lt;code&gt;npm install axios cheerio&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then, I included them in the JavaScript file I used for my crawler code.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const axios = require('axios')
const cheerio = require('cheerio')&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You could also do it the ✨ES6 way✨:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import axios from 'axios'
import cheerio from 'cheerio'&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I also included my JSON file and filestream so I could add the newest data to that JSON file.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const fs = require('fs')
const data = require('../src/constants/covidData.json')&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then, I created a function to get the latest cases for the day off of the MSDH website. I fetched the data with Axios, loaded it into Cheerio, and then pulled the value out of the section of the DOM that contained the current day's data. I found this selector by going into the dev tools in the browser and looking for the section of the page that contained the daily case data. In this case, there was a &lt;code&gt;data-description&lt;/code&gt; attribute on a &lt;code&gt;p&lt;/code&gt; tag that helped me locate the correct HTML element. I removed any commas from the string it returned and made sure that it was getting saved as an integer so it would work with my charts.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const msdh = 'https://msdh.ms.gov/msdhsite/_static/14,0,420.html'
const getDailyCases = async () =&amp;gt; {
  try {
    const { data } = await axios.get(msdh)
    const $ = cheerio.load(data)
    let dailyCases = parseInt($('[data-description="New cases"]').text().replace(/,/g, ''))

    return dailyCases
  } catch (error) {
    console.log(error)
  }
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I created a new date object. And since All data is from the previous day, I set the date to the day before.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;let today = new Date()
today.setDate(today.getDate() - 1)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And then initialized my data object to eventually add those two pieces of information to an object to add to my JSON file.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;let dailyCases = {
    newCases: 0,
    date: today.getFullYear() + '-' + today.getMonth() + '-' + today.getDate() //formatting date to match what I needed
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Finally, I wrote another async function to call my &lt;code&gt;getDailyCases&lt;/code&gt; function and, after it gets that data, add it to my JSON file as long as there are new cases, and that date doesn't exist in the JSON file.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const getCovidData = async () =&amp;gt; {
  dailyCases.newCases = await getDailyCases()

  if (!data.data.includes(daily.date) &amp;amp;&amp;amp; daily.newCases != 0) {
    data.data.push(dailyCases)

    fs.writeFile('src/constants/covidData.json', JSON.stringify(data), (error) =&amp;gt; {
      if (error) {
        console.log(error)
      }
    })
  }
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And, of course, call that function so that it'll actually run.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;getCovidData()&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That's all there is to the crawler! You can check out the &lt;a href="https://github.com/kaylasween/KaylaSweenWebsite/blob/main/functions/msdatacrawler-background.js"&gt;full crawler file on my GitHub&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Getting it to run regularly
&lt;/h2&gt;

&lt;p&gt;My first thought was to use a combination of Netlify functions to run the web crawler and Zapier to schedule the daily deployment. I quickly realized this wasn't going to work. Since my database was just a JSON file in my GitHub repo, I needed to make sure that the data was getting added every day. When I tried using the Netlify/Zapier combination, it would run the crawler and "overwrite" the last entry daily, since that data wasn't getting pushed back to GitHub.&lt;/p&gt;

&lt;p&gt;After that didn't pan out, I decided to try GitHub Actions, which I had never used before. (&lt;strong&gt;Spoiler&lt;/strong&gt;, this is what I ended up using.)&lt;/p&gt;

&lt;p&gt;I just jumped right into GitHub Actions without any real research or planning. Normally, that's not something I'd recommend. However, it worked out pretty well this time because of how well the default YAML file was commented. I used a lot of the default YAML file for the action.&lt;/p&gt;

&lt;p&gt;To get the Action to run daily, I used &lt;a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07"&gt;POSIX cron syntax&lt;/a&gt; to set the interval.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;on:
  schedule:
    - cron: "00 20 * * *"&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Each of those places separated by spaces represents a unit of time. This will determine how often your Action will run. A lot of times, you may see that denoted by five asterisks (&lt;code&gt;"* * * * *"&lt;/code&gt;). The first place is the minute field. The second place is the hour (which hour in UTC). The third is the day. The fourth is the month (&lt;code&gt;1&lt;/code&gt;-&lt;code&gt;12&lt;/code&gt; or &lt;code&gt;JAN&lt;/code&gt;-&lt;code&gt;DEC&lt;/code&gt;). Finally, the fifth place is the day of the week (&lt;code&gt;0&lt;/code&gt;-&lt;code&gt;6&lt;/code&gt; or &lt;code&gt;SUN&lt;/code&gt;-&lt;code&gt;SAT&lt;/code&gt;). If you leave any of these as a star, it'll run for every one of those units of time. In my code, I wanted my Action to run every day at UTC 20:00 (or 2PM CST) to ensure the Department of Health had time to publish data that day. Therefore, I only put units of time in the minute and hour places and left the rest as asterisks.&lt;/p&gt;

&lt;p&gt;Once I determined how often I needed it to run, I needed to define what the actual job (with steps!) was that I need it to run. So I set up Node.js, installed my dependencies (Axios and Cheerio), ran my crawler, and then pushed the changes to my repository.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;jobs:
  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on (I left it as the default)
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2
      
      - name: Setup Node.js environment
        uses: actions/setup-node@v2.1.4
    
      - name: Install axios and cheerio
        run: |
          npm install axios
          npm install cheerio
    
      - name: Get Covid Data
        run: |
          node functions/crawler.js
          
      - name: Push changes
        uses: actions-go/push@v1
        with:
          # The commit message used when changes needs to be committed
          commit-message: "running daily COVID data crawler"&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That's all there is to it! Now the web crawler is running every day! You can check out the &lt;a href="https://github.com/kaylasween/KaylaSweenWebsite/blob/main/.github/workflows/main.yml"&gt;GitHub Action file on my GitHub&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;You can also see the final product in action on the &lt;a href="https://www.kaylasween.com/COVID-19/"&gt;COVID-19 page on my website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Senior-ish developers get intimidated too.
&lt;/h2&gt;

&lt;p&gt;Writing a web crawler was something I put off for a LONG time in my career. It was probably the first thing I was asked to do as a developer (which I didn't). Quite honestly, it intimidated me a lot and took me around 9 years to get over that intimidation. I just assumed that I wouldn't be able to do it, and I let that consume me. Now, every single time I see that commit message "running daily COVID data crawler," I feel so proud. I've built many things throughout my career, but this may be the thing I'm most proud of because &lt;strong&gt;I proved to myself that I could do it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Let this be a lesson for new developers that sometimes things don't get less scary. You just get less afraid of failing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Illustration from &lt;a href="https://undraw.co/illustrations"&gt;Undraw&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>node</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How to Fix Font Awesome Icons Flashing Wrong Size in Gatsby</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Mon, 01 Feb 2021 18:09:53 +0000</pubDate>
      <link>https://forem.com/kayla/how-to-fix-font-awesome-icons-flashing-wrong-size-in-gatsby-3igm</link>
      <guid>https://forem.com/kayla/how-to-fix-font-awesome-icons-flashing-wrong-size-in-gatsby-3igm</guid>
      <description>&lt;p&gt;Recently, I was working on a project with Font Awesome and Gatsby. I noticed that every time the page loaded after publishing the site, the icons would render huge for a split second. In my pre-React days, I remembered running into this annoying problem with Bootstrap 3 and Glyphicons. In that case, I knew it happened because I was importing the styles for the Glyphicons in the wrong order but wasn't sure how to fix that problem using React and Gatsby.&lt;/p&gt;

&lt;p&gt;Bugs that only happen on page load or the first action of an element always seem to be the most frustrating ones to debug. Thankfully, the solution is relatively straightforward and should relieve your frustration in no time!&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it happens
&lt;/h2&gt;

&lt;p&gt;Since styles take a little extra time to download and get injected into the &lt;code&gt;head&lt;/code&gt;, the icon is momentarily unstyled. &lt;a href="https://twitter.com/fabianterh"&gt;Fabian Terh&lt;/a&gt; has a really great &lt;a href="https://medium.com/@fabianterh/fixing-flashing-huge-font-awesome-icons-on-a-gatsby-static-site-787e1cfb3a18"&gt;Medium article, "Fixing flashing huge Font Awesome icons on a Gatsby static site"&lt;/a&gt;, which does a great job of explaining the why if you want a more thorough explanation.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to fix it
&lt;/h2&gt;

&lt;p&gt;In Gatsby, you'll add these lines of code to the beginning of your gatsby-browser.js. (It just so happens that this fix also works in Next.js if you stick this code into your &lt;code&gt;_app.js&lt;/code&gt; file.)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const styles = require("@fortawesome/fontawesome-svg-core/styles.css")
const config = require("@fortawesome/fontawesome-svg-core")

config.autoAddCss = false&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You could import the styles and config using ES6 syntax, like so:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import '@fortawesome/fontawesome-svg-core/styles.css'
import { config } from '@fortawesome/fontawesome-svg-core'&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Let's break those down.&lt;/p&gt;

&lt;p&gt;First, we're importing the Font Awesome styles manually and the config from the Font Awesome core library.  &lt;/p&gt;

&lt;p&gt;Then, we're setting &lt;code&gt;config.autoAddCss&lt;/code&gt; to false so it doesn't automatically inject the CSS into the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;That's it! I hope this helped someone because I know it'll certainly help me when I run into this problem again in the future!&lt;/p&gt;

</description>
      <category>gatsby</category>
      <category>css</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to Finish a Side Project</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Mon, 10 Aug 2020 11:47:08 +0000</pubDate>
      <link>https://forem.com/kayla/how-to-finish-a-side-project-lo9</link>
      <guid>https://forem.com/kayla/how-to-finish-a-side-project-lo9</guid>
      <description>&lt;h5&gt;
  
  
  It's a huge joke in the tech world that we love starting new side projects, but can't ever find the motivation to finish any of them. The new project always feels like it'll be more fun than finishing something you're already doing. We've all been there! Here are a few tips that I have to complete your side projects.
&lt;/h5&gt;

&lt;h2&gt;
  
  
  Don't start a new side project if you know you'll be busy.
&lt;/h2&gt;

&lt;p&gt;It may seem obvious, but it's worth noting! Take a look at any deadlines or events that you have coming up. If you're delivering a project for work in the next couple of weeks, maybe it's not a great idea to start a new project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Know what you want before you start.
&lt;/h2&gt;

&lt;p&gt;Just like at work, you shouldn't start on a project that has no clearly defined goal. Have a good idea of what you want to accomplish by the end of this project before you even start and stick with it. It's, of course, completely okay to change direction while you're working on it if you realize it's not what you want, but try not to add a ton of functionality while you're working on your "phase 1."&lt;/p&gt;

&lt;h2&gt;
  
  
  Set a deadline.
&lt;/h2&gt;

&lt;p&gt;The only person you're hurting by dragging on a side project is yourself. If you don't have an end in sight, you may be less likely to finish. Make an estimate of how long it'll take you to complete the project and add at least 20% more time. If you finish early, it'll give you a confidence boost. But if something comes up, you run into more bugs or issues than expected, you'll be covered.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tell people about it.
&lt;/h2&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--o5mUuEFL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1268928490587504640/CKDO2wXE_normal.jpg" alt="🔥 Kayla is fine. 🔥 profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        🔥 Kayla is fine. 🔥
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @_kaylasween
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      I’m going to put this into the universe so I actually do it: &lt;br&gt;&lt;br&gt;In August, I’m going to finish the Egghead video I’ve been working on for like the past month. &lt;br&gt;&lt;br&gt;In August, I’ll release at least one blog post. &lt;br&gt;&lt;br&gt;Y’all have my permission to shame tf out of me if I don’t.
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      16:06 PM - 24 Jul 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1286694184158724096" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1286694184158724096" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1286694184158724096" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;
&lt;br&gt;
Tell all of your Twitter or DEV followers what you're going to do. If you have a deadline, tell them when you expect to have it done! Let the angry mob take you if you don't finish.

&lt;p&gt;As a bonus, you're prepping people for some TDD (&lt;a href="https://www.youtube.com/watch?v=Qkc8p4D6JM0&amp;amp;t=18570s"&gt;Twitter-Driven Development&lt;/a&gt;, shout out to &lt;a href="https://twitter.com/ThugDebugger"&gt;Justin Samuels&lt;/a&gt;) in case you run into problems. &lt;/p&gt;

&lt;h2&gt;
  
  
  Or if deadlines and peer-pressure are too overwhelming, just don't!
&lt;/h2&gt;

&lt;p&gt;I know I said you're hurting yourself by letting a project drag on, but sticking to a deadline is not always possible or easy. Life happens. Sometimes life gets really hard. If something comes up or it just becomes too much to devote any energy to a side project, don't feel bad about letting it take longer than expected!&lt;/p&gt;

&lt;h2&gt;
  
  
  Start by making it work, then gradually make it better.
&lt;/h2&gt;

&lt;p&gt;I think &lt;a href="https://www.youtube.com/watch?v=-yIbKaA3wCo"&gt;Jeremy Keith's idea of Progressive Enhancement from Responsive Field Day&lt;/a&gt; in 2015 has a lot of carry-over here. He says he likes to work using these steps: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identify the core functionality of your project.&lt;/li&gt;
&lt;li&gt;Do what you can to make that functionality happen with the simplest technologies.&lt;/li&gt;
&lt;li&gt;Then, enhance! Make it better! Add styles, functionality, whatever you want!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This ensures that you'll, by all accounts, finish your project. The implementation of the core functionality alone means you've completed the project. &lt;/p&gt;

&lt;p&gt;Making enhancements should be considered just that: enhancements! Don't get too bogged down in the details and working on things that don't directly contribute to the core functionality. Take a step back, look at the bigger picture, and make something work. As long as that happens, you've completed the project. &lt;/p&gt;

&lt;p&gt;Now onto making it better!&lt;/p&gt;

&lt;h2&gt;
  
  
  Say you won't start another project until you finish this one... and mean it!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YBCrQ70o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ax84vuuhlawqyulsguvx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YBCrQ70o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ax84vuuhlawqyulsguvx.jpg" alt='Bart Simpson writing "I must finish one side project before starting another" over and over again on a chalk board.' width="880" height="887"&gt;&lt;/a&gt;&lt;br&gt;
New projects always seem like more fun than whatever you're currently working on. The grass is always greener on the other side of the fence. &lt;/p&gt;

&lt;p&gt;I know that it's not fun, but if you set out to getting the core of your project done, you'll be able to move onto other projects faster! 😉&lt;/p&gt;

&lt;h2&gt;
  
  
  Take breaks. Don't let a side project burn you out.
&lt;/h2&gt;

&lt;p&gt;Don't be afraid to take breaks from your side project. These could be short breaks to go take a walk, grab some water or a snack, or meditate. But they could be longer breaks of weeks or even months. Do whatever you need to make you feel refreshed enough to work on it. Even side projects can require a lot of energy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't feel obligated to always be working on a side project.
&lt;/h2&gt;

&lt;p&gt;You don't have to stay busy all the time with side projects. You don't have to code all day every day. You can have periods of your life where you go to work, come home, and chill. You can have periods where there are just other ways you'd rather spend your free time. &lt;/p&gt;

&lt;p&gt;What if I told you, you don't need side projects at all? You can progress in your career just fine without doing side projects. I think this is a lukewarm take at best, but some folks are very passionate about the need for side projects and disagree.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/26BRrSvJUa0crqw4E/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/26BRrSvJUa0crqw4E/giphy.gif" alt="A gif of Jeff Bridges in the Big Lebowski saying &amp;quot;Yeah, well, that's just, like, your opinion man.&amp;quot;" width="500" height="235"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my opinion, they're not necessary. &lt;em&gt;Do side projects if you want to. Don't let anyone tell you what you have to do.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;📣 &lt;strong&gt;Sound off&lt;/strong&gt; 📣 Do you have any tips for completing side projects? Let me know!&lt;/p&gt;

</description>
      <category>sideprojects</category>
      <category>tips</category>
    </item>
    <item>
      <title>CSS Pseudo-classes and Pseudo-elements</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Wed, 12 Feb 2020 14:25:42 +0000</pubDate>
      <link>https://forem.com/kayla/css-pseudo-classes-and-pseudo-elements-10a3</link>
      <guid>https://forem.com/kayla/css-pseudo-classes-and-pseudo-elements-10a3</guid>
      <description>&lt;h5&gt;
  
  
  CSS3 brought the distinction between pseudo-classes and pseudo-elements with the double-colon (::) syntax to denote the latter. Let's go over what pseudo-classes and pseudo-elements are and what they are used for!
&lt;/h5&gt;

&lt;p&gt;I won't go into EVERY pseudo-class and pseudo-element, which would likely bore you as the reader and me as the writer. Thankfully, someone has already created a complete guide to all of these at the time of writing! You can checkout &lt;a href="https://www.smashingmagazine.com/2016/05/an-ultimate-guide-to-css-pseudo-classes-and-pseudo-elements/"&gt;Ricardo Zea's An Ultimate Guide To CSS Pseudo Classes and Pseudo Elements&lt;/a&gt;. And, as always, &lt;a href="https://css-tricks.com/"&gt;CSS Tricks&lt;/a&gt; and the &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements"&gt;MDN's pseudo-class and pseudo-element docs&lt;/a&gt; are fantastic resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a pseudo-class?
&lt;/h2&gt;

&lt;p&gt;Pseudo-classes are like an "injected" class into an element. They have the same specificity as regular CSS classes since it behaves like a class. Pretty simple, they just act like CSS classes! &lt;/p&gt;

&lt;p&gt;You can use them to add styles in specific states, such as when a navigation item is active (using &lt;code&gt;:active&lt;/code&gt;) or a form element is disabled (&lt;code&gt;:disabled&lt;/code&gt;). You can also add styles to the element depending on where it is in relation to its siblings (&lt;code&gt;:nth-child(N)&lt;/code&gt;) or if the element is (&lt;code&gt;:is()&lt;/code&gt;) or is not (&lt;code&gt;:not()&lt;/code&gt;) a particular element or has a specific class, id, pseudo-class, or attribute selector.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a pseudo-element?
&lt;/h2&gt;

&lt;p&gt;A pseudo-element is like a virtual element. It doesn't exist in the DOM, but we can manipulate it as we would regular ole HTML. Since it is like targeting an element, pseudo-elements have the same specificity as an element selector.&lt;/p&gt;

&lt;p&gt;Pseudo-elements are great to use when you don't necessarily need or want to add an extra element to the DOM to accomplish a specific task. They can be used to bold the first line or letter (&lt;code&gt;::first-line&lt;/code&gt; and &lt;code&gt;::first-letter&lt;/code&gt; respectively) of a paragraph, or add visual-only information (like with &lt;code&gt;::before&lt;/code&gt; and &lt;code&gt;::after&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Considerations
&lt;/h2&gt;

&lt;p&gt;It's worth noting here that information placed in the &lt;code&gt;content&lt;/code&gt; property may not be accessible to assistive technologies and likely will not get translated into other languages, since that information does not exist in the document tree. We'll discuss this further in a dedicated blog post.&lt;/p&gt;

&lt;p&gt;Also since the double-colon (::) selector is new to CSS3, it's not supported by older browsers, namely older versions of Internet Explorer (IE8 and below). You could certainly use the single-colon (:) selector for both pseudo-classes and pseudo-elements for backward compatibility. As always, make sure you're considering where your site or application will be used before making the decision to use newer syntax. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📣 I intend to write a dedicated blog post for the &lt;code&gt;::before&lt;/code&gt; and &lt;code&gt;::after&lt;/code&gt; pseudo-elements. Are there any other pseudo-classes or pseudo-elements you'd like to learn more about? Let me know!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Title image from &lt;a href="https://undraw.co"&gt;Undraw&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>What are you reading right now?</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Mon, 21 Oct 2019 03:53:42 +0000</pubDate>
      <link>https://forem.com/kayla/what-are-you-reading-right-now-4jn</link>
      <guid>https://forem.com/kayla/what-are-you-reading-right-now-4jn</guid>
      <description>&lt;p&gt;I'm currently reading &lt;a href="https://www.smashingmagazine.com/printed-books/form-design-patterns/"&gt;&lt;em&gt;Form Design Patterns&lt;/em&gt; by Adam Silver&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What are you reading?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Title illustration from &lt;a href="https://undraw.co/illustrations"&gt;unDraw&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
      <category>books</category>
    </item>
    <item>
      <title>What's the most fun part of your job?</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Wed, 09 Oct 2019 19:07:45 +0000</pubDate>
      <link>https://forem.com/kayla/what-s-the-most-fun-part-of-your-job-6a7</link>
      <guid>https://forem.com/kayla/what-s-the-most-fun-part-of-your-job-6a7</guid>
      <description>&lt;p&gt;Lately, I've had a ton of fun doing the UI design for a new application we're building at work. I get to do some outreach at my job, which I also really enjoy. &lt;/p&gt;

&lt;p&gt;What's the most fun part of your job?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Title illustration from &lt;a href="https://undraw.co/illustrations"&gt;unDraw&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>fun</category>
      <category>devrel</category>
    </item>
    <item>
      <title>When should you ask for help?</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Fri, 04 Oct 2019 00:55:42 +0000</pubDate>
      <link>https://forem.com/kayla/when-should-you-ask-for-help-43o0</link>
      <guid>https://forem.com/kayla/when-should-you-ask-for-help-43o0</guid>
      <description>&lt;h5&gt;
  
  
  One of the biggest challenges I've seen for new developers is knowing when to ask for help. There are two ends of the spectrum: asking for help without first looking for an answer and working for days or weeks on one problem without asking for help. So... when is the best time to ask for help? I'll go over a few steps I like to take before asking someone to help.
&lt;/h5&gt;

&lt;h2&gt;
  
  
  1. Read the documentation.
&lt;/h2&gt;

&lt;p&gt;Sometimes a framework's or library's documentation is really all you need to solve a problem. &lt;/p&gt;

&lt;p&gt;Many open source projects will have at least some documentation in their &lt;code&gt;Readme&lt;/code&gt; on their GitHub page. Other projects will have a Storybook or other example code in or linked from their repos.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The documentation didn't have what I needed or sucks, what do I do next?&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Google the problem.
&lt;/h2&gt;

&lt;p&gt;Unless you're on the absolute bleeding edge of tech and have an issue, someone has probably encountered the problem you're having before. This one can sometimes replace "Read the documentation" since googling will sometimes take you to the docs.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Try out some solutions.
&lt;/h2&gt;

&lt;p&gt;You probably found something that &lt;em&gt;may&lt;/em&gt; be useful in your research. Don't be afraid to try those out! Maybe you'll stumble across the solution on your own and learn something in the process. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;So I found some stuff, but nothing is exactly what I need...&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Ask for help.
&lt;/h2&gt;

&lt;p&gt;It's important to not spend too long in the process between the first three steps. How long each of those steps take is dependent on the problem. However, if you're stuck or notice yourself circling back to the same incorrect solutions, ask someone to help! They may have run into that problem before, or at least run into a similar problem, and have some insight on how to fix it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't be afraid to ask for help if you need it.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Write down how you solved this problem. (Optional, but recommended)
&lt;/h2&gt;

&lt;p&gt;When you solve the problem, write out a little blurb or a blog post about your problem and how you fixed it. This way, you'll be able to help your future self if you encounter that problem again or more easily help someone else that runs into that problem.&lt;/p&gt;

&lt;h5&gt;
  
  
  📣 When do you decide it's the right time to ask for help? Do you have any key indicators that you're stuck? 📣
&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;Title illustration from &lt;a href="https://undraw.co/illustrations"&gt;unDraw&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>Document Structure Roles: Table Roles (Introduction to WAI-ARIA Part 3)</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Fri, 27 Sep 2019 02:43:59 +0000</pubDate>
      <link>https://forem.com/kayla/document-structure-roles-table-roles-introduction-to-wai-aria-part-3-2ca1</link>
      <guid>https://forem.com/kayla/document-structure-roles-table-roles-introduction-to-wai-aria-part-3-2ca1</guid>
      <description>&lt;h5&gt;
  
  
  In the first section of this series, I'll be talking about roles. Today's article is about ARIA's table roles. If you missed &lt;a href="https://dev.to/kaylasween/landmark-roles-introduction-to-wai-aria-part-2-2kn7"&gt;my Landmark Roles post&lt;/a&gt;, go check it out!
&lt;/h5&gt;

&lt;p&gt;Document structure roles add context to structural page content that is not interactive. Some of these roles are redundant if you use semantic HTML to write your markup. Document structure roles differ from landmark roles in that they describe smaller areas that organize content rather than the large sections landmark roles indicate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table Roles
&lt;/h2&gt;

&lt;p&gt;The roles for tables all have corresponding semantic HTML elements, which are preferable to using the following roles on more generic elements. Remember, always use semantic HTML when possible! As a side note, tables are for displaying data in a tabular manner (rows and columns). Please don't use tables as a way to lay out your page. Learning to use &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout"&gt;CSS grid&lt;/a&gt; will benefit you and your users much more!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;role="table"&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;table&lt;/code&gt; role indicates that the data is contained within a non-interactive table structure. That is to say, it organizes data into columns and rows. An element with the &lt;code&gt;table&lt;/code&gt; role must contain elements with the &lt;code&gt;row&lt;/code&gt; role. The &lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt; element has an implicit &lt;code&gt;role="table"&lt;/code&gt; attribute.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;role="rowgroup"&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;rowgroup&lt;/code&gt; role denotes a group of rows within a table. This corresponds with the &lt;code&gt;&amp;lt;thead&amp;gt;&lt;/code&gt; (or table head), &lt;code&gt;&amp;lt;tbody&amp;gt;&lt;/code&gt; (or table body), and &lt;code&gt;&amp;lt;tfoot&amp;gt;&lt;/code&gt; (or table footer) elements. An element with the &lt;code&gt;rowgroup&lt;/code&gt; role must be contained within an element with the &lt;code&gt;table&lt;/code&gt; or &lt;code&gt;grid&lt;/code&gt; role. (We'll discuss the &lt;code&gt;grid&lt;/code&gt; role in the widgets section of this series.)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;role="row"&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;row&lt;/code&gt; role denotes a row within a table. This directly corresponds with the &lt;code&gt;&amp;lt;tr&amp;gt;&lt;/code&gt; (or table row) element. Elements with the &lt;code&gt;row&lt;/code&gt; role must be contained by an element with the &lt;code&gt;table&lt;/code&gt;, &lt;code&gt;grid&lt;/code&gt;, &lt;code&gt;treegrid&lt;/code&gt;, or &lt;code&gt;rowgroup&lt;/code&gt; role.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;role="columnheader"&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;columnheader&lt;/code&gt; role denotes the element's contents as the header for a column of data. The &lt;code&gt;&amp;lt;th&amp;gt;&lt;/code&gt; (or table header) element has an implicit role of &lt;code&gt;columnheader&lt;/code&gt;. An element with the &lt;code&gt;columnheader&lt;/code&gt; role must be a descendant of an element with the &lt;code&gt;row&lt;/code&gt; role.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;role="rowheader"&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;rowheader&lt;/code&gt; role establishes the relationship between that cell and all the cells within the same row. The &lt;code&gt;&amp;lt;th&amp;gt;&lt;/code&gt; (or table header) element also denotes an element with the implicit role of &lt;code&gt;rowheader&lt;/code&gt;. An element with the &lt;code&gt;rowheader&lt;/code&gt; role must be contained within an element with the &lt;code&gt;row&lt;/code&gt; role.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;role="cell"&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;cell&lt;/code&gt; role denotes the element's contents as data in a table cell. The &lt;code&gt;&amp;lt;td&amp;gt;&lt;/code&gt; (or table data) element has an implicit role of &lt;code&gt;cell&lt;/code&gt;. An element with the &lt;code&gt;row&lt;/code&gt; role must belong to an element with the &lt;code&gt;row&lt;/code&gt; role.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;table&amp;gt;                       &amp;lt;!--role="table"--&amp;gt;
  &amp;lt;thead&amp;gt;                     &amp;lt;!--role="rowgroup"--&amp;gt;
    &amp;lt;tr&amp;gt;                      &amp;lt;!--role="row"--&amp;gt;
      &amp;lt;th&amp;gt;Pet Name&amp;lt;/th&amp;gt;       &amp;lt;!--role="columnheader"--&amp;gt;
      &amp;lt;th&amp;gt;Type of Animal&amp;lt;/th&amp;gt;
      &amp;lt;th&amp;gt;Age&amp;lt;/th&amp;gt;
      &amp;lt;th&amp;gt;Hobbies&amp;lt;/th&amp;gt;
    &amp;lt;/tr&amp;gt;
  &amp;lt;/thead&amp;gt;
  &amp;lt;tbody&amp;gt;                     &amp;lt;!--role="rowgroup"--&amp;gt;
    &amp;lt;tr&amp;gt;                      &amp;lt;!--role="row"--&amp;gt;
      &amp;lt;th&amp;gt;Captain&amp;lt;/th&amp;gt;        &amp;lt;!--role="rowheader"--&amp;gt;
      &amp;lt;td&amp;gt;Dog&amp;lt;/td&amp;gt;            &amp;lt;!--role="cell"--&amp;gt;
      &amp;lt;td&amp;gt;7&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;Sleeping&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;tr&amp;gt;
      &amp;lt;th&amp;gt;Piper&amp;lt;/th&amp;gt;
      &amp;lt;td&amp;gt;Dog&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;Chasing bugs&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;tr&amp;gt;
      &amp;lt;th&amp;gt;Skeletor Beletor&amp;lt;/th&amp;gt;
      &amp;lt;td&amp;gt;Cat&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;
      &amp;lt;td&amp;gt;Skulking around&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
  &amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;
  
  
  Let's wrap up this week's lesson!
&lt;/h3&gt;

&lt;p&gt;As far as tables go, as long as you're using semantic HTML, you don't really need to add these ARIA roles. However, learning about them can give you an appreciation for how much work semantic HTML does for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next week, we'll continue learning about document structure roles!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>Landmark Roles (Introduction to WAI-ARIA Part 2)</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Fri, 20 Sep 2019 00:21:53 +0000</pubDate>
      <link>https://forem.com/kayla/landmark-roles-introduction-to-wai-aria-part-2-2kn7</link>
      <guid>https://forem.com/kayla/landmark-roles-introduction-to-wai-aria-part-2-2kn7</guid>
      <description>&lt;h5&gt;
  
  
  In the first section of this series, I'll be talking about roles. Today's article is about ARIA's landmark roles.
&lt;/h5&gt;

&lt;p&gt;Landmark roles describe large areas of content to make it easier for assistive technologies (ATs) to skip over or navigate between areas of the page. &lt;/p&gt;

&lt;p&gt;Browsers are pretty smart. Sometimes they know what you mean when you use semantic markup. I'll point out which of these roles are implicitly assigned to which semantic HTML elements. When using these elements, it's typically considered redundant to also use the corresponding ARIA roles. However, it won't hurt to use them.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;role="application"&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;application&lt;/code&gt; role declares the section of the page as an application...seems obvious enough. Typically, pages are declared as a web document by default. This role disables typical navigation controls for ATs because the application may need some of those navigational controls for different functions. For example, if the application is a game, the application area may need the up and down arrow keys to move an in-game object. For this reason, its use is strongly discouraged.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;role="banner"&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;banner&lt;/code&gt; role denotes site-wide information. This is typically where the company name and logo would go. It may also contain a search bar for the site. The &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; element has an implicit role of &lt;code&gt;banner&lt;/code&gt;. The &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; tag or less semantic tags with the &lt;code&gt;role="banner"&lt;/code&gt; attribute  (such as &lt;code&gt;&amp;lt;div role="banner"&amp;gt;&lt;/code&gt;, which is &lt;strong&gt;not recommended&lt;/strong&gt;) should be a direct child of the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; element.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;role="complementary"&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;complementary&lt;/code&gt; role denotes secondary information. This information should complement the main focus of the page, but be able to be understood on its own. The &lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt; element has an implicit role of &lt;code&gt;complementary&lt;/code&gt;. (Screen readers &lt;a href="https://www.scottohara.me/blog/2019/04/05/landmarks-exposed.html#testing-nvda-with-ie11-edge-firefox-and-chrome"&gt;mostly support &lt;code&gt;aside&lt;/code&gt; without explicit roles&lt;/a&gt;.) If this blog post were its own page, the suggested reading links at the bottom would be a good candidate for the &lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt; element or other element with the &lt;code&gt;complementary&lt;/code&gt; role. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;role="contentinfo"&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;contentinfo&lt;/code&gt; role primarily applies to the footer of the website. It contains information about the document such as privacy and copyright information. It originally was intended to denote page specific information but seems to have shifted to covering all information in the footer of the page. The &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; element has an implicit role of &lt;code&gt;contentinfo&lt;/code&gt;. It is important to note that some screenreader/browser combinations do not expose footers as a landmark. I recommend checking out &lt;a href="https://www.scottohara.me/blog/2019/04/05/landmarks-exposed.html"&gt;Scott O'Hara's article, "HTML5 Landmarks Exposed."&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;role="form"&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; element has an implicit role of &lt;code&gt;form&lt;/code&gt; when also using the &lt;code&gt;aria-label&lt;/code&gt; or &lt;code&gt;aria-labelledby&lt;/code&gt; attributes to label the form, as shown in the code sample below. It is important to note that some screenreader/browser combinations do not expose forms as a landmark even with &lt;code&gt;aria-label&lt;/code&gt; or &lt;code&gt;aria-labelledby&lt;/code&gt;. To combat this, you can add a &lt;code&gt;role="form"&lt;/code&gt; attribute to your &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; element. Again, I recommend &lt;a href="https://www.scottohara.me/blog/2019/04/05/landmarks-exposed.html"&gt;Scott O'Hara's article, "HTML5 Landmarks Exposed."&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;h1 id="heading"&amp;gt;Name Collection Form&amp;lt;/h1&amp;gt;
&amp;lt;form role="form" aria-labelledby="#heading"&amp;gt;
  &amp;lt;label for="name"&amp;gt;Name&amp;lt;/label&amp;gt;
  &amp;lt;input type="text" id="name" /&amp;gt;
  &amp;lt;button type="submit"&amp;gt;Submit&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;role="main"&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The main content of the page. There should only be one main section per page, which can be denoted by the &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; element. The &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; element has an implicit role of &lt;code&gt;main&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Denoting the main section of your page, paired with a skip link, can help sighted keyboard users navigate to the content of the page faster. &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;a href="#main"&amp;gt;Skip to Main Content&amp;lt;/a&amp;gt;
&amp;lt;nav&amp;gt;
  &amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;Home&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;About&amp;lt;/li&amp;gt;
  &amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;
&amp;lt;main id="main"&amp;gt;
  ...Content!...
&amp;lt;/main&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;role="navigation"&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt; element has an implicit role of &lt;code&gt;navigation&lt;/code&gt;. If using more than one navigation per page, it is important to differentiate them with an &lt;code&gt;aria-label&lt;/code&gt; attribute on the &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt; element. This includes any type of secondary navigation, breadcrumbs, and pagination.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;nav aria-label="Site Navigation"&amp;gt;
  &amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;Home&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;About&amp;lt;/li&amp;gt;
  &amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;
&amp;lt;nav aria-label="Page Navigation"&amp;gt;
  &amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;First Section&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;Second Section&amp;lt;/li&amp;gt;
  &amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;role="region"&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;region&lt;/code&gt; role is typically used when there's not another landmark role the content will fit in. The &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; element has an implicit role of &lt;code&gt;region&lt;/code&gt;. Use this one sparingly because you wouldn't want your AT user wading through a sea of meaningless &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;s or &lt;code&gt;region&lt;/code&gt;s!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;role="search"&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;search&lt;/code&gt; role denotes the section that contains the search for the website or for the web document. This can be contained within the &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; element. There's no specific search element, so this role needs to be on a &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; element that surrounds the search.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;h1 id="searchHeading"&amp;gt;Search&amp;lt;/h1&amp;gt;
&amp;lt;form role="search" aria-labelledby="#searchHeading"&amp;gt;
  &amp;lt;label for="search"&amp;gt;Search&amp;lt;/label&amp;gt;
  &amp;lt;input type="search" id="search" /&amp;gt;
  &amp;lt;button type="submit"&amp;gt;Search&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Here's a CodePen example of some of these landmark roles in action.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/kaylasween/embed/yLBxmMg?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Suggested reading about landmark roles
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://a11yproject.com/posts/aria-landmark-roles/"&gt;Quick tip: ARIA Landmark Roles and HTML5 Implicit Mapping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nomensa.com/blog/2010/what-are-wai-aria-document-landmark-roles"&gt;What Are WAI-ARIA Document Landmark Roles?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.scottohara.me/blog/2018/03/03/landmarks.html"&gt;Accessible Landmarks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.scottohara.me/blog/2019/04/05/landmarks-exposed.html"&gt;HTML5 Landmarks Exposed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Next week, we'll talk about document structure roles! Please feel free to leave any questions you may have about landmark roles in the comments!
&lt;/h5&gt;

</description>
      <category>a11y</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>What is WAI-ARIA? (Introduction to WAI-ARIA Part 1)</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Fri, 13 Sep 2019 02:53:09 +0000</pubDate>
      <link>https://forem.com/kayla/what-is-wai-aria-introduction-to-wai-aria-part-1-3303</link>
      <guid>https://forem.com/kayla/what-is-wai-aria-introduction-to-wai-aria-part-1-3303</guid>
      <description>&lt;h5&gt;
  
  
  WAI-ARIA stands for Web Accessibility Initiative – Accessible Rich Internet Applications... What a mouthful! WAI-ARIA is a technical specification written by the World Wide Web Consortium (W3C) that specifies how to improve the accessibility of a website or web application with supplemental HTML attributes. It helps us add more context to UI elements that browsers and assistive technologies can use to assist the user in understanding the content of a site or application. Over the coming posts, we'll discuss WAI-ARIA a little more in depth.
&lt;/h5&gt;

&lt;h1&gt;
  
  
  A complement to semantic HTML
&lt;/h1&gt;

&lt;p&gt;Semantic HTML is markup that provides context for its contents. For more information about semantic HTML, check out my post, "The Importance of Semantic HTML." WAI-ARIA is in no way meant to replace semantic HTML. On its own, semantic HTML and general good usability practices can offer a lot when it comes to accessibility. Sometimes, we can do more to provide users of assistive technologies with better context. This is where WAI-ARIA comes in. It helps fill in the gaps that may be left behind by semantic HTML.&lt;/p&gt;

&lt;p&gt;Let me reiterate: &lt;strong&gt;WAI-ARIA is not a replacement for semantic HTML&lt;/strong&gt;. It's also &lt;strong&gt;not a quick fix for poor usability or accessibility practices&lt;/strong&gt;. You can't just put WAI-ARIA into an unusable application and expect it to be more usable... even if it's "WCAG compliant!" It's kind of like putting lipstick on a pig. I recommend reading the &lt;a href="https://webaim.org/blog/accessibility-lipstick-on-a-usability-pig/" rel="noopener noreferrer"&gt;article, "Accessibility Lipstick on a Usability Pig," by Jared Smith&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnlv3yrje0p9xfub9crow.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnlv3yrje0p9xfub9crow.png" alt="A pig emoji with lipstick on it saying that's metaphorically your poor usability and a lipstick emoji that is metaphorically WAI-ARIA for your poor usability."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  In the spec
&lt;/h1&gt;

&lt;p&gt;The WAI-ARIA specification talks about three main features: roles, states, and properties. Roles tell browsers and assistive technologies what the element is or what it does. States define the current status of an element and can change throughout the lifecycle of the app. Properties give extra meaning or semantics to UI elements. We'll go into more detail on each of these in this series.&lt;/p&gt;

&lt;h5&gt;
  
  
  I look forward to getting this series going! If there is a particular WAI-ARIA topic you'd like me to write about, please let me know in the comments!
&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;Title illustration from &lt;a href="https://undraw.co" rel="noopener noreferrer"&gt;unDraw&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>html</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The Soft Skills of Interviewing CHEAT SHEET EDITION</title>
      <dc:creator>Kayla Sween</dc:creator>
      <pubDate>Fri, 06 Sep 2019 00:03:21 +0000</pubDate>
      <link>https://forem.com/kayla/the-soft-skills-of-interviewing-cheat-sheet-edition-2ica</link>
      <guid>https://forem.com/kayla/the-soft-skills-of-interviewing-cheat-sheet-edition-2ica</guid>
      <description>&lt;p&gt;Based on a suggestion from Andrew Harpin, here's a cheat sheet version of The Soft Skills of Interviewing! 🎉 &lt;br&gt;
&lt;/p&gt;
&lt;div class="liquid-comment"&gt;
    &lt;div class="details"&gt;
      &lt;a href="/andrewharpin"&gt;
        &lt;img class="profile-pic" 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%2Fuser%2Fprofile_image%2F132193%2F9e0fd17f-8cfb-4f75-a14a-f4287cce8403.JPG" alt="andrewharpin profile image"&gt;
      &lt;/a&gt;
      &lt;a href="/andrewharpin"&gt;
        &lt;span class="comment-username"&gt;Andrew Harpin&lt;/span&gt;
      &lt;/a&gt;
      &lt;span class="color-base-30 px-2 m:pl-0"&gt;•&lt;/span&gt;

&lt;a href="https://dev.to/andrewharpin/comment/e2ci" class="comment-date crayons-link crayons-link--secondary fs-s"&gt;
  &lt;time class="date-short-year"&gt;
    Aug 11 '19
  &lt;/time&gt;

&lt;/a&gt;

    &lt;/div&gt;
    &lt;div class="body"&gt;
      

&lt;p&gt;Excellent article, suggest after a week or so, collecting these suggestions and those from the comments into a cheat sheet.&lt;/p&gt;



    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;If you haven't read The Soft Skills of Interviewing, go check it out!&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;div class="ltag__link__content"&gt;
    &lt;div class="missing"&gt;
      &lt;h2&gt;Article No Longer Available&lt;/h2&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h1&gt;
  
  
  Do your research
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Check out company's social media&lt;/li&gt;
&lt;li&gt;Look at Glassdoor reviews, but look for trends not individual opinions&lt;/li&gt;
&lt;li&gt;Think of questions to ask during the interview based on your research&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Relax, Be Kind, Be yourself
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Meditate before going to an interview&lt;/li&gt;
&lt;li&gt;Don't pretend to be someone you're not&lt;/li&gt;
&lt;li&gt;Show your nerves a bit; you're a person, not an act&lt;sup&gt;2&lt;/sup&gt; &lt;/li&gt;
&lt;li&gt;Interviews are a good place to find out if the company will be a good fit for you!&lt;/li&gt;
&lt;li&gt;Be excited and interested!&lt;sup&gt;1&lt;/sup&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Interview your Interviewer
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Choose questions to ask your interviewer that will help you determine if the company, manager, and group will be a good fit for you. Here are some examples: 

&lt;ul&gt;
&lt;li&gt;What do you expect me to accomplish in the first 90 days?&lt;/li&gt;
&lt;li&gt;What does a typical day in this position look like?&lt;/li&gt;
&lt;li&gt;Do you have any reservations about hiring me for this position at this point? If so, what are they?&lt;/li&gt;
&lt;li&gt;What could I learn now that would best prepare me to get started right away if I were hired?&lt;sup&gt;2&lt;/sup&gt;
&lt;/li&gt;
&lt;li&gt;What do you like most and you dislike most about what you do?&lt;sup&gt;1&lt;/sup&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h1&gt;
  
  
  ALWAYS send a thank-you note!
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Send a thank-you email within 24 hours of your interview&lt;/li&gt;
&lt;li&gt;Reference something you talked about in your interview to make it more personal&lt;sup&gt;3&lt;/sup&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  I hope this helps! If anyone has any additional suggestions, leave them in the comments! I'll check back periodically and add them to this cheat sheet.
&lt;/h5&gt;

&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;
&lt;div class="liquid-comment"&gt;
    &lt;div class="details"&gt;
      &lt;a href="/gergelyorosz"&gt;
        &lt;img class="profile-pic" 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%2Fuser%2Fprofile_image%2F207574%2Fbde7de5d-a161-40af-b00b-1d819a18a8dc.png" alt="gergelyorosz profile image"&gt;
      &lt;/a&gt;
      &lt;a href="/gergelyorosz"&gt;
        &lt;span class="comment-username"&gt;Gergely Orosz&lt;/span&gt;
      &lt;/a&gt;
      &lt;span class="color-base-30 px-2 m:pl-0"&gt;•&lt;/span&gt;

&lt;a href="https://dev.to/gergelyorosz/comment/e15g" class="comment-date crayons-link crayons-link--secondary fs-s"&gt;
  &lt;time class="date-short-year"&gt;
    Aug 9 '19
  &lt;/time&gt;

    &lt;span class="hidden m:inline-block"&gt;• Edited on &lt;time class="date-no-year"&gt;Aug 9&lt;/time&gt;&lt;/span&gt;
    &lt;span class="m:hidden"&gt;• Edited&lt;/span&gt;
&lt;/a&gt;

    &lt;/div&gt;
    &lt;div class="body"&gt;
      

&lt;p&gt;Very nice post, thanks for sharing! All of this is great advice.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Interview Your Interviewer&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As a long-time hiring manager, this is &lt;strong&gt;such&lt;/strong&gt; a good tip! Not only do you get to learn more about the interviewer and the job, but you also get to stand out from the crowd. I would say less than a quarter of all candidates do this. This who do, I can tell are curious, focused and it makes for a much more interesting interview for both of us. &lt;/p&gt;

&lt;p&gt;A good question that I very rarely get asked, but would recommend others to do is &lt;em&gt;”what is the thing you like the best and you dislike the most about what you do?”&lt;/em&gt;. You’ll be surprised at the type of honest answers you get.&lt;/p&gt;

&lt;p&gt;One more tip I have is &lt;strong&gt;be excited/interested&lt;/strong&gt; during this session. After understanding more about the company, position and team, reflect on what things sound exciting and make you especially interested. Again, from experience, many candidates focus purely on the “dry” questions and try to keep emotions in check, suppressing even the positive ones. &lt;/p&gt;

&lt;p&gt;Share when you’re excited or pleasantly surprised! The hiring manager is looking for people who complement the team well and positive/curious/excited people always do.&lt;/p&gt;



    &lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;sup&gt;2&lt;/sup&gt;&lt;div class="liquid-comment"&gt;
    &lt;div class="details"&gt;
      &lt;a href="/codemouse92"&gt;
        &lt;img class="profile-pic" 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%2Fuser%2Fprofile_image%2F2538%2Fd346ffa9-9c8f-4fb3-b367-0fbcc0bb2889.png" alt="codemouse92 profile image"&gt;
      &lt;/a&gt;
      &lt;a href="/codemouse92"&gt;
        &lt;span class="comment-username"&gt;Jason C. McDonald&lt;/span&gt;
      &lt;/a&gt;
      &lt;span class="color-base-30 px-2 m:pl-0"&gt;•&lt;/span&gt;

&lt;a href="https://dev.to/codemouse92/comment/e18n" class="comment-date crayons-link crayons-link--secondary fs-s"&gt;
  &lt;time class="date-short-year"&gt;
    Aug 9 '19
  &lt;/time&gt;

&lt;/a&gt;

    &lt;/div&gt;
    &lt;div class="body"&gt;
      

&lt;p&gt;Fantastic! As a hiring manager myself (among other things), I recommend &lt;em&gt;all&lt;/em&gt; of the above.&lt;/p&gt;

&lt;p&gt;I'd also add, &lt;strong&gt;don't be afraid if your nerves show a bit.&lt;/strong&gt; It just shows the interviewer you're a real person, not an act. (In fact, half my job is to get you off-script &lt;em&gt;anyway&lt;/em&gt;; I've learned that if the person I'm interviewing displays absolute, unyielding confidence, they invariably have an ego the size of Alaska.)&lt;/p&gt;

&lt;p&gt;By the way, another question I like asking when I'm the one &lt;em&gt;being&lt;/em&gt; interviewed is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What could I learn &lt;em&gt;now&lt;/em&gt; that would best prepare me to get started right away if I were hired?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not only does that usually leave a good impression, but it also gives me some valuable information about what I'll need to know to do the job.&lt;/p&gt;



    &lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;sup&gt;3&lt;/sup&gt;&lt;div class="liquid-comment"&gt;
    &lt;div class="details"&gt;
      &lt;a href="/codeability"&gt;
        &lt;img class="profile-pic" 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%2Fuser%2Fprofile_image%2F207661%2Fe77d8769-4c75-4b70-81f4-3d2fe2993966.jpg" alt="codeability profile image"&gt;
      &lt;/a&gt;
      &lt;a href="/codeability"&gt;
        &lt;span class="comment-username"&gt;E.J. Mason&lt;/span&gt;
      &lt;/a&gt;
      &lt;span class="color-base-30 px-2 m:pl-0"&gt;•&lt;/span&gt;

&lt;a href="https://dev.to/codeability/comment/e6i8" class="comment-date crayons-link crayons-link--secondary fs-s"&gt;
  &lt;time class="date-short-year"&gt;
    Aug 15 '19
  &lt;/time&gt;

&lt;/a&gt;

    &lt;/div&gt;
    &lt;div class="body"&gt;
      

&lt;p&gt;Thank you for your thank-you-note tip! I always tell my students the same, and that their note should include specific references to topics discussed in the interview. People will sense the personal touch and feel more engaged. :)&lt;/p&gt;



    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>career</category>
      <category>beginners</category>
      <category>interview</category>
    </item>
  </channel>
</rss>
