<?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: MyOnlineStore</title>
    <description>The latest articles on Forem by MyOnlineStore (@myonlinestore).</description>
    <link>https://forem.com/myonlinestore</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%2Forganization%2Fprofile_image%2F1450%2F26b003d9-2629-4ef1-b4e7-1b3cf0c1d5e3.png</url>
      <title>Forem: MyOnlineStore</title>
      <link>https://forem.com/myonlinestore</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/myonlinestore"/>
    <language>en</language>
    <item>
      <title>Adapting to an ever-changing environment</title>
      <dc:creator>Carlo Palinckx</dc:creator>
      <pubDate>Tue, 21 Jul 2020 06:32:21 +0000</pubDate>
      <link>https://forem.com/myonlinestore/adapting-to-an-ever-changing-environment-4493</link>
      <guid>https://forem.com/myonlinestore/adapting-to-an-ever-changing-environment-4493</guid>
      <description>&lt;p&gt;600 million years ago, the planet was inhabited by simple organisms. There was no predatory behavior and life was peaceful. Then over time, our nervous systems got more and more complex and interactions increased exponentially. All of a sudden, we needed to be able to sense our environment and the beings around us in order to stay alive. We started to evolve, along the way we developed tools like eyes and ears that helped us get a better understanding of what was happening around us.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--12PrVHIa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/eelk328yne7eezkpnqlc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--12PrVHIa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/eelk328yne7eezkpnqlc.png" alt="Single celled organisms" width="698" height="512"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We learned to interact with each other and our environment.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This metaphor holds up very well when held against the current state of web development. Users are coming at us from more directions than they ever have and (either through user-expectations and technological advances) the environment is ever-changing. There is an opportunity here for us to evolve.&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RYNHa7Lk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/px5j69zzzv0yvkytsd5d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RYNHa7Lk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/px5j69zzzv0yvkytsd5d.png" alt="Smal celled organisms showing first signs of a spine" width="709" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Evolving our nervous systems
&lt;/h2&gt;

&lt;p&gt;The environment around us is changing. Perhaps we should too, but how should we be changing? In evolution theory, a species branches off from its current form because of a change in the environment around it and in turn forms a new "subspecies". This new species is better at solving a small set of specific problems that endanger its survival. They become "specialists". Perhaps we can apply something similar to web development. Let's look at how we as developers can work towards becoming a group of "specialists".&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For reference: We currently house 2 product teams with each: 2 frontenders, 2-3 backenders, 1 designer and 1 product-owner.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
The goal here is to develop a framework that helps you communicate and improves expertise. The boundaries you set as a group of specialists indicate the points of contact you have with the outside world, be it other teams, or be it your users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gaining eyes and ears
&lt;/h2&gt;

&lt;p&gt;After defining what kind of specialism we could benefit from, we should start working towards a better understanding of our environment. A big part of this is knowing where you need to go and what is happening around us. We need eyes and ears.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kCnJPPh9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/miweq4k4hf7bou0u4orb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kCnJPPh9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/miweq4k4hf7bou0u4orb.png" alt="Lampreys" width="880" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A pair of eyes
&lt;/h3&gt;

&lt;p&gt;We are trying to change our behavior in order to become better adapted to our environment. With evolution by natural selection, there is a clear indicator of whether or not we are heading in the right way, survival. However, it is probably for the better to look at a less radical approach when applying this metaphor.&lt;/p&gt;

&lt;p&gt;As a group of specialists, it is very useful to know if our &lt;em&gt;change is having the desired effect&lt;/em&gt;. We should try to measure our &lt;em&gt;progress&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;You have probably come up with a few themes or goals that you want to achieve while defining your specialism. It is important that you really tailor these to your team. There is no set of themes that will work for every team. For instance, a few of the themes that worked &lt;strong&gt;for us&lt;/strong&gt; when we started moving towards a more separated existence:&lt;/p&gt;

&lt;h4&gt;
  
  
  Developer experience
&lt;/h4&gt;

&lt;p&gt;Most of the code at MyOnlineStore (although this is decreasing at a pretty fast rate) lives in a monolithic application, which is a giant Symfony application. Symfony isn't really built for having a wide array of frontend tooling that can help us build features faster. We wanted to have independent tooling that would not interfere with Symfony. You could &lt;em&gt;keep track&lt;/em&gt; of your developer satisfaction as well as to measure how fast your javascript builds are compared to before.&lt;/p&gt;

&lt;h4&gt;
  
  
  Deliver faster
&lt;/h4&gt;

&lt;p&gt;Getting things done was hard at the time and often required one or more handoffs with backenders. This often clogged up the delivery of a feature. Backenders wrote controllers in PHP (in a traditional MVC architecture) that would directly affect user interaction. We would be a lot faster if we could deliver the entirety of a feature with just the UX designers and frontenders. Backend would still supply us with the data, but we would be able to freely interpret this. To keep an eye on how much faster you can deliver, you could start looking at the number of handoffs you are skipping. Or how your estimations for user-stories change (or the amount you deliver within the same estimations).&lt;/p&gt;

&lt;h4&gt;
  
  
  Deliver better
&lt;/h4&gt;

&lt;p&gt;The complexity of our client applications would suddenly increase. We wanted to at least try to make this as sound as possible by writing tests and documentation. Our frontend stack at the time didn't lend itself for this, however. We decided that we should start migrating to a javascript framework in favor of a template language like Twig. The progress here could be measured by the amount of test coverage you can gather or a percentual decrease in bugs.&lt;/p&gt;

&lt;p&gt;Themes like this can help you stay on track of the change you are trying to apply to your teams. Once you are starting to become more comfortable with your newfound specialism, you could start turning these into metrics to track your performance. "Delivering better" could be redefined as % of bugs that occur compared to before. "Developer experience" could be tracked by taking internal surveys or by measuring the time spent waiting for code to build or tests to run. Note that these themes or metrics are never set in stone and you might be required to change directions once your environment changes again (which it certainly will).&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XlsP_yY7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ztunahcmyhnpb1ucr4l6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XlsP_yY7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ztunahcmyhnpb1ucr4l6.png" alt="Alt Text" width="880" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A set of ears
&lt;/h3&gt;

&lt;p&gt;Now that we know what we need to look for when starting this process, we need to talk about the things that we cannot visually perceive. Instead of only looking at our progress we should also start listening to our environment.&lt;/p&gt;

&lt;h4&gt;
  
  
  Implicit knowledge
&lt;/h4&gt;

&lt;p&gt;Like I mentioned earlier, handoffs are horrible (for us). The team alignment required to get things done is a pretty hard topic to get right. However, one thing that is great about handoffs is the fact that you are required to share knowledge formally. Almost every application and every feature of that application has undocumented knowledge that could turn out to be important somewhere along the road. Something that works great for us is refining user-stories together with other specialisms and working our way towards the implementation from a user perspective. This makes sure that you can still rely on all specialisms involved when solving a problem that a user faces, instead of letting team members like UX designers or frontend developers be the only ones responsible for user experience.&lt;/p&gt;

