<?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: Will Goto</title>
    <description>The latest articles on DEV Community by Will Goto (@wrgoto).</description>
    <link>https://dev.to/wrgoto</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%2F432017%2F77491189-5413-4d1c-88c3-5696669636a3.jpg</url>
      <title>DEV Community: Will Goto</title>
      <link>https://dev.to/wrgoto</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wrgoto"/>
    <language>en</language>
    <item>
      <title>What the Most Successful Software Engineers Do (that No One Ever Tells You About)
</title>
      <dc:creator>Will Goto</dc:creator>
      <pubDate>Tue, 18 Aug 2020 12:36:33 +0000</pubDate>
      <link>https://dev.to/wrgoto/what-the-most-successful-software-engineers-do-that-no-one-ever-tells-you-about-52pc</link>
      <guid>https://dev.to/wrgoto/what-the-most-successful-software-engineers-do-that-no-one-ever-tells-you-about-52pc</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OBu1gCbu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dzxmj9kpsk3a272m16hj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OBu1gCbu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dzxmj9kpsk3a272m16hj.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the largest misconceptions about succeeding as a software engineer is that people think if they simply work hard, they will become successful and will receive the recognition they deserve. They couldn’t be further from the truth.&lt;/p&gt;

&lt;p&gt;Technical competence and productivity are incredibly important to succeeding as a software engineer, but most engineers drastically underestimate the importance of how your coworkers perceive you, let alone know how to systematically improve your image over time. Plenty of resources exist out there for the former, but no one talks about the latter which arguably contributes more to a raise or promotion.&lt;/p&gt;

&lt;p&gt;Many engineers, including myself when I was starting out, want to exclude themselves from this “game” of having to constantly self-advocate. It feels disingenuous and desperate, but there’s nothing disingenuous and desperate about self-advocating if you approach it with structure, objectivity, and consistency.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Self-advocating is genuine and effective if you approach it with structure, objectivity, and consistency.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The following is the advice that no one really tells you and the advice I wish I had when I was starting my career. I hope it helps you avoid having to learn them from mistakes and missed opportunities.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K6cqkMEr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/0%2A_XgPAcF-WYCyHTKR" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K6cqkMEr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/0%2A_XgPAcF-WYCyHTKR" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Manage Expectations Well
&lt;/h2&gt;

&lt;p&gt;A mentor of mine once told me that the secret to being a successful CEO is to accurately set and meet expectations on a consistent basis. The same principle applies to software engineers: the most successful ones do this really well when it comes to scoping work.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The most successful software engineers are able to manage expectations the best when it comes to scoping work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Scope work and multiply the time estimate by 2 or 3 depending on how many unknowns there are. It takes some time to feel comfortable doing this, and it can feel like you’re deceiving your stakeholders, but you are actually doing them favor. If they push you on being more aggressive, stand your ground.&lt;/p&gt;

&lt;p&gt;Product Managers use your estimates to communicate a delivery date to even more important stakeholders. They depend on you to make themselves look good. Committing to an aggressive deadline and missing it not only makes &lt;em&gt;you&lt;/em&gt; look bad, but it also makes your Product Manager resent you for making &lt;em&gt;them&lt;/em&gt; look bad in the face of executives.&lt;/p&gt;

&lt;p&gt;Additionally, stakeholders can have a completely different perception of what is considered an aggressive deadline. I once estimated a project to take a week to do, told my stakeholders it would take two weeks, shipped it in 8 days, and was complimented for my ability to commit to ship features only. Basically, underpromise and overdeliver.&lt;/p&gt;

&lt;p&gt;Most of the time stakeholders won’t argue with your estimates, if they need something sooner, open up a conversation around what &lt;em&gt;can&lt;/em&gt; be delivered in the time frame they want. DO NOT under any circumstance take away your estimated padding just to appease them. Product Managers would rather deliver a feature ahead of schedule than late. It will make them look good, and it will make you look good.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T1JgFFUX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/0%2AtyhJaWaB-tevX6bt" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T1JgFFUX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/0%2AtyhJaWaB-tevX6bt" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Don’t Work Too Hard
&lt;/h2&gt;

&lt;p&gt;It may be incredibly counter-intuitive, but the most successful engineers are the ones that only do a moderate amount of work, not the most, not the least. There’s a really good reason for this.&lt;/p&gt;

