<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Colin Morgan</title>
    <description>The latest articles on DEV Community by Colin Morgan (@colinmtech).</description>
    <link>https://dev.to/colinmtech</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%2F66090%2Fd98bdb4d-a506-40ad-96b8-3cab7481d227.jpg</url>
      <title>DEV Community: Colin Morgan</title>
      <link>https://dev.to/colinmtech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/colinmtech"/>
    <language>en</language>
    <item>
      <title>5 Ways to Take Initiative as a Software Engineer</title>
      <dc:creator>Colin Morgan</dc:creator>
      <pubDate>Mon, 04 Mar 2024 18:56:03 +0000</pubDate>
      <link>https://dev.to/colinmtech/5-ways-to-take-initiative-as-a-software-engineer-1odk</link>
      <guid>https://dev.to/colinmtech/5-ways-to-take-initiative-as-a-software-engineer-1odk</guid>
      <description>&lt;p&gt;You worked hard, studied hard, interviewed your butt off, and landed that coveted job as a Software Engineer. Now it's time to climb. Here are 10 ways you can take initiative and prove that you deserve that next level.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create A Technical Debt Roadmap
&lt;/h2&gt;

&lt;p&gt;If your team doesn't already have a way to log, track, and plan technical debt, creating one is a great way to take initiative and help your team plan for the future. Every team has a backlog of work that needs to get done but doesn't fit into a product roadmap. Maybe you even have a backlog of Jira tickets labelled "tech debt" or something similar. Take some time to create a simple spreadsheet that can track these technical debts. &lt;/p&gt;

&lt;p&gt;Once it's created, share it with your team and encourage them to add any items they would like to see worked on. Key points here are to include rough estimates like t-shirt sizes, as well as highlighting how the work could positively affect business goals. Don't forget to keep the document up to date so it reflects the current state of affairs. It's much easier to sell the importance of technical debt when it's laid out in an organized manner.&lt;/p&gt;

&lt;h2&gt;
  
  
  Initiate Knowledge Sharing
&lt;/h2&gt;

&lt;p&gt;It's pretty rare that there is an even distribution of knowledge across engineering teams. A great way to help your team level up their domain knowledge and flex your organizational muscle at the same time is to set up knowledge sharing sessions. Usually this takes the form of a presentation that digs into the inner workings of a system, followed by a Q&amp;amp;A session. &lt;/p&gt;

&lt;p&gt;If you don't feel confident enough with a system to run one yourself, try reaching out to Engineers that have strong domain knowledge in a particular area and ask if they'd be willing to run one, while offering to help organize it. If everyone is okay with it, it's also a great idea to record these sessions so that you can provide them to anyone interested in learning more about the system in question. These types of sessions make for great onboarding material for new employees.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create or Improve Documentation
&lt;/h2&gt;

&lt;p&gt;Let's face it, no one wants to work on documentation. Except those technical writer weirdos (jk). Unfortunately, technical documentation is one of the most important aspects of keeping a team running smoothly. Stepping up to write or improve documentation is a great way to display one of the most important dimensions of a Senior Engineer, ownership.&lt;/p&gt;

&lt;p&gt;Take some time to review your team's technical documentation. Look for opportunities to fill gaps, update stale information, and increase readability. A side effect of this is that you'll build stronger domain knowledge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Improve Your Team's Onboarding Process
&lt;/h2&gt;

&lt;p&gt;No matter what business you work for, there's always a steep learning curve for Engineers that are new to your team. If your team doesn't already have a formal onboarding process, taking the time to craft one is a great way to display your leadership skills. If your team already has an onboarding processing, look for ways to improve it.&lt;/p&gt;

&lt;p&gt;To start, spend some time thinking about what it was like when you were first hired. What sorts of things were helpful and what was lacking? You can also reach out to recently hired teammates and ask them the same questions. Some rough ideas to get you started:&lt;/p&gt;

&lt;p&gt;Does your team have a checklist of things that a new employee should be provided? eg. permissions, accounts, documentation, style guides, etc.&lt;/p&gt;

&lt;p&gt;Does your team assign a mentor to new employees?&lt;/p&gt;

&lt;p&gt;Does your team have any educational material to help them get familiar with the code bases they'll be working on?&lt;/p&gt;

&lt;p&gt;Does your team provide new Engineers with guidance on what is expected in terms of code style, unit testing, code reviews, etc.?&lt;/p&gt;

&lt;h2&gt;
  
  
  Improve Your Team's Development Process
&lt;/h2&gt;

&lt;p&gt;Every team has room for improvement when it comes to their development process.&lt;/p&gt;

&lt;p&gt;Do projects often end up going over estimates? Suggest your team try some alternative estimating approaches, like planning poker.&lt;/p&gt;

&lt;p&gt;Perhaps your team suffers from a lot of bugs in production? Suggest improvements to your code review process. An example of this could be adding a code review checklist for your team to follow. &lt;/p&gt;

&lt;p&gt;Does your team struggle with consistent code formatting? Implement an automated code linter and outline a style guide for your team to follow.&lt;/p&gt;

&lt;p&gt;The key here is to keep your eyes and ears open for ways that your team's development process could improve. Spotting these problems and solving them shows that you continually strive for improvement and that you have a strong sense of ownership.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping It Up
&lt;/h2&gt;

&lt;p&gt;The key to taking initiative as a Software Engineer is to always be looking for ways to help make your team more efficient. Writing clean bug free code is great, but helping your entire team improve as a whole is how you show you are ready to move into a leadership role.&lt;/p&gt;

&lt;p&gt;Let me know in the comments if you have any other examples of taking initiative as a Software Engineer.&lt;/p&gt;

&lt;p&gt;Until next time, happy coding!&lt;/p&gt;

</description>
      <category>career</category>
    </item>
    <item>
      <title>Want to be a Senior Engineer? Do this</title>
      <dc:creator>Colin Morgan</dc:creator>
      <pubDate>Wed, 10 Aug 2022 16:32:39 +0000</pubDate>
      <link>https://dev.to/colinmtech/want-to-be-a-senior-engineer-do-this-5ehp</link>
      <guid>https://dev.to/colinmtech/want-to-be-a-senior-engineer-do-this-5ehp</guid>
      <description>&lt;p&gt;Becoming a Senior Engineer is an important milestone in your career, but what are the exact steps to becoming one?&lt;/p&gt;

&lt;p&gt;Unfortunately, the reality is that there is no universal checklist that can be used to determine someone’s level. A lot of times it comes down to the company you are applying to and the level of people you’ll be working with. With that said, here are some steps you can take to put yourself on the right track.&lt;/p&gt;

&lt;h2&gt;
  
  
  Become a domain expert
&lt;/h2&gt;

&lt;p&gt;Most jobs will have you working with large swaths of code, spread across multiple systems, each with their own quirks and requirements. Choose a system and become the domain expert for it. Here are some ways to achieve this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Volunteer for projects that involve these systems.&lt;/li&gt;
&lt;li&gt;Perform any required maintenance for them.&lt;/li&gt;
&lt;li&gt;Write or improve documentation for them.&lt;/li&gt;
&lt;li&gt;Volunteer to investigate and answer questions related to them.&lt;/li&gt;
&lt;li&gt;Take the initiative to document any changes or improvements that would make the system more efficient or reliable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’ll begin to notice that people will start coming to you any time they have a question about this system or involving you in planning related to it. You’ll also start to notice, in your own mind, that these questions emphasize how much you know about the system compared to others. This is a clear sign that you have achieved your goal. Now choose another system and repeat the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Develop a solid understanding of security
&lt;/h2&gt;

