<?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: Chinmay Joshi</title>
    <description>The latest articles on Forem by Chinmay Joshi (@chinmayj93).</description>
    <link>https://forem.com/chinmayj93</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%2F41051%2F9f3a8f5d-f305-49fa-b747-81f2ee23df13.jpg</url>
      <title>Forem: Chinmay Joshi</title>
      <link>https://forem.com/chinmayj93</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/chinmayj93"/>
    <language>en</language>
    <item>
      <title>Help me understand unpaid internships!</title>
      <dc:creator>Chinmay Joshi</dc:creator>
      <pubDate>Wed, 29 Apr 2020 00:12:00 +0000</pubDate>
      <link>https://forem.com/chinmayj93/help-me-understand-unpaid-internships-366d</link>
      <guid>https://forem.com/chinmayj93/help-me-understand-unpaid-internships-366d</guid>
      <description>&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@tesecreates" rel="noopener noreferrer"&gt;Matese Fields&lt;/a&gt; on &lt;a href="https://unsplash.com/" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer - Using this discussion thread, I am not promoting paid/unpaid internships. I am not justifying right or wrong between any type of internship. I am simply trying to understand what the DEV community has to offer.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I feel there are many occurrences when students or individuals seek an internship; while pursuing education, career change, or maybe some other reason.&lt;/p&gt;

&lt;p&gt;To my understanding, the internship is an opportunity given by the employer where the employee or an intern for a specified tenure (a month, 3-months, 6-months, or a year), where more experienced individuals mentor an intern. Some employers provide paid internships; some employers offer unpaid internships. Here are a couple of examples of how an intern position might look like in different companies. If you find some other examples, please do post them below, I will update the list.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Google - User Experience Design Intern, 2020 - &lt;a href="https://careers.google.com/jobs/results/135002154394886854-user-experience-design-intern-2020/" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Wix - Playground - &lt;a href="https://www.wix.com/playground/program" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;x&lt;/code&gt; company - Product Designer Intern&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In the mentioned examples,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We all know, Google is a very well-settled company in the industry, financing and planning an internship is a pretty easy job for them.&lt;/li&gt;
&lt;li&gt;Wix is another mid-sized company, providing an extensive and pretty informative program for a solid career headstart. Of course, that program is unpaid, but the return on investment would give a headstart to one's career.&lt;/li&gt;
&lt;li&gt;In the third example, we can see a startup company working on a product that's not in the market yet. The same company is looking for an unpaid-internship where they would be treating an intern as a full-time employee, which is an excellent opportunity for an individual to get his hands dirty with real-time products.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I want to ask the DEV community,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Is it okay to pursue an unpaid internship? And how would you justify an unpaid internship? How do you measure the worth of an internship?&lt;/li&gt;
&lt;li&gt;And, is it ethical for an employer to hire an unpaid intern?&lt;/li&gt;
&lt;li&gt;How would you convince the employer for a certain amount of pay?&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fp8xyacyfxhph8nkbvcbv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fp8xyacyfxhph8nkbvcbv.gif" alt="Alt Text" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>discuss</category>
      <category>help</category>
    </item>
    <item>
      <title>Should UX designers create User Personas?</title>
      <dc:creator>Chinmay Joshi</dc:creator>
      <pubDate>Wed, 26 Feb 2020 01:24:34 +0000</pubDate>
      <link>https://forem.com/chinmayj93/should-ux-designers-create-user-personas-4nhg</link>
      <guid>https://forem.com/chinmayj93/should-ux-designers-create-user-personas-4nhg</guid>
      <description>&lt;p&gt;Cover photo by &lt;a href="https://unsplash.com/@pperkins" rel="noopener noreferrer"&gt;Patrick Perkins&lt;/a&gt; on Unsplash&lt;/p&gt;




&lt;p&gt;&lt;em&gt;A persona, in user-centered design and marketing is a fictional character created to represent a user type that might use a site, brand, or product in a similar way. Marketers may use personas together with market segmentation, where the qualitative personas are constructed to be representative of specific segments. — Wikipedia&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a User Persona?
&lt;/h2&gt;

&lt;p&gt;A user persona is a way to create a board that explains minute details about the user who would potentially use the product as a stakeholder. The user participating in the user persona is imaginary, with characteristics persisting in our real target audience.&lt;/p&gt;

&lt;p&gt;User persona usually consists of the following things - name, family status, educational background, professional background, environment conditions, psychographics, his likes, and dislikes, needs, and pain points.&lt;/p&gt;

&lt;p&gt;The primary goal of creating a user persona is to understand the needs, behavior, and goals. It's a way for a UX designer to step into his stakeholder's shoes and understand what he feels about certain things.&lt;/p&gt;

&lt;p&gt;Once a great man said,&lt;br&gt;
&lt;em&gt;Great designers don't fall in love with their solution. Great designers fall in love with the problem. — Jared Spool&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Deriving from that, creating the user persona is the best way to understand the user's pain points and problems. Best solutions are obtained by keeping the user's needs at the core. User personas are created based on substantial research, unifying qualities, and pain points of the target audience.&lt;/p&gt;

&lt;p&gt;Usually, there is one persona for every type of user in the system. For example - let's say we are designing a system for connecting mentors with mentees, and there's an onboarding process for mentors that would be accessible to moderators. So in this scenario, we'd be having three types of user personas, mentor, mentee, and moderator. That would help us step in the shoes of every user who would use the platform. Before creating the user persona, it is mandatory to have a clear vision about the product's future; otherwise, it would potentially affect our user base.&lt;/p&gt;