&lt;p&gt;When you finish work ahead of schedule, use that time to chill out. &lt;strong&gt;Don’t work too hard.&lt;/strong&gt; This gives you the ability to be able to handle emergencies, help people with last-minute requests, or to simply destress which ultimately makes you more likable and approachable to work with. Coworkers take note of when you go out of your way to help them. You can’t do that when you are pressed for time trying to ship your own work.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Not working hard gives you the ability to handle emergencies, help people with last-minute requests, or destress to maintain a good mood.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Engineers that constantly work around the clock are chronically stressed out, typically hard to communicate with, and do not leave any room for flexibility. They are perceived as not being able to manage their time wisely or efficiently. Those that work the least are perceived as slackers or incompetent: not able to complete tasks in a reasonable amount of time.&lt;/p&gt;

&lt;p&gt;The effects compound. With every person you help and every last minute request you fulfill, people will take note that you are getting your work done ahead of schedule and somehow find the time to help others in need. You may not be more &lt;em&gt;productive&lt;/em&gt; (in the raw sense of the word) than your peers, but others will &lt;em&gt;perceive&lt;/em&gt; you as more productive, more capable, more helpful, and most importantly more likable.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Many would argue that you are actually overall more productive for your team if you are helping teammates and being more collaborative. Managers take note of this.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mIF7mBcx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1551288049-bebda4e38f71%3Futm_medium%3Dmedium%26w%3D700%26q%3D50%26auto%3Dformat" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mIF7mBcx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1551288049-bebda4e38f71%3Futm_medium%3Dmedium%26w%3D700%26q%3D50%26auto%3Dformat" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Track Your Work and Accomplishments
&lt;/h2&gt;

&lt;p&gt;After previously writing an article about how to get into tech and become a senior engineer in 4 years, a lot of people reached out to me asking about the importance of tracking work and how useful it really is. Short answer: &lt;strong&gt;it is essential&lt;/strong&gt;. You cannot improve what you cannot track.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You cannot improve what you cannot track.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The first aspect of tracking work involves knowing how efficient you are with your time. How much time do you waste context switching? In meetings? Emailing? Slacking (both in the semantic use of the term and the messaging app)? Did you scope the last project with too little time? Too much time? You should be able to answer all of these questions in a general sense and record them daily.&lt;/p&gt;

&lt;p&gt;The second aspect of tracking work involves building your track record of accomplishments over time. It’s difficult enough to remember what you did yesterday or the week before, imagine what you’ll miss when you need to show your manager all the work you completed for the month, quarter, or year for a performance review? Leaving out important accomplishments would mean you aren’t maximizing your chances for a raise or promotion.&lt;/p&gt;

&lt;p&gt;Not many tools exist to help with tracking your time and keep a record of your accomplishments. I ended up doing this primarily through a Google Doc, but things got quite messy and unmanageable as time went on. Spending a few minutes a day actually felt like a lot of effort, but it was totally worth it.&lt;/p&gt;

&lt;p&gt;I am actually focused on building a tool specifically for this use case, and my company &lt;a href="https://rize.io?utm_source=dev"&gt;recently launched a waitlist&lt;/a&gt;. We are automating a lot of the work it takes to visualize what you’ve done, chart your progress, and build your track record of accomplishments. Please check us out and back us if you think this could help you.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T2XIR-HV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/0%2AjLgvb0Y8X_CbeBAi" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T2XIR-HV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/0%2AjLgvb0Y8X_CbeBAi" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Advocate for Yourself Weekly
&lt;/h2&gt;

&lt;p&gt;For way too long, I relied on others to advocate for me, and it rarely happened. If it did, it was never at the extent I felt was deserved. Do not rely on others to build your reputation. You have to do it yourself, and it’s totally fine to do so.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do not rely on others to build your reputation. You have to do it yourself, and it’s totally fine to do so.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Advocating for yourself is tough. If you are more extroverted, bragging about your work can come off as brash. For those who are more introverted, it takes a lot of effort to speak up and brag about yourself at all. Luckily, there’s a way to inform your manager of all the important things you accomplish in a way that is direct, neutral, and consistent.&lt;/p&gt;

&lt;p&gt;Even if you have weekly meetings with your manager, you should send her a weekly email consisting of what was expected of you that week, what you shipped, any difficulties you had along the way, and potential insights you had that might be helpful. Use a tone that is neutral and to the point. Be concise and objective in the items you report. Language that fluffs or exaggerates the extent of your work can come off as disingenuous. If your email is too long, your manager won’t read it.&lt;/p&gt;