&lt;h4&gt;
  
  
  Traceability of bugs
&lt;/h4&gt;

&lt;p&gt;Another thing that you could lose track of is the traceability of bugs. A lot of teams that migrate towards a more headless approach may come from an application that renders server-sided documents and fetches data synchronously with something like PHP or Ruby on Rails. This is a pretty big contrast compared to modern javascript frameworks that tend to heavily focus on asynchronous data-fetching. Because of this, bugs can have several surface points. It is important that you can follow errors all the way down to the origin, wherever it may be. There are several tools (we use &lt;a href="https://rollbar.com/"&gt;Rollbar&lt;/a&gt; for this) that let you log errors across multiple applications or services by providing some form of a shared identifier everywhere in your stack. That way you can easily follow the bug on its path of wreckage and plug the hole it came through.&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6wPm8xf0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4gebqjjo87w1u78yab24.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wPm8xf0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4gebqjjo87w1u78yab24.png" alt="Alt Text" width="880" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Walking on land
&lt;/h2&gt;

&lt;p&gt;I hope our story has prepared you a bit for what will come when changing your team or organization. This story is by far a conclusive approach but it helped us get where we are today. At the time of writing, we are in a happy symbiotic relationship with our environment and our investments are starting to pay their dividends. Our developer experience has drastically improved, we are delivering a lot faster and are delivering more robust client applications than we ever have. We are at a point where we want to turn the themes we set into metrics that we can actively measure and work towards improving. &lt;/p&gt;

&lt;p&gt;Like actual evolution, this is not a fast process, not 600 million years long, but still pretty slow. Getting proficient in these topics is something that takes time and practice because it fundamentally changes the way you interact with each other. Give it some time and keep your eyes and ears on what you are trying to achieve together.&lt;/p&gt;

&lt;p&gt;Time for you to venture out there and explore everything your environment has to offer!&lt;br&gt;
&lt;br&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;This article was heavily inspired by one of my favorite blogposts/talks: &lt;a href="https://emptysqua.re/blog/api-evolution-the-right-way/"&gt;https://emptysqua.re/blog/api-evolution-the-right-way/&lt;/a&gt; by A. Jesse Jiryu Davis&lt;/li&gt;
&lt;li&gt;The beautiful imagery comes from a collection of old atlases bundled here: &lt;a href="https://www.flickr.com/photos/biodivlibrary/albums/page1"&gt;https://www.flickr.com/photos/biodivlibrary/albums/page1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Another inspiration for this article was the book "Other Minds - The Octopus and the Evolution of Intelligent Life" by Peter Godfrey-Smith&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>headless</category>
      <category>teams</category>
      <category>organisation</category>
    </item>
    <item>
      <title>Best practice setup for Infrastructure as Code with Terraform, Kubernetes and Helm (part 1)</title>
      <dc:creator>Steven Hermans</dc:creator>
      <pubDate>Wed, 06 May 2020 15:05:48 +0000</pubDate>
      <link>https://forem.com/myonlinestore/best-practise-setup-for-infrastructure-as-code-with-terraform-kubernetes-and-helm-part-1-3kk5</link>
      <guid>https://forem.com/myonlinestore/best-practise-setup-for-infrastructure-as-code-with-terraform-kubernetes-and-helm-part-1-3kk5</guid>
      <description>&lt;p&gt;&lt;strong&gt;In these series I’m going to explain how to set up your workspace to accomplish Infrastructure as Code with Terraform, Kubernetes and Helm. This setup is based on my real world experience as a DevOps Engineer working with these techniques for over 3 years.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Concepts that these series will cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Disaster Recovery and Infrastructure as Code&lt;/li&gt;
&lt;li&gt;Setting up a remote workspace&lt;/li&gt;
&lt;li&gt;File structure&lt;/li&gt;
&lt;li&gt;Storing secrets&lt;/li&gt;
&lt;li&gt;Setting up a Terraform project&lt;/li&gt;
&lt;li&gt;Deploying applications with Helm&lt;/li&gt;
&lt;li&gt;Backup and restore process&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Disaster Recovery (DR) and Infrastructure as Code (IaC)
&lt;/h1&gt;

&lt;p&gt;In this episode I’ll tell you some things you need to know about Disaster Recovery Plan and Infrastructure as Code. Disaster Recovery is the process of bringing your application back online and (partly) functional in any way possible, when a major outage has happened. So it is good to have a plan for that. Infrastructure as Code on the other hand ensures that the current state of the infrastructure is written in Code. Which helps a lot during a DR event. &lt;/p&gt;

&lt;h2&gt;
  
  
  Mean time to repair (MTTR)
&lt;/h2&gt;

&lt;p&gt;There is one thing that a DR Plan and IaC have in common, which is reducing the mean time to repair during an outage. All outages are avoidable, but it still happens even to the best of us. Therefore you should not only focus on how to prevent an outage, but also on how to reduce the time it takes to repair it or go back to the previous working state. &lt;/p&gt;

&lt;h2&gt;
  
  
  Change management
&lt;/h2&gt;

&lt;p&gt;In order to reduce the mean time to repair, it is important to have a clear overview of the changes that are made to the infrastructure and also the applications running on it. Next to server overloads, “changes” are the most leading causes of outages. Therefore this phrase:  “Version everything!”.&lt;/p&gt;

&lt;p&gt;Git is a useful and easy tool to track changes. In order to use Git, you’ll first need to manage your Infrastructure as Code. There are several tools that are really helpful in accomplishing IaC, like Terraform and Helm. I’ll dig deeper into these tools in one of the next episodes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy and rollback changes
&lt;/h2&gt;

&lt;p&gt;I’ve read that some Ops teams use Continuous Deployment (CD) for deploying Infrastructure changes. As this sounds like a good idea, there are some drawbacks to it. &lt;/p&gt;

&lt;p&gt;The first one is that you don’t have hands on when things are starting to break and the changes that are being deployed are not always at the top of your mind anymore. This eventually will increase the mean time to repair the disruption. Next to that, how are you going to do complex maintenance, like a database migration through CD? &lt;/p&gt;

&lt;p&gt;My personal preference is to always be at the buttons when deploying something, so in case it goes wrong you’ll have all the possibilities open to resolve it quickly. &lt;/p&gt;

&lt;h2&gt;
  
  
  Consistency
&lt;/h2&gt;

&lt;p&gt;Another thing that IaC will solve, is inconsistency throughout the infrastructure. Throughout my experiences I’ve seen a lot of times when there are two servers that should be identical, they eventually become inconsistent over time. &lt;/p&gt;

&lt;h2&gt;
  
  
  Backup and restore process
&lt;/h2&gt;

&lt;p&gt;An important part a DR Plan solves is to have a clear process of how to restore backups. The process of making backups is something that is done a lot of times automatically. So you gain experience over time with it when it breaks and you’ll have to fix it. But the restore process you’ll hopefully never use. Nevertheless should it be clear how it is done. Because when you’ll have to use it, you don’t have much time to figure it out.&lt;/p&gt;