&lt;p&gt;To create a user persona, it involves many steps and collaboration of multiple research factors. Here are a handful of strategies to create meaningful and comprehensive user research.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;User research&lt;/strong&gt; - once we define the target audience, the next step is to reach out to them with the set of questionnaires. Prepare for open-ended interactive questions, and interview the audience until you start listening to repetitive answers to your questions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find characteristics&lt;/strong&gt; - Through the user interviews, we get quantitative data, and the later stage is to create qualitative data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find pain points&lt;/strong&gt; - Establishing characteristics would help us find the common factors amongst the audience. But once we search for the pain points, unify, then we get a bigger picture of the problem we are trying to solve. &lt;/li&gt;
&lt;li&gt;There are a couple of more factors that we can consider while we establish a user persona, such as their needs, goals, and personality. Combining them in a user persona creates a comprehensive picture of how the end-user would look like.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, we established a pretty decent idea about the user personas, so let's discuss a couple of advantages of creating user personas,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Showcasing the audience&lt;/strong&gt; - User personas are a great way of showcasing the basics about the audience. Such as gender, age, occupation, location specifics, etc. Using which, any person without prior knowledge of UX design can understand the audience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Understanding the behavior&lt;/strong&gt; - User personas are a great way to showcase the patterns and behavior of our audience. For example - A user persona of a shopper would showcase where he likes to shop, how he wants to buy. How much he spends on one spree.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gain empathy about the user&lt;/strong&gt; - Human is a self-centered living organism. We tend to care about ourselves before caring about others. While creating a user persona, we focus on the user's problems and needs. We focus on how we can solve their problems rather than assumptions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Appropriate decision-making&lt;/strong&gt; - I won't say we would make the right decisions all the time while designing a product. Sometimes things might go wrong. But, with the help of comprehensive user research and detailed user persona, we would be able to make sure there's less possibility of things going wrong. Every decision made will be made based on the user's needs and pain points.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear discussions and meetings&lt;/strong&gt; - When it comes to discussing the target audience, it might get time-consuming and confusing to decide in which direction the conversation must go. The meeting can be with subordinates, stakeholders, marketing managers, or even a family person; A user person can act as a mediator to convey meaningful decisions and conduct meaningful conversations.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Personas are distilled essences of real users. With personas, we build empathy with target users, focus on their world, share insights/knowledge with other stakeholders to gain consensus, make defensible decisions reflecting the persona' s/user group's exact needs, and gauge our designs' effectiveness through their eyes. - interaction-design.org&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to create a user persona?
&lt;/h2&gt;

&lt;p&gt;Well, it is straightforward and logical when we have a thorough research. At this stage, we have identified the target audience and have qualitative research statistics. Ideal user personas should be goal-oriented, communicating an imaginary scenario flowing through every aspect of it. Goals would help us make decisions, and the situation would help us maintain the empathy and emotional connection with the target audience.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Make a strong hypothesis, with the help of initial or secondary research. A hypothesis will help us define a persuasive problem statement.&lt;/li&gt;
&lt;li&gt;Find a scenario - a scenario relating to the product's problem statement. &lt;/li&gt;
&lt;li&gt;Construct useful details about the person who would be participating in the persona. These details have to be imaginary. Create a strong personality that would seem normal and acceptable by everyone.&lt;/li&gt;
&lt;li&gt;Validate our scenario with the imaginary person we just created. Make a strong selling story. Why? Let's say we are designing a platform for online apparel shopping, and the user we described is a 60 years old grandmother living in a small city. This story would make less sense. We just created a couple of loopholes that'd not validate our story.&lt;/li&gt;
&lt;li&gt;Think about common pain points.&lt;/li&gt;
&lt;li&gt;Define his needs and establish if they are satisfied at the moment or not.&lt;/li&gt;
&lt;li&gt;Define user goals - Think about the user's interaction and the things he will need to fulfill his requirements.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Here's a website which provides good examples of user persons - &lt;a href="https://www.justinmind.com/blog/user-persona-templates/" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;And, Invision has a comprehensive guide in order to create user personas - &lt;a href="https://www.invisionapp.com/inside-design/user-persona-template/" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The above steps will generate a fundamentally strong idea about our target audience, which can be part of any decision. We can convince the stakeholder and investors.&lt;/p&gt;

&lt;p&gt;By considering all the factors mentioned above, a user persona makes a bold statement in the design process. Avoiding this step can cause a lot of damage to the decisions we would make. One wrong decision can lead to many failures. When the target audience uses the product, they should feel comfortable and confident. Also, user persona is a friendly interface that can be part of any conversation throughout the process. It's fun, interactive, and helps construct our research. Hence, it should be mandatory to have a user persona as a part of the design journey.&lt;/p&gt;