&lt;p&gt;One key thing that separates a Senior from a Mid/Junior is their understanding of security.&lt;br&gt;
You should spend time learning and understanding security best practices for your area of expertise. Working on web apps? You better know topics like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to store and manage passwords and sensitive information.&lt;/li&gt;
&lt;li&gt;What TLS is and why it’s used.&lt;/li&gt;
&lt;li&gt;Hashing algorithms and how they work.&lt;/li&gt;
&lt;li&gt;Authentication/authorization and how both work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the end of the day you should be able to identify breaches of security when reviewing code. You should also be able to design and implement systems that adhere to the security standards of your domain and be able to explain why the related precautions are necessary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Take ownership
&lt;/h2&gt;

&lt;p&gt;Taking ownership is more of a shift in mindset than anything else. The mindset is one of viewing a system as your system. If you spent an hour washing and waxing your car, how would you feel if someone walked up, just as you finished, and sprayed it with mud? Embracing this mindset, you’ll notice several things happen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You’ll start to recognize very quickly when something is either beneficial or detrimental to the system.&lt;/li&gt;
&lt;li&gt;You’ll have an urge to “keep it clean” which helps greatly with code reviews and feature requests.&lt;/li&gt;
&lt;li&gt;You’ll develop a sincere interest in the system, which becomes obvious to your coworkers.&lt;/li&gt;
&lt;li&gt;You’ll actively look for ways to improve the system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you begin to take ownership, you’ll find yourself naturally leading efforts involving the system in question. Why? Because it matters to you. This type of genuine ownership is that “hard to describe” quality that you admire about most high-level engineers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Be a multiplier
&lt;/h2&gt;

&lt;p&gt;One of the clear signs that someone is a Senior level engineer is that they spend their time being a multiplier. At the end of the day, our contributions are limited by the number of hours in our work day. The work around to this is looking for opportunities to increase the productivity of those around us. Here are some examples of being a multiplier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Taking the initiative to unblock a project. If you have five engineers assigned to a project that is blocked, you have five engineers doing nothing. Even if it takes 100% of your effort to help unblock those engineers, you’ll be increasing the current productivity by 500%. &lt;/li&gt;
&lt;li&gt;Mentoring. Spending an hour or two of your week to help mentor another Engineer can dramatically increase that Engineer’s effectiveness. Bonus points for convincing them to mentor others and pass it on.&lt;/li&gt;
&lt;li&gt;Document everything. Writing good documentation is the quintessential multiplier for Software Engineers. Every minute spent reading documentation is a minute not taken from a fellow Engineer to explain how to do something.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Speak up
&lt;/h2&gt;

&lt;p&gt;Learning to contribute to discussions is an important part of becoming a Senior. Yes, sometimes your input will not yield actionable results. Yes, sometimes you’ll say something that was obviously wrong or will be dismissed. Yes, it will sometimes make you feel stupid. However, contributing to discussions is the only way to develop your voice and authority. By speaking up, you’re showing your team that you are thinking about the topic at hand and that you are willing to take initiative. Opportunities to speak up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You don’t understand. Asking for clarification shows that you are engaged and listening. It also helps quieter people who are also not understanding but are too shy to ask.&lt;/li&gt;
&lt;li&gt;You think there might be a better approach. Even if you are wrong for some reason, it’s important for you to understand why your approach won’t work so that you can improve problem solving skills.&lt;/li&gt;
&lt;li&gt;You see a way to contribute. Maybe you worked on a related feature recently and have valuable insight to the discussion. Often this will open the door for you to be involved in a project that you wouldn’t have otherwise.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember, although these steps will help accelerate you towards being a Senior Engineer, at the end of the day it comes down to experience and time.&lt;/p&gt;

&lt;p&gt;Good luck and feel free to reach out if you have any questions. &lt;/p&gt;

&lt;p&gt;Find me on twitter: &lt;a href="https://twitter.com/ColinMTech"&gt;https://twitter.com/ColinMTech&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DM me for coaching/mentoring sessions.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>career</category>
    </item>
    <item>
      <title>Learning Web Development? These Skills Will Make You Stand Out (Part Two)</title>
      <dc:creator>Colin Morgan</dc:creator>
      <pubDate>Thu, 10 May 2018 12:19:35 +0000</pubDate>
      <link>https://dev.to/colinmtech/learning-web-development-these-skills-will-make-you-stand-out-part-two-7ll</link>
      <guid>https://dev.to/colinmtech/learning-web-development-these-skills-will-make-you-stand-out-part-two-7ll</guid>
      <description>&lt;p&gt;In &lt;a href="https://dev.to/colinmtech/learning-web-development-these-skills-will-make-you-stand-out-56fh"&gt;part one&lt;/a&gt; of this article we discussed technical skills that, for people learning Web Development, could help you stand out from the crowd. The list was curated from discussions with experienced Web Developers across several communities, who felt the aforementioned skills were often neglected.&lt;/p&gt;

&lt;p&gt;In part two of this article, we're going to discuss the soft skills. What are soft skills? Pretty much anything that isn't a technical skill is considered a soft skill.&lt;/p&gt;

&lt;p&gt;So let's get started.&lt;/p&gt;

&lt;h2&gt;Learn When/How To Ask Questions&lt;/h2&gt;

&lt;p&gt;Learning Web Development, like a lot of professions, is an endless journey to obtain knowledge. As someone learning Web Development, you're inevitably going to have a lot of questions. Let me be clear, &lt;strong&gt;this is okay&lt;/strong&gt;. I'll go one step further and say it's expected. With that said, there are right ways to ask questions and wrong ways. If you want to stand out as a Web Developer, it's important that you learn the right way.&lt;/p&gt;

&lt;h3&gt;Help Yourself First&lt;/h3&gt;

&lt;p&gt;Before asking a question, you should learn to help yourself. Very few issues you run into during the beginning of your career are going to be novel. Chances are someone else has run into the exact same issue, found an answer to the problem, and documented the solution on the internet in some form.&lt;/p&gt;

&lt;p&gt;Read the documentation, search the error message on &lt;a href="https://www.google.com/" rel="noopener noreferrer"&gt;Google&lt;/a&gt;, check &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Github&lt;/a&gt; for related issues, search &lt;a href="https://stackoverflow.com/" rel="noopener noreferrer"&gt;Stack Overflow&lt;/a&gt;, and any other resource you can think of. If you can't find the issue, your wording might be wrong and you may need to try some different variations.&lt;/p&gt;

&lt;h3&gt;RTFM&lt;/h3&gt;

&lt;p&gt;My Dad used to have a saying he'd tell me when I was learning something new. &lt;strong&gt;Read the f*cking manual.&lt;/strong&gt; Maybe it's not an overly elegant statement, but it rings very true when it comes to learning Web Development.&lt;/p&gt;