&lt;p&gt;In the end there is one thing that is really important when doing Ops. In modern infrastructures, there are a lot of changes happening everyday, so a mistake that causes a disruption is not a rare thing. Mistakes don't matter and are inevitable, it matters how you respond to them. Therefore focus on the Mean time to repair.&lt;/p&gt;

&lt;p&gt;In the next episode I'll talk about how to setup up your workspace to get started with IaC. Stay tuned! &lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>vscode</category>
      <category>security</category>
    </item>
    <item>
      <title>I am an imposter. You too?</title>
      <dc:creator>Johan van Tongeren</dc:creator>
      <pubDate>Fri, 13 Mar 2020 08:40:33 +0000</pubDate>
      <link>https://forem.com/myonlinestore/i-am-an-imposter-you-too-5hh7</link>
      <guid>https://forem.com/myonlinestore/i-am-an-imposter-you-too-5hh7</guid>
      <description>&lt;h3&gt;
  
  
  Do you recognize this situation?
&lt;/h3&gt;

&lt;p&gt;I have completed a coding task. I am a senior developer and I've been doing this for the past 15 years. I've written &lt;del&gt;millions&lt;/del&gt; hundreds of thousands of lines of code.&lt;/p&gt;

&lt;p&gt;So, these lines of code perfectly meet requirements as described by the product owner. I functionally tested the code. The new page works flawlessly. I doublecheck it by doing some monkey testing and I try to break stuff. Nothing bad happens.&lt;/p&gt;

&lt;p&gt;The code is written to spec, there are no linting errors. Pre-commit hooks with some code quality checks succeed.&lt;/p&gt;

&lt;p&gt;I've written some unit tests and an E2E test and wondrously these new tests &lt;em&gt;and&lt;/em&gt; the existing tests don't fail. Every checkbox on my todo-before-pull-request-list is checked.&lt;/p&gt;

&lt;p&gt;I open GitHub and create a new pull request and ask my co-worker Charles for a review and wait for Charles to review my new addition to the codebase.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Hopefully Charles doesn't think I am a bad developer..."&lt;/em&gt;, my brain thinks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not that Charles is a dick or anything. Actually he's a great guy. Really considerate. He never yells at anybody or calls out co-workers. But still, this thought crossed my mind.&lt;/p&gt;

&lt;p&gt;After a while I get a notification: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;@Charles approved this pull request&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And 2 seconds later: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Merged #1337 into master.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And then it happens: some weird feeling takes over. Your brain explodes of the sudden stream of thoughts like &lt;em&gt;"Did Charles actually look at the code? Is something wrong with Charles? Is he having an off-day? Why did he not see this code is crap? Help! I can only write crap code!"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And one question always returns: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"When will they find out I'm a fraud? I've been fooling them for years now..."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Another example
&lt;/h2&gt;

&lt;p&gt;Last year I was curious about my position in the job market. So I decided to go look around for new job opportunities. And I got a lot of messages on LinkedIn from people that were impressed by my history and skillset. The only thing I could think is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Wait until you hire me... you'll find out I really suck!"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I event went on a few job interviews and the companies were really enthusiastic about me. So much that they kept stalking me after I already declined their offers. Instead of thinking "wow, I am good" I thought:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Shit, I must accidentally be saying the right words to make them so enthusiastic... It can't be my actual skills, because I suck... Why didn't they see that??"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;It might sound like low self-esteem, but actually I have been struck by something that's known as &lt;a href="https://en.wikipedia.org/wiki/Impostor_syndrome" rel="noopener noreferrer"&gt;The Imposter Syndrome&lt;/a&gt;. And if you recognize this, you're probably familiar or even suffering too.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Impostor syndrome is a psychological pattern in which one doubts one's accomplishments and has a persistent internalized fear of being exposed as a "fraud". Despite external evidence of their competence, those experiencing this phenomenon remain convinced that they are frauds, and do not deserve all they have achieved. Individuals with impostorism incorrectly attribute their success to luck or interpret it as a result of deceiving others into thinking they are more intelligent than they perceive themselves to be.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you've recognized yourself in the previous examples, you're probably thinking &lt;em&gt;"I actually am an imposter!"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But what if I told you that a lot of very smart and/or successful people also have had thoughts like this? Like Serena Williams, David Bowie, Michelle Obama, and Albert Einstein?&lt;/p&gt;

&lt;p&gt;You can even take &lt;a href="http://impostortest.nickol.as/" rel="noopener noreferrer"&gt;an online test&lt;/a&gt; to see how high you score on the Clance Imposter Syndrome Scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where does this come from?
&lt;/h2&gt;

&lt;p&gt;It is called a "syndrome", but it's not a mental illness and not per definition related to things like depression or other mental conditions.&lt;/p&gt;

&lt;p&gt;I think the most important cause of these thoughts is a combination of these factors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You don't know what other people think. Others might seem very confident. But they probably have similar doubts. &lt;/li&gt;
&lt;li&gt;It's hard to compare your own skills and abilities to others. Even more, if you master rare skills. It feels like others are always more skilled than you are. This is often not true.&lt;/li&gt;
&lt;li&gt;Social media makes it look like the world is full of skilled people. But you probably only follow that hand full of people in the world that are actually as skilled or sometimes better than you are. There are still about 8 billion more people that are &lt;em&gt;less&lt;/em&gt; skilled...&lt;/li&gt;
&lt;li&gt;You stop listening to positive feedback. You might physically hear them, but you don't actually &lt;em&gt;hear&lt;/em&gt; them. Either your mind immediately refutes them or is &lt;em&gt;so&lt;/em&gt; numb that you actually filter them out. Like you don't see ads on websites anymore.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In my case, the last one was the worst. I had a lot of therapy since my burnout a few years ago, and one of the things I figured out was that I didn't accept and process positive feedback. This happened so automatically that I didn't even realize it.&lt;/p&gt;

&lt;p&gt;Even worse, my mind immediately comes with a lot of "proof" to refute the positive feedback I get. For example, this happened when I was fueling up my extensively modified Volvo at a gas station and a car enthusiast came up to me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Omg, did you build that yourself? 😲 It's so awesome!! 😊"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then this happens in my mind:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;    
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ahhw thanks...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Wait what?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Is he blind?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;He doesn't see that one crappy weld I effed up!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Look at that corner of the wrap that's peeling!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Everything I build is shit!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;    
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;I am not worthy!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So after 100ms, my mind bent the compliment to a confrontation with my shortcomings (which only exist in my mind).&lt;/p&gt;

&lt;h2&gt;
  
  
  What can you do?
&lt;/h2&gt;

&lt;p&gt;In my particular case, the Imposter Syndrome really went hand-in-hand with lowered self-esteem. These two are like twins, they look alike, but they are really different on the inside. &lt;/p&gt;