&lt;h3&gt;
  
  
  More Resources -
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Persona_(user_experience)" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/Persona_(user_experience)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.keepitusable.com/blog/tag/benefits-of-personas" rel="noopener noreferrer"&gt;https://www.keepitusable.com/blog/tag/benefits-of-personas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.interaction-design.org/literature/article/personas-why-and-how-you-should-use-them" rel="noopener noreferrer"&gt;https://www.interaction-design.org/literature/article/personas-why-and-how-you-should-use-them&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.interaction-design.org/literature/topics/personas" rel="noopener noreferrer"&gt;https://www.interaction-design.org/literature/topics/personas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.usability.gov/how-to-and-tools/methods/personas.html" rel="noopener noreferrer"&gt;https://www.usability.gov/how-to-and-tools/methods/personas.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.interaction-design.org/literature/article/creating-personas-from-user-research-results" rel="noopener noreferrer"&gt;https://www.interaction-design.org/literature/article/creating-personas-from-user-research-results&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://careerfoundry.com/en/blog/ux-design/how-to-define-a-user-persona" rel="noopener noreferrer"&gt;https://careerfoundry.com/en/blog/ux-design/how-to-define-a-user-persona&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.smashingmagazine.com/2014/08/a-closer-look-at-personas-part-1" rel="noopener noreferrer"&gt;https://www.smashingmagazine.com/2014/08/a-closer-look-at-personas-part-1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/brand-experience/five-reasons-why-personas-matter-54db192f38b6" rel="noopener noreferrer"&gt;https://medium.com/brand-experience/five-reasons-why-personas-matter-54db192f38b6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.justinmind.com/blog/user-persona-templates" rel="noopener noreferrer"&gt;https://www.justinmind.com/blog/user-persona-templates&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ux</category>
      <category>design</category>
    </item>
    <item>
      <title>How did I create my first personal website?</title>
      <dc:creator>Chinmay Joshi</dc:creator>
      <pubDate>Fri, 09 Nov 2018 18:01:56 +0000</pubDate>
      <link>https://forem.com/chinmayj93/how-i-created-my-first-website-27b5</link>
      <guid>https://forem.com/chinmayj93/how-i-created-my-first-website-27b5</guid>
      <description>&lt;p&gt;With the little bit of smart work, countless design iterations, a handful of resources, awesome inspirations, 55 git commits, page beautifying illustrations and subtle animations. Finally, my website is presentable. Well, this is just the beginning. In the future, the goal is to achieve near perfection with the overall design and user experience.&lt;/p&gt;

&lt;p&gt;Constructive feedback is welcomed and appreciated. Here's the link to view my website - &lt;a href="http://chinmay-joshi.com" rel="noopener noreferrer"&gt;chinmay-joshi.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since the beginning, I used GitHub to host my codebase and website. You can check out the &lt;a href="https://github.com/joshi-chinmay/joshi-chinmay.github.io" rel="noopener noreferrer"&gt;code here&lt;/a&gt;. According to the Git history, the first commit was on September 6, 2017. That means it took me over 430 days to make it publishable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxq4heg9d3fb6b71z5pcc.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxq4heg9d3fb6b71z5pcc.gif" alt="slow-snail" width="240" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  There are three primary reasons I am writing a blog post -
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Show off what I have done.&lt;/li&gt;
&lt;li&gt;Get feedback from awesome developers like you.&lt;/li&gt;
&lt;li&gt;Reach and connect with like-minded develolpers.&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  What I fancy about the website?
&lt;/h1&gt;

&lt;h4&gt;
  
  
  1. Day and night mode -
&lt;/h4&gt;

&lt;p&gt;The background colour changes according to the time you are visiting the website. If you visit after 7 in the evening, you can see the night mode, and it will be active until 7 in the morning. There's a button to toggle between the day and night mode.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft68k2b3mhulzecc9y152.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft68k2b3mhulzecc9y152.png" alt="day-night-mode" width="694" height="214"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Round shaped transparent glass effect -
&lt;/h4&gt;

&lt;p&gt;I created a semi-transparent layer of a glass looking element, with the hidden scrollbar. The visible scrollbar may have broken the overall fluidity and the UX.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrrbysvviov7wvv9vnoc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrrbysvviov7wvv9vnoc.png" alt="round-shape" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Auto-closing landing page -
&lt;/h4&gt;

&lt;p&gt;When anyone opens the website, the first thing they see is a vertically floating animated gif with a welcome message. There's also a function to skip to the main website. You can find the typewriter styled effect &lt;a href="https://css-tricks.com/snippets/css/typewriter-effect/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftx949bwq420yu3xy0eou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftx949bwq420yu3xy0eou.png" alt="landing-page" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Lowercase letters everywhere -
&lt;/h4&gt;

&lt;p&gt;I don't know why I made that decision. I just wanted to be quirky in terms of the typography. I decided not to use any external font, because monospace was looking really good. When I started with the design I was using &lt;a href="https://fonts.google.com/specimen/Nunito" rel="noopener noreferrer"&gt;Nunito&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpx4l87bd4ehbu6wr8m13.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpx4l87bd4ehbu6wr8m13.png" alt="lowercase-letters" width="800" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Large fonts size -
&lt;/h4&gt;

&lt;p&gt;Previously I used a comparatively small font size which reduced the readability. So I decided to have bold and large font sizes for everything. Because of that, the text is retaining more space. Throughout the page, I have added extra line height and letter spacing for cleaner looks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88arpfvr667igxgk1tai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88arpfvr667igxgk1tai.png" alt="css-snippet" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  6. Click to view more information -
&lt;/h4&gt;

