<?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: Epic Lee</title>
    <description>The latest articles on DEV Community by Epic Lee (@epic_qi).</description>
    <link>https://dev.to/epic_qi</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%2F264845%2F04c63a6b-e4e4-4b08-ba1d-285a3af616e9.jpg</url>
      <title>DEV Community: Epic Lee</title>
      <link>https://dev.to/epic_qi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/epic_qi"/>
    <language>en</language>
    <item>
      <title>I created a Twitter bot to get Elon Musk to follow me</title>
      <dc:creator>Epic Lee</dc:creator>
      <pubDate>Wed, 08 Jul 2020 20:21:15 +0000</pubDate>
      <link>https://dev.to/epic_qi/i-created-a-twitter-bot-to-get-elon-musk-to-follow-me-4poj</link>
      <guid>https://dev.to/epic_qi/i-created-a-twitter-bot-to-get-elon-musk-to-follow-me-4poj</guid>
      <description>&lt;p&gt;Due to boredom at work, I thought of an idea. &lt;/p&gt;

&lt;p&gt;What if I tweeted everyday something like &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Day XXX, has &lt;a href="https://twitter.com/@ElonMusk" rel="noopener noreferrer"&gt;@ElonMusk&lt;/a&gt; followed me yet?" &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If he actually followed me, that would be amazing, and I could write it on my resume.&lt;/p&gt;

&lt;p&gt;So off I went. &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create Twitter developer account
&lt;/h2&gt;

&lt;p&gt;I created a new twitter account called &lt;a href="https://twitter.com/ElonMuskFan8" rel="noopener noreferrer"&gt;@ElonMuskFan8&lt;/a&gt;. To grab Elon's interest, I made my profile a picture of him next to Mars. Then I got API keys from Twitter's &lt;a href="https://developer.twitter.com/en/portal/dashboard" rel="noopener noreferrer"&gt;developer site&lt;/a&gt;. One gotcha I found was, I had to enable write access and THEN regenerate my API keys and secrets or else I'd get 401 errors when trying to POST a tweet.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8hlty56dew3zmfucpqqb.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%2Fi%2F8hlty56dew3zmfucpqqb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create long-running process that sends one tweet a day.
&lt;/h2&gt;

&lt;p&gt;I setup a simple nodeJS project, then installed twitter and express. My app would simply start a server and run an interval, checking each minute if it was 9:30 am. If so, I would send a tweet that said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Day XX: Has &lt;a href="https://twitter.com/@ElonMusk" rel="noopener noreferrer"&gt;@ElonMusk&lt;/a&gt;  followed me yet?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Step 3: Deploy my app.
&lt;/h2&gt;

&lt;p&gt;For serving my app I chose Heroku. I followed their instructions &lt;a href="https://devcenter.heroku.com/articles/getting-started-with-nodejs" rel="noopener noreferrer"&gt;here&lt;/a&gt; and was able to deploy my app within 20 minutes. I also stored my API secrets in heroku's environment variables so I don't expose them in my Github repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Wait
&lt;/h2&gt;

&lt;p&gt;Now we wait and see if Elon Musk ever replies or follows back. It may take months or years, but we don't care since the bot is taking care of it for us.&lt;/p&gt;

&lt;p&gt;If you like these types of posts let me know!&lt;/p&gt;

&lt;p&gt;My code: &lt;a href="https://github.com/qikevinjkw/elonmuskfan" rel="noopener noreferrer"&gt;https://github.com/qikevinjkw/elonmuskfan&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Practical JS Interview Questions</title>
      <dc:creator>Epic Lee</dc:creator>
      <pubDate>Mon, 08 Jun 2020 20:34:03 +0000</pubDate>
      <link>https://dev.to/epic_qi/practical-js-interview-questions-2nef</link>
      <guid>https://dev.to/epic_qi/practical-js-interview-questions-2nef</guid>
      <description>&lt;p&gt;Let's face it, algorithms are a useless test of a candidate's experience as a frontend developer. Someone who can construct a binary tree from preorder and inorder traversal doesn't mean they can create an amazing UI with an awesome user experience. It means they got lucky you asked them a question they've seen before.&lt;/p&gt;

&lt;p&gt;What I like to give are mini-projects the candidate can solve in a 30–45 minute timeframe. They can use any framework they like such as React, Angular, or even vanilla JavaScript! Since my firm focuses more on functionality than UI, I tend not to not be so picky about CSS. But adjust as needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Create a stopwatch
&lt;/h2&gt;

&lt;p&gt;Ask them to create a simple stopwatch. It should have buttons to start, pause, and stop the timer. I created a simple example.&lt;br&gt;
Gotchas:&lt;br&gt;
Click the 'Start' button multiple times and see if multiple intervals are created. Most candidates make this mistake.&lt;br&gt;
Ensure 'Pause' button is hidden when the stopwatch hasn't started.&lt;/p&gt;

&lt;p&gt;Bonus questions:&lt;br&gt;
style the stopwatch&lt;br&gt;
show milliseconds, minutes and hours&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Create a todo list
&lt;/h2&gt;

&lt;p&gt;Enough said, so many tutorials out there about this. Tweak the problem however you like.&lt;br&gt;
Bonus questions:&lt;br&gt;
add pagination&lt;br&gt;
make a todo editable&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Create a simple upvote tool
&lt;/h2&gt;

&lt;p&gt;This is a simple polling tool, similar to Slido, that let's users ask questions and upvote the questions so the most popular ones are shown on top. See example.&lt;br&gt;
Gotchas:&lt;br&gt;
Questions should be sorted by upvotes&lt;br&gt;
When a question is upvoted past another question, the one with the highest upvotes should move to the top&lt;br&gt;
Handle duplicate questions&lt;/p&gt;

&lt;p&gt;Bonus questions:&lt;br&gt;
Make questions editable&lt;br&gt;
Add delete button next to each question&lt;br&gt;
Style the app&lt;/p&gt;

&lt;p&gt;If the user finishes ahead of time, I will usually ask them some JavaScript related questions. You can find a good list of them here.&lt;br&gt;
Hope this helped!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why Angular Sucks</title>
      <dc:creator>Epic Lee</dc:creator>
      <pubDate>Sat, 06 Jun 2020 15:12:01 +0000</pubDate>
      <link>https://dev.to/epic_qi/why-angular-sucks-26jn</link>
      <guid>https://dev.to/epic_qi/why-angular-sucks-26jn</guid>
      <description>&lt;p&gt;I wrote an article on why I think Angular sucks &lt;a href="https://medium.com/@devinlijkw/why-angular-sucks-c90f4e734231"&gt;https://medium.com/@devinlijkw/why-angular-sucks-c90f4e734231&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