&lt;p&gt;Before asking a question, try reading the documentation for the tech that you are working with. If nothing else, this will give you a better understanding of what's going on and might be able to point you in the right direction.&lt;/p&gt;

&lt;p&gt;I have a confession, the majority of times I run into an issue with a library or framework is because I didn't read the documentation or glossed over the details. This is not specific to new Developers but is a concept that will solve problems before you run into them.&lt;/p&gt;

&lt;p&gt;If you want to be a more consistent Web Developer, RTFM.&lt;/p&gt;

&lt;h3&gt;Show Your Work&lt;/h3&gt;

&lt;p&gt;Read all the documentation, combed the internet from top to bottom, still can't figure it out? &lt;strong&gt;Now&lt;/strong&gt; it's time to ask your question. When asking a question make sure to include:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;A clear summary of the issue including any error messages, side effects, context, stack traces, or other pertinent details.&lt;/li&gt;
    &lt;li&gt;A screenshot, gif, or video of the problem if it's visual.&lt;/li&gt;
    &lt;li&gt;All of the approaches you've tried already.&lt;/li&gt;
    &lt;li&gt;The related code, if there is any.&lt;/li&gt;
    &lt;li&gt;Any related issues or documentation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/" rel="noopener noreferrer"&gt;Stack Overflow&lt;/a&gt; wrote a good article about asking questions &lt;a href="https://stackoverflow.com/help/how-to-ask" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One other thing. If you've found the solution to your problem but don't understand it, make sure you &lt;strong&gt;ask for clarification&lt;/strong&gt;. Remember, those who fail to learn from history are doomed to repeat it.&lt;/p&gt;

&lt;h2&gt;Learn To Think Like A Customer&lt;/h2&gt;

&lt;p&gt;We spend a lot of time learning to think like a Web Developer, so this one can be tricky. Being able to think like a Customer can mean the difference between one or two iterations of a feature, versus a dozen. So how do you learn to think like a Customer?&lt;/p&gt;

&lt;h3&gt;Talk To Them&lt;/h3&gt;

&lt;p&gt;Customers are the single most valuable resource for your development process. Why? Because they can tell you exactly what they want or at least give you specific details about how they plan to use a product or feature. This is valuable insight that you can use to plan your approach.&lt;/p&gt;

&lt;p&gt;If you talk to your Customers often enough, you'll begin to see the product through the eyes of someone using the product, instead of the eyes of a Developer trying to solve a technical challenge. The two perceptions are very different.&lt;/p&gt;

&lt;h3&gt;Get Early Feedback&lt;/h3&gt;

&lt;p&gt;When you're working on something that directly relates to a Customer, try to get feedback &lt;strong&gt;as early as possible&lt;/strong&gt;. After developing a rough idea of how something should work, I often like to create a gif of it working and send it to my clients for some quick feed back.&lt;/p&gt;

&lt;p&gt;I can't tell you how many times I've started coding, provided the client with a rough draft of the feature, and received feedback that prevented me from spending hours more on a feature that the client ultimately didn't like. Do this enough and you'll start to know what the Customer is going to say before the say it.&lt;/p&gt;

&lt;p&gt;One thing to keep in mind. Be weary of showing a Customer something that is mid-development and subsequently broken. Sometimes Customers can't see past your rough draft choices and it skews their perception.&lt;/p&gt;

&lt;h2&gt;Learn To Understand Why It Was Done That Way&lt;/h2&gt;

&lt;p&gt;This one is pretty straightforward. When you're out there in the wild, there are times when you'll find yourself staring down the barrel of some really gnarly code. When this happens, take the time to try and figure out why it was done that way. Most Developers &lt;strong&gt;want&lt;/strong&gt; to write clean readable code, but the reality is that sometimes we are forced to write garbage.&lt;/p&gt;

&lt;p&gt;Why? Because at the end of the day programming is usually used to solve business problems and business problems are often a mess. So take the time to understand why something was done the way it was and don't assume you know better.&lt;/p&gt;

&lt;p&gt;Nothing is worse than "refactoring" a block of code, only to find out you introduced a bunch of new bugs that the original code walked around carefully.&lt;/p&gt;

&lt;h2&gt;Learn To Properly Test&lt;/h2&gt;

&lt;p&gt;Yes, this means learn to write unit tests properly. However, it also means that you need to &lt;strong&gt;try your code&lt;/strong&gt; before you push it out. Just wrote a new API end point? Don't just get your unit tests passing and ship it. Test the end point in real world scenarios. Test it while thinking like a customer. Made front-end changes? Test it on all the browsers and at different screen sizes.&lt;/p&gt;

&lt;p&gt;When your coworkers review your pull requests the only issues they should run into are edge cases. Even with edge cases, if you write good unit tests, you'll likely catch those as well. Learning to properly test will make your code more consistent. Consistent code will label you a consistent Developer.&lt;/p&gt;

&lt;h2&gt;Learn To Properly Search&lt;/h2&gt;

&lt;p&gt;This is probably one of the most important soft skills you can learn when learning Web Development. If you can learn to properly search for answers to your problem, you'll be close to unstoppable. 99.9% of the time the answer to your problem is out there on the internet, in a &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Github&lt;/a&gt; issue, article, or some obscure community forum. You just need to learn how to find it.&lt;/p&gt;

&lt;p&gt;Here are some approaches you can use:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;If you have an error message, try searching Google using exact string matches. Just make sure to leave environment specific parts of the error message out.&lt;/li&gt;
    &lt;li&gt;Try rewording your search phrase multiple times. Swap phrases like "modal" with "popup".&lt;/li&gt;
    &lt;li&gt;Have a stack trace? Find the line of code that is erroring, look it up on &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Github&lt;/a&gt;, then comb through the history of that line for possible leads.&lt;/li&gt;
    &lt;li&gt;Search &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Github&lt;/a&gt; for issues related to the problem. Maybe someone has ran into this issue already and a fix is included in a newer version.&lt;/li&gt;
    &lt;li&gt;Search using function or variable names specific to the problem. Often function names can be unique to the code base and yield good results.&lt;/li&gt;
    &lt;li&gt;Read the source code. Maybe there are comments that will help you or maybe gaining a better understanding of how it's working under the hood will help you understand the problem from a different angle.&lt;/li&gt;
    &lt;li&gt;RTFM (see above)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is no formula to follow when learning to properly search for answers to your problem and the best approach is often specific to the type of technology you are working with. More important is that you commit to learning to find the answers on your own.&lt;/p&gt;

&lt;h2&gt;Don't Do Things You Don't Understand&lt;/h2&gt;

&lt;p&gt;I'm going to keep this one short. There are times when you are going to feel tempted to copy and paste code into your project without understanding how that code works. &lt;strong&gt;Don't do this&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Either take the time to learn how it works, or don't use it. This doesn't mean you need to understand the inner workings of every plugin, package, or module before using them. It &lt;strong&gt;does&lt;/strong&gt; mean that you should read the documentation for those tools before using them.&lt;/p&gt;

&lt;h2&gt;The Tip Of The Iceberg&lt;/h2&gt;