&lt;p&gt;The weekly update email to your manager provides consistency and visibility. This is especially important in a post-COVID world where a large majority of software engineers are working remotely, and managers no longer gain visibility into their teams by simply being present in the same physical location. Their sense of knowing that you are consistently productive and transparent every week will go miles when it’s time for a promotion or a raise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tying It All Together
&lt;/h2&gt;

&lt;p&gt;It takes almost just as much effort to set yourself up for success in the work environment as it does to get your actual work done, but it’s necessary, and the most successful engineers at top companies do this incredibly well. Don’t exclude yourself from this aspect of your career. Don’t treat it as additional stuff you need to do outside of your normal work hours. Spend 80% of your work hours working, and the other 20% advocating.&lt;/p&gt;

&lt;p&gt;No manager or peer has ever given me this advice and frankly, aren’t incentivized to do so. Most people when entering the workforce are tossed into a job without any sort of guidance on how to do the more unspoken, but totally legitimate, tactics of becoming successful at work. I had to figure this stuff out myself, but I hope that this article gives you some insight and actionable advice into this very ambiguous part of building your career.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Get Into Tech and Become a Senior Engineer in 4 Years</title>
      <dc:creator>Will Goto</dc:creator>
      <pubDate>Tue, 21 Jul 2020 15:56:40 +0000</pubDate>
      <link>https://dev.to/wrgoto/how-to-get-into-tech-and-become-a-senior-engineer-in-4-years-m3j</link>
      <guid>https://dev.to/wrgoto/how-to-get-into-tech-and-become-a-senior-engineer-in-4-years-m3j</guid>
      <description>&lt;p&gt;As software continues to eat the world, more and more people ask me about "getting into tech," i.e. a successful Software Engineer easily making around $350,000 in total annual compensation. I get asked this a lot because I had very little coding experience when I decided to make a career change into software. Four years after making that decision, I entered Twitter as a Senior Software Engineer with a compensation package I couldn't even dream of making elsewhere. I often look back and refer to my career change as the best decision I made in my life.&lt;/p&gt;

&lt;p&gt;I decided to condense my experience to a blog post to help those understand the process and how to strategically think about their transition. There three main phases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Project and portfolio building&lt;/li&gt;
&lt;li&gt;Landing your first full-time job&lt;/li&gt;
&lt;li&gt;Getting promoted to senior status&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each phase has a distinct goal and a strategy to get to that goal as fast as possible. One of the benefits of the incredibly high demand of software engineers is that reputation and pedigree are less critical for the vetting process. What actually matters is that &lt;strong&gt;you are able to deliver great work&lt;/strong&gt;, &lt;strong&gt;you are knowledgeable&lt;/strong&gt;, and &lt;strong&gt;you are a really great team member&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project and Portfolio Building
&lt;/h2&gt;

&lt;p&gt;When starting from zero experience, the priority is to establish both &lt;strong&gt;ability&lt;/strong&gt; and &lt;strong&gt;credibility&lt;/strong&gt;. You first and foremost need to be able to do the work required to build something someone is willing to pay you for, and you need to be able to do it for multiple people. The goal here is to establish the idea for a recruiter or hiring manager that people paying you for your work is commonplace and expected.&lt;/p&gt;

&lt;p&gt;When starting off, you should pick a tech stack to learn quickly. For me, it was building single-page applications with JavaScript, HTML, and CSS. I always enjoyed the instant gratification of throwing together some code and seeing changes directly reflected on a site, and I still enjoy it to this day. At this point, focus on improving your ability to put things together and have non-buggy projects that function well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The goal here is to establish the idea for a recruiter or hiring manager that people paying you for your work is commonplace and expected.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Find anyone that needs simple software work done—an uncle who needs a simple website, a friend who needs a custom to-do app, anything. Get familiar with the process of taking business requirements and providing deliverables. Do this enough times and, surprisingly, you’ll find someone to pay you a small amount for a simple task here or there. Between projects, continue to build something for yourself or something a bit more ambitious to improve your hacking skills. At any point in time you should be working on something and learning. Focus on building momentum in one particular skill set. You eventually want to build enough credibility in that skill set to be hired for it. If you generalize too much in this phase, you’ll find it very difficult to land a first job in the next phase due to only being mediocre at everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Landing Your First Full-Time Job
&lt;/h2&gt;