&lt;p&gt;On the main page, you can see an icon &lt;code&gt;[+]&lt;/code&gt;  which will help you to expand the associated section. When you toggle the &lt;code&gt;[+]&lt;/code&gt; icon it becomes &lt;code&gt;[-]&lt;/code&gt; and vice a versa. Once you expand the other tab, the previously opened tab will close automatically. The reason behind this idea is to save some space and avoid excessive page scroll.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4aekcdo8hyw726wa9mtb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4aekcdo8hyw726wa9mtb.png" alt="click-to-view-more" width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  7. Satisfactory lighthouse score -
&lt;/h4&gt;

&lt;p&gt;There's still a lot to improve in terms of performance.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6kn666kqeq31quz0x5ti.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6kn666kqeq31quz0x5ti.png" alt="lighthouse" width="800" height="143"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Technical and other resources -
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;HTML5&lt;/li&gt;
&lt;li&gt;CSS3&lt;/li&gt;
&lt;li&gt;JQuery&lt;/li&gt;
&lt;li&gt;FontAwesome - All the icons are SVG images.&lt;/li&gt;
&lt;li&gt;Landing page image is from Google Images.&lt;/li&gt;
&lt;li&gt;Profile picture illustration - by a friend.&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  So what's next?
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Improve page animations. Sometimes page slows down while transitioning from landing page to the main page.&lt;/li&gt;
&lt;li&gt;Remove JQuery. JQuery is a fantastic library, but I don't need it for a small website like this.&lt;/li&gt;
&lt;li&gt;The transition between the day and night mode is not fluid. Add a small animation which should eliminate the rigid effect.&lt;/li&gt;
&lt;li&gt;Replace the landing page's gif with better graphics (which should match with the profile avatar). Also, add a better favicon.&lt;/li&gt;
&lt;li&gt;Add offline page with the help of Service Worker API.&lt;/li&gt;
&lt;li&gt;HTTPS? Maybe...&lt;/li&gt;
&lt;li&gt;Custom email address? Maybe...&lt;/li&gt;
&lt;li&gt;Blog page, if I need one.&lt;/li&gt;
&lt;li&gt;Bug fixes and enhancements suggested by others.&lt;/li&gt;
&lt;li&gt;And many more things...&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  Inspirations, credits and special thanks to -
&lt;/h1&gt;

&lt;h4&gt;
  
  
  1. The Community -
&lt;/h4&gt;

&lt;p&gt;The wonderful community of developers who inspired me to create my own website.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/aspittel" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.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%2F38627%2F77a2a5e7-603e-41b4-afcc-f7aff468ae2f.jpg" alt="aspittel"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/aspittel/building-a-kickass-portfolio-28ph" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Building a Kickass Portfolio&lt;/h2&gt;
      &lt;h3&gt;Ali Spittel ・ Aug 2 '18&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#portfolio&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/flexdinesh" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.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%2F41138%2F48e86113-f232-44e1-980d-1193fd2a50b8.jpg" alt="flexdinesh"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/flexdinesh/i-re-wrote-my-portfolio-and-added-some-magic-22n7" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;I Created My Portfolio with React and Some Magic 🎉&lt;/h2&gt;
      &lt;h3&gt;Dinesh Pandiyan ・ Apr 1 '18&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#css&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/mokkapps" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.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%2F23105%2Facb94a3d-3181-4e72-8cd9-fe8ddd1d78f7.png" alt="mokkapps"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/mokkapps/my-new-kickass-portfolio-website-2ife" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;My New Kickass Portfolio Website&lt;/h2&gt;
      &lt;h3&gt;Michael Hoffmann ・ Sep 2 '18&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#showdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#portfolio&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
Also, many more searches like &lt;a href="https://dev.to/search?q=portfolio"&gt;this&lt;/a&gt; and &lt;a href="https://dev.to/search?q=websites"&gt;this&lt;/a&gt;.

&lt;h4&gt;
  
  
  2. Dinesh Pandiyan - &lt;a class="mentioned-user" href="https://dev.to/flexdinesh"&gt;@flexdinesh&lt;/a&gt;, &lt;a href="https://flexdinesh.github.io/" rel="noopener noreferrer"&gt;website&lt;/a&gt; -
&lt;/h4&gt;

&lt;p&gt;I saw his website, and practically stole his idea of the raining background effect. It is so subtle and beautiful. Thank you, Dinesh.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhgv64dk7y294471z5dy9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhgv64dk7y294471z5dy9.png" alt="dinesh-commit-history" width="800" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Ali Spittel - &lt;a class="mentioned-user" href="https://dev.to/aspittel"&gt;@aspittel&lt;/a&gt; -
&lt;/h4&gt;

&lt;p&gt;I asked her multiple questions, at multiple times while designing the website. Her guidance and opinions have been beneficial. Thank you so much, Ali.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Karishma Joshi - &lt;a class="mentioned-user" href="https://dev.to/karishmajoshi4"&gt;@karishmajoshi4&lt;/a&gt; -
&lt;/h4&gt;

&lt;p&gt;She's the genius behind the beautiful illustration you saw on my website.&lt;/p&gt;

&lt;p&gt;My website could never have been possible without your support. Kudos!&lt;/p&gt;




&lt;h4&gt;
  
  
  Which mode do you like the most... Day or Night?
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5gi8bru8cfhlztc31c26.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5gi8bru8cfhlztc31c26.jpg" alt="side-by-side" width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;