&lt;p&gt;There was an unreal amount of soft skills mentioned across all of the communities and unfortunately I can't write about every single one in detail. Here is a list of some that I missed:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Learn to be empathetic.&lt;/li&gt;
    &lt;li&gt;Learn better conversational skills.&lt;/li&gt;
    &lt;li&gt;Learn to not assume it's someones else's fault, because it often isn't.&lt;/li&gt;
    &lt;li&gt;Learn to take notes.&lt;/li&gt;
    &lt;li&gt;Learn to under promise and over deliver.&lt;/li&gt;
    &lt;li&gt;Learn to be humble when being critiqued and merciful when critiquing.&lt;/li&gt;
    &lt;li&gt;Give yourself time before escalating problems with coworkers.&lt;/li&gt;
    &lt;li&gt;Learn to be patient with others.&lt;/li&gt;
    &lt;li&gt;Learn to back yourself when you think you're right and to recognize when you're not.&lt;/li&gt;
    &lt;li&gt;Learn to communicate your progress, even if you aren't required to.&lt;/li&gt;
    &lt;li&gt;Learn to know your limits and not work yourself to death. Sometimes a break can increase your productivity overall.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you to everyone who was involved in the initial discussions. There were a lot of great suggestions and a lot valuable insight. For those learning Web Development, I hope these articles have provided you some value.&lt;/p&gt;

&lt;p&gt;Good luck and happy learning.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Looking for Tech Jobs?&lt;/strong&gt; Check out my website &lt;a href="https://obviousjobs.com" rel="noopener noreferrer"&gt;ObviousJobs.com&lt;/a&gt; for jobs with &lt;strong&gt;full salary disclosure&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Learning Web Development? These Skills Will Make You Stand Out</title>
      <dc:creator>Colin Morgan</dc:creator>
      <pubDate>Wed, 02 May 2018 12:39:57 +0000</pubDate>
      <link>https://dev.to/colinmtech/learning-web-development-these-skills-will-make-you-stand-out-56fh</link>
      <guid>https://dev.to/colinmtech/learning-web-development-these-skills-will-make-you-stand-out-56fh</guid>
      <description>&lt;p&gt;Unfortunately, learning to code is only one step on the path of learning Web Development. Depending on your career trajectory, you could be competing with &lt;strong&gt;thousands&lt;/strong&gt; of others who are also trying to break into the industry.&lt;/p&gt;

&lt;p&gt;So what should you do to stand out from the pack?&lt;/p&gt;

&lt;p&gt;I asked Web Developers across several communities what skills they thought were often neglected by new Web Developers, and I received a lot of great responses. So many in fact, that I decided to curate a list to summarize all of the information in one place. By learning these skills and concepts, you'll have a huge leg up on the competition.&lt;/p&gt;

&lt;p&gt;This article is going to be a two part series. One article for the technical skills and one for the soft skills. In this first article we're going to focus on the technical skills.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: The list of concepts for each is not exhaustive. I've only include the topics I believe will give you the most bang for your buck. If you think something deserves to be included and isn't, feel free to leave a comment for everyone's benefit.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;A Basic Understanding of Networking&lt;/h2&gt;

&lt;p&gt;Having an end-to-end understanding of &lt;a href="https://github.com/alex/what-happens-when" rel="noopener noreferrer"&gt;what happens when you type google.com into your browser and click enter&lt;/a&gt;, is one of the best ways you can stand out from the herd. Obtaining a basic understanding of networking will go a long way towards reaching that goal.&lt;/p&gt;

&lt;h3&gt;What To Learn?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;How Domain Name Systems (DNS) work.&lt;/li&gt;
    &lt;li&gt;Registering and using domains.&lt;/li&gt;
    &lt;li&gt;Understanding TCP/IP.&lt;/li&gt;
    &lt;li&gt;Basic network debugging. (ex. why aren't I able to to connect to my new website? &lt;em&gt;Hint: The port isn't open&lt;/em&gt;)&lt;/li&gt;
    &lt;li&gt;Understanding what a VPN is.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out this &lt;strong&gt;free&lt;/strong&gt; course by google that teaches you the basics of &lt;a href="https://www.udacity.com/course/networking-for-web-developers--ud256" rel="noopener noreferrer"&gt;Networking for Web Developers&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Understand How HTTP Works&lt;/h2&gt;

&lt;p&gt;Although technically part of a basic understanding of networking, HTTP is important enough that it deserves it's own section. HTTP is the bread and butter protocol of the web, so learn it inside and out.&lt;/p&gt;

&lt;h3&gt;What To Learn?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;The anatomy of an HTTP transaction.&lt;/li&gt;
    &lt;li&gt;The HTTP request verbs and when the use them.&lt;/li&gt;
    &lt;li&gt;Recognize the main response codes and when to use which ones.&lt;/li&gt;
    &lt;li&gt;What a stateless protocol is and why it matters.&lt;/li&gt;
    &lt;li&gt;Recognize popular headers and how to add your own.&lt;/li&gt;
    &lt;li&gt;Working with HTTP outside the browser. &lt;em&gt;(REST clients, curl, etc)&lt;/em&gt;
&lt;/li&gt;
    &lt;li&gt;SSL, what it is, how it works, and why you should use it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are a lot of available resources out there to learn about HTTP but I'll include a couple in case you're feeling lazy:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/HTTP&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.udacity.com/course/http-web-servers--ud303" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="https://www.udacity.com/course/http-web-servers--ud303" rel="noopener noreferrer"&gt;https://www.udacity.com/course/http-web-servers--ud303&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Learn To Work in Unix Shells&lt;/h2&gt;

&lt;p&gt;Unless you plan on working exclusively with Microsoft tools, your websites and applications are likely going to be hosted on a Linux server. That means you're going to need to be familiar with working in Unix shells. A lot of new Web Developers avoid working from the command line because it feels unfamiliar. This is completely normal, but now isn't the time to stay in your comfort zone.&lt;/p&gt;

&lt;h3&gt;What To Learn?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;Remote access using SSH.&lt;/li&gt;
    &lt;li&gt;Basic shell commands (cd, ls, cp, mv, mkdir, ...).&lt;/li&gt;
    &lt;li&gt;Learn how to use grep.&lt;/li&gt;
    &lt;li&gt;Get familiar with a command line text editor (vim, Emacs, nano, ...).&lt;/li&gt;
    &lt;li&gt;Understand file permissions and how to change them.&lt;/li&gt;
    &lt;li&gt;Learn what environment variables are and how/when to use them.&lt;/li&gt;
    &lt;li&gt;Learn how to use .bashrc&lt;/li&gt;
    &lt;li&gt;Learn how to use a package manager (apt, yum, ...)&lt;/li&gt;
    &lt;li&gt;Learn to find and read logs for your services.&lt;/li&gt;
    &lt;li&gt;Learn to manage services (start, stop, restart, ...)&lt;/li&gt;
    &lt;li&gt;Learn basic bash scripting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Honestly, I could go on and on for this one. Learning to be effective in a Unix shell can be a career long journey, which is half the fun. The power you gain from working on the command line quickly becomes apparent and will change the way you approach development. Some learning will be specific to your environment but the basics should apply across the board. Check out this &lt;a href="https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-basics" rel="noopener noreferrer"&gt;tutorial&lt;/a&gt; by &lt;a href="https://www.digitalocean.com" rel="noopener noreferrer"&gt;Digital Ocean&lt;/a&gt; to get started.&lt;/p&gt;