&lt;p&gt;I am still struggling with these negative thoughts from day to day, but it greatly improved. Hopefully one of these following experiences can help you too if you recognized yourself in one of the previous examples.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Realize you're not alone.&lt;/strong&gt;&lt;br&gt;
Read about it. Google for "imposter syndrome". Or what you're feeling. Literally type in &lt;a href="https://www.google.com/search?q=i+have+no+idea+what+i%27m+doing+at+work" rel="noopener noreferrer"&gt;"I don't know what I'm doing at work"&lt;/a&gt; and you'll get numerous articles that relate and refute your feelings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. You're not wrong.&lt;/strong&gt;&lt;br&gt;
When somebody has commented on something you did does not mean you're wrong. It only means they do not agree with your view on something. They are entitled to their opinions, but so are you. A healthy discussion will result in a choice on what solution will be used, but even if the solution is not yours it does not mean it was a bad idea.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Talk about it.&lt;/strong&gt;&lt;br&gt;
This is one of the best advice I could give about anything that goes on inside your head, and it's certainly true in this situation. If you are insecure, validate if your thoughts are just. You will find that often, if not &lt;em&gt;always&lt;/em&gt;, your thoughts are unfounded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Never belittle yourself.&lt;/strong&gt;&lt;br&gt;
When talking (and even better: when thinking) do not belittle yourself. Never ever. Phrases like &lt;em&gt;"If I can do it, everybody can do it!"&lt;/em&gt; are killing for your self-esteem and fuel for the Imposter devil on your shoulders. I've read about this a while ago and since then I try to practice it and I feel much better about myself since.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Actually listen to what people say.&lt;/strong&gt;&lt;br&gt;
This might be the hardest one. When somebody gives you some positive feedback on something, try to accept it. If you struggle with this, this will be the hardest to do. But remember, Rome wasn't built in one day. Big changes like this come in small steps. Realization is the first one. So if you notice you discard positive feedback don't think "See, I can't do this!" but remind yourself that you've noticed it. That's the first step. Knowing what happens. Next time you can try to stop the negative thoughts that follow. Even if they only get a little milder is a big step forward. Keep it up and keep practicing!&lt;/p&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;So, these fraudulent feelings are more common than you might have thought and I hope that if you have them too you've found some comfort in reading this and knowing you're not alone. I also hope I gave you some tools on how to start minimizing these feelings.&lt;/p&gt;

&lt;p&gt;If you have any tips or just recognize yourself in the examples, please comment below and tell me about your experience! &lt;/p&gt;
&lt;h2&gt;
  
  
  Video
&lt;/h2&gt;

&lt;p&gt;Before writing this blog I did some research and found this awesome video which explains the effect very well:&lt;/p&gt;

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

&lt;p&gt;More videos on this subject:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/h7v-GG3SEWQ"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/whyUPLJZljE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>career</category>
      <category>mentalhealth</category>
      <category>impostersydrome</category>
      <category>devlive</category>
    </item>
    <item>
      <title>Being the first to start remote working</title>
      <dc:creator>Johan van Tongeren</dc:creator>
      <pubDate>Fri, 28 Feb 2020 13:28:36 +0000</pubDate>
      <link>https://forem.com/myonlinestore/being-the-first-to-start-remote-working-11kj</link>
      <guid>https://forem.com/myonlinestore/being-the-first-to-start-remote-working-11kj</guid>
      <description>&lt;p&gt;My girlfriend and I want to move to another city. Not a few miles to the next big city, not to the other side of Holland, but a country on the other side of Europe: Sweden. That's about 1600 kilometers (1000 miles). And it is also &lt;em&gt;not&lt;/em&gt; fancy Stockholm we chose as our destination, but a region which is quite remote and desolate. Where there are more trees than bytes in the air.&lt;/p&gt;

&lt;p&gt;My employer knows about our immigration plans. I don't want to leave them, and they don't want me to leave. I like my job and love my co-workers. And I like the Friday hamburgers, daily ping-pong matches, good coffee, banter,  and drinks after work hours.&lt;/p&gt;

&lt;p&gt;So why not keep working for MyOnlineStore &lt;em&gt;and&lt;/em&gt; move to another country? That is the solution we came up with. &lt;/p&gt;

&lt;p&gt;It is 2020. I am a web developer. Fully online focussed. There are few things that stand in the way of working remotely.&lt;/p&gt;

&lt;p&gt;But will I not miss the hamburgers? And my co-workers and friends? Is a daily standup possible with one member of the team not in the same room? Will I fall asleep at my desk? Will I eat all the snacks in my house?&lt;/p&gt;

&lt;h2&gt;
  
  
  The first remote worker? 🤔
&lt;/h2&gt;

&lt;p&gt;I hear you thinking: &lt;em&gt;"The first remote worker? Me and my thousand co-workers have been doing this for years now!"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I am by far &lt;em&gt;not&lt;/em&gt; the first to start working remotely, but I am the first one at MyOnlineStore. The company made a shift from being an oldskool 9-to-5 company to a more modern and true agile approach since a few new managers were hired last year.&lt;/p&gt;

&lt;p&gt;So this story is about being the first person in a company who starts working remotely.&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%2F1ygbjq74knqgppqf6pe6.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%2F1ygbjq74knqgppqf6pe6.gif" alt="robot in elevator" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before making the big move to Sweden and finding out it doesn’t work I wanted to try this cool new thing. A period of experiments started and I was the first to work from home (a few miles from the office) for more than an incidental day or the afternoon after a visit to the dentist. &lt;/p&gt;

&lt;p&gt;Up until now, nobody worked from home for more than one or two days. Yes, I am the First Real Remote Worker.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two major factors 🥓
&lt;/h2&gt;

&lt;p&gt;So there are two issues we anticipated beforehand:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;technical difficulties: can we find proper soft- and hardware?&lt;/li&gt;
&lt;li&gt;the social aspect: when will I go mad?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I think the subject of hard- and software for conference calls has been covered enough, so this will not be a "best conference call software of 2020" kind of story. I do want to tell you about the little struggles we had and how we dealt with them.&lt;/p&gt;

&lt;p&gt;The second issue was a lot more impactful for me, but we will get back to that later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software and hardware 🎥
&lt;/h2&gt;

&lt;p&gt;We quickly found that the software we already use for communication in our team (Slack) has a big advantage: it offers the ability to click on a phone icon and call a single person or start a conference call.&lt;/p&gt;

&lt;p&gt;The only downside of using slack’s video calling I noticed is that slack does not offer the possibility to see my teammates during a call when somebody is sharing his or her screen. We often do this, for example when discussing the backlog. The PO opens the backlog, shares the screen so I can see what they see and they also put that view up on the big screen in the conference room. This works fine, but I found that it's hard to discuss something when you can't see the people you're talking too. Also doing a demonstration of new functionality for the entire company sucks when you can't see your audience.&lt;/p&gt;

&lt;p&gt;We are still working on these issues. Maybe we are going to use other software, maybe we'll hang a few webcams at strategic spots in the office and start streaming this, I don't know yet. It feels like we're 99% there and just need to improve on these small issues and make it feel 100% natural and seamless.&lt;/p&gt;