</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>Explain JavaScript Promises like I am five.</title>
      <dc:creator>Chinmay Joshi</dc:creator>
      <pubDate>Thu, 20 Sep 2018 03:26:35 +0000</pubDate>
      <link>https://forem.com/chinmayj93/explain-javascript-promises-like-i-am-five-2lp4</link>
      <guid>https://forem.com/chinmayj93/explain-javascript-promises-like-i-am-five-2lp4</guid>
      <description>&lt;p&gt;I am starting to hate JavaScript. Before I blow my head with a gun, someone, please tell me how to work with JavaScript Promises.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90xmtqld6ju8tmlodavt.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90xmtqld6ju8tmlodavt.gif" alt="cry" width="400" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>explainlikeimfive</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Code management with Git and Github</title>
      <dc:creator>Chinmay Joshi</dc:creator>
      <pubDate>Thu, 16 Aug 2018 14:10:24 +0000</pubDate>
      <link>https://forem.com/chinmayj93/code-management-with-git-and-github-4072</link>
      <guid>https://forem.com/chinmayj93/code-management-with-git-and-github-4072</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Git is the most powerful version control system coded in the history of humankind. The super-rich feature set of Git makes the code management straightforward.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So today, let's discuss how we can follow a simple structure to manage our codebase.&lt;/p&gt;

&lt;h3&gt;
  
  
  Initiate -
&lt;/h3&gt;

&lt;p&gt;When we kick-off a new project, we create a repository on Github. Followed by setting up or creating a &lt;code&gt;README.md&lt;/code&gt; file. Now, it can be a public or a private project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmvp47laj6njwdecay72h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmvp47laj6njwdecay72h.png" alt="create-new-repo" width="596" height="467"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Collaborators and accessibility -
&lt;/h3&gt;

&lt;p&gt;After that, we invite our collaborators to collaborate. Always setup access rights to the collaborators. For example, not everyone can merge pull requests. Only the code maintainers or core team members can manage the merging part.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyz6sr00ygk4ps97qknns.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyz6sr00ygk4ps97qknns.png" alt="add-colaborators" width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Forks -
&lt;/h3&gt;

&lt;p&gt;Every collaborator gets their own cloned repository so they can work independently. When you fork a repository, the primary repository becomes the &lt;code&gt;upstream&lt;/code&gt;, and the cloned repository becomes the &lt;code&gt;origin&lt;/code&gt;. We push our code to &lt;code&gt;origin/branch-name&lt;/code&gt; and then it's merged into the &lt;code&gt;upstream/develop&lt;/code&gt;. I like to keep my primary repository clean; therefore I suggest a fork based approach for development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9c9nrtc9sqvgic2v0lbg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9c9nrtc9sqvgic2v0lbg.png" alt="fork-repo" width="374" height="54"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Most commonly, forks are used to either propose changes to the projects or to use someone else's plan as a starting point for your idea.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Branching -
&lt;/h3&gt;

&lt;p&gt;So, when a collaborator wants to work on something new, they create a new branch depending on the type of the work they will be doing. So that, they can work on their features or bugs independently without troubling the other collaborators.&lt;br&gt;
When you create a new repository on Github, you get a &lt;code&gt;master&lt;/code&gt; branch, by default. Usually, all the developers or maintainers create a new branch from master, names &lt;code&gt;develop&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3aev8a3ey3w7jxjc6nu7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3aev8a3ey3w7jxjc6nu7.png" alt="create-develop-branch" width="327" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;develop&lt;/code&gt; should be the primary branch for merging your features, bugs and enhancements.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;master&lt;/code&gt; - is a branch for production deployments.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt; - is a branch where we merge the code from different collaborators.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;staging&lt;/code&gt; -  is a branch in which we merge and test our code before going to production-level. Once we test all the functionality and the deployment cycle, we push/merge the &lt;code&gt;staging&lt;/code&gt; code into &lt;code&gt;master&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;branch with unfinished work - When any collaborator leaves the organisation with incomplete code, or if he/she wants to transfer his/her ownership to someone else, it's a good thing to create a new branch on parent repository with his name. So the other collaborator can pull his/her code from there. Branch name can be something like this,  &lt;code&gt;collaborators_name/feature/feature_name&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's a good practice to have (only) these branches on the primary repository. So it stays clean.&lt;br&gt;
On your fork, you can create a branch based on the type of work you are doing. We can follow a simple technique to identify branches in a better way,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;For a feature, &lt;code&gt;feature/new-editor&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;For a bug, &lt;code&gt;bug/time-zone-fix&lt;/code&gt;. &lt;/li&gt;
&lt;li&gt;If you have an open issue for this then, &lt;code&gt;issue/:issue_number/issue-description&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Any enhancement, &lt;code&gt;enhancement/background-color-update&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Very simple, isn't it? These are the industry standards or common practice that developers around the globe follow.&lt;/p&gt;




&lt;h3&gt;
  
  
  Pull requests -
&lt;/h3&gt;