&lt;h2&gt;Learn To Use Git&lt;/h2&gt;

&lt;p&gt;A strong understanding of Git is one of the most important things to learn as a new developer but it seems to be avoided by most. This is unfortunate because I believe newer developers benefit the most from a strong command of git. Why? Because it will &lt;strong&gt;save your butt&lt;/strong&gt; when you inevitably make a mistake. Keep in mind, there are other version control tools out there like SVN and Mercurial, but for this article we'll focus primarily on Git.&lt;/p&gt;

&lt;h3&gt;What To Learn?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;Learn the basic commands (init, add, commit, status, checkout, ...)&lt;/li&gt;
    &lt;li&gt;Learn to configure remote repositories.&lt;/li&gt;
    &lt;li&gt;Learn to use fetch, pull, push.&lt;/li&gt;
    &lt;li&gt;Learn to work with branches. (create, merge, ...)&lt;/li&gt;
    &lt;li&gt;Learn what rebase is and how to use it.&lt;/li&gt;
    &lt;li&gt;Learn how to resolve conflicts.&lt;/li&gt;
    &lt;li&gt;Learn how to use stash.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The more effort you put into learning git, the more confident you'll be working with a team of developers. &lt;a href="https://www.atlassian.com/" rel="noopener noreferrer"&gt;Atlassian&lt;/a&gt; offers a &lt;a href="https://www.atlassian.com/git" rel="noopener noreferrer"&gt;great tutorial&lt;/a&gt; or you can check out &lt;a href="https://try.github.io/" rel="noopener noreferrer"&gt;try.github.io&lt;/a&gt; if you prefer a more interactive approach.&lt;/p&gt;

&lt;h2&gt;Learn To Use Browser Developer Tools&lt;/h2&gt;

&lt;p&gt;Browser tools are an everyday use just like your text editor, so get to know them. Being able to properly use browser tools will give you a &lt;strong&gt;huge&lt;/strong&gt; leg up on the competition, and will make you an all around better Web Developer.&lt;/p&gt;

&lt;p&gt;It will help you with debugging, understanding the effects of your code, recognizing performance issues, and much more. Chrome in particular has a lot of invaluable tools baked into their developer suite which has made my life as a Web Developer exponentially easier.&lt;/p&gt;

&lt;h3&gt;What To Learn?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;Learn to use the console to find errors and debug your code.&lt;/li&gt;
    &lt;li&gt;Learn to use the inspection tool to view/change your markup and CSS in the browser.&lt;/li&gt;
    &lt;li&gt;Learn how to debug Javascript (call stack, breakpoints, object inspection, ...)&lt;/li&gt;
    &lt;li&gt;Learn to inspect and debug HTTP transactions.&lt;/li&gt;
    &lt;li&gt;Learn to profile websites to identify performance issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Browser tools offer an advantage that you can't ignore, so learn them early and learn them well. If you're using Chrome, checkout Google's &lt;a href="https://developer.chrome.com/devtools" rel="noopener noreferrer"&gt;Chome Dev Tools Overview&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Learn an Additional Language&lt;/h2&gt;

&lt;p&gt;Most people will tell you to learn one language and learn it well. However, part of becoming a good Web Developer is learning to use the &lt;strong&gt;right tool for the job&lt;/strong&gt;, and this includes programming languages. It's a good idea to learn more than one language but it's also important to learn different types of languages.&lt;/p&gt;

&lt;p&gt;For example, if you're learning a language like &lt;a href="https://www.python.org/" rel="noopener noreferrer"&gt;Python&lt;/a&gt;, you'll have a great tool for Object Oriented Programming. Instead of learning a similar language like &lt;a href="https://www.ruby-lang.org/en/" rel="noopener noreferrer"&gt;Ruby&lt;/a&gt;, why not learn a functional language like &lt;a href="https://clojure.org/" rel="noopener noreferrer"&gt;Clojure&lt;/a&gt;? or a language superset like &lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;TypeScript&lt;/a&gt;? This approach will help you to broaden your understanding of different programming paradigms and give you better insight into selecting the right tool for the job.&lt;/p&gt;

&lt;p&gt;I'll list a few languages that will take you off the beaten path but know that there are a lot more available.&lt;/p&gt;

&lt;h3&gt;What To Learn?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href="https://www.haskell.org/" rel="noopener noreferrer"&gt;Haskell&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.scala-lang.org/" rel="noopener noreferrer"&gt;Scala&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://elm-lang.org/" rel="noopener noreferrer"&gt;Elm&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;TypeScript&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://clojure.org/" rel="noopener noreferrer"&gt;Clojure&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://golang.org/" rel="noopener noreferrer"&gt;Go&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://kotlinlang.org/" rel="noopener noreferrer"&gt;Kotlin&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Bash_(Unix_shell)" rel="noopener noreferrer"&gt;Bash&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember, it's not about learning a language that will get you a job. It's about broadening your horizons as a developer and being able to recognize the right tool for the job.&lt;/p&gt;

&lt;p&gt;If I missed any languages you think should be included, feel free to add it in the comments.&lt;/p&gt;

&lt;h2&gt;Learn to Comment Your Code Properly&lt;/h2&gt;

&lt;p&gt;Commenting code is a point of contention among developers in the industry. Some developers will tell you to comment sparingly, some will tell you to comment often. At the end of the day it's going to depend on the team you work with and the style guide that they provide for you. With that said, no matter how much commenting you end up doing, it's important to learn how to comment &lt;strong&gt;correctly&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;What To Learn?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;Learn to write self-commenting code.&lt;/li&gt;
    &lt;li&gt;Learn your language's commenting syntax.&lt;/li&gt;
    &lt;li&gt;Learn to write comments that are brief and to the point.&lt;/li&gt;
    &lt;li&gt;Get familiar with &lt;a href="https://en.wikipedia.org/wiki/Comparison_of_documentation_generators" rel="noopener noreferrer"&gt;documentation generators&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Learn how to recognize code that needs commenting.&lt;/li&gt;
    &lt;li&gt;Learn your language's commenting standards, if it has one. (ex. &lt;a href="https://www.python.org/dev/peps/pep-0008/" rel="noopener noreferrer"&gt;PEP 8&lt;/a&gt; for Python)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Good comments can really help grease the wheels when you are working with a team of Developers. If you learn to write clean self-commenting code and back that up with comments that illuminate the dark parts, your teammates will take notice and appreciate your efforts.&lt;/p&gt;

&lt;p&gt;That's it for the technical skills. Obviously, there is an &lt;strong&gt;infinite&lt;/strong&gt; list of stuff you could learn to stand out among your peers. However, these topics are the ones that Web Developer's have expressed a desire to see more of when working with new Developers.&lt;/p&gt;