&lt;p&gt;The ease of video/audio calls online surprised me a bit, being &lt;a href="https://dev.to/myonlinestore/how-to-not-be-a-dinosaur-3d55"&gt;an oldtimer&lt;/a&gt; that had been scared by the crappiness of online conferencing years ago when the web wasn't as evolved as it is today.&lt;/p&gt;

&lt;p&gt;Conclusion: hard- and software can't be a problem. As long as you have a decent internet connection you're set.&lt;/p&gt;

&lt;h2&gt;
  
  
  Loneliness 🥱
&lt;/h2&gt;

&lt;p&gt;We found out that being remote in a close working team is not really that different from being in the office, but what happens if you live in isolation for weeks in a row?&lt;/p&gt;

&lt;p&gt;I was kinda worried about this one, to be honest. I am not that kind of developer that thrives when locked up in a windowless basement with a red stapler.&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%2Fcg4uwwepo68dfkwf3tys.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%2Fcg4uwwepo68dfkwf3tys.gif" alt="Red Stapler" width="500" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I need people around me. I need to chat. I need to vent frustration from time to time. I need to show my newest lego kit. I like to have fun with my co-workers. I love staying late for Friday drinks.&lt;/p&gt;

&lt;p&gt;So I am a socially dependent man. What will happen to me when not being surrounded by people? Will I start talking to myself? drooling?&lt;/p&gt;

&lt;p&gt;I've been working remotely for 1,5 months now and it turns out that it's not that bad! I haven't gone mad and killed somebody. Yet.&lt;/p&gt;

&lt;p&gt;I think this has to do with the close contact I have with my team. We run sprints of one week, where Fridays are used for a retrospective, refinement, etc. and these days are full of conference calls and consulting coworkers.&lt;/p&gt;

&lt;p&gt;A co-worker and I have even developed a paper-rock-scissor-like sign language to play planning poker.&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%2Fsfbtj0o6ni4axpgktvhq.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%2Fsfbtj0o6ni4axpgktvhq.gif" alt="Playing planning poker on Slack" width="480" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, I call him a lot. Mostly just to discuss some coding issues, but also sometimes just to have a chat about everyday stuff. We get along great and it is always fun to hang out, even if it is through a webcam.&lt;/p&gt;

&lt;p&gt;Conclusion on this topic: It's not as hard as expected. I miss my precious Cheeshouse hamburgers, but that might be a good thing for my body.&lt;/p&gt;

&lt;h2&gt;
  
  
  Self-reliance and question quality 💪🏻
&lt;/h2&gt;

&lt;p&gt;Working remotely also greatly enhance self-reliance. It doesn't matter how good the soft- and hardware are there will always be a small threshold to call a colleague to ask him or her something.&lt;/p&gt;

&lt;p&gt;I experienced this a few days ago. Normally, to start the development environment of our component library, I have to enter &lt;code&gt;yarn dev&lt;/code&gt; in my command line. But after pulling the master and getting the latest version, this resulted in an error.&lt;/p&gt;

&lt;p&gt;Normally I'd ask my fellow frontender who's sitting 2 meters away from me in the office building &lt;em&gt;"What happened to the start command for Bricks?"&lt;/em&gt; and he'll say &lt;em&gt;"Ah yes, I changed that command. Forgot to tell you that, sorry!"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now I opened the &lt;code&gt;package.json&lt;/code&gt; file, looked up the appropriate command which has changed to &lt;code&gt;yarn start:components&lt;/code&gt;. Problem solved. Didn't disturb my co-worker. Everybody's happy.&lt;/p&gt;

&lt;p&gt;This is just a small example, mostly born from laziness, but I've noticed that I try to figure stuff out by myself more than I did before I started remote working. So this raises self-reliance and the quality of the questions that remain also increases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concentration 😳
&lt;/h2&gt;

&lt;p&gt;I found that working alone greatly increased my ability to concentrate on my work. Not being interrupted by co-workers or other things that happen in a busy office building made a big change for me.&lt;/p&gt;

&lt;p&gt;Our office building is in the city center of a small city, close to the police station and the fire department. Loud cars, blaring sirens, obnoxious motorcycles, we get them all. This distracts me always, despite the noise-canceling headphones and other measures I took.&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%2Fedzho9b6329vakx2xu07.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%2Fedzho9b6329vakx2xu07.gif" alt="police car" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My home office is at the back of our house and nothing visual happens there. I also live in a very small town, where it always is very quiet.&lt;/p&gt;

&lt;p&gt;Apart from the increased output, I notice this when I miss my (lunch)break times. Only a notification for a new e-mail or a Slack message breaks this concentration.&lt;/p&gt;

&lt;p&gt;When needed I also shut myself off for all these concentration-breakers, it was enough to quit the mail app and Slack. Doing this in an office building is hard without physically moving to another (empty) room.&lt;/p&gt;

&lt;p&gt;One thing I think is very important is that I have the luxury of a separate room in my house, designated as a home office. The room has a big desk, a comfy office chair, a good view outside, a proper audio system and everything I need to make my work pleasant.&lt;/p&gt;

&lt;p&gt;One concentration killer is other people in your house. We don't have kids, but sometimes we have kids/family over. So when I am working and my 4-year old niece wants to show me the drawing she made for me, it is very sour and saddening to tell her to not disturb me and leave me to work.&lt;/p&gt;

&lt;p&gt;Luckily days with such distractions are quite rare. I guestimate that 95% of the workdays are without any distractions other than the mailman. &lt;/p&gt;

&lt;h2&gt;
  
  
  Slackshaming 👮🏻‍♂️
&lt;/h2&gt;

&lt;p&gt;The big brother in my laptop. I think this is something very personal to me, but probably also something that some people can relate to. Maybe it is something caused by Dutch work ethics (which are very relentless), I don't know, but it's something that I struggle with.&lt;/p&gt;

&lt;p&gt;There is a stigma around working alone or from home. People tend to think that Remotees work less hard than people in the office that are constantly watched by others. Take extra long walks with the dog, watch youtube all day or even take naps.&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%2Fmiscwvs3s1x341mhjqob.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%2Fmiscwvs3s1x341mhjqob.gif" alt="man taking nap" width="348" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So what happens in my mind is &lt;em&gt;"They must never think I am not working on my computer!"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So I keep one eye constantly focussed on Slack and its notifications. As soon as one of my teammates sends me a message or calls me, I must respond immediately. Otherwise, they will say &lt;em&gt;"See! Proof! He's not doing anything! He's probably in his workshop welding stuff or working on his car! Booo!"&lt;/em&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%2Fnvg6kc7k3q25xyjj3zwk.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%2Fnvg6kc7k3q25xyjj3zwk.gif" alt="man hitting cctv with hammer" width="400" height="248"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a downside of being remote for me. Despite knowing that these thoughts are unfounded. I know people trust that I do my work and deliver. I've proven that by completing sprints every time. There are no unexplained blanks in my weeks at home.&lt;/p&gt;