&lt;p&gt;Once the work is done we create a pull request from our branch to the &lt;code&gt;upstream/develop&lt;/code&gt;. Now, it's a good thing to have different things set up on your pull request.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Reviewers -&lt;/strong&gt; Reviewers are those people who are going to review your pull request. You can request more than one review to the pull request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assignee -&lt;/strong&gt; Assignee is someone who is currently working on the pull request. There can be more than one assignee.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description -&lt;/strong&gt; explain what is the pull request about. You can add issue reference number to the description.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Labels -&lt;/strong&gt; Labels are the best way to add identification to the pull request. Github has already given important labels. Such as - bug, enhancement, feature, wontfix, help wanted. So that other collaborators can identify the pull request without even opening.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Milestones -&lt;/strong&gt; By adding &lt;code&gt;milestones&lt;/code&gt;, you can track and filter your pull requests. You can find a detailed description over &lt;a href="https://help.github.com/articles/tracking-the-progress-of-your-work-with-milestones/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F781hj63luaawga6ct2t3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F781hj63luaawga6ct2t3.png" alt="pr-labels" width="223" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before merging the pull request, at least have two code review rounds with your peers. Usually, I like to apply different labels such as &lt;code&gt;waiting for peer review&lt;/code&gt;, &lt;code&gt;waiting for merge review&lt;/code&gt;, &lt;code&gt;changes suggested&lt;/code&gt;, &lt;code&gt;help wanted&lt;/code&gt;, &lt;code&gt;ready for deployment&lt;/code&gt; to track the status of the pull request.&lt;br&gt;
Other than that, I like to add different labels to know the type of the pull request. Like, &lt;code&gt;feature&lt;/code&gt;, &lt;code&gt;bugfix&lt;/code&gt;, &lt;code&gt;enhancement&lt;/code&gt;.&lt;br&gt;
You can create multiple labels to make your pull requests more identifiable according to your process.&lt;br&gt;
The Github already predefines some of the labels.&lt;/p&gt;




&lt;h3&gt;
  
  
  Issues -
&lt;/h3&gt;

&lt;p&gt;This is a very good place to keep track of your bugs and enhancements. You can integrate bug trackers to auto-create issues. Issues are shared between the collaborators where they can have a discussion about the solution.&lt;br&gt;
There’s an assignees option, where you can tag different collaborators.&lt;/p&gt;




&lt;h3&gt;
  
  
  Releases -
&lt;/h3&gt;

&lt;p&gt;Whenever you merge any pull request from &lt;code&gt;staging&lt;/code&gt; to &lt;code&gt;master&lt;/code&gt;, it's a release. Essentially it's a good thing if you can track your releases. Every time we merge code to the &lt;code&gt;master&lt;/code&gt;, we increment the counter by one. Now, it's easy to track your versions. You can read more about Semantic Versioning &lt;a href="https://semver.org/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The simple explanation for generating a version number is, &lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;MAJOR -&lt;/strong&gt; significant releases and features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MINOR -&lt;/strong&gt; When you improve existing functionality, improve code quality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PATCH -&lt;/strong&gt; for minor changes, bug fixes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is how you can &lt;a href="https://help.github.com/articles/creating-releases/" rel="noopener noreferrer"&gt;draft releases with Github&lt;/a&gt;. It's simple and useful!&lt;/p&gt;

&lt;p&gt;Real world example is Bootstrap -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv5a5ijhtn64yaxxv2h7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv5a5ijhtn64yaxxv2h7.png" alt="bootstrap-releases" width="800" height="918"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Before merging the pull request, you can have different tools to make your code robust. Like,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run test cases on a cloud.&lt;/li&gt;
&lt;li&gt;Run linter to fix code quality.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Well, that's it! I have documentation for all the stuff that I mentioned. If you want it, write your email in the comment section below. I would be happy to share it with you.&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>learn</category>
      <category>tips</category>
    </item>
    <item>
      <title>Minimum Viable Product Rollout with ReactJS and Serverless Architecture</title>
      <dc:creator>Chinmay Joshi</dc:creator>
      <pubDate>Thu, 12 Jul 2018 12:28:37 +0000</pubDate>
      <link>https://forem.com/chinmayj93/minimum-viable-product-rollout-with-reactjs-and-serverless-architecture-2phj</link>
      <guid>https://forem.com/chinmayj93/minimum-viable-product-rollout-with-reactjs-and-serverless-architecture-2phj</guid>
      <description>&lt;p&gt;Recently, I joined a new organisation, &lt;a href="http://supahands.com" rel="noopener noreferrer"&gt;Supahands&lt;/a&gt;!&lt;br&gt;
As my first assignment, I was supposed to assess a few front-end frameworks for one of our products. It was a challenging task for me and I learned a lot through the process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpoo98idyhfv8ufsnp0od.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpoo98idyhfv8ufsnp0od.gif" alt="yaay" width="500" height="223"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;b&gt;Story&lt;/b&gt; - For our new product, we had four frameworks in our mind. &lt;b&gt;React / Vue / Angular / Ember.&lt;/b&gt; &lt;br&gt;
After a few days of evaluation, we came to a conclusion that &lt;b&gt;ReactJS&lt;/b&gt; is a perfect fit.&lt;/p&gt;