&lt;p&gt;In the second part of this article, we'll review a similar list, but for soft skills. Until then, happy learning!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Looking for Tech Jobs?&lt;/strong&gt; Check out my website &lt;a href="https://obviousjobs.com" rel="noopener noreferrer"&gt;ObviousJobs.com&lt;/a&gt; for jobs with &lt;strong&gt;full salary disclosure&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>5 Tips I Use To Land Remote Software Developer Jobs</title>
      <dc:creator>Colin Morgan</dc:creator>
      <pubDate>Tue, 24 Apr 2018 12:06:22 +0000</pubDate>
      <link>https://dev.to/colinmtech/5-tips-i-use-to-land-remote-software-developer-jobs-ogd</link>
      <guid>https://dev.to/colinmtech/5-tips-i-use-to-land-remote-software-developer-jobs-ogd</guid>
      <description>&lt;p&gt;Applying for a Remote Software Developer job means you are voluntarily choosing to compete against the entire country versus just one city. In some cases, multiple countries. There a lot of people interested in working from home, setting their own hours, and maintaining separation of their job from where they live. The result of this interest is &lt;strong&gt;extremely&lt;/strong&gt; stiff competition.&lt;/p&gt;

&lt;p&gt;So how do you increase you chances of landing a remote job? There are a lot of ways to maintain a competitive edge. In my experience, these approaches helped me beat the odds consistently over the last decade.&lt;/p&gt;

&lt;h2&gt;Step 1 - Cast a Wide Net&lt;/h2&gt;

&lt;p&gt;There's always two sides to a coin, right? It's true that Remote Software Developer jobs have a large pool of candidates to choose from. This also means that, for people looking to work remotely, there is a large pool of positions they can apply to. So although it's true that the competition for Remote Software Developer jobs is stiff, it also means that there are &lt;strong&gt;a lot&lt;/strong&gt; more jobs that you can apply to.&lt;/p&gt;

&lt;p&gt;With that in mind, it's important to cast a wide net when applying for remote jobs. Use every source at your disposal to track down available remote positions and apply to them.&lt;/p&gt;

&lt;p&gt;One of the biggest problems I've seen with Developers trying to land a remote job is how much they underestimate the number of applications they need to submit before getting a response. It's not unusual for me to submit twenty applications before hearing back from one. Don't take it personally and don't assume it means you aren't qualified. Unfortunately it's a numbers game, so just keep playing.&lt;/p&gt;

&lt;p&gt;If you are currently searching for a Remote Software Developer job, check out &lt;a href="http://fullbit.ca/how-i-find-six-figure-remote-software-developer-jobs/" rel="noopener noreferrer"&gt;this article&lt;/a&gt; I published that describes the resources I use to cast a wide net. It's worked for me and it'll work for you.&lt;/p&gt;

&lt;h2&gt;Step 2 - Focus Your Resume&lt;/h2&gt;

&lt;p&gt;With so much competition, it's important that you focus your resume for the type of job you are looking to land. The more specific your resume is to a position, the more likely you'll find yourself on the interview list.&lt;/p&gt;

&lt;p&gt;For example, if you are applying for a front-end position, you should have a resume that is specifically tailored to this type of position. It should highlight your previous front-end work experience and the applicable technologies.&lt;/p&gt;

&lt;p&gt;If you have a goal or mission statement, it should specifically mention the job title for the job you are applying to.&lt;/p&gt;

&lt;blockquote&gt;The freedoms that come with a Remote Software Developer job completely outweigh the effort you have to put into obtaining one.&lt;/blockquote&gt;

&lt;p&gt;Right now you're probably thinking "If I cast a wide net and customize my resume to each job posting, when will I have time to sleep and eat?". This is a completely valid concern and I'm not going to lie, &lt;strong&gt;it's a lot of work&lt;/strong&gt;. Sometimes applying for remote jobs can feel like a full-time job in it's self. Just remember why you want a remote job in the first place. The freedoms that come with a Remote Software Developer job completely outweigh the effort you have to put into obtaining one.&lt;/p&gt;

&lt;h2&gt;Step 3 - Be Extremely Responsive&lt;/h2&gt;

&lt;p&gt;This goes without saying for any type of job but it's even more important for Remote Software Developer jobs. Be responsive when communicating with potential employers. Being successful in a remote position requires &lt;strong&gt;strong&lt;/strong&gt; communication between it's team members. Your initial correspondence with a potential employer is sort of it's own mini interview. It shows them how well you can communicate and how responsive you are.&lt;/p&gt;

&lt;p&gt;So be prompt when you are returning emails, on time for calls and hangouts, and make sure to be clear and concise when communicating with interviewers. If you are neck and neck with another applicant they may just lean towards the person that was the easiest to get ahold of or seemed the most eager to get back to them.&lt;/p&gt;

&lt;h2&gt;Step 4 - Build a Strong, Focused Portfolio&lt;/h2&gt;

&lt;p&gt;Your portfolio is probably the most effective tool for both getting your foot in the door and succeeding in an interview. Just like your resume, you want to create and highlight personal projects that are directly related to the position you are applying for.&lt;/p&gt;

&lt;p&gt;This means you may need to do some programming in your spare time. If you are applying for a job that specifically mentions ReactJS as the main qualification, you better have a ReactJS application that you can show them and talk about in depth. Does it have to be a huge project? &lt;strong&gt;No&lt;/strong&gt;. It just has to be big enough that it highlights your knowledge and capability with the technology in question.&lt;/p&gt;

&lt;p&gt;I want to emphasize how important having a relevant portfolio is. For most professional programmers your day to day work is proprietary and can't be shown off. Yes you have years of experience programming, but the fact of the matter is that the majority of teams hiring Remote Software Developers &lt;strong&gt;want to see examples of your code&lt;/strong&gt;. It's very rare that I don't get asked this, so I make sure to have my portfolio sharpened when looking for a new position.&lt;/p&gt;

&lt;h2&gt;Step 5 - Be Persistent&lt;/h2&gt;

&lt;p&gt;Unfortunately, due to the nature of remote jobs, you're going to get a lot of radio silence from your applications. Don't be discouraged by this. I've talked to businesses that have gotten hundreds and hundreds of applications for a single available Remote Software Developer job. Often times they simply don't have the time or resources to respond to all of the applicants.&lt;/p&gt;

&lt;p&gt;So be persistent. Keep applying to positions that you are interested in and qualified for. If you don't hear back after a few weeks and it's a position you are really interested in, you can try submitting your application again, otherwise assume that the position is no longer available and move on. Hit the job boards, let people know you're looking, and keep the applications flowing. Eventually, you'll start to see the fruits of your labour.&lt;/p&gt;

&lt;h2&gt;Good Luck&lt;/h2&gt;

&lt;p&gt;Landing a Remote Software Developer job can be a lot of tedious hard work. It often takes a large investment of time and effort before you finally see any results. In the meantime, continue your professional growth, follow the approaches I've mentioned in this article, and you'll be working in your pajamas in no time.&lt;/p&gt;

&lt;p&gt;Good Luck!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Looking for Tech Jobs?&lt;/strong&gt; Check out my website &lt;a href="https://obviousjobs.com" rel="noopener noreferrer"&gt;ObviousJobs.com&lt;/a&gt; for jobs with &lt;strong&gt;full salary disclosure&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>remote</category>
      <category>jobs</category>
    </item>
    <item>
      <title>Often neglected skills new devs should learn?</title>
      <dc:creator>Colin Morgan</dc:creator>
      <pubDate>Sun, 22 Apr 2018 10:29:13 +0000</pubDate>
      <link>https://dev.to/colinmtech/often-neglected-skills-new-devs-should-learn-3eg5</link>
      <guid>https://dev.to/colinmtech/often-neglected-skills-new-devs-should-learn-3eg5</guid>
      <description>&lt;p&gt;Obviously learning to program is only one part of the equation when learning to become a Developer.&lt;/p&gt;