&lt;p&gt;So this is something I need to work on personally. I have to get more confident that people trust me to do my work. I'll have to tell my colleagues that this is a struggle for me and ask them to tell me if there are any doubts about my commitment.&lt;/p&gt;

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

&lt;p&gt;Remote working is great! As a conclusion a list of pros and cons:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt; 😊&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Working in a pleasant environment that is optimized for me&lt;/li&gt;
&lt;li&gt;Increased productivity&lt;/li&gt;
&lt;li&gt;Increased concentration&lt;/li&gt;
&lt;li&gt;Listening to my music on speakers&lt;/li&gt;
&lt;li&gt;No more 8-hour headphone days&lt;/li&gt;
&lt;li&gt;A higher quality of questions and more self-reliance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt; 😢&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Glitches or bugs in software make for awkward situations sometimes&lt;/li&gt;
&lt;li&gt;Lack of body language and other subtle stuff when you don't see the other person(s)&lt;/li&gt;
&lt;li&gt;Tempted to eat more candy/snacks since they're at hand&lt;/li&gt;
&lt;li&gt;I miss all the birthday celebrations with cake and other treats&lt;/li&gt;
&lt;li&gt;No more delicious hamburgers at that one joint close to the office&lt;/li&gt;
&lt;/ul&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%2Feas2toc19431r64d0f0w.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%2Feas2toc19431r64d0f0w.gif" alt="woman enjoying a burger" width="480" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>remotework</category>
      <category>webdev</category>
      <category>career</category>
    </item>
    <item>
      <title>How to not be a dinosaur.</title>
      <dc:creator>Johan van Tongeren</dc:creator>
      <pubDate>Wed, 13 Nov 2019 13:24:34 +0000</pubDate>
      <link>https://forem.com/myonlinestore/how-to-not-be-a-dinosaur-3d55</link>
      <guid>https://forem.com/myonlinestore/how-to-not-be-a-dinosaur-3d55</guid>
      <description>&lt;p&gt;This is the story of how I became an experienced senior frontend developer and how I had to start all over again. How it &lt;em&gt;felt like&lt;/em&gt; I had to start all over. How to learn. &lt;/p&gt;

&lt;p&gt;This story is mostly about learning React, but might apply to other frameworks as well. Heck, it might even apply to completely different areas of expertise.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened?
&lt;/h2&gt;

&lt;p&gt;It is 2019 now and I am 37 years old. I have been working for 15+ years professionally as a web developer and web designer. After high school I went to design school and learned to be a designer. But I have also always been interested in coding. In the early 90's I was already writing code in &lt;a href="https://en.wikipedia.org/wiki/GW-BASIC" rel="noopener noreferrer"&gt;GW-Basic&lt;/a&gt;. I can recall writing my first lines of code in the last grade of primary school. Later I learned HTML and even a little PHP 3. In design school I also learned Flash and OOP in &lt;a href="https://en.wikipedia.org/wiki/Lingo_(programming_language)" rel="noopener noreferrer"&gt;Lingo&lt;/a&gt;. When my class got the task to code a simple dice-rolling program, I wrote the complete Monopoly game. Just because writing code was a never-ending path of discovery, wonder and &lt;a href="https://www.npr.org/sections/ed/2014/10/24/357811146/curiosity-it-may-have-killed-the-cat-but-it-helps-us-learn?t=1572532599814" rel="noopener noreferrer"&gt;dopamine&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%2Fkl72ihhup8g6nxeq3qv0.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%2Fkl72ihhup8g6nxeq3qv0.png" width="509" height="354"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;This is not me. But it could have been if I had such an awesome mustache at the age of ten&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the years working as a developer I have seen the landscape around me change drastically. When I started designing and coding in the early 2000s, CSS, some javascript and later jQuery was all I needed to master being a frontender. I also added some backend code (PHP and even Coldfusion in a dark era) to be able to integrate the frontend code with the backend. So for years I could design a project, code it and integrate it. At one point I was named a full stack developer. Life was simple. Even simpler when post-processors like SCSS came to life. I was like "I got this, bro!"&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%2Fr8sfw8gbkvmqzeudddte.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%2Fr8sfw8gbkvmqzeudddte.png" width="474" height="286"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Also not me.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  So what changed?
&lt;/h2&gt;

&lt;p&gt;So I was happily writing SCSS, JS and some PHP, but then around 2012 the world started to change around me. I saw more and more articles about fancy frameworks like AngularJS on Twitter. At some point it seemed like new frameworks were being released every day. I was naturally drawn to this, but couldn't keep up and got a little overwhelmed by the seeming complexity of some of these frameworks. And I also suffered a bit of &lt;a href="https://www.fearof.net/fear-of-change-phobia-metathesiophobia/" rel="noopener noreferrer"&gt;metathesiophobia&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%2Fbhmc92lpny12l81gbzm2.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%2Fbhmc92lpny12l81gbzm2.png" width="472" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Still not me.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Then one day I attended a meetup where some guy enthusiastically demonstrated AngularJS. He made a list of hospital employees which could be clicked to unfold a list of their certifications and skills. A very simple page. And the amount of code that was shipped to make this simple page work was over 1mb.&lt;/p&gt;

&lt;p&gt;So that was it for me. This new stuff was overly complex, scary and most of all: I could write this accordion list in less than 1kb of vanilla JS. Or maybe even without JS in CSS and HTML only… My common sense said: "Why the **** would you use something &lt;em&gt;so&lt;/em&gt; complex for something &lt;em&gt;so&lt;/em&gt; simple?!"&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%2F7iyu2hc6njpt6jjz9mcf.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%2F7iyu2hc6njpt6jjz9mcf.png" width="454" height="427"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;At that time I was the only frontend developer at &lt;a href="https://www.myonlinestore.com/" rel="noopener noreferrer"&gt;MyOnlineStore&lt;/a&gt;. And I have always been the only frontend developer for all my previous employers. So there was nobody to convince me that it would be wise to embrace these new techniques.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why I stood still for so long
&lt;/h2&gt;

&lt;p&gt;In late 2015, when I was already late to the party I got sick. A severe burnout followed by a big relapse one year later while I was still recovering. When I felt a bit better after a while and came back to the &lt;a href="https://www.myonlinestore.com/" rel="noopener noreferrer"&gt;MyOnlineStore&lt;/a&gt; offices everything had changed. There were two new frontend developers. With new repos, new code, new words, new everything!&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%2F6dnomkscn6tnlf1bn2bd.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%2F6dnomkscn6tnlf1bn2bd.png" width="436" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was 2017 already. I did not know where to start. I didn't dare to ask for help, because of my misplaced pride. I was writing code before some of my new colleagues were even born… and now I should go to these guys and admit I had no clue what I was doing?&lt;/p&gt;

&lt;p&gt;But I tried… I tried to keep up with it for a few months and then I was like: "I don't get it! fuck this shit!" &lt;/p&gt;