&lt;p&gt;The product's goal was pretty simple to achieve. It was a simple CRUD operations app, with a few more service-calls to retrieve some data.&lt;br&gt;
We already had a running product with Ruby On Rails + PostgreSQL stack.&lt;br&gt;
After inspecting our objectives, we realised that we needed to adapt to better technologies and architecture.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;We were trying to achieve the following things:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Move our business logic to independent services (AWS Lambda).&lt;/li&gt;
&lt;li&gt;Introduce new UI design and Template System for the application.&lt;/li&gt;
&lt;li&gt;Write a Client-Side application in React.&lt;/li&gt;
&lt;li&gt;Restructure our current database and migrate to DynamoDB.&lt;/li&gt;
&lt;li&gt;Automate CI processes and current deployment strategies with the help of AWS CloudFormation. Our business logic is tightly-coupled with the deployment stack.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;And why were we doing this?&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To minimize the cost.&lt;/li&gt;
&lt;li&gt;To re-use services in other products.&lt;/li&gt;
&lt;li&gt;To have a Client-Side single-page application.&lt;/li&gt;
&lt;li&gt;To maintain and share a common database with multiple applications.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  And... did we achieve our targets? &lt;b&gt;YES!&lt;/b&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11w6sp893w6z6edea30l.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11w6sp893w6z6edea30l.gif" alt="woohoo" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;b&gt;What did I do in the process?&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I participated in the app's UI design process. I converted those designs into JSX templates with the help of Bootstrap. &lt;/li&gt;
&lt;li&gt;I successfully wrote code with React for our Client-Side application (from scratch).&lt;/li&gt;
&lt;li&gt;I deployed our React app to AWS. &lt;/li&gt;
&lt;li&gt;Adapted myself to Serverless architecture. And, still learning...&lt;/li&gt;
&lt;li&gt;I wrote backend services in Python 3.6 for AWS Lambda.&lt;/li&gt;
&lt;li&gt;I designed a better structure of the database in AWS DynamoDB.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Why was it challenging?&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I was working with React and AWS for the first time.&lt;/li&gt;
&lt;li&gt;I had no idea how Serverless technologies work.&lt;/li&gt;
&lt;li&gt;I have never worked on a front-end framework on my own from scratch to go-live.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;So, what's next?&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve the app's code base.&lt;/li&gt;
&lt;li&gt;Add test cases for front-end app.&lt;/li&gt;
&lt;li&gt;Add Redux for state management.&lt;/li&gt;
&lt;li&gt;Make the app mobile-friendly.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Special thanks to &lt;b&gt;dev.to&lt;/b&gt; and &lt;b&gt;the community&lt;/b&gt;. I have referred a lot of threads for React and Serverless development!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqziyi4mxsvdb9oiff40y.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqziyi4mxsvdb9oiff40y.gif" alt="Thank you" width="480" height="269"&gt;&lt;/a&gt;&lt;/p&gt;




</description>
      <category>react</category>
      <category>serverless</category>
      <category>aws</category>
      <category>mvp</category>
    </item>
    <item>
      <title>What can a developer do to enhance User Experience?</title>
      <dc:creator>Chinmay Joshi</dc:creator>
      <pubDate>Thu, 14 Dec 2017 13:17:08 +0000</pubDate>
      <link>https://forem.com/joshichinmay/what-a-developer-can-do-to-enhance-user-experience-8g5</link>
      <guid>https://forem.com/joshichinmay/what-a-developer-can-do-to-enhance-user-experience-8g5</guid>
      <description>&lt;blockquote&gt;&lt;i&gt;User Experience (UX) refers to a person's emotions and attitudes about using a particular product, system or service. It includes the practical, experiential, affective, meaningful and valuable aspects of human-computer interaction and product ownership. - Wikipedia&lt;/i&gt;&lt;/blockquote&gt;

&lt;p&gt;Essentially, user experience development is designing an interface with keeping user's perspective in mind. But, people often confuse UI with UX. UI is what makes the system look beautiful, and UX is what makes the system useful. In a typical system, UX drives the UI, and it is the science behind the visuals. It also keeps the user connected with the system.&lt;/p&gt;