&lt;p&gt;What are some skills, concepts, tools, etc that often seem neglected and should be learned by new/junior developers to help them in the early parts of their career?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>discuss</category>
      <category>beginners</category>
    </item>
    <item>
      <title>New Devs, Your Resume Sucks</title>
      <dc:creator>Colin Morgan</dc:creator>
      <pubDate>Wed, 18 Apr 2018 00:07:17 +0000</pubDate>
      <link>https://dev.to/colinmtech/new-devs-your-resume-sucks-23oo</link>
      <guid>https://dev.to/colinmtech/new-devs-your-resume-sucks-23oo</guid>
      <description>&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5cs20jyzo6jtz7ygxoe3.jpeg" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5cs20jyzo6jtz7ygxoe3.jpeg" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's start with the bad news, if you're a New or Junior Developer, your resume probably sucks. Now for the good news, it's not your fault. Your resume sucks because you are at the very beginning of your career and you have little to no professional experience.&lt;/p&gt;

&lt;p&gt;Most Hiring Managers want to see two things on a resume:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relevant professional experience.&lt;/li&gt;
&lt;li&gt;Knowledge/Experience with the related technologies required for the position. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For most new Developers you can only check off one of those, which leaves a noticeable gap on you resume. Unfortunately, you're stuck in a catch 22. You need to get professional experience before your resume starts to become attractive.&lt;/p&gt;

&lt;p&gt;So what can you do? First, accept the fact that your resume sucks but also accept the fact that so does everyone else's at your level. Once you've come to terms with that, start working on the things that are in your control.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clean and Readable
&lt;/h3&gt;

&lt;p&gt;As I mentioned previously, when someone is reading your resume they are only looking for a couple things. So make those things easy to find and in a nice clean readable format.&lt;/p&gt;

&lt;p&gt;For example, if you're listing tech that you have experience with, organize them into easy to read categories.&lt;/p&gt;




&lt;h5&gt;
  
  
  Languages
&lt;/h5&gt;

&lt;p&gt;Python, Javascript, PHP, Java&lt;/p&gt;

&lt;h5&gt;
  
  
  Frameworks
&lt;/h5&gt;

&lt;p&gt;Flask, React, Laravel, Spring&lt;/p&gt;




&lt;p&gt;is easier to grok than:&lt;/p&gt;




&lt;h5&gt;
  
  
  Technologies
&lt;/h5&gt;

&lt;p&gt;Python, Javascript, PHP, Java, Flask, React, Larval, Spring&lt;/p&gt;




&lt;p&gt;And makes it easier for the person reading your resume to pick out the key words that they are looking for.&lt;/p&gt;

&lt;p&gt;Also, use easy to read fonts, colors, and formats. Do some google searches to find resume templates that read well. There's a lot of options out there so there's zero reason your resume should look like something out of the 80s printed off a dot matrix printer. This applies x10000 for front-end developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Play To Your Strengths
&lt;/h3&gt;

&lt;p&gt;Everyones resume has strengths and weaknesses. The key to writing a solid resume is highlighting your strengths and downplaying your weaknesses. A good example of this is education. If you have a Computer Science degree from a reputable college, you should keep that relatively high in the flow of your resume. If you don't have a relevant formal education, you want to push that section of your resume closer to the bottom.&lt;/p&gt;

&lt;p&gt;If you have any relevant work experience you want to keep that near the top. If you only have one or two entries for your work experience, you'll want go into a good amount of detail describing your accomplishments and responsibilities.&lt;/p&gt;

&lt;p&gt;If you have no relevant work experience, you're going to want to highlight your personal projects instead. Portfolio pieces are great and come second only to your work experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Build Your Portfolio
&lt;/h3&gt;

&lt;p&gt;Speaking of portfolio pieces, make sure you have some. If you lack relevant work experience the next best thing is personal project work. Even if you have work experience but it doesn't include the tech listed in the job application, it's probably a good idea to put something together that does.&lt;/p&gt;

&lt;p&gt;For example, when it came time for me to start looking for a new contract earlier this year I knew I wanted to be qualified for positions that required ReactJS experience. I didn't have any professional experience with React, so I just started building something using it. When it came time to interview, I had a nice portfolio piece that used React and was able to talk in depth about the framework because it was fresh in my mind.&lt;/p&gt;

&lt;p&gt;Build literally anything for your portfolio. The people reading your resume don't care if it's a Todo list or the launch software for the next SpaceX rocket. Okay, maybe they'd care about that last one a little more, but I digress. The point is, beef up that portfolio! It's the only substitute for real world experience that you have.&lt;/p&gt;

&lt;h3&gt;
  
  
  Leave Your Persona To Your Cover Letter
&lt;/h3&gt;

&lt;p&gt;There's not much to say about this other than leave the details about your self for your cover letter or your interview. Your resume is about your professional skills, not the type of music you listen to or even which programming language you think is best.&lt;/p&gt;

&lt;h3&gt;
  
  
  Embrace It
&lt;/h3&gt;

&lt;p&gt;Embrace the current status of your qualifications. This means that you need to recognize that your are what you are, a New Developer. It's not a bad thing by any means and we've all been there. Don't try to fluff up your resume into something it's not. I promise that anyone who is familiar with the industry will recognize your attempt at doing this immediately and it will come off as disingenuous.&lt;/p&gt;

&lt;p&gt;What you can do is express your enthusiasm, curiosity, and willingness to learn in your cover letter and during interviews. Anyone with half a brain doesn't expect an Entry level or Junior Developer to know everything. They just want to know that you are interested and capable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Remember
&lt;/h3&gt;

&lt;p&gt;Remember, the beginning of your career is the shortest part. Your primary goal is to get over this first hurdle. Once you gain experience it becomes progressively easier to get hired. Eventually you'll get to a point where you have to start leaving things off your resume to make room. Then, all of a sudden, you become the one saying no, and I promise you it feels amazing.&lt;/p&gt;

&lt;p&gt;Good luck! If you're having trouble getting hired, hit me up on &lt;a href="https://twitter.com/ColinMTech" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. I've provided peers with notes on their resume and will do the same for active members of the community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Looking for Tech Jobs?&lt;/strong&gt; Check out my website &lt;a href="https://obviousjobs.com" rel="noopener noreferrer"&gt;ObviousJobs.com&lt;/a&gt; for jobs with &lt;strong&gt;full salary disclosure&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What is your favorite job board?</title>
      <dc:creator>Colin Morgan</dc:creator>
      <pubDate>Wed, 11 Apr 2018 14:31:33 +0000</pubDate>
      <link>https://dev.to/colinmtech/what-is-your-favorite-job-board-194l</link>
      <guid>https://dev.to/colinmtech/what-is-your-favorite-job-board-194l</guid>
      <description>&lt;p&gt;What is your favorite job board to use when looking for work and what do you like about it?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>jobs</category>
    </item>
    <item>
      <title>How I Find Six Figure Remote Software Developer Jobs</title>
      <dc:creator>Colin Morgan</dc:creator>
      <pubDate>Thu, 05 Apr 2018 21:34:54 +0000</pubDate>
      <link>https://dev.to/colinmtech/how-i-find-six-figure-remote-software-developer-jobs-23jd</link>
      <guid>https://dev.to/colinmtech/how-i-find-six-figure-remote-software-developer-jobs-23jd</guid>
      <description>&lt;p&gt;Tired of the long commutes, stuffy offices, or just having to put on pants in the morning? Turns out it's not just you. Software Developers from all over the world are interested in working from home. Luckily, with the steady growth of the tech industry, remote employment is becoming more and more available. I've personally been working remotely from my home for nine years and absolutely love the lifestyle it provides.&lt;/p&gt;