&lt;p&gt;Suppose you now have anywhere between 5-10 projects in your portfolio, maybe only a handful were paid for, and maybe you really only have 3 that you are comfortable showcasing in an interview. That’s OK. The objective in this phase is to &lt;strong&gt;get your foot in the door, any door&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I think most career-changers tackle the job search without any thought or strategy. Applying to full-time jobs via job sites are incredibly competitive. The best path to finding a full-time job as a slightly under-qualified professional is to actually apply for contract work, part-time, or temp work. &lt;/p&gt;

&lt;p&gt;My trajectory into full-time work was through a temp job that was listed as a 4-week project because the sole web developer of a small company was having a baby and they needed someone to fill in for a few weeks. The recruiter thought I was crazy to wanting to (temporary) relocate for only four weeks, but the four weeks of work quickly turned into 8 weeks then suddenly I found myself negotiating a salary for a full-time position there.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The best path to finding a full-time job as a slightly under-qualified professional is to actually apply for contract work, part-time, or temp work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It isn’t quite as easy as it seems unfortunately. For this strategy to work well, you have to have &lt;strong&gt;really great communication and interpersonal skills&lt;/strong&gt;. People will most likely want to keep you around first and foremost, because you are incredibly productive, but it is almost equally important to be a pleasant person to work with. This is critical, as you begin to enter this industry, people move around a lot, and if they have a good memory of working together with you, they will serve as a potential resource for future opportunities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Promoted to Senior Status
&lt;/h2&gt;

&lt;p&gt;Regardless if your first full-time job is at a startup or a larger corporation, you'll find yourself with a bit more free time on your hands. Steps 1 and 2 of this transition is like working on your own startup and you're constantly "on" hustling to get your foot in the door. Using this initial transition to settle in and relax is probably a good idea.&lt;/p&gt;

&lt;p&gt;When you're ready, there are two key points for this final stage:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;For the most part, you hacked your way into the field. Now it's time to go back and relearn everything correctly.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Learning your programming language by just using and building isn't enough to make the cut. You need to have a deep understanding of how your language works the way it does and can clearly (and effortlessly) articulate why things work or behave the way they do. Part of this just comes from time and experience, but the other part comes from learning from the best people in your industry.&lt;/p&gt;

&lt;p&gt;Don't have access to the best experts in tech for your language?&lt;/p&gt;

&lt;p&gt;Yes, you do. Every language has a well recognized book written by some of the best people in tech. If you hate books, learn to learn from them. For technology and programming, it will be the cheapest price for undeniably the most valuable knowledge you can obtain. For me these books were: Professional JavaScript by Nicolas Zakas, Practical Object Oriented Design by Sandi Metz, and The Algorithm Design Manual by Steven Skiena.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Knowledge is only one facet of several (some of which are out of your control) that will determine your promotion.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Almost every company has a rubric for what it takes to become a senior engineer. Senior engineers will typically have adept debugging abilities, deep domain knowledge of a language and company codebases, knowledge of good design architecture, experience in delegating work and setting reliable expectations, good teamwork and communication skills, and finally some experience in mentoring.&lt;/p&gt;

&lt;p&gt;Note that management will make the argument that you should already be doing these responsibilities to be qualified for a promotion. Seek out what your company's requirements are, and be sure to track your work and accomplishments on a daily basis. At the moment, there isn't a particular all-in-one solution for tracking your work and accomplishments which is why we're building &lt;a href="https://rize.io?utm_source=dev"&gt;Rize.io&lt;/a&gt;—to help software engineers track their work to better advocate for a raise, promotion, or new job faster.&lt;/p&gt;

&lt;p&gt;Unfortunately, many factors outside of your control have a huge impact on whether or not you will receive a promotion. Depending on the cycle, there might be a limited number of promotions available and many people to compete with. In some situations, companies can halt promotions and raises altogether if finances are a bit tight. Regardless, making the most compelling case for yourself will give you the best shot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Getting into a software engineering job and hitting senior status is only the beginning of a career. You could go into engineering management, product management, be a principal contributor, do entrepreneurial work, start a startup, etc. I often view software engineering fundamentals as a core skill set that sets you up to virtually do anything. Where you take it from there is up to you, and the possibilities are almost endless. Good luck! 🍻&lt;/p&gt;

</description>
      <category>career</category>
      <category>productivity</category>
      <category>codenewbie</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
