<?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: Harsh Vardhan</title>
    <description>The latest articles on DEV Community by Harsh Vardhan (@harsh_vardhhan).</description>
    <link>https://dev.to/harsh_vardhhan</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%2F439519%2Faf305daa-c157-4165-8a81-ecaf1469f11f.jpg</url>
      <title>DEV Community: Harsh Vardhan</title>
      <link>https://dev.to/harsh_vardhhan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harsh_vardhhan"/>
    <language>en</language>
    <item>
      <title>Adding new features to my open source (React + Django) job board</title>
      <dc:creator>Harsh Vardhan</dc:creator>
      <pubDate>Thu, 28 Jan 2021 18:40:50 +0000</pubDate>
      <link>https://dev.to/harsh_vardhhan/adding-new-features-to-my-open-source-react-django-job-board-746</link>
      <guid>https://dev.to/harsh_vardhhan/adding-new-features-to-my-open-source-react-django-job-board-746</guid>
      <description>&lt;p&gt;A few days ago I &lt;a href="https://dev.to/harsh_vardhhan/open-sourcing-my-automated-job-board-reactjs-django-pbg"&gt;wrote a blog&lt;/a&gt; on my recently built open source job board. Since then I have added some new features. Built an admin login so owner of the job board can -&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Post jobs manually to the job board&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/36DFsjmBejQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Edit job posts (even the ones which are scraped from the internet)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/JVvcek-Hwas"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What will you learn by these new features&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Django Authentication&lt;/strong&gt; for creating the admin functionality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Firebase&lt;/strong&gt; for uploading image of job post.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What feature I plan to add next&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Integrate &lt;strong&gt;stripe payment&lt;/strong&gt; for posting paid jobs. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;a href="https://github.com/TrakBit/fullstackbot-backend"&gt;Back-End&lt;/a&gt; &amp;amp; &lt;a href="https://github.com/TrakBit/FullStackBot"&gt;Front-End&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.fullstackbot.com/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XQCWjHda--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wyo7ixlmesq0otbwpjat.jpg" alt="FullStackBot"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>django</category>
      <category>javascript</category>
      <category>python</category>
    </item>
    <item>
      <title>Open sourcing my automated job board (ReactJs + Django)</title>
      <dc:creator>Harsh Vardhan</dc:creator>
      <pubDate>Tue, 19 Jan 2021 16:44:37 +0000</pubDate>
      <link>https://dev.to/harsh_vardhhan/open-sourcing-my-automated-job-board-reactjs-django-pbg</link>
      <guid>https://dev.to/harsh_vardhhan/open-sourcing-my-automated-job-board-reactjs-django-pbg</guid>
      <description>&lt;p&gt;Recently I had been building a job board using ReactJs and Django. I aimed to keep it as a closed source project. But then I thought there is too much for me to share about in this project. Thus I decided to open-source this project.&lt;/p&gt;

&lt;p&gt;So what's automated about this project? Well, I aim to automate numerous aspects of this project.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Scrapes jobs from other sites&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;It scrapes jobs from StackOverflow for now. I aim to add more data sources in the future. The web scraper runs in the background celery worker.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Dynamically creates job filter tags&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The job board creates filter tags in parallel as it fetches jobs. Thus allowing to filter job as per the technology.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Future Roadmap&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Integrate Stripe payment for posting sponsored jobs&lt;/li&gt;
&lt;li&gt;Let candidates post their CV (without revealing contact information to all)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Link&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/TrakBit/fullstackbot-backend"&gt;Back-End&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/TrakBit/FullStackBot"&gt;Front-End&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read a follow up blog on the job board &lt;a href="https://dev.to/harsh_vardhhan/adding-new-features-to-my-open-source-react-django-job-board-746"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>django</category>
      <category>javascript</category>
      <category>python</category>
    </item>
    <item>
      <title>Why full-stack developer isn't a myth in 2021</title>
      <dc:creator>Harsh Vardhan</dc:creator>
      <pubDate>Sun, 10 Jan 2021 13:53:35 +0000</pubDate>
      <link>https://dev.to/harsh_vardhhan/why-full-stack-developer-isn-t-a-myth-in-2021-4gh9</link>
      <guid>https://dev.to/harsh_vardhhan/why-full-stack-developer-isn-t-a-myth-in-2021-4gh9</guid>
      <description>&lt;p&gt;I have seen plenty of articles on the internet trying to explain why full-stack development isn't possible. They have backed this argument with genuine points like &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;front-end lately has become highly sophisticated.&lt;/li&gt;