&lt;p&gt;"I have been doing design &lt;em&gt;and&lt;/em&gt; development 50/50 for all of my career, so now it's time to say goodbye to one of these and focus on the other." And since I got &lt;em&gt;so&lt;/em&gt; scared of The New Frontend World, I fled to the design department of &lt;a href="https://www.myonlinestore.com/" rel="noopener noreferrer"&gt;MyOnlineStore&lt;/a&gt;. This was in early 2018.&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%2Ftdrbnuyy0srtyxzzmdzf.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%2Ftdrbnuyy0srtyxzzmdzf.gif" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Yes, this is me doing design&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, after a year of doing (UX) design, I found out this was the wrong choice. After years of intensive therapy and running straight into a black hole that was another potential burnout, I came to the conclusion that design was not for me. I am able to design, but I can't handle the stress that goes with it. I felt like I had to answer and fight for all the design choices I made. And since my UX designing was mostly driven by instinct, this was really hard for me. On top of that, it all felt very personal. Maybe I can handle it today or in the near future, with all the things I have learned since, but not then. It fueled my insecurity enormously.&lt;/p&gt;

&lt;p&gt;And then in late 2018, I decided to go back to frontend development. There I was, a frontend dinosaur in a modern world.&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%2F1hd9i7a4v1a23ow22y2d.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%2F1hd9i7a4v1a23ow22y2d.png" width="502" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Yes this is me.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How to get up to speed? 
&lt;/h2&gt;

&lt;p&gt;Now I faced a big challenge. I didn't want to go extinct like a real dinosaur and stick to my old habits, so how do you get up to speed after being paused for a few years in a world that changed (and is still changing) so rapidly? The first thing to overcome was my aversion for The New Frontend World™️. I tried to look at React and all other new tools with a fresh and unbiased view.&lt;/p&gt;

&lt;p&gt;While I was away in design world a lot has changed within our codebase, but also in The New Frontend World™️. The tools we used improved or were replaced with better alternatives. The tools and codebase became more solid and mature.&lt;/p&gt;

&lt;p&gt;Then there was news: &lt;a href="https://reactjs.org/docs/hooks-overview.html#%EF%B8%8F-effect-hook" rel="noopener noreferrer"&gt;React Hooks&lt;/a&gt; was about to be released in React 16.8. This made code &lt;em&gt;so&lt;/em&gt; much more readable that I started thinking "Hmm, maybe I can do this".&lt;/p&gt;

&lt;p&gt;I don't want to go all geeky on the differences between hooks and classes and why hooks are so awesome, especially since there are many &lt;a href="https://reactjs.org/docs/hooks-intro.html" rel="noopener noreferrer"&gt;excellent&lt;/a&gt; articles &lt;a href="https://itnext.io/whats-the-big-deal-with-react-hooks-d73145eb14e0" rel="noopener noreferrer"&gt;written&lt;/a&gt; on this &lt;a href="https://medium.com/frontmen/react-hooks-why-and-how-e4d2a5f0347" rel="noopener noreferrer"&gt;subject&lt;/a&gt;. If you would like to learn more about this, you should check &lt;a href="https://reactjs.org/docs/hooks-overview.html" rel="noopener noreferrer"&gt;them&lt;/a&gt; out.&lt;/p&gt;

&lt;p&gt;For me personally the biggest thing was the improved simplicity of using hooks in function components compared to using class components. Where it felt like class components made me jump through hoops to keep track of state, hooks just let me use &lt;a href="https://reactjs.org/docs/hooks-state.html" rel="noopener noreferrer"&gt;&lt;code&gt;useState()&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For example, in oldskool classes, I used to write this to increment a counter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Where hooks let me do this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I bet that if you are reading this you'll feel that the second version is simpler even if you have little (react) programming experience.&lt;/p&gt;

&lt;p&gt;After this "challenge accepted!" point the hardest obstacle had to be overcame: how to handle the "I have to start all over again" feeling. I felt like I knew nothing. I was Jon Snow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dealin' with dem feelins...
&lt;/h2&gt;

&lt;p&gt;Who had I been kidding all these years calling myself a senior developer? How embarrassing was it that I had to ask my 12 years younger colleague for help over and over again...  &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%2Frx24v0b17mshepxiw6t1.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%2Frx24v0b17mshepxiw6t1.png" width="499" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some people will think "what's the big deal?", and I am happy for you if you do, but you have to understand that asking for help was a big issue for me. And a major cause for my burn out and the personality disorder that came with it.&lt;/p&gt;

&lt;p&gt;So I did two things: I decided to start learning all these new tools and frameworks and more importantly I started to ask for help. But the most important thing I did: I told my colleagues how I was feeling and how insecure I was about everything. They were very supportive and this gave me the confidence to go for it.&lt;/p&gt;

&lt;p&gt;One of the most supportive things they did is showing me that I did make progress. A lot, actually. They also showed me that not knowing everything is not the end of the world. As long as you keep trying and learning, things will work out in the end.&lt;/p&gt;

&lt;p&gt;Soon, I also realized I did not have to start all over again at all. It might have felt like it, but I still had a big headstart with my years of experience in programming overall. It was just a new framework and new tools that I needed to learn, not learning how to speak and not the first tool I ever used.&lt;/p&gt;

&lt;p&gt;It will take some time to learn all these new things. And that's okay. Good things take time. I should have realized this earlier since it's literally written on my body, but sadly it's not that obvious sometimes.&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%2Fwmhjr9nq8zp32sp5ygip.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%2Fwmhjr9nq8zp32sp5ygip.png" width="465" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Yes, this is also me.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Okay great, challenge accepted! Where to begin?
&lt;/h2&gt;

&lt;p&gt;First I made a list of all the tools we use. There were quite a few things for me to learn: Typescript, Babel, Webpack, React, Apollo, Redux, GraphQL, Yarn and many more. This list was somewhat overwhelming until I started to put them into two groups: things I needed to learn right from the start and things I could figure out later. It turned out the first list is not that big and a lot more do-able.&lt;/p&gt;

&lt;p&gt;For example, I now know how to set up a project using Babel, although I have no idea about the inner workings. And that's okay, I will learn it someday. Until then it's perfectly fine to ask a colleague who does get it.&lt;/p&gt;

&lt;p&gt;Bottom line is that it is okay to not know things. It's not the number of things you know that makes you a senior developer, it's the way you handle things &lt;a href="https://medium.com/better-programming/how-to-be-a-good-senior-developer-958948e02ada" rel="noopener noreferrer"&gt;that make you a senior&lt;/a&gt;. In my opinion.&lt;/p&gt;

&lt;p&gt;I have always tried to take some time for personal growth once in a while, but this was only a few spare hours every now and then. However, for a few months our company &lt;a href="https://www.myonlinestore.com/" rel="noopener noreferrer"&gt;MyOnlineStore&lt;/a&gt; is doing so-called &lt;a href="https://www.atlassian.com/company/shipit" rel="noopener noreferrer"&gt;Ship-it days&lt;/a&gt; where we developers can do whatever we want as long as it's somehow work-related. This is a great way for me to learn stuff I might not naturally learn during everyday work. When I work in our normal codebase I just run &lt;code&gt;yarn dev&lt;/code&gt;, storybook starts and that's it. But on these ship-it days I create new repo's, install packages and configure everything myself. That is a great way to learn new things.&lt;/p&gt;

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