&lt;p&gt;Recently, I've been talking with a lot of developers that have expressed an interest in working remotely, but didn't know where to look for remote positions. After answering the question so many times, I decided I should write an article listing the resources I use to find six figure remote Software Developer positions. So here they are!&lt;/p&gt;

&lt;h2&gt;Remote Job Boards&lt;/h2&gt;

&lt;p&gt;My favorite resource is remote job boards because the postings are guaranteed to be available for remote applicants. They provide a great a way to find contracts or jobs and often give you a good idea of the salary range. Some of the sites even allow you to setup email alerts for positions that match your qualifications, making it even easier to track new listings. The following is a list of remote job boards that I use when searching for a new contract or position:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href="https://weworkremotely.com" rel="noopener noreferrer"&gt;https://weworkremotely.com&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://remoteok.io" rel="noopener noreferrer"&gt;https://remoteok.io&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://stackoverflow.com/jobs/remote-developer-jobs" rel="noopener noreferrer"&gt;https://stackoverflow.com/jobs/remote-developer-jobs&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.linkedin.com/jobs/remote-developer-jobs" rel="noopener noreferrer"&gt;https://www.linkedin.com/jobs/remote-developer-jobs&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://remote.co/remote-jobs/developer" rel="noopener noreferrer"&gt;https://remote.co/remote-jobs/developer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Community Threads&lt;/h2&gt;

&lt;p&gt;Another great resource that I've had success with is community threads. There are thousands of online communities for Software Developers that can provide leads on remote jobs or contracts. I've personally gotten over three years of full-time contract work from &lt;a href="http://reddit.com/r/forhire" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="http://reddit.com/r/forhire" rel="noopener noreferrer"&gt;http://reddit.com/r/forhire&lt;/a&gt; and is actually where I landed my current contract at the time of writing this article. The great part about using online communities to find remote jobs is that you often end up working with people that have similar interests. My two favorite contract teams that I've worked with came from forhire threads on Reddit. I absolutely love the online culture of Reddit and of course, so did they.&lt;/p&gt;

&lt;p&gt;Additionally, communities like &lt;a href="http://news.ycombinator.com" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="http://news.ycombinator.com" rel="noopener noreferrer"&gt;http://news.ycombinator.com&lt;/a&gt; post monthly threads for full-time, and freelance developers searching for work or employers looking to hire. &lt;a href="https://whoishiring.io" rel="noopener noreferrer"&gt;whoishiring.io&lt;/a&gt; is an application that aggregates those threads and is a great way to track them.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href="https://www.reddit.com/r/forhire/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/forhire&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://whoishiring.io" rel="noopener noreferrer"&gt;https://whoishiring.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Creating Keyword Job List Emails&lt;/h2&gt;

&lt;p&gt;In my most recent search for remote contract work, I tried out a new tactic that ended up landing me a couple interviews and a contract offer. Huge job boards like &lt;a href="https://www.indeed.com" rel="noopener noreferrer"&gt;indeed.com&lt;/a&gt; are a little old-school and don't typically have a lot of remote postings. However, they do offer the ability to setup daily email notifications that include lists of postings that match a search criteria. So what I did was setup one of these emails using some keywords related to my career and included the word "remote". This doesn't guarantee that you only get remote positions though, so be careful when applying for positions from these sites, as some of them might not actually be remote friendly.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href="https://www.indeed.com" rel="noopener noreferrer"&gt;https://www.indeed.com&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;
&lt;a href="https://wowjobs.us" rel="noopener noreferrer"&gt;https://wowjobs.us&lt;/a&gt; / &lt;a href="https://wowjobs.ca" rel="noopener noreferrer"&gt;https://wowjobs.ca&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Linked In Recruiters&lt;/h2&gt;

&lt;p&gt;Most Software Developers have received messages from recruiters on &lt;a href="https://www.linkedin.com/" rel="noopener noreferrer"&gt;Linked In&lt;/a&gt; and have more than likely been annoyed by it. I've definitely felt this way about recruiters but I think it's important to consider all possible leads when searching for remote Software Developer jobs.&lt;/p&gt;

&lt;p&gt;With that said, there are some guidelines that you can use to make better use of both the recruiters time and your's. Let them know right out the gate that you're only interested in remote positions. Good recruiters will work with you to find positions that fit your requirements, when they come up. Bad recruiters will throw every single available position your way, regardless of your criteria. It's also a good idea to let the recruiter know things like your hours of availability, and salary expectations or contract rates. The more specific you can be, the more likely the recruiter is to come to you with tangible leads instead of random crap.&lt;/p&gt;

&lt;h2&gt;Slack Communities&lt;/h2&gt;

&lt;p&gt;As it turns out, other Software Developers are a great resource for finding available jobs. It makes sense if you think about it. Software Developers, by the nature of their career, have direct access to businesses that utilize Software Development services.&lt;/p&gt;

&lt;p&gt;So where do you find other Software Developers? There are thousands of &lt;a href="https://slack.com/" rel="noopener noreferrer"&gt;Slack&lt;/a&gt; communities available out there, including local ones. A lot of these communities have a jobs channel where people post available positions and contracts that they've run into. These communities are absolute gold when you're looking for remote work, because &lt;a href="https://slack.com/" rel="noopener noreferrer"&gt;Slack&lt;/a&gt; communities, by their very nature, attract more modern thinking individuals. As an added bonus, &lt;a href="https://slack.com/" rel="noopener noreferrer"&gt;Slack&lt;/a&gt; communities are a great way for you to network with others in the industry. Even if you don't find a job, you might make some great friends!&lt;/p&gt;

&lt;h2&gt;Parting Advice&lt;/h2&gt;

&lt;p&gt;The most import thing to remember when looking for remote Software Developer positions is to cast a wide net. You're competing with hundreds of thousands of other people and it's important to leave no stone unturned. Keep your resume strong, open enough channels, and you're bound to see results.&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;

&lt;p&gt; &lt;br&gt;
&lt;strong&gt;Looking for Tech Jobs?&lt;/strong&gt; Check out my website &lt;a href="https://obviousjobs.com" rel="noopener noreferrer"&gt;ObviousJobs.com&lt;/a&gt; for jobs with &lt;strong&gt;full salary disclosure&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>remote</category>
      <category>webdev</category>
      <category>career</category>
    </item>
  </channel>
</rss>