&lt;li&gt;full-stack developers are experts neither in front-end, backend, or databases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this blog I want to make points to explain why being a full-stack developer has never been more easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Front-end and back-end skills don't need to be equally good&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;But what people often fail to realise is that all software projects aren't of a similar level of complexity. There is a pre-assumption that companies want a high level of skills in back-end and front-end. In certain cases the back-end can have way more complexity while the front-end can involve simply viewing and editing the data. Hiring a dedicated front-end developer for such projects doesn't make monetary sense to companies.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;DevOps is becoming fully automated.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;When I was building a derivatives trading platform,  I initially tried using AWS for deployment. It made me sweat after many days of effort. I felt the need to hire an AWS expert. It made me feel full stack developer is indeed a myth if I can't even deploy a product. Although Heroku was an easier alternative but very expensive to run. Then I came across &lt;a href="https://render.com/" rel="noopener noreferrer"&gt;Render&lt;/a&gt;, on which deploying back-end felt as easy as deploying a static site on Netlify or Vercel.&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%2Fi%2F6fzj9onaj6tdsknwtjw1.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%2F6fzj9onaj6tdsknwtjw1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Above image it can be seen how I am running &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2 background celery workers&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;li&gt;Python/Django Backend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Render allows you to simply login with your Github account and connect a repository. Every push to your code gives which creates a successful build gives an update to your live product. I also used Render to deploy ReactJs front-end.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/fb87863b563e5b9fc0e4cf941398812a783f637f8c0dc9d1f4dc18501fa454f5/68747470733a2f2f666972656261736573746f726167652e676f6f676c65617069732e636f6d2f76302f622f73717561726573706163652d636861742e61707073706f742e636f6d2f6f2f696d616765732532466f7074696f6e2d74726164696e672e706e673f616c743d6d6564696126746f6b656e3d37663933643630332d393665642d346266312d396435382d366131383465363766623731" class="article-body-image-wrapper"&gt;&lt;img src="https://camo.githubusercontent.com/fb87863b563e5b9fc0e4cf941398812a783f637f8c0dc9d1f4dc18501fa454f5/68747470733a2f2f666972656261736573746f726167652e676f6f676c65617069732e636f6d2f76302f622f73717561726573706163652d636861742e61707073706f742e636f6d2f6f2f696d616765732532466f7074696f6e2d74726164696e672e706e673f616c743d6d6564696126746f6b656e3d37663933643630332d393665642d346266312d396435382d366131383465363766623731" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion - Career growth over strong opinions&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;After talking all these controversial arguments I want to conclude in a more pragmatic way. &lt;strong&gt;Avoid the full-stack vs specialist war and focus what leads to more growth to your career&lt;/strong&gt;. There are some real perks of being a full-stack developer like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you are suitable for more developer job opportunities since you have a wider skillset.&lt;/li&gt;
&lt;li&gt;you can build complete products and not just components of products.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The project which made me a full-stack developer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You can checkout the entire codebase (front-end &amp;amp; backend) of option trading platform on my &lt;a href="https://github.com/TrakBit" rel="noopener noreferrer"&gt;Github profile&lt;/a&gt;. I was a front-end developer before I built this project and I learned Python and Django specifically for this.&lt;/p&gt;

&lt;p&gt;If you are interested in full stack development opportunities checkout my Job Board. 🙂&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.fullstackbot.com/" rel="noopener noreferrer"&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%2Fwyo7ixlmesq0otbwpjat.jpg" alt="FullStackBot"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>webdev</category>
      <category>react</category>
      <category>django</category>
    </item>
    <item>
      <title>Building a job board and running it for FREE (🚨Warning : Very Hacky)</title>
      <dc:creator>Harsh Vardhan</dc:creator>
      <pubDate>Thu, 30 Jul 2020 07:17:56 +0000</pubDate>
      <link>https://dev.to/harsh_vardhhan/building-a-job-board-and-running-it-for-free-warning-very-hacky-1da2</link>
      <guid>https://dev.to/harsh_vardhhan/building-a-job-board-and-running-it-for-free-warning-very-hacky-1da2</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;A job board to solve my own problem&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;As someone who has worked in multiple countries and still fond of it, I really wanted to find job board for a niche - &lt;strong&gt;visa sponsored jobs for software engineers&lt;/strong&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Yeah that's cool, but from where do I get job posts&lt;/strong&gt; 🤔