&lt;p&gt;Before we discuss how to improve UX, let's look at the process of developing the UX for a system. Usually, it has the following flow -&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;b&gt;Identify system objectives and user requirements -&lt;/b&gt; Before starting any development, a developer must understand critical goals and what the system aims to achieve. Along with that, clarity of end-user needs is also essential.&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;Define system constraints -&lt;/b&gt; After identifying system objectives and requirements one must apply various parameters such as time, budget, team, accessibility and other factors that affect the system to define the scope of the system. We must keep in mind that, this is an iterative process so we may not achieve success in the first few tries. We must also make sure that these constraints are well documented.&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;Build user flows -&lt;/b&gt; Now that we have defined and documented the scope, we need to decide how the end-user is going to interact with the system. A simple way to do that is to build user flows. These user-flows should consider as many use-cases as possible.The simplest way to define user-flows is by using flow diagrams.&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;System interface and information design -&lt;/b&gt; By creating user flow diagrams, we have created different patterns for our end users regarding usability. In short, we have defined the intended behavior of our end-user. Now, it's time to bring structure to our system regarding looks. We should decide the placements of elements on the system interface in such a way it requires the least amount of effort to access it. This is ultimately going to help us validate our user flows. We can further cement our validation by creating multiple wireframes and mockups.&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;Build graphic or visual design -&lt;/b&gt; Creating graphical or visual design is a process where UI and UX development work together. This is the step where we will add different flavors to make it relishing. When I say flavor I mean, color palettes, themes, templates, images, typefaces, icons, typographical elements, interactive patterns and many more things. Each and every flavor is going to play a vital role in beautifying the system interface. This is where the system will start looking more alive.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Till now everything was pretty much pedantic, let's make it more exciting and dive into the meaty parts of improving user experience!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;b&gt;Wireframe, mockups and design libraries/frameworks -&lt;/b&gt; We have already discussed the advantages of creating wireframes and mockups. We can use wireframe.cc, mockflows, moqup.com for creating wireframes. There are many design frameworks available in the market like Bootstrap. Using such a framework is going to provide significant support to create a template system. Choosing the right and customizable framework is the key.&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;Right color combinations -&lt;/b&gt; Use eye-catching colors to enhance UX of your interfaces. Good designers use a few theories about colors patterns to make things look good. They usually a follow 60-30-10% color-ratio, which gives balance to the color scheme. Where 60% is the dominant color, 30% is the secondary color, and 10% is for accent color. Check this &lt;a href="https://blog.prototypr.io/how-to-use-colors-in-ui-design-16406ec06753"&gt;link&lt;/a&gt;, for further details. Color combinations should depend on for how long user is going to use the system. For example, if your user is going to use the system for all day long, then it’s a good thing to have light background and dark text. For visualizing and using right color combinations check out different websites like &lt;a href="https://color.adobe.com/"&gt;colors.adobe&lt;/a&gt;, &lt;a href="https://coolors.co/"&gt;coolors&lt;/a&gt;, &lt;a href="https://www.colorcombos.com/"&gt;colorcombos&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;Prioritize data -&lt;/b&gt; If you have a significant amount of data to be displayed on the system interface, then prioritize your system requests. You don't want lower priority data to be presented first. It might not affect the users with high-speed internet, but what about those with a slower connectivity? A simple example can be seen on social networking sites like Facebook. If you notice, Facebook always loads the posts/feeds first as it’s their primary information. Other data like Birthdays, Events and Ads are displayed after the posts are rendered.&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;Build a guidance system and documentation -&lt;/b&gt; It’s good to have system-related information on the go. Create links for system documentation to explain more about various features. Add FAQs and have a feedback system. Add tooltips and guideline tours wherever needed. Adding social media links can benefit you in multiple ways. You might want to take different surveys from end users, by keeping them interactive, they’ll  make end user feel being a part of the system.&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;Discussions or team communication -&lt;/b&gt; Have conversations with your UX development team about design patterns, implementation strategies, use cases and user flow. Team discussions often bring new ideas to the table and may also spot a few use-cases missed during the planning.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, whatever we have discussed right now are baby steps that may help you in the long run. And It’s worth to bring these vital elements to the system development process. It is going to save a lot of time, effort and possibly, even money. So now that we’ve discussed a few &lt;i&gt;Dos&lt;/i&gt;, it’s time to look at a few &lt;i&gt;Don’ts&lt;/i&gt;. These are the typical mistakes which to avoid while developing a system interface.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Avoid dark background with light colored text. Imagine yourself, reading a book, with black pages and white text. That is going to be really scary for your eyes.&lt;/li&gt;
&lt;li&gt;Try to avoid page reloads.&lt;/li&gt;
&lt;li&gt;Also, avoid requesting too much information. Isn't that boring to fill out lengthy forms while we sign up? It irritates me when the system keeps asking me more birthday, addresses, etc. This might be valuable information, but you can take that later too.&lt;/li&gt;
&lt;li&gt;Earlier I mentioned about the importance of user feedback for your app, but we should also ensure that we don’t overuse reviews. For, e.g., asking input in first few days of his/her usage makes no sense.  Define your medium for asking reviews, it can be in-app forms or email surveys. Google forms can be a good option. Often, asking reviews from regular users and power users we can get some valuable feedback.&lt;/li&gt;
&lt;li&gt;Avoid too many notifications and ads which are blocking the page content. &lt;/li&gt;
&lt;li&gt;Avoid grainy and low-quality images.&lt;/li&gt;
&lt;li&gt;Avoid too much scrolling unless necessary - If your page content is vast then instead of a scroll, add navigation buttons on the design or implement special navigation panel for that.&lt;/li&gt;
&lt;li&gt;Avoid displaying repetitive information on the same page. Use precise, short and simple text. Avoid negative statements from your content. Ex, Instead of ‘user is unavailable today,’ you can say ‘user is on leave today.’ Use the services of a copy-writer or online grammar checking tools, like Grammarly, to keep your content grammatically clean.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So these are the few things which we experienced while working on different products at work. We noticed that by adopting these points made a positive impact on the overall user experience of our products, But this is by no means an exhaustive list, and I’d be glad to know more opinions from the community.&lt;br&gt;
What else do you think can a developer do to enhance a User Experience? Leave a comment!&lt;/p&gt;


&lt;p&gt;Reference links and further readings -&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;UX Smells - &lt;a href="https://uxdesign.cc/ux-smells-fa971feef820"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Better Stakeholder Interviews - &lt;a href="https://medium.com/happy-cog/better-stakeholder-interviews-98b3418a5a9e"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Four Reasons Users Uninstall Apps - &lt;a href="https://medium.com/@anthonyblatner/4-reasons-users-uninstall-apps-ceeb78f7f2a1"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Pattern Libraries - &lt;a href="https://blog.prototypr.io/pattern-libraries-5d627c5c65b4"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;How to teach yourself UX design &lt;a href="https://blog.prototypr.io/how-to-teach-yourself-ux-design-31f16e41b189"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;User onboarding tools - &lt;a href="https://blog.kissmetrics.com/onboarding-tools/"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Special thanks to, &lt;a href="https://dev.to/shaunakpp"&gt;Shaunak&lt;/a&gt;. For helping me write this blog.&lt;/p&gt;

</description>
      <category>userexperience</category>
      <category>uiux</category>
      <category>discuss</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