&lt;p&gt;Take your time: good things take time.&lt;/p&gt;

&lt;p&gt;Be yourself. &lt;/p&gt;

&lt;p&gt;Be awesome. &lt;/p&gt;




&lt;p&gt;If you liked this blog, please let us know by giving us some claps, retweets or likes.&lt;/p&gt;

&lt;p&gt;If you think working at MyOnlineStore would be something for you, here are our &lt;a href="https://www.mijnwebwinkel.nl/vacatures" rel="noopener noreferrer"&gt;job openings&lt;/a&gt; (NL).&lt;/p&gt;

&lt;p&gt;If you have questions about this blog check out what I do in my spare time or just want to get in touch, you can find me at &lt;a href="https://www.instagram.com/bad_decision_works" rel="noopener noreferrer"&gt;Bad Decision Works Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can find more of our blogs on &lt;a href="https://medium.com/myonlinestore" rel="noopener noreferrer"&gt;Medium&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Cheers 👋 &lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>How to automate your GitHub workflow and go home early</title>
      <dc:creator>Carlo Palinckx</dc:creator>
      <pubDate>Thu, 31 Oct 2019 07:35:55 +0000</pubDate>
      <link>https://forem.com/myonlinestore/how-to-automate-your-github-workflow-and-go-home-early-19e5</link>
      <guid>https://forem.com/myonlinestore/how-to-automate-your-github-workflow-and-go-home-early-19e5</guid>
      <description>&lt;p&gt;&lt;em&gt;If you have more than zero co-workers you are probably using some kind of platform to help you with pull requests and reviews. If your platform of choice is GitHub, you're in luck. We compiled a list of tools and tricks that can help you get your commits merged in that sweet master branch as fast as possible.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Set up a pull request template
&lt;/h3&gt;

&lt;p&gt;Writing a good pull request template can help you and teammates find a common ground on how to summarize what's in a PR. You can also add a checklist if there are some requirements that have to be met before it can be merged.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kq1waNo7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/pr-template.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kq1waNo7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/pr-template.png" alt="Alt screenshot of example template" width="637" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Auto label your pull requests
&lt;/h3&gt;

&lt;p&gt;With the new GitHub actions you can automatically label your pull requests based on what files you touched in your pull request. This can help a lot with the discoverability of your pull request overview.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SawgmkaP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/labeler-timeline.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SawgmkaP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/labeler-timeline.png" alt="Alt screenshot of GitHub action on timeline" width="384" height="40"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To set this up, go to your GitHub repo with actions enabled, click on "New workflow" and once in the marketplace scroll down to "Automate every step in your process" where you'll find the "labeler" action:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WsTFvK4f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/labeler-marketplace.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WsTFvK4f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/labeler-marketplace.png" alt="Alt screenshot of GitHub action in marketplace" width="436" height="193"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Automatically request reviews with "Code owners"
&lt;/h3&gt;

&lt;p&gt;We can take the automatic labeling of your pull request one step further. There is a feature in GitHub called "code owners" which lets you assign co-workers to certain parts of your application(s). GitHub will use code owners to automatically assign reviews.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p1HBGHcz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/codeowners.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p1HBGHcz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/codeowners.png" alt="Alt screenshot of reviewers being assigned" width="250" height="227"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setting up code owners is easy, check &lt;a href="https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners"&gt;this guide&lt;/a&gt; to get started with code owners.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let a panda spam your co-workers into submission for reviews.
&lt;/h3&gt;

&lt;p&gt;One thing that has been very helpful to our team is the addition of &lt;a href="https://pullreminders.com/"&gt;Pull panda&lt;/a&gt;. It is a Slack integration that automatically sends a message to your co-workers when someone requests their review. &lt;/p&gt;

&lt;p&gt;When you request a review, the reviewer gets a message like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--grlXX-Mb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/panda-assigned.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--grlXX-Mb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/panda-assigned.png" alt="Alt screenshot of pull panda request message" width="482" height="107"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If someone approves your pull request, you'll be notified as well:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NY9qpYgN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/panda-approved.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NY9qpYgN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/panda-approved.png" alt="Alt screenshot of pull panda request message" width="532" height="81"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even if someone comments on your pull request, panda will show you the comments right away in Slack:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bSIDedO---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/panda-comments.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bSIDedO---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/panda-comments.png" alt="Alt screenshot of pull panda request message" width="266" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Automatically merge the pull request
&lt;/h3&gt;

&lt;p&gt;After applying all these steps, Our pull request get's labeled automatically, the correct reviewers get assigned automatically and they receive a Slack message reminding them that there is work to be done. Now there is one final thing for &lt;del&gt;us&lt;/del&gt; the robots to do, merge the pull request into the master branch! If your team uses any form of automated checks on pull requests, you have probably already wasted some time blindly staring at your screen until the merge button turns green.&lt;/p&gt;

&lt;p&gt;With another GitHub action called &lt;a href="https://github.com/pascalgn/automerge-action"&gt;automerge&lt;/a&gt;, this is a thing of the past. This action automatically merges your pull request based the preferences of your team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2eFUYDIZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/automerge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2eFUYDIZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/automerge.png" alt="Alt screenshot of GitHub merging the pull request" width="518" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For instance: We set up automerge to merge a pull request once:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An "automerge" label is added to the pull request&lt;/li&gt;
&lt;li&gt;All required checks are complete and successful&lt;/li&gt;
&lt;li&gt;All the required reviews are approved&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And of course after your pull request is automatically merged, you get a message from pull panda:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZauvgZwK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/panda-automerge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZauvgZwK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/MyOnlineStore/blogs/master/public/panda-automerge.png" alt="Alt screenshot of pull panda automerge message" width="385" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;I hope this list gives you some inspiration on how to automate the little things in your workflow. Even though these steps are probably not the worst bottlenecks for the speed of your team, saving a few minutes per pull request can quickly add up to something worthwhile.&lt;/p&gt;




&lt;p&gt;If you liked this blog, please let us know by giving us some claps, retweets or likes.&lt;/p&gt;

&lt;p&gt;If you think working at MyOnlineStore would be something for you, here are our &lt;a href="https://www.mijnwebwinkel.nl/vacatures"&gt;job openings&lt;/a&gt; (NL).&lt;/p&gt;

&lt;p&gt;If you have questions about this blog or just want to get in touch, you can tweet to me at &lt;a href="https://twitter.com/CarloPalinckx"&gt;https://twitter.com/CarloPalinckx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can find more of our blogs on &lt;a href="https://medium.com/myonlinestore"&gt;Medium&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Cheers 👋 &lt;/p&gt;

</description>
      <category>github</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