&lt;/h3&gt;

&lt;p&gt;Job boards have a chicken and egg problem. You need traffic to bring in the job posts and job posts to bring in the traffic. So I decided to scrap some jobs from Stackoverflow job posts and eventually when I get ample job post of my own I can move on from it.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;And so I began writing a web-scrapper&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I Started building a web scraper using Python and Django Rest Framework. It scrapped all the jobs and gave me back in a nicely formatted JSON format. Then I build the Job board UI in ReactJs. All very simple enough architecture, React fetches the list of jobs from Django RESTful backend.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Time for deployment (now here's the twist)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Front end hosting is a seamless process these day. Numerous free options like Netlify, Render and Vercel. 🤔 But Backend hosting isn't free anywhere and it made me think should I really be paying for project which has no traffic and making no money. I mean I already have plenty of non monetized projects in my Github "Museum". &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;I Finally took the El-Cheapo way&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I realized that there's no need to add new job everyday, I can simply to it every 5 days by just making my django project locally (on my machine) scrap all jobs and then I just dump it in a json file on the front-end manually.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Lesson Learnt&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;🤖 Automation is cool, but at times the cost of automation is more than good'ole manual ways. My site is now live and running free of cost. you can check it out &lt;a href="https://www.visabyte.xyz/"&gt;here&lt;/a&gt; and I have also open sourced the &lt;a href="https://github.com/TrakBit/visabyte-frontend"&gt;front-end&lt;/a&gt; code.&lt;/p&gt;

</description>
      <category>react</category>
      <category>python</category>
      <category>django</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Avoid The Native In React Native</title>
      <dc:creator>Harsh Vardhan</dc:creator>
      <pubDate>Fri, 24 Jul 2020 08:51:06 +0000</pubDate>
      <link>https://dev.to/harsh_vardhhan/cross-platform-react-native-app-you-sure-86o</link>
      <guid>https://dev.to/harsh_vardhhan/cross-platform-react-native-app-you-sure-86o</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tTm35Jwe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/t8gqwgtkxov22pb7jdo1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tTm35Jwe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/t8gqwgtkxov22pb7jdo1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In times where there are multiple technologies like React Native and flutter, we often tend throw the word cross platform app loosely. I saw many react native applications that have been said to be cross platform until you start looking at the amount of platform specific codebase been written -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Cause certain UI components are platform specific like DrawerLayoutAndroid&lt;/li&gt;
&lt;li&gt; There was a limitation within the React Native API, or performance limitation so native bridge had to be written&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Try avoiding it as long as you can&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Dropping some native code in React Native codebase brings multiple complexities -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Now anyone in future who needs to manage the codebase requires knowledge of native app development which means having understanding of three domains - Android, iOS and React Native 😦&lt;/li&gt;
&lt;li&gt; Just shipped a new feature in Android, great now also ship it in iOS. Now you suddenly realise you're losing the very point of choosing React Native&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Native can be hard to avoid for certain use-cases unfortunately&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Yes we talked about what's the right way to do but now let's talk what's practical.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Want to do some background syncing, well unfortunately that requires multi-threading. In JavaScript land multi-threading isn't possible. 😐&lt;/li&gt;
&lt;li&gt; Need your app to talk to a native mobile feature but React Native doesn't support it, its time to write a native bridge which involves coding in native language along with javascript.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;So how does one force themselves from not diving into native code -&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Start of your green field app in &lt;a href="https://expo.io/"&gt;expo&lt;/a&gt; cause it allows you to build app and test it on real device simultaneously. So no surprises of moving the app from emulator to real device. You loose this cool feature the moment you add native code since native code doesn't compiles in run time.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;But do you practice what you preach&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Absolutely 🙂, I have been building a commercial &lt;a href="https://www.airplug.xyz/"&gt;B2B SaaS mobile app&lt;/a&gt; following the same development model. As a developer choose the easier path cause even that often ends up being lot more harder than you thought.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>react</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
