<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Builder Mentality]]></title><description><![CDATA[All things software engineering, finance, and investing.]]></description><link>https://www.buildermentality.com</link><image><url>https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png</url><title>Builder Mentality</title><link>https://www.buildermentality.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 06 Apr 2026 00:31:00 GMT</lastBuildDate><atom:link href="https://www.buildermentality.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Devan Dutta]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[buildermentality@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[buildermentality@substack.com]]></itunes:email><itunes:name><![CDATA[Devan Dutta]]></itunes:name></itunes:owner><itunes:author><![CDATA[Devan Dutta]]></itunes:author><googleplay:owner><![CDATA[buildermentality@substack.com]]></googleplay:owner><googleplay:email><![CDATA[buildermentality@substack.com]]></googleplay:email><googleplay:author><![CDATA[Devan Dutta]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Working Across Time Zones]]></title><description><![CDATA[How to make a globally efficient team]]></description><link>https://www.buildermentality.com/p/working-across-time-zones</link><guid isPermaLink="false">https://www.buildermentality.com/p/working-across-time-zones</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Tue, 01 Aug 2023 18:21:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Even before the pandemic, many large software companies had teams with members distributed across time zones, whether that was solely within the U.S. or even abroad, which meant a lot of remote collaboration. Contending with different time zones, while trying to collaborate to complete ambitious projects, can be pretty tough. I know this from personal experience and I'm sure many other software engineers have felt the frustration before &#129315;. However, I have some tips and tricks that I hope will help you to see that after understanding how to work efficiently across time zones, you can actually use them to your team&#8217;s advantage too!</p><h1>1. Write&#8230;a lot</h1><p>Because of the distributed nature of most software teams, it&#8217;s not easy to just communicate with team members real time whenever you need to complete a task. More often than not, you will be communicating asynchronously, which means that you need to hone your writing skills (Psst. I wrote a <a href="https://www.buildermentality.com/p/types-of-written-communication">previous post on types of written communication</a>, where I go over use of email, chatting, and docs &#128515;). For whichever communication method you and your team prefers, these are some recommendations for writing to your distributed coworkers:</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.buildermentality.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Mentality! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ul><li><p>Explain context as fully as possible. Remember that every back and forth can take significant time (maybe an entire day), so make sure to include as much info as you can so the other side can understand your perspective.</p></li><li><p>Make a clear ask (or state early on if there is no ask, because it&#8217;s just an FYI or update). Few things are more annoying than waking up to find there&#8217;s a 5 paragraph long message sent by a coworker on the other side of the world, reading it, and then being confused on what you&#8217;re even supposed to do or what the coworker wants you to do. Don&#8217;t do that to your coworker either!</p></li></ul><h1>2. Check the time</h1><p>A tip I would recommend to any distributed team is to create a quick way to check the time in any time zone your team operates in. There are generally some time ranges throughout the day that you and your distributed team members share working hours.</p><blockquote><p>Note: What I said in the previous sentence is not true between US Pacific and many Western European countries, sadly. That is because, depending on the country, your European counterparts could be 8-10 hours ahead, while the work day itself is only 8 hours long. So you may have to flex in the morning by coming in a little earlier if there is a meeting, so you can meet your European team mates before the end of their work day. And this is why it is doubly important to embrace async, written communication that provides enough context (referring to my first tip &#128515;).</p></blockquote><p>During those shared working hours, it would be fine to use chat services, but for many other ranges of working hours for you, your coworkers elsewhere could be asleep. Or they could be having breakfast, or lunch, or even dinner (if time zone delta is large)! So you want to make sure you respect that time.</p><p>What I do to make sure I&#8217;m messaging during working hours for my team mates is that I add a World Clock to my calendar. Some instructions can be found at <a href="https://support.google.com/calendar/answer/37064?hl=en&amp;co=GENIE.Platform%3DDesktop#zippy=%2Csee-other-time-zones%2Cturn-on-a-world-clock">this link for Google Calendar</a>.</p><p>Now, at a quick glance, I&#8217;d know what the time is around the world for my various coworkers. And, Google Calendar will also show respective time zone info for any events I create or modify.</p><h1>3. Augment each other&#8217;s workflow</h1><p>Say part of your team is in the U.S., but you have another part of the team in another country, sufficiently far enough away that you only have a few shared working hours in the day. A practice that I&#8217;ve seen work very well is where one side of the team works on a problem for their &#8220;best&#8221; working hours (the <a href="https://www.buildermentality.com/p/finding-your-power-hours">hours of highest productivity</a>) and if they get stuck or need approval on next steps, they hand it over to the other part of the team on the other side of the world, and vice versa. In this way, you make progress on multiple objectives, while optimizing for the hours of highest productivity in both parts of the team. For example, if you need to deploy some code to prod, but not during your working hours because you don&#8217;t want a potential issue for one customer base, maybe your coworkers in a different time zone could deploy and monitor rollout for you during your non-working hours.</p><p>Figure out the ways that you and your team can use each other and time zones to your advantage and what you&#8217;ll find is that your team has a superpower in the form of 24/7 execution, without burning out team members (and that is because you are leveraging time zones to your advantage!)</p><h1>4. Be curious</h1><p>This last tip is not an immediately obvious one for productivity, but I&#8217;ve found in 100% of the cases where I&#8217;ve used it, I could foster team bonding, which led to higher productivity, cohesion, and stellar execution. The tip is: be curious and learn about each other&#8217;s cultures.</p><p>A team that is not distributed at all likely already has a diverse melting pot of perspectives and cultures due to the diversity of its team members. But imagine a distributed team with parts all over the world! By asking your coworkers about their daily lives, you&#8217;re getting a sense of what it&#8217;s like to live somewhere else! You&#8217;ll learn about their holidays, mythologies, history, even the foods they eat. And in addition, they will learn from you too about how you live your life. This information exchange will foster bonding between team members and serve to strengthen the overall team. From this shared understanding of the human condition, you and your team will actually learn to execute faster together, all because you learned about each other&#8217;s lives.</p><h1>Summary</h1><p>The tips we went over were:</p><ol><li><p>Write&#8230;a lot: Focus on async, written communication with enough context</p></li><li><p>Check the time: Know what time it is for your team mates and respect their working hours.</p></li><li><p>Augment each other&#8217;s workflow: Learn how to leverage time zones to your advantage.</p></li><li><p>Be curious: Learn about the respective cultures of your team mates to promote bonding and cohesion.</p></li></ol><p>I hope the tips above were helpful to you and you&#8217;re able to apply them to your own team! If you have any suggestions for working across time zones, feel free to comment!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.buildermentality.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Mentality! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Setting Effective Goals]]></title><description><![CDATA[How do SMART, OKRs, and BHAGs work?]]></description><link>https://www.buildermentality.com/p/setting-effective-goals</link><guid isPermaLink="false">https://www.buildermentality.com/p/setting-effective-goals</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Tue, 27 Jun 2023 17:44:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There&#8217;s a difference between dreams and goals (and technically &#8220;vision&#8221; too, but I&#8217;m not gonna go there &#129315;). Without goals, dreams can be hard to realize. And dreams can be about anything in your life, whether they&#8217;re for work, hobbies, or maybe even something completely new that you&#8217;ve never tried before. In the face of that ambiguity, you have to set some goals to be able to achieve your dreams. The issue though is how do you make goals that give you the best chance of success?</p><p>In this post, I&#8217;ll be talking about goal setting, specifically through the SMART, OKR, and BHAG frameworks.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.buildermentality.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Mentality! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>SMART</h2><p>The &#8220;SMART&#8221; in the SMART framework for goal-setting is an acronym, which stands for:</p><ul><li><p>Specific</p></li><li><p>Measurable</p></li><li><p>Achievable</p></li><li><p>Relevant</p></li><li><p>Time-bound</p></li></ul><blockquote><p>Before I get into what each of those mean, just a brief history lesson. SMART was originally introduced back in 1981 by George T. Doran in an article he wrote for the business publication <em>Management Review</em>. Since then, SMART has become a very effective way for businesses to do Project Management and it has been extended to be applicable to all levels in a company, not just the upper echelons of management.</p></blockquote><h3>Specific</h3><p>When a goal is specific, it states what it&#8217;s meant to achieve. Is there a new feature you want to build? Is there a process improvement that you want to make? Do you want more teams to adopt usage of your product? Think of the S in SMART as a one-line summary of what you want to achieve.</p><h3>Measurable</h3><p>Measurable means that for whatever goal you&#8217;ve set, you can define metrics for success. If you have metrics, then progress toward the goal is measurable. For example, if your goal is to make a process improvement, by how much? Saying that you want your process improvement to save 20% in person-days of effort is more measurable than &#8220;I want my process improvement to result in a speed up&#8221;.</p><h3>Achievable</h3><p>This one is a bit harder than the other two above it, because this is where reality checks come in. You want your goal to result in personal or organizational growth, but it shouldn&#8217;t be so ambitious that it&#8217;s not actually achievable. This is where you start looking into external factors that could affect chances of success, or assumptions you are making about working toward your goal. Continuing the example of process improvement, is there a physical limit to how much faster you can make something? Or did you assume that everyone on the team will start using your new process, with 0 ramp-up time? These are important questions that can frame your thinking about how achievable your goal is.</p><h3>Relevant</h3><p>Anyone can make goals, but goals that are <strong>useful</strong> require deeper analysis. The goal you are setting for yourself or for your organization has to be meaningful and it has to fit within a larger context. The motif in your mind for this aspect of the SMART framework should be "&#8220;Why&#8221;. Why is this goal relevant to achieve?</p><h3>Time-Bound</h3><p>Goals that have all of the above characteristics can have progress made against them, but at what pace? Time-bound goals allow you and/or your organization to say, &#8220;Hey, for this goal, we&#8217;d like it done by Q2&#8221;. Putting an explicit deadline on the goal provides a marker in time that all teams can align on and execute toward, which will also lend itself well to prioritization. Not all aspects of your original goal may be achievable by the deadline, so you need to focus on the highest-priority aspects.</p><h2>OKRs</h2><p>OKR is another project management acronym, this one introduced by Andrew Grove, of Intel fame, in the 70s. It stands for <strong>Objective &amp; Key Results</strong>. John Doerr, who worked at Intel and learned of OKRs from Grove, later showed Google in the late 90s about OKRs while he was working in venture capital. OKRs became a core part of Google&#8217;s culture and were also adopted by many subsequent major tech companies.</p><blockquote><p>For a good primer on OKRs, I recommend reading John Doerr&#8217;s book "<strong>Measure what Matters: How Google, Bono, and the Gates Foundation Rock the World with OKRs"</strong></p></blockquote><p>The &#8220;Objective&#8221; part of OKR makes sense. It&#8217;s kinda like the &#8220;S&#8221; in SMART in that it states a &#8220;What&#8221;: What you want to achieve. The &#8220;KR&#8221;, or Key Results, are outputs, not behaviors. A good way to view it is if you do the objective, what do you want it to result in?</p><p>Google also has two different kinds of OKRs:</p><ul><li><p>Committed OKRs</p></li><li><p>Aspirational OKRs</p></li></ul><p>Committed OKRs are, well, commitments. They state that a team or org will do something to achieve something measurable, in service of themselves, or a larger project. The &#8220;or a larger project&#8221; clause I added is reflective of the fact that OKRs fit in very well with cross-org projects that require multiple teams to commit to delivering features to make the overall project succeed. For example, a web app probably has frontend and backend teams working on it and those teams will each have OKRs, specifying what they will achieve in the quarter in service of a larger project.</p><p>Aspirational OKRs are a bit non-intuitive because they are designed to not actually be fully met. They should stretch a team to see how its capacity for innovation and barrier smashing grows while tackling hard, ambiguous, and large-scope OKRs.</p><blockquote><p>Note: Both Committed and Aspirational OKRs need to stretch a team, so that it grows, but they do so in different ways. Committed OKRs are specific and are intended to be fully achieved. They still require interpersonal and technical growth, rather than continuing exactly-as-is. Aspirational OKRs are difficult because they can be quite ambiguous and bold at the same time.</p></blockquote><p>The reason for the split between Committed and Aspirational OKRs is that a company has to know how to prioritize its resources toward things that push the business forward in the shorter term vs. the longer term. Aspirational OKRs are more focused on &#8220;what do I want my future or my customers&#8217; future to look like?&#8221;</p><h3>BHAGs</h3><p>BHAG stands for Big, Hairy, Audacious Goal and is pronounced as &#8220;Bee-hahg&#8221;. The BHAG acronym comes from the book &#8220;Built to Last: Successful Habits of Visionary Companies&#8221; by Jim Collins and and Jerry Porras.</p><p>They are kind of like aspirational OKRs, but they&#8217;re closer to visions or moonshots. They are meant to be company-wide and inspirational, a rallying cry that all employees can stand behind. They should stimulate employees to be creative and to want to execute on a long-term vision to build the future they want. By &#8220;long-term&#8221;, I mean decade-long.</p><p>An example of a BHAG was the NASA moon landing in 1969 (see, I even used &#8220;moonshots&#8221; earlier as a signal about what I was gonna mention &#129315;). And President John F. Kennedy stated it:</p><blockquote><p>&#8220;This nation should commit itself to achieving the goal, before this decade is out, of landing a man on the moon and returning him safely to earth.&#8221;</p></blockquote><p></p><p>There are 4 main types of BHAGs:</p><ul><li><p>Role Model: Mimicking or emulating stand-out characteristics of a good company that is not necessarily your competitor (could be in an entirely different industry). Phrases that evoke this type of goal are: &#8220;the Uber of&#8230;&#8221;, &#8220;the Google of&#8230;&#8221;, etc.</p></li><li><p>Common Enemy: Overtaking a larger company from its top spot in the industry.</p></li><li><p>Target-Oriented: A clear, but ambitious metric target, such as becoming a trillion dollar company by year 2025.</p></li><li><p>Internal Transformation: Inward-facing goal to remain competitive or to revitalize efforts in a space or industry.</p></li></ul><h3>Conclusion</h3><p>As you can see from reading this post, there are multiple ways of thinking about setting goals, in the ways of the SMART, OKR, and BHAG frameworks. And they are not mutually exclusive either. You could have an org that has both OKRs and BHAGs, or even all 3.</p><blockquote><p>Personal note: In the orgs I have been in that used SMART, OKR, and BHAG frameworks, they normally had SMART at personal level, OKR at team level and BHAG at org or company-wide level.</p></blockquote><p>I hope this post helped to show effective ways of setting goals that you can apply to your own life. If you have any questions, do feel free to drop a comment. And if you liked this post, subscribe so you get notifications for all my upcoming posts on Builder Mentality &#128515;!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.buildermentality.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Mentality! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Always Be Producing]]></title><description><![CDATA[How to continually make progress]]></description><link>https://www.buildermentality.com/p/always-be-producing</link><guid isPermaLink="false">https://www.buildermentality.com/p/always-be-producing</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Tue, 06 Jun 2023 17:09:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This post is a bit of a general one, as its topic could be applied to really any endeavor, but I&#8217;m going to focus specifically on Software Engineering. In day to day development, we frequently have both software systems design and programming tasks. However, those are just the technical aspects of the workday. It doesn&#8217;t count all the meetings you sit through, or the time you spend catching up with teammates. So it&#8217;s easy to see how the hours can just slip away from you. Heck, even if you were to not talk to anyone and just focus on your own tasks (not likely, because nearly any task of sufficiently large scope will require at least some collaboration, but stick with me for this thought experiment anyway), you could spend a lot of time reading to learn how to do something or you could spend hours designing a system you need to build. The crucial component though is that you didn&#8217;t necessarily write any code. While that can be okay for brief stints focused around learning, it&#8217;s generally not a good idea because it inures your brain to view coding as a context switch. </p><p>The goal as you gain experience should be that coding simply becomes an extension of yourself, of your ability to manifest your ideas and designs into something tangible, and that it becomes effortless. &#8220;How do I make coding <em>well</em> become effortless?&#8221; you ask. Well, the simplest way is to always be producing.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.buildermentality.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Mentality! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Backstory</h2><p>This was originally a lesson taught to me by my manager during an internship at Facebook (now Meta). After onboarding week, it was still overwhelming to learn about all the internal tooling at Facebook, to the point where I felt I had a bit of decision paralysis. I needed to <a href="https://www.buildermentality.com/p/just-begin-how-to-fight-design-paralysis">just begin</a>, but even after I was able to start on my project, I would frequently find myself getting stuck in documentation or tutorials, without really seeing how the pieces connect together. I had some code in local commits, but I hadn&#8217;t hit the good code velocity that I would need in order to finish my project.</p><p>After a couple days, my manager took me aside and asked if I was able to make any progress (because he couldn&#8217;t see any commits in version control). I showed him the local commits, but explained where I was stuck (with lots of &#8220;TODO&#8221; code comments).</p><p>Much to my surprise, he then enthusiastically said, &#8220;Good! That&#8217;s fantastic. Just don&#8217;t keep it solely local until it&#8217;s done. If you&#8217;re stuck, put that up on &lt;Facebook&#8217;s Code Review and Submission Tool&gt; and mention me in some comments where you&#8217;re stuck. We can work through them async over the review tool, or we can set up a meeting.&#8221;</p><p>I was amazed that he would even want some half-baked code up on the review tool, when it clearly wasn&#8217;t ready for review. But what I realized was that showing my progress, day to day, not only <strong>helped keep him in the loop (because he loved reading code), but also allowed him to help me whenever I was stuck</strong>.</p><h2>Why Produce Every Day</h2><p>In addition to keeping stakeholders in the loop and making it easier to get help, constantly trying to channel my thoughts into code throughout the day <strong>increased my code velocity</strong>. Even if I were completely stuck on next steps, I could write as many of my thoughts regarding the current design into code and then comment it out and preface it with &#8220;TODO: Not sure if this is right&#8221;.</p><blockquote><p>Side note: A technique I have followed, whether I&#8217;m in my &#8220;coding zone&#8221;, or I&#8217;m stuck, is to start with a bottom-up deconstruction. Utility modules and helper methods, in service of the feature I&#8217;m trying to build, are always helpful, so I can start there. The problems helper modules solve are pretty well constrained, so they&#8217;re easier to tackle and they can be pretty good ways of initially getting some code out for review, which you can then iterate on.</p></blockquote><p>Another very important reason for why you want to constantly be producing is that it <strong>holds you accountable for features and projects you want to take on</strong>. You can see day-to-day, and week-to-week, what progress you have made, and if you need to change your approach. That discipline will enhance your long-term thinking, as well as your software design skills. Every day, you are making progress, and surfacing that progress to stakeholders, even if it&#8217;s not fully thought out so that you can have constant dialogue with them. Over time what you&#8217;ll find is that there will be less of those &#8220;TODO&#8221; comments AND that you will pivot less day to day, and instead keep chipping away at incremental features toward a project vision.</p><p>There&#8217;s a concept in X (formerly Google[x]) called <a href="https://blog.x.company/the-monkey-the-tiger-beetle-and-the-language-of-innovation-25d43a3c9632">v.0.crap</a>, which is intended to evoke some humor, but also simultaneously lessen the anxiety any team member has to share his/her &#8220;first draft&#8221; of work with other team members when asking for a review. It&#8217;s not that you are literally producing sub-par work, but rather that you don&#8217;t have to feel like it&#8217;s perfect in order to share it, to start a dialogue, or to get a review. When thinking about code, a commit with a lot of &#8220;TODO&#8221; comments, but some otherwise good starting methods/functions could be v.0.crap.</p><p>Over time, that first draft you put up, that v.0.crap with not fully-explained details, will get clearer and will approximate the code you admire from senior engineers. So keep at it!</p><div><hr></div><p>Hope you enjoyed this post! If you have any thoughts on how to increase your code velocity, do drop me a comment &#128515;!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.buildermentality.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Mentality! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[What are Calibrations?]]></title><description><![CDATA[The way companies do performance management]]></description><link>https://www.buildermentality.com/p/what-are-calibrations</link><guid isPermaLink="false">https://www.buildermentality.com/p/what-are-calibrations</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Tue, 30 May 2023 17:55:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello, Builders! Ever wondered how tech companies promote people and come up with compensation increases? The process starts from <strong>Calibration Cycles</strong>, which are performed by the management chain of a company, at some frequency throughout the year (normally twice a year, or once per year). Understanding calibrations is a really important tool for the career growth of any software engineer. This is not only because it provides great guidance on how to grow technically and interpersonally, but also because it can affect compensation growth. Back when I first started my career, I didn&#8217;t entirely understand how it worked and that definitely bit me, so the hope in writing this post is that I can help you to avoid the mistakes I made &#128515;! Without further ado, let&#8217;s get into it!</p><h1>Performance Axes</h1><p>Before discussing the calibration process, we have to first discuss <strong>Performance Axes</strong>. Performance axes are kind of what they sound like: ways of dissecting <strong>performance</strong>, admittedly an amorphous term, into more discrete characteristics (axes) that all employees of a certain <strong>ladder</strong> must have. A <strong>ladder</strong> is a type of role (such as Engineering, Product Management, Engineering Management, Sales, etc.). Ladders are defined because engineers, for example, cannot necessarily be compared to sales employees. The responsibilities of those two types of employees are different, so we need to have ladders to &#8220;compare like for like&#8221;.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.buildermentality.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Mentality! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Axes between ladders are normally different as mentioned above, but they are normally just more fine-tuned distillations of company values, targeted to a particular ladder. Within a ladder, we also have multiple <strong>levels</strong> defined, so that we get a matrix structure of Axes on the left and levels on the top. Each cell in the matrix (level, axis) describes expected behavior for that axis for an employee of that level. Don&#8217;t worry, I&#8217;m gonna make this a lot clearer with a specific example.</p><p>Let&#8217;s say we are defining an Engineering ladder for ICs (Individual Contributors, as opposed to Engineering Managers, or EMs). We could have axes for <strong>Ownership, Execution, and Leadership</strong> (most companies will have more than this example set of axes, but let&#8217;s start with these for now as a toybox example). And let&#8217;s say we have levels 3-6 (Why do many engineer levels start at L3? I don&#8217;t know, but at some point that convention was established, so I will follow in that tradition &#129315;). Now, in Substack as of the time of this writing (May 2023), I can&#8217;t insert tables, so I&#8217;m gonna split the levels into separate sections of bulleted lists. Our ladder may look like this:</p><h2>L3:</h2><ul><li><p>Ownership: Engineers are responsible for individual <strong>tasks</strong>.</p></li><li><p>Execution: Engineers are capable of executing on multiple tasks, with supervision from senior engineering, but can track progress, surface issues, merge code to master, and ship to prod.</p></li><li><p>Leadership: N/A</p></li></ul><h2>L4:</h2><ul><li><p>Ownership: Engineers are responsible for individual <strong>features</strong> and are capable of discretizing those features into individual coding tasks.</p></li><li><p>Execution: Engineers are capable of executing on multiple tasks, <strong>near independently</strong> with minimal if any supervision.</p></li><li><p>Leadership: Engineers elevate learnings to docs and provide onboarding support to new grads.</p></li></ul><h2>L5:</h2><ul><li><p>Ownership: Engineers are responsible for entire projects.</p></li><li><p>Execution: Engineers are capable of executing on multiple ambiguous projects, with scope beyond 2 quarters. Cross-org communication and collaboration is a must in order to land such projects.</p></li><li><p>Leadership: Engineers serve as role models and Subject Matter Experts (SMEs) within their teams and work with their managers to support the growth, interpersonal and technical, of junior engineers.</p></li></ul><h2>L6:</h2><ul><li><p>Ownership: Engineers are responsible for company-level programs, comprising multiple projects or products each.</p></li><li><p>Execution: Engineers iteratively advance company-level objectives, with scope beyond 1 year. Cross-company, and maybe even inter-company, collaboration would be involved.</p></li><li><p>Leadership: Engineers are thought leaders and operate in tandem with Directors+ in order to advance engineering excellence across their orgs.</p></li></ul><p>This is a bit of a simplistic example, but notice how each of the levels in this Engineering ladder have the same axes, but they have growing depth in those axes as we increase level. <strong>Within each level though, the axes define expected behaviors which we can use to evaluate the performance of all employees, within the ladder, at that level. </strong>This characteristic of axes is the basis of how calibrations are done. We&#8217;ll go onto that in the next section.</p><h2>The Calibration Process</h2><p>Toward the end of a performance cycle (normally at half-year increments, or once annually), every employee has to complete a performance review. That performance review includes a self-review/self-assessment and maybe some peer reviews, especially in cases where the employee wants to go up for promotion. The employee&#8217;s self-review will focus on the demonstration of the requisite behaviors for each axis over the performance cycle. That review and the peer reviews will be submitted to the manager of that employee (sometimes referred to as &#8220;report&#8221;, since that employee &#8220;reports&#8221; to the manager).</p><p>Then managers will attend meetings with other managers, where they discuss how each of their respective reports performed against the ladder&#8217;s axes. <strong>How well</strong> each report performed against the axes determines his/her <strong>rating</strong> for that performance cycle. The possible set of ratings varies between companies. At the simplest, it&#8217;s 3 ratings:</p><ul><li><p>Didn&#8217;t Meet Expectations</p></li><li><p>Met Expectations</p></li><li><p>Exceeded Expectations</p></li></ul><p>Many tech companies have 5 ratings though. The ratings directly correspond with salary increase coefficients. For example, in the above rating system, &#8220;Met Expectations&#8221; could be a 5% salary increase and &#8220;Exceeded Expectations&#8221; could be a 10% salary increase. In companies with annual bonuses, the rating also determines a coefficient for the bonus.</p><p>Now why do the managers even have to meet and discuss amongst themselves what their respective reports&#8217; performances were? Don&#8217;t we already have axes that define expected behaviors and therefore we know? Yes, but the axes&#8217; descriptions at each level could be vague, and there&#8217;s the rub. Managers need to &#8220;calibrate&#8221; their expectations for a given level with other managers who have reports in that same ladder and level. Calibrating expectations essentially means &#8220;interpreting the cell in the ladder matrix and coming up with specifics&#8221;. This is why this process is referred to as &#8220;Calibration&#8221;. Makes sense, huh &#128515;.</p><blockquote><p>A note on calibration meetings: These are normally a time of great anxiety, for both ICs and for EMs. ICs obviously want the highest rating possible and EMs want to support them in that goal. However, the comparison process can be stressful and in some companies, calibration meeting rooms sometimes have their windows and doors covered so that employees can&#8217;t look inside.</p></blockquote><p>After calibration meetings, each manager will have a rating for his/her reports and will include that rating in their manager review back to the report. There is then a series of 1:1 that the managers have to schedule with their reports. In those meetings, they will share their manager review with a report, what the rating was, and how that affects compensation for the next performance cycle.</p><blockquote><p>&#8220;But wait? Do I have no control over the results of calibration?&#8221;</p><p>- Any IC</p></blockquote><p>Good question. I will discuss that next.</p><h2>Preparing for Calibration</h2><p>Over the course of a performance cycle, you likely had goals you wanted to achieve. Those goals you would have discussed with your manager, and the two of you would&#8217;ve worked together to make sure that the goals support your growth and can demonstrate proficiency in the ladder axes for your level. Goal-setting is absolutely more of an art, not a science, but any ambiguity can be worked through with constant communication between you and your manager. The more you help your manager to know how you&#8217;re doing and what awesome achievements you&#8217;ve made in the performance cycle, the more your manager can help you during calibrations.</p><blockquote><p>NOTE: There can absolutely still be surprises post-calibration, either positive or negative, even with constant communication between yourself and your manager during the performance cycle. Calibration committees are organic discussions. Your manager will try to present you in the best way possible, but every other manager also has the same goal.</p></blockquote><p>There is a fair degree of trust that needs to be maintained between a manager and his/her report(s). Always assume best intents with your manager and make sure to keep communication lines open.</p><p>There is a lot more nuance, and definitely many variations on the calibration processes for different levels in a ladder within any company, and even between companies who are calibrating for the same ladder and level. But I hope this post helped to demystify the calibration process for you!</p><p>If you have any questions or requests for more topics to discuss, please do drop me a comment!</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.buildermentality.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Mentality! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Options (as part of Compensation)]]></title><description><![CDATA[Ever wondered about how options work as part of total comp? Read on to learn about CSOs and ESOs, including ISOs and NSOs.]]></description><link>https://www.buildermentality.com/p/options-as-part-of-compensation</link><guid isPermaLink="false">https://www.buildermentality.com/p/options-as-part-of-compensation</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Sun, 05 Mar 2023 14:47:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Disclaimer: I am neither a CFP nor a CPA. Any financial discussions are solely my own opinion. Always make sure to confirm your understanding with a CFP or CPA. Secondly, while I discuss tax prep software, like TurboTax, I am not being sponsored for this post.</em></p><p>When you think of total compensation, or "total comp" as it is frequently shortened to, the <a href="https://www.buildermentality.com/how-to-evaluate-a-swe-offer/">three main components are: salary, bonus, equity</a>. Not all companies offer an annual bonus, but the gist is that you get cash compensation, as well as some form of equity. The ways that companies go about providing equity packages are myriad. A common way is to provide <a href="https://www.buildermentality.com/what-the-heck-are-rsus/">RSUs</a>, whether public or private, but another way that is more often seen in startups is options. This post is about options as a form of equity in a total comp package.</p><pre><code>Aside: You may be thinking, "Hang on, aren't options those weird derivatives things that Wall Street Bets talks about all the time on Reddit?"

While there are options in the stock market, such as the ones discussed by Wall Street Bets, that's a topic for another post because it's a whole subject in and of itself. For this post, we will solely be discussing private equity in the form of options given to you should you join a startup.</code></pre><h2>What is an option (for compensation)?</h2><p>Options within the realm of compensation are entirely different from options in the stock market, though they both have the name "option". Briefly, there are two kinds of options in the stock market: call options and put options. All option strategies revolve around use of these two types of elemental options. Call options give the buyer the right, but not the obligation, to purchase stock at an agreed upon price (the "strike price") at a future date in time (the "expiration date"). Put options give the buyer the right, but not the obligation, to sell stock at an agreed upon price (the "strike price") at a future date in time (the "expiration date").</p><p>Options provided to you as part of a compensation package do not follow this call-put model. Rather, they are a way to incentivize employees, beyond their cash compensation, to work at a company. Generally, that company is a startup. The reason for this is that more established companies tend to provide RSUs, whether they are public or private. Startups like options instead of RSUs because they can limit dilution and because it's cheaper to offer options than higher cash comp. However, unlike with RSUs which could grow slowly over time, the potential upside with options can be massive (since they normally start with very low strike/grant prices and therefore have large upside potential if the company is successful). With great potential upside also comes great risk (haha, you thought I was gonna say "with great power, comes great responsibility" &#129315;) because the options could become worthless if their FMV drops as little as 1 cent below your grant price (I'll explain why they are worthless in that situation in a sec).</p><p>Options are generally provided in one of two different forms:</p><ul><li><p>Cash-Settled Options (CSOs)</p></li><li><p>Equity-Settled Options (ESOs)</p></li></ul><p>These two forms of options factor into your earnings in different ways, which means they are also taxed differently. Let's begin by discussing each type.</p><h3>Cash-Settled Options (CSOs)</h3><p>CSOs are more rare than ESOs, but they are a possibility when the company wants to provide another component to your total compensation that incentivizes you to stay at the company, and yet not cause dilution by giving you any equity. I'm also starting with them in this discussion because they are easier to understand than ESOs.</p><p>CSOs are granted at a certain strike price (or, "grant price") and then are vested normally in the same cadence that RSUs would be (1-year vesting cliff, followed by monthly or quarterly vesting of remaining grant).</p><p>What you are being provided are units of exercisable options that will turn into cash if you exercise them AND there is gain above the strike price. <strong>Yes, cash, NOT stock/equity.</strong></p><p>So as an example, if the company grants you CSOs at a strike price of $1 and then does not grow, your CSOs are worth $0. If instead, the valuation grows and you are told that the Fair Market Value (FMV) of your options is now $2 per option, then you have a gain of $1 per option. However, this is <strong>only a gain on paper</strong>. Your company needs to have what's called a "<strong>liquidation event</strong>" where you will be able to exercise your options. It's basically an event carried out in which you indicate that you want to capture some of the gain you've had on paper by exercising a subset of your vested CSOs and turning them into cash. The proceeds you receive from the company are treated as additional cash income (so they will just increase your AGI; refer to my <a href="https://buildermentality.com/how-do-taxes-work-in-the-first-year/">Taxes post</a> if you need a refresher on AGI).</p><p>One nice thing about CSOs is that they cost nothing to exercise.</p><pre><code>Note: Options can only be executed if the company has grown in value. If the company has stayed at the same valuation, then your options' FMV would not have increased, so there would be no gain. If the company has dropped in value, then your options' FMV would be less than their grant price, so they can't be exercised.

This is starkly different from RSUs, which can still drop in value relative to their price at grant date, and yet you can still realize some cash out of that.</code></pre><p>Summary of conditions that need to happen for you to realize value on CSOs:</p><ol><li><p>The company needs to have an updated valuation that is higher than its valuation was at the time the options were granted to you (if the value is the same or lower, your options are essentially worthless).</p></li><li><p>The company needs to open a liquidation event for you to exercise some options.</p></li><li><p>You need to have some options available to exercise (which means, you have some options that have vested from your grant by the time of the liquidation event).</p></li></ol><h3>Equity-Settled Options (ESOs)</h3><p>Equity-Settled Options (ESOs) have a primary difference from CSOs in that, when exercised, they turn into shares of the company that issued you the options. ESOs also can generally be exercised at any time: they do not require liquidation events in order for you to exercise and convert the options into shares.</p><pre><code>Note: Just because you can generally exercise ESOs whenever does not mean you can sell the resulting shares whenever. You still need the company to have a liquidation event to sell the shares. So be careful because you may get into a situation where you have a bunch of shares that you cannot actually sell, since the company has not opened a liquidation event.</code></pre><p>The two types of ESOs are:</p><ul><li><p>Incentive Stock Options (ISOs)</p></li><li><p>Non-qualified Stock Options (NSOs)</p></li></ul><p>While they will both result in you receiving shares of your company, they utilize different mechanisms for you to pay for those shares and they have different taxation rules. In some cases, their access may also be limited by your country (for example, international employees of startups in the U.S. may only be granted NSOs, whereas the domestic employees could have been given a choice between ISOs vs NSOs when they were granted ESOs).</p><h4>ISOs</h4><p>ISOs require you to pay for the cost of exercise. What that means is that you will be paying for:</p><pre><code>Strike price/option * # options to exercise</code></pre><p>AND, for taxation purposes, the government may charge you an additional tax called <strong>Alternative Minimum Tax</strong> (AMT). You can think of AMT as being calculated in parallel with standard/regular taxes from income. It's meant to be a floor, a minimum, in how much you pay in taxes. AMT is calculated against the difference between the FMV of the options at time of exercise, minus the grant value.</p><p>Let's do an example:</p><p>You are granted <strong>1000 ISOs</strong> at a <strong>strike price of $1</strong>. The <strong>ISOs vest quarterly</strong>, after a <strong>1-year cliff</strong> in which <strong>1/4 of your options vest</strong>. Say the company does a valuation before end of the year and the <strong>updated valuation is higher than the valuation of the company at the time the options were granted to you</strong>. Additionally, let's say the <strong>FMV of the options is now $3</strong>. The company then opens a <strong>liquidation event</strong> for employees to exercise some of their ISOs and gain shares. Let's also say that the liquidation event opens right after your 1-year cliff, so you have <strong>250 ISOs to exercise</strong>. Let's also assume that the company will allow you to exercise all vested ISOs (this is not a given, they may restrict you to 25% or less, but I'm gonna keep it simple and say that you can exercise everything that's vested).</p><p>On-paper gain would then be:</p><pre><code>Number of options to exercise: 250
Gain per option = Current FMV - Grant Price = $3-$1 = $2

Total on-paper gain: 250 options * $2 gain/option = $500</code></pre><p>Now, where does this AMT thing come in? AMT is primarily for high-income earners who made a lot of gain in a year, but the income came from primarily options and not cash/standard income. So under standard taxation rules, it would appear initially that they don't owe much in taxes because they didn't make much standard income. To counteract that and make sure they pay at least a minimum amount of taxes, the government also calculates the tax value using AMT rules.</p><p>But wait? Why should you even be taxed on not receiving cash? After all, the result of an ISO exercise is stock. Well, think of it like this: your grant price is lower than the FMV of the options at time of exercise, so it's essentially like you got shares at a discount. That discount is referred to as the "spread" and it's the core focus of AMT taxable income calculation.</p><p>The gist of how the process works is that the IRS calculates your standard taxable income (cash, bonus), but this time with less exclusions and deductions as compared to standard tax, and then they subtract an AMT exemption amount (a minimum amount of paper gain you must have realized in order to be subject to AMT).</p><pre><code>Refer to IRS Form 6251, Alternative Minimum Tax (make sure to check filing status: individual, married filing jointly, etc.) to see which exclusions and deductions are not counted (but would've been in standard tax rules) and what the exemption limits are per filing status type. As of the time of writing this post, the AMT exemption amount for 2023 single filing status is $81,300.

Note: Tax preparation software like TurboTax can do all these steps automatically for you, but it's always a good idea to at least scan over the form in its original source (from the IRS website) that the tax prep software will be pre-filling for you.</code></pre><p>Then any positive delta (after exemption amount is subtracted) is taxed at either 26% or 28%, based on how high AMT taxable income is (refer to IRS Form 6251 for the instructions).</p><p>You then pay the income tax that is highest:</p><pre><code>Income tax = max(tax_regular, tax_amt)</code></pre><p>But, do not despair. In subsequent tax years, you can claim an AMT tax credit! Refer to <a href="https://www.irs.gov/forms-pubs/about-form-8801">IRS Form 8801 for instructions</a>. With this form, you will calculate both a credit for the current tax year, based on AMT paid in prior years, and any credit you can carry forward to the next tax year.</p><h5>Qualifying vs Disqualifying Dispositions</h5><p>ISOs have yet one more wrinkle to consider. Remember how I said that in order to actually get cash from ISOs, you need to exercise them to gain shares and then you need to sell those shares? Well, <strong>when</strong> you sell shares can determine whether or not you get to use those AMT tax rules, which believe it or not, are actually preferred to what I'm about to describe.</p><p>A <strong>Disqualifying Disposition</strong> for ISOs is when the resulting shares from an exercise are sold before a required holding period: <strong>one year after exercise, two years from grant date</strong>. (There's technically another requirement that you must not have left the company more than 3 months before exercise date.)</p><p>The taxation is worse. At the time of exercise, you now have to recognize the paper gain (spread * number of shares) as ordinary income.</p><p>Then, when you sell the shares, you will be subject to short term or long term capital gains, if there is a gain.</p><p>Let's contrast this with Qualifying Disposition ISOs. What that means is at the time of exercise, you will only pay AMT tax, if any (remember, it's subject to an exemption minimum limit, so if you don't hit it, you will not owe AMT tax). And then when you sell the shares, you will be subject to long term capital gains, if there is a gain.</p><h4>NSOs</h4><p>NSOs are a lot simpler to understand. Unlike with ISOs, where you have to pay to exercise them, NSOs provide you a choice: you can either pay to exercise or you can sell some of the resulting shares to cover the cost of exercise. In this way, NSOs are a very attractive option for employees who do not have a lot of cash set aside to exercise ISOs.</p><p>However, NSO paper gains are taxed as ordinary income at the time you exercise and are subject to FICA taxes (Social Security, Medicare). Like normal shares, they are then taxed as short or long term capital gains, if there is a gain.</p><h4>Choosing ISOs vs NSOs</h4><p>If your company provides you a choice between ISOs and NSOs for an ESO grant package, then there are some situations you can consider to help you make the decision:</p><ul><li><p>If you have a lot of money set aside AND you believe in the company, ISOs might be a good option because of their preferential tax treatment and because you don't think you could make more of a gain elsewhere.</p></li><li><p>If you do not have money set aside, you should strongly consider NSOs. Exercising options can get really expensive and while you will not retain as many shares should you pick NSOs (because some of them will be sold to cover the cost of exercise), you will still have some and it will be less risky than say, taking out a loan to exercise ISOs.</p></li><li><p>If you do not have long term belief in the company (whether with a large amount of money set aside or not), NSOs provide you with the most flexibility.</p></li></ul><h2>Conclusion</h2><p>As you can see from everything you just read, options as part of a compensation package are far more complicated than just receiving RSUs. They require you to have a deeper understanding of taxation rules and require a bit more strategic thinking. For example, if you have a mix of CSOs and ESOs, maybe you exercise some CSOs in a given year to protect downside risk and in the next year, you exercise some ESOs. And even with the case of solely having ESOs (instead of a mix of CSOs and ESOs), you have to deeply analyze whether to pick ISOs or NSOs, depending on your financial goals.</p><p>Another insight you might have gleaned while reading this post is that your strategy is highly dependent on liquidation events, which are not a given and are not easy to predict ahead of time. Imagine that you have ISOs (because the company only has ISOs available, or they offered you a choice between ISOs and NSOs and you picked ISOs), you pay to exercise them, and then you get shares, but at a later point when you want to sell them, you can't because the company hasn't opened a liquidation event. That is super frustrating.</p><p>This dependence on liquidation events to actually realize gain is a similarity between literally all forms of non-public equity. With public RSUs, you can sell them at any time to the broader market. But with private RSUs, CSOs, and ESOs that have been exercised (and are therefore shares), you need to have a liquidation event. You can think of private RSUs as like a shortcut between ESOs and shares: instead of needing to exercise to get shares, you were just immediately granted shares. But, they're still private and therefore still require a liquidation event.</p><p>So why would anyone want to have options as part of their compensation package?! Seems like madness, right? Maybe, but with great risk, may potentially come great reward. Options are normally granted at very low strike prices. I'm talking like single digit dollar strike prices. So the company does not have to grow by much in order to realize a paper gain. However, like I said earlier, your ability to realize that paper gain into cash is dependent on liquidity events. For startups, the most common liquidity event that would have a massive payout to you would be an acquisition. If not an acquisition, then an IPO, because the share price would likely grow beyond the options' grant price.</p>]]></content:encoded></item><item><title><![CDATA[What the heck are RSUs?]]></title><description><![CDATA[Are you super confused about what an RSUs are and why you should care about them? This post is for you! Jump in to learn about stock compensation!]]></description><link>https://www.buildermentality.com/p/what-the-heck-are-rsus</link><guid isPermaLink="false">https://www.buildermentality.com/p/what-the-heck-are-rsus</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Tue, 31 May 2022 16:39:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Disclaimer: I am not a CPA. This post only serves to provide an introduction to how RSUs, including how they can be taxed in the U.S. Any recommendations provided within this article represent only my own opinions.I am not affiliated with any of the websites or products I discuss in this post.</em></p><p>Hello avid reader! As you may be able to tell from the title of this post, I'm gonna be discussing RSUs today: what they are, how to understand their vesting, tax implications, and why they should be a core consideration whenever you are offered a new role in a company. For those of you who have read my <a href="https://www.buildermentality.com/how-to-evaluate-a-swe-offer/">"How to evaluate a SWE offer"</a> post, you got a very high-level overview of what RSUs are. This is where we get some more depth &#128515;.</p><p>You might've heard that you "need to grow your equity", or that "equity is what makes you rich." What "equity" refers to is not cash compensation (which is still important obviously, because it's what you will primarily live on), but rather some part of a company you own. As that company does well, its value rises and therefore the value of your part in the company also rises. That "part of the company" is subdivided into units referred to as "shares" or "stock" (the two terms are used pretty interchangeably). This is not money in your bank account, but rather a representation of value that can be converted into cash upon selling.</p><p>Within the past couple decades (as of the time of this writing; I have no clue how long this blog will be archived in whatever newfangled storage system we'll have in the next 50 years &#129315;), many companies both public and private have offered shares to their employees as part of employee compensation packages. These shares are referred to as Restricted Stock Units (RSUs).</p><p>In this post, I will explain a bit more about how RSUs should factor into your overall understanding of total compensation ("total comp"), the difference between private vs. public RSUs, tax implications from receiving and selling RSUs, and some assorted additional topics on stock compensation.</p><p>(Note: If you want a quick primer on calculating taxes for cash-based compensation, so you have a baseline understanding before considering RSU tax implications, I'd recommend reading my post <a href="https://www.buildermentality.com/how-do-taxes-work-in-the-first-year/">"How do taxes work in the first year?"</a>.)</p><h2>Where did RSUs come from?</h2><p>Tl;dr: Accounting scandals in early 2000s that came from stock option snafus.</p><p>In the early 2000s, there were multiple accounting and tax evasion scandals coming out in the news regarding large corporations and their executives engaging in malpractice with stock options. So an alternative form of equity compensation was needed.</p><p>Out of this landscape, RSUs, which were previously reserved primarily for executive-level and above, became a lot more common for all employees. They provide an easier way of building equity in a company, while still following all applicable tax laws.</p><h2>How do RSUs work?</h2><p>A Restricted Stock Unit (RSU) is a share of a company provided to you if you have been working at a company for some amount of tenure. This share of the company is treated as ordinary income (because there is value you derived which was given to you, even though it's not as liquid as cash), which is important for tax considerations.</p><p>In addition to your salary (and potential bonus targets), companies will also provide you with an RSU grant in your offer package. That RSU grant will be for some number of shares. Depending on company sizes, whether they're public or private, and share prices, among many other factors, the exact size of the RSU package in your offer will likely differ between companies. The vesting schedule can also differ among companies.</p><p>Note that you must also be at a company for the duration of the vesting schedule to receive all the shares in your initial grant. If you leave, then any shares that have not been vested yet will not be given to you and they will not continue to vest.</p><h3>What is a Vesting Schedule?</h3><p>Unlike a sign on bonus or an annual bonus, which are both provided as a lump sum, RSUs are not all given to you in one transaction. Rather, you are <strong>granted</strong> some number of RSUs, with a <strong>vesting schedule</strong>, and normally with a <strong>vesting cliff</strong>. The grant says, "We, company A, are offering you X number of shares over Y period of time, with a vesting cliff of Z years, and thereupon the remainder of the shares will be vesting over this vesting schedule." Let's dissect these components of the grant statement.</p><p>X number of shares is pretty clear. That means you will receive a total number of X shares for this grant. The Y period of time means you will receive X shares over time. The vesting cliff and vesting schedule are the complicated parts.</p><p>A vesting cliff is designed to retain you within the company for some minimum amount of time, known as the vesting cliff. A common vesting cliff is 1 year. What that means is that you will not receive any shares for 1 year. After that point, you will receive the amount of shares, in one lump transaction, that should've vested over that year. And then the remaining shares will continually vest over a vesting schedule.</p><p>Let's do an example: Imagine you have 4,000 shares in a 4-year grant, with a vesting cliff of 1 year to receive 1/4 of your grant, and then the vesting schedule is once every quarter. And you stay for at least the 4 years it will take before you receive all the shares in the grant. Let's do some math to see what this vesting schedule will be like:</p><pre><code>After year 1, we get 1/4 of shares = 1,000 shares

Remaining shares from grant = 4,000-1,000 = 3,000 shares

Number of vest periods = 4 quarters/year * 3 years = 12

Shares per vest period = 3,000 shares/12 vest periods = 250</code></pre><p>If you like fractions more than absolute numbers:</p><pre><code>After year 1, fraction of shares remaining = 3/4

Number of vest periods = 12

Fraction of shares per vest period = 3/4 / 12 = 3/48 of grant</code></pre><p>Imagine you join the company at the beginning of the year (2022). The schedule we would see for when we receive shares would be like so:</p><h3>Public vs. Private RSUs</h3><p>In the example above, we never discussed selling shares, solely receiving them/vesting them. The major difference, between public vs. private companies, that comes into play when you want to sell vested shares for income has to do with liquidity. If the shares are private, you may not be able to sell them.</p><p>When a company is public, the shares you receive are fairly liquid. You can sell them within the broader stock market and they are the same as owning any other public stock in your portfolio. However, when a company is private, the broader market cannot just buy shares from you. So it's up to the company to provide you with liquidity opportunities. They could offer to buy back shares, or maybe there are other investors for the company who would want to buy more shares. If neither of those conditions are true, or if the company simply will not allow selling of shares unless the company is public, then you have to wait for an IPO.</p><p>The main point is that because there may not be liquidity for private RSUs, you cannot treat them as additional income per year. However, you could potentially do that with public, well-known companies' RSU packages because you can see all of their stock price performance since the day they had their IPO.</p><h3>A Word on IPOs</h3><p>Joining a private startup that is offering RSUs can be very lucrative, but it can also be frustrating to have to wait for an IPO. And it's even worse if after the IPO, the shares drop in value. Couple this with a lockup period (a period of time after an IPO when employees have to just hold shares and not sell) and you start to get a headache.</p><p>As an example, consider Meta (previously Facebook). Facebook had their IPO with a share price of $38 in May of 2012 and then the shares went down in value. It took until August of 2013 for the share price to come back to the level it was at close of market on the day of the IPO ($38.23). Granted, employees could have received RSU packages with internal share price lower than that of the IPO price, which means they still could've made money if they sold on the day of the IPO. But they could've also had a lockup, which meant they'd just have to wait and watch the share price go down. And then they'd have to wait some more after the end of the lockup period for the shares to come back up in value. Refer to <a href="https://www.google.com/finance/quote/FB:NASDAQ?window=MAX">this Google Finance link</a> to see FB's stock performance.</p><p>Another example is Lyft. Their IPO was on March 29, 2019 with a share price of $78.29 at the end of the trading day. The share price then continued to descend. As of the time of writing of this post, the share price has still not come back up to the level that it was at the IPO. Refer to <a href="https://www.google.com/finance/quote/LYFT:NASDAQ?window=MAX">this Google Finance link</a> to see LYFT's stock performance.</p><h2>Tax Implications for RSUs</h2><p>Because you are receiving value from RSUs being provided to you, they are subject to taxation by state and federal governments. "But wait! This wasn't cash! I didn't sell anything," you cry and shake your fists. Doesn't matter. RSUs are still a form of value, and even though they're not liquid, they get taxed &#128555;.</p><p>So to help you with your tax obligations, a lot of tech companies will do what's called a "sell-to-cover" transaction, where they will automatically sell some shares to cover the tax on the income you made from receiving shares. Thing is, they frequently undersell &#129318;&#8205;&#9794;&#65039;. For federal income tax, the minimum is typically 22% withheld, so that's what they do. However, if you're in a higher tax bracket, that means you will owe more to the federal government, come tax time the next year.</p><p>To give yourself a quick primer on calculating income taxes, I recommend reading my post <a href="https://www.buildermentality.com/how-do-taxes-work-in-the-first-year/">"How do taxes work in the first year?"</a>. That post provides a good foundation for understanding taxation based on solely cash compensation, without investments. Investments are just one more thing you can tack on, which will affect your Adjusted Gross Income (AGI). RSUs are investments &#128515;.</p><p>The two main things to remember are:</p><ol><li><p>You are taxed when RSUs vest, because there is value you gained: the RSUs are worth something, even though they're not as liquid as cash.</p></li><li><p>You are taxed on capital gains/losses when you sell RSUs. In the case of capital gains, the amount you are taxed depends on how long you have held the RSUs.</p></li></ol><h3>Capital Gains Taxation</h3><p>As mentioned above, you are taxed whenever you receive new shares from RSUs vesting. Those RSUs that have vested are providing you new value, and that new value is taxed as ordinary income (just like your cash compensation). Now, you have a choice. You can either:</p><ul><li><p>Hold the shares</p></li><li><p>Or sell them after some period of time</p></li></ul><p>The "after some period of time" part is where things start getting interesting. If you sell the shares less than a year from the date they were vested (not granted; I mean specifically when the shares show up in your personal brokerage account), any gains you have on the shares will be taxed as <strong>ordinary income</strong> (meaning, it's taxed just like cash compensation, within your tax bracket). However, if you sell the shares after a year from the date they were vested, the gains you make are taxed as <strong>capital gains</strong>, which have preferential tax treatment (lower tax obligation).</p><p>As of the time of writing of this blog post, the federal capital gains brackets for single filing are:</p><p>State capital gains/losses tax rules can be totally different from federal capital gains/losses rules. In CA for example, there is no difference between short term and long term holdings and they are both <a href="https://www.ftb.ca.gov/file/personal/income-types/capital-gains-and-losses.html">taxed as </a><strong><a href="https://www.ftb.ca.gov/file/personal/income-types/capital-gains-and-losses.html">ordinary income</a></strong>.</p><h3>Example of RSUs Being Taxed</h3><p>Let's work through an example where you are receiving RSUs and then selling them some period of time later. We will calculate federal income taxes, for single filing status (I'll leave state taxes, or other filing statuses as an exercise to you &#128513;). Note that I will also ignore FICA taxes to simplify this example, however they are covered in my post <a href="https://www.buildermentality.com/how-do-taxes-work-in-the-first-year/">"How do taxes work in the first year?"</a>.</p><p>Setup of example:</p><ul><li><p>$150k base salary (let's say it stays the same for this exercise; should be going up though each year in reality)</p></li><li><p>4 year RSU grant for 4,000 shares</p><ul><li><p>1 year vesting cliff, and then you get 1/4 of shares</p></li><li><p>Equal quarterly vesting of remainder of grant after cliff</p></li></ul></li><li><p>$30k sign on bonus</p></li><li><p>You contribute the full $20,500 to Traditional 401k (as of 2022 401k contribution cap) (let's say it stays the same for this exercise; should be going up each year though in reality)</p></li><li><p>Company does not do sell-to-cover</p></li></ul><p>Let's say you joined your company in the beginning of 2021. Now, it's the beginning of 2022 and you have just had a quarter of your grant vested (you just passed the 1 year vesting cliff). You will hold the shares for a year (and new shares will vest quarterly in the meantime). And in the next year, you will sell the 1,000 shares that vested at the beginning of 2022. We will calculate the taxes you will pay in 2022, 2023, and in 2024.</p><p>The upcoming event timeline looks something like this:</p><p>Let's also say that the share price values are the following:</p><h4>Federal Income Taxes Paid in 2022</h4><p>I'm going to skip all the explanatory detail within the post <a href="https://www.buildermentality.com/how-do-taxes-work-in-the-first-year/">"How do taxes work in the first year?"</a> and instead just show you direct numbers after calculation. For a more detailed explanation of how the line items are calculated, please refer back to <a href="https://www.buildermentality.com/how-do-taxes-work-in-the-first-year/">"How do taxes work in the first year?"</a>. The new part, relative to that post, is what we do with RSUs so I will point those differences out as we go.</p><p>Also, remember from setup of the exercise that the company is not doing sell-to-cover. I did that to make the numbers easier so we can calculate our full tax liability without too many underlying assumptions &#128515;.</p><p>Come tax time in April, we have to count our salary from previous year, any bonuses, and any share value we have vested.</p><ul><li><p>Adjusted Gross Income = $180,000</p><ul><li><p>Salary: $150,000</p></li><li><p>Bonus: $30,000</p></li></ul></li><li><p>Taxable income = $146,550</p><ul><li><p>Traditional 401k Contribution: -$20,500</p></li><li><p>Standard Deduction: -$12,950</p></li></ul></li><li><p>Federal income taxes = <strong>$29,192.76</strong></p></li></ul><h4>Federal Income Taxes Paid in 2023</h4><p>Unlike the previous year, we now have these changes:</p><ul><li><p>No sign on bonus</p></li><li><p>1750 shares we now own from vesting, but they vested at different values (because of the Share Price Values table above)</p></li></ul><p>Let's calculate the income we got from all those shares vesting. We can do that by calculating each tax lot's value and then summing those up:</p><p>So we derived a total of $89,000 from vested shares. That would be reported as the Additional Taxable Income in a W2. We would add that to our cash income to derive <strong>AGI (Adjusted Gross Income)</strong> and then we would be able to calculate Taxable Income.</p><p>I'm going to use the <a href="https://www.bankrate.com/taxes/tax-brackets/#:~:text=file%20an%20extension.-,There%20are%20seven%20tax%20brackets%20for%20most%20ordinary%20income%20for,35%20percent%20and%2037%20percent.%E2%80%9D">tax brackets for the 2022 tax year</a> (the taxes paid in 2023 based on income made in 2022).</p><ul><li><p>AGI = $261,500</p><ul><li><p>Salary: $150,000</p></li><li><p>Annual bonus: $22,500</p></li><li><p>Additional Taxable Income: $89,000</p></li></ul></li><li><p>Taxable Income = $228,050</p><ul><li><p>Traditional 401k Contribution: -$20,500</p></li><li><p>Standard deduction: -$12,950</p></li></ul></li><li><p>Federal income taxes = <strong>$53,569.49</strong></p></li></ul><h4>Federal Income Taxes Paid in 2024</h4><p>In 2023, we planned to sell the 1,000 shares that vested in the beginning of 2022. Let's say we sell in 2023 Q1. So new changes are:</p><ul><li><p>New shares vested, at different price points</p></li><li><p>In Q3, selling 1,000 shares vested in 2022</p></li></ul><p>Note that I will be using the 2022 Tax Brackets (for taxes paid in 2023) because the 2023 Tax Brackets are not available yet.</p><p>Time to do some calculator work &#128513;:</p><ul><li><p>AGI = $228,000</p><ul><li><p>Salary: $150,000</p></li><li><p>Annual bonus: $22,500</p></li><li><p>Additional taxable income: $55,500</p></li></ul></li><li><p>Taxable income from cash = <strong>$194,550</strong></p></li><li><p>Federal income taxes from cash = <strong>$42,487.50</strong></p></li><li><p>Taxable Income from Capital Gains = <strong>$4,000</strong></p><ul><li><p>1000 shares * ($54 - $50)/share = $4,000</p></li></ul></li><li><p>Federal capital gains tax = <strong>$600</strong></p><ul><li><p>Taxable income excluding capital gain is <a href="https://www.nerdwallet.com/article/taxes/capital-gains-tax-rates">within 15% bracket</a></p></li><li><p>Capital gains tax = 0.15*4,000 = $600</p></li></ul></li><li><p>Total federal income taxes = $42,487.50 + $600 = <strong>$43,087.50</strong></p></li></ul><h2>Assorted Topics on Stock Compensation</h2><p>Congrats on getting to this point in the post. This one was a real whopper. Give yourself a pat on the back!</p><p>As I was writing this post, I started getting ideas for other topics related to stock compensation, but I wasn't sure where to place them among the larger topics above. So I have added them as a sort of potpourri for you &#128515;.</p><h3>Blackout Periods</h3><p>I referred to these a bit above, but I wanted some more explanation for anyone who is curious about these.</p><p>When you have shares you own for the company you work in, whether you bought those shares yourself, or they were given to you over time (vesting), there are periods of time in which your company will not want you to sell any shares. The reason why is normally to do with protecting against insider trading.</p><p>Imagine that the company is about to release earnings and you know something that the rest of the public doesn't know (the earnings haven't been released yet, so theoretically only employees could know). That "something" you know is referred to as Material Non-Public Information (MNPI). It's information that could materially affect whether an investor buys or sells your company's stock.</p><p>To protect against insider trading, companies normally have blackout windows near their earnings dates so that employees don't trade using information that is not yet known to the public.</p><p>In addition, they could add blackout windows around holidays or boundaries (beginning or end) of their fiscal years to simplify accounting.</p><p>The duration and number of blackout windows throughout the year can vary widely among different companies. Make sure to ask about this if you are evaluating new roles.</p><h3>ESPP</h3><p>ESPP is a fantastic program. I cannot recommend it highly enough for anyone who has the ability to do this.</p><p>ESPP stands for Employee Stock Purchase Plan. ESPP programs are designed to allow employees to acquire shares of their company's stock at a discount. The way this works is that employees use after-tax money from their regular income to purchase shares of the company at normally a 15% discount.</p><p>A standard ESPP term is 6 months. What that means is that the plan renews every 6 months. Over the course of 6 months, you have a little bit of your paycheck taken out each time to allocate money toward the purchase of your company's shares. Then, at the end of the 6 month period, the company compares the share price at the beginning of the 6 month period and the share price at the end. They take the minimum of those two values, decrease the selected value by 15%, and then buys shares for you AT THE DISCOUNTED PRICE, using the money you've been building up over the 6 months from each paycheck's allocation toward ESPP.</p><p>Let's do an example:</p><p>Say you make <strong>$5,000 gross pay per paycheck every 2 weeks</strong>. And for sake of simplicity, let's align the pay periods to the beginning of the 6 month window (meaning, you're not paid on the week that the window begins). Also, let's imagine 24% of every paycheck is taken out in taxes.</p><pre><code>Gross pay per paycheck = 5,000

Net pay = 5,000*(1-0.24) = $3,800

Amount allocated toward ESPP = 0.15*3,800 = $570

Assume 2 pay periods per month.

Number of pay periods = 6 months * 2 pay periods/month = 12

6 month total = 12 pay periods * $570/pay period = $6,840</code></pre><p>Now we need some sample data for the share price:</p><p>Now that we have this data, let's see how many shares we get at the end of the ESPP period (6 months later):</p><pre><code>MIN($50 per share, $70 per share) = $50 per share

Share price for ESPP = $50*(1-0.15) = $42.50 per share

Num shares acquired = $6,840 // $42.50 per share = 160 shares</code></pre><p>So you just got 160 shares, at a 15% DISCOUNT! Woohoo! And the best part is, because you used after tax money to purchase the shares, you don't owe any taxes when you receive the shares, unlike with RSUs where you owe taxes the moment the shares vest. You will only ever pay taxes on capital gains/losses when you sell the shares you purchased through ESPP.</p><h3>Counting Shares Toward Mortgage Loan</h3><p>The last fringe benefit I would be remiss to not discuss is that depending on the company and its reputation among banking institutions in the financial industry, you may actually be able to use your shares toward the down payment of a home. If the company is well-known, with reliable RSU distributions to its employees, your mortgage underwriter may just be able to use your current shares toward collateral for your loan and may also be willing to underwrite you slightly higher if you share your vesting schedule. The reason why is because if the company is public, the mortgage underwriter can estimate roughly how much value you will gain over each quarter from the number of shares vesting * share price.</p><p>Note that this is a super fringe benefit. Not all banks will have this option and they likely will not publicize it either, but you don't know if you don't ask. Who knows? The shares you're accumulating may be able to help you purchase the home of your dreams. For more info on asset usage for home purchase, refer to <a href="https://www.buildermentality.com/buying-a-condo-in-sf/">my blog post "Buying a condo in SF"</a>.</p>]]></content:encoded></item><item><title><![CDATA[Just Begin: How to Fight Design Paralysis]]></title><description><![CDATA[Do you frequently find yourself stuck without being able to execute? This post is for you! Read on to learn about how to cut through decision paralysis!]]></description><link>https://www.buildermentality.com/p/just-begin-how-to-fight-design-paralysis</link><guid isPermaLink="false">https://www.buildermentality.com/p/just-begin-how-to-fight-design-paralysis</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Sun, 03 Apr 2022 13:25:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I typed out the title for this post, I realized that the subtext could be "fight procrastination". I personally find that kind of content online to be unhelpful and a little annoying &#129318;&#8205;&#9794;&#65039;. That kind of content is akin to "Are you sad? Then stop being sad" &#129315;. It's not always easy to fight procrastination and tackling it is a much broader topic than this post.</p><p>Rather, in this post, I will tackle the more specific problem of engineers finding themselves stuck in "design mode/decision paralysis", rather than execution mode. That may or may not be due to procrastination, but I'm gonna focus this post on the case in which the "stuck in design mode" behavior is not due to procrastination. I'll explain how an engineer may find himself/herself in this position and how to work his/her way out of that.</p><h2>Where does the problem begin?</h2><p>As in all things in life, balance is important and that is absolutely the case when it comes to implementing new features in your role. There's a spectrum between continuous code generation and tech spec writing. You shouldn't be just trying to submit new code immediately (although that would likely have some checks and balances anyway with <a href="https://www.buildermentality.com/code-reviews-are-actually-good-for-you/">code reviews</a>), and you shouldn't be just continually writing tech specs to solicit review from your team. Either extreme is not good for sustained output at a high quality. This balance is hard to strike, especially as the complexity of features you need to implement increases, or if you have to start working with more arcane tech stacks.</p><p>As indicated by the intro to this post, we're gonna talk about the right end of the spectrum mentioned above: being stuck in design mode.</p><p>The engineers who are in this position are absolutely coming at it from multiple perspectives at the same time: Considerations in their minds might be:</p><ul><li><p>Wanting to make a good impression on their team by implementing a rock solid feature/system/etc.</p></li><li><p>Not wanting to create more tech debt</p></li><li><p>Making sure to identify all use cases, edge cases, etc.</p></li><li><p>Not feeling as though they have enough clarity to begin writing code</p></li></ul><h2>How to detect if you're stuck in design mode</h2><p>The answer to this question is fairly simple, which is a good thing!</p><blockquote><p>If you have been annoyed for some time that something has not been implemented yet.</p></blockquote><p>That's it. It's that simple. If you are a driven individual and you want to achieve your goals, then that feeling of not having made progress may indicate that you have been in "design mode" for too long.</p><pre><code>Note:
If you feel this way due to perceived pressure from your team to build something, then that is not healthy. You are the one in the driver's seat and it's your project to execute on. That means you can set your goals, align them with your manager and/or PM, and then work away at them. If your inner monologue is saying, "Oh my god, it's been too long that the feature hasn't been implemented, my team is gonna get so angry at me." then you should absolutely address this with your manager or a trusted team member. More often than not, they will jump in to help and unblock you because you win together as a team, not separately.</code></pre><h2>Steps to start writing code</h2><p>When you've been in design mode for awhile, and then you detect that you are in fact, stuck, then you're already on your way to being able to implement what you have to. These are a few steps you should take:</p><ol><li><p>Take a step back and just write down (or type) your thoughts somewhere else. Stream of consciousness is perfectly fine! The goal is just to pull your thoughts from the deep recesses of your brain and address them when you can see them all consolidated in front of you (almost like how Dumbledore pulled his thoughts and memories into his Pensieve; any Harry Potter fans in the house &#128513;?).</p></li><li><p>You will likely start seeing that there are a lot of dependent, entangled things that could be contributing to that feeling of being stuck because you just don't know how to proceed. Maybe you're dependent on some team to implement a feature, but they can't do it until another team helps them with something they need, in order to be able to write the feature that you need. Maybe you need to refactor something in order to develop a new feature, but refactoring will break API contracts for other teams that use that API. There could be many reasons for you to feel stuck, but identifying those reasons is the first step.</p></li><li><p>Once you have identified the blockers, make sure to concretely define them, either in prose, or through dependency diagrams, or both. The reason why you want to do this is to help yourself and potentially anyone else you need to loop in. Concretely defined problems are easier to solve than ambiguous ones.</p></li><li><p>Start a discussion with your tech lead, manager, mentor, or another teammate regarding the blockers you have identified. They will likely have some ideas on how to start taking action, or may recommend chatting with another person to surface one or more of the problems you found. Keep talking to people until you have an idea of <em>something</em> you can do.</p></li><li><p>Once you've got that idea, try prototyping something in code to test that idea. You'll find that even if it doesn't work, it actually was successful in a sense, because it provided you the activation energy you needed to begin coding, to begin doing. This is absolutely a win for you and you should use it to propel yourself into the next thing you gotta execute on, whether that's another prototype or the next feature of solving the problem (assuming the first prototype was successful).</p></li><li><p>Keep stakeholders and your manager in the loop as you continue exploring the problem space, cutting through ambiguity, refining your understanding, and executing toward your goal.</p></li><li><p>Even as you generate steam to push your inner flywheel, make sure to take breaks to recharge. They could be as simple as a short 30-45 minute workout after you have completed a train of thought. It's a little counter-intuitive, but to sustain the progress you're making, you can't just continuously code. Make sure to be in tune with yourself, your mental health, and your energy level.</p></li></ol><h2>Word of caution: Patience is a Virtue</h2><p>Sometimes you're not stuck. It's just that the thing you have to achieve is difficult because of a lot of moving parts. This is a fairly common phenomenon once you get past a certain level of experience/seniority because the projects you take on get more ambiguous and likely more ambitious as well. They tend to have larger scope and require buy-in from stakeholders, as well as active communication. That just takes time. There are <a href="https://www.buildermentality.com/types-of-written-communication/">ways to communicate more effectively</a> to reduce the amount of back-and-forth, but generating that alignment can take time.</p><p>That doesn't mean that you can't take any action while all of this discussion is going on. There are probably some small pieces you can take on, or even some educated guesses you can take on the parts that you don't entirely own, but are necessary for success. And the best part is: if you take that initiative, people will tend to gravitate toward you and follow you because you are the intrepid leader. You're the one hacking away at the metaphorical vines in the jungle of ambiguity, defrosting the windshield during a cold night, lighting a torch in the darkness, &lt;insert some other visual imagery for "making things clearer" &#129315;&gt;.</p><p>The first step is to just begin. Enjoy the journey!</p>]]></content:encoded></item><item><title><![CDATA[Code Reviews Are Actually Good for You]]></title><description><![CDATA[Have you ever been annoyed by code review when all you want to do is ship new features? I've definitely felt that way, but in this post I'll show you why code review is actually good and how it can up-level you as an engineer!]]></description><link>https://www.buildermentality.com/p/code-reviews-are-actually-good-for-you</link><guid isPermaLink="false">https://www.buildermentality.com/p/code-reviews-are-actually-good-for-you</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Sun, 09 Jan 2022 12:39:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I'm feeling a bit mirthful this holiday season, so I've decided to write a post that will be incredibly polarizing: either you will totally agree with it, or you will scream and shout and decry my opinion (to that second category of people, trust me, you will re-evaluate as you gain more experience &#129315;). The topic today is code reviews: what they are, why they matter, and why I believe you should embrace them if you wish to grow.</p><h2>What is a code review?</h2><p>In nearly all tech companies, when you write new code, you don't just immediately merge that into master and ship to production. Rather, there is a review period where you request those on your team, and maybe even an ancillary team, to inspect your code by looking for bugs, providing suggestions on style and business logic, and possibly even helping you "future-proof" your design so that it lives on beyond your initial contribution (and so that others can contribute to it later if they needed to). The exact priorities that each company has for code reviews can vary, but suffice it to say, it's not usually as simple as "the code runs". This code review process applies to interns too by the way. EVERYONE has to get their code reviewed.</p><p>The process for reviewing code is also dependent on the company, but a standard process that might be followed is this set of steps (for git version control):</p><ol><li><p>You create a new branch from master and start implementing your feature.</p></li><li><p>You create a <a href="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests" title="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests">GitHub PR</a> (pull request) for your feature branch, explaining what the feature is for.</p></li><li><p>You make more commits as you incrementally develop your feature (and continually push those commits to the GitHub PR too).</p></li><li><p>Once the feature is ready, you add reviewers and request a review.</p></li><li><p>As your reviewers make comments on your PR, you make subsequent commits on your feature branch (and push those to the PR) and type out responses to their comments on your PR, stating that you have addressed the comment (and how), or that you have further questions.</p></li><li><p>Once all reviewers have approved the PR, you then merge to master (deploying to production is normally a separate process that happens after this).</p></li></ol><h2>Who reviews <strong>your</strong> code?</h2><p>Normally people more senior than you on your team will be reviewing your code, but that's not always the case. Sometimes, I have been asked to review code from a person more senior than myself and who likely knows more about the domain than I do. Why would a more senior person ask a junior person to review their code? A few reasons:</p><ul><li><p>The senior engineer wants to teach or show something to the junior engineer through code.</p></li><li><p>The senior engineer wants a fresh perspective from someone who is not indoctrinated in the company's coding styles to see if his/her code is understandable and/or intuitive.</p></li><li><p>The senior engineer is requesting other reviewers besides the junior engineer to be primary reviewers of the new code, but wants to make sure the junior engineer feels included in the team.</p></li><li><p>The senior engineer wants to up-level the junior engineer's code review skills (this is super important because it contributes to scalable team growth: the junior engineer, in turn, will show what he/she has learned to other junior engineers)</p></li></ul><p>In teams with tech leads as managers, the manager may also review your code. This is not as common, since many tech companies have a distinction between an Engineering Manager (EM) and an Individual Contributor (IC), but it's possible for the EM to review your code if he/she is also a Tech Lead (TL).</p><pre><code>Note: IC does not imply "no leadership", but rather that the IC does not officially have people reporting to him/her. ICs can still exhibit leadership, especially if they are senior engineers, but they do not have visibility or control into "manager-related" tasks, such as calibration or compensation planning.</code></pre><h2>Why do code <strong>reviews matter</strong>?</h2><p>If someone or some people need to review your code every time you build a new feature, wouldn't that be a super annoying and long process that would slow you down? Not necessarily. I'll share a few primary reasons as to why code reviews are important and then I'll show you how, contrary to what you might expect, they don't actually slow you down.</p><h3>Primary reasons for code review</h3><ul><li><p>To make sure that the code does what it's supposed to do. This is more stringent than "does it run", since that could be checked by any build checker, unit tester, or integration test runner that has to compile the code. Rather, this is a check done by humans to make sure that the intended functionality is actually what's being achieved.</p></li><li><p>To make sure that the code is structured and styled according to expected standards within the company. Style guides vary company to company, but most tech companies have both language-dependent and language-agnostic rules they expect their developers to follow when writing code. A language-dependent rule might be that in C++, do not add the <em>"using namespace std"</em> directive to a .cc file and instead prepend <em>"std::"</em> to any functions, classes, etc. that require the namespace. A language-agnostic rule might be "no code will be shipped without unit tests for new functionality".</p></li><li><p>To keep the team up to date on what you're implementing. If everyone on the team just submitted new features in a void, without involving other team members in the review of that code, it's doubtful that anyone except the manager (and in some cases, even the manager too) knows what you're doing (because they'd have to keep checking either what commits have been merged to master or JIRA tickets, both of which busy engineers will not automatically check).</p></li></ul><h3>Why don't code reviews slow you down?</h3><p>As I mentioned in the intro to this section, one might expect that a code review process might slow you down in terms of implementing and shipping new features. While that my be true if considered for the development time of <em>one particular feature</em>, that is a very short-sighted perspective to have. Rather, code review yields gains that are not immediately apparent, but those gains will (1) save you time in the long run and (2) will up-level you as an engineer:</p><ul><li><p>In a lot of code reviews performed by more senior engineers, junior engineers will be exposed to newer development paradigms, libraries, or patterns that they likely have never seen before. Adapting to the suggestions from senior engineers regarding use of these new constructs takes time, but it will add more tools into your engineering toolbox which will serve you for years to come.</p></li><li><p>Code reviews tend to create more cohesion in a team and that cohesion generates a lot of truly novel and innovative solutions to problems. These solutions are collaboratively concocted by like-minded individuals, all working toward a common goal. Not only is this process a learning opportunity, but it's also going to result in much more powerful and resilient code, which is good. More powerful and resilient code can serve as the basis for even more advanced features built on top of that code in the future.</p></li><li><p>By asking for review of your code, you will be improving your communication and collaboration skills. Code notwithstanding, you still have to clearly describe your ask to your reviewers and provide them with the context they need to perform an effective review of your code. Since this requires use of language, it is absolutely a muscle that you will need to grow to be effective in a team setting, but it a very worthwhile use of your time.</p></li></ul><h2>Note regarding senior engineers</h2><p>As I discussed earlier in this post, senior engineers tend to be the ones who are the principal reviewers of the code written by junior engineers. That means there is a huge responsibility placed on their shoulders not only to advance the team's larger, longer term objectives, but also to guide the younger members of the team.</p><p>All too often, it can be easy for senior engineers to become wrapped up in what they need to accomplish and sometimes this is due to no fault of their own. They just have so much to complete that code reviews can get put on the back-burner. And then junior engineers, trusting the senior engineers and maybe feeling a bit shy about reaching out to them, never actually ping them to ask them to look at some new code.</p><p>So to the senior engineers: make sure to always make an effort to prioritize code reviews, especially for junior engineers because it will have a multiplicative effect on your team's impact. And if you know you are prone to sometimes forgetting to review code and would like reminders, make sure to relate that to the junior engineers on your team. That will make them feel more welcome and comfortable reaching out to you if you get busy.</p><p>To the junior engineers: Assume positive intent and never feel afraid to reach out to those more senior on your team. There's stuff you gotta get done too, just like they do, and if you need their help, then you just gotta ask. This is definitely a muscle to hone, especially because you don't want to annoy your senior engineer mentors, but there is a balance between trying to figure out stuff on your own vs. reaching out when you need help (or if you are just blocked on code review).</p><p>The output result of a healthy code review etiquette on a development team is that no one is blocked on code review because that review is prioritized by reviewers.</p><h2>Why should you care?</h2><p>Probably by this point, or maybe even somewhere before this point, you were likely thinking:</p><blockquote><p>Yeah, yeah, this guy is just lecturing me about why I should be okay with code reviews. Why should I even care?</p></blockquote><p>If your thoughts are in line with the above thought, I don't blame you. I absolutely felt that way when senior engineers explained the importance of code review. Code review processes were especially annoying in internships when I knew I had only 12 weeks to implement my project and these code reviews felt like such a chore.</p><p>But think about it more like this: you want to be the best that you can be, to be a total master at your craft, and code review is providing you with essential, iterative, and personal feedback to help you on your way to mastery. Oh, and by the way, it's doing that for free &#128513;. Nowhere else will you get that quality of feedback from engineers who are dedicating their time to you.</p><p>Your code is an extension of you and is one of the most explicit demonstrations of your brand. So use code review as a tool to improve it and you will be well on your way to being a more senior engineer that others look up to &#128515;!</p>]]></content:encoded></item><item><title><![CDATA[Buying a Condo in SF]]></title><description><![CDATA[Ever wondered what the process is like to buy a home? Check out this post to learn more!]]></description><link>https://www.buildermentality.com/p/buying-a-condo-in-sf</link><guid isPermaLink="false">https://www.buildermentality.com/p/buying-a-condo-in-sf</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Fri, 05 Nov 2021 13:58:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Disclaimer: I am not a real estate agent, nor a CPA or CFP. My opinions are solely my own and are intended to help you learn more about the process of buying a home. Any values used for interest rates or any other numerical requirements from banks for mortgages are for illustrative purposes only.</em></p><p>I recently purchased my first home and that was an amazing experience! So much research, a lot that I learned, and of course, many questions from my peers about the process! For some top-level stats:</p><ul><li><p>2 months of searching</p></li><li><p>4 banks that pre-underwrote me</p></li><li><p>2 property tours, consisting of 5 properties in total</p></li><li><p>More than 100 properties virtually toured</p></li><li><p>Thousands of pages of disclosure documents reviewed, across 3 properties</p></li></ul><p>I wanted to write this blog post to explain the process for anyone who is considering buying a home, especially one in San Francisco, and also because I think there are a lot of minutiae that are not explained online which I wished I had known when I was searching.</p><p>This post will be more of a guide, but with my own experiences filtered in so you have some handy tips and tricks!</p><p>Before getting into the main content, I want to give a special shout-out to my family, friends, and my realtor. My family was there for my incessant questions, as well as coming along on tours. My friends kept me sane and asked some good questions, which in turn, made me research more and be a more educated buyer.</p><p>And my realtor, <a href="https://miatakami.com/">Mia Takami</a>, was fantastic. I owe a lot to her for her tireless dedication to helping me find the perfect home, her patience in explaining home buying concepts to a newbie like me, and her active involvement in connecting me with lenders. If you're looking for a place in SF, I highly recommend Mia. Check out <a href="https://miatakami.com/">her website</a>, as well as <a href="https://www.facebook.com/pg/MiaTakamiRealEstateGroup/reviews/">reviews for her and her team </a>to learn more.</p><p>Now, without further ado, let's talk about buying a home in SF! This is a very large post, so refer to this outline to see all the sections:</p><h2>Pre Work</h2><h3>What kind of home do you want?</h3><p>The first thing to do when you've decided you'd like to buy a place is to think about where you want to live, as well as what sort of home you'd like to have (condo, townhome, house, etc.). There are a lot of factors to consider, including commute time to work, nearby attractions, shopping convenience, personal taste for neighborhoods, schools, and myriad others which are subject to each buyer. While I can't give much specific advice on this step, what I can say is to go with what you personally like. This is gonna be your home so you should love it!</p><p>Mia has a great overview of all the neighborhoods in SF and what they are known for, so I would recommend checking that out too.</p><h3>Show me the money!</h3><p>Next, start thinking about how much of a down payment you can make. What sources of funds will you use for that down payment (cash, vested RSUs, personal stock holdings, cryptocurrency, etc.)? The down payment is likely the thing you will panic about the most, so it's worth making sure you have the right amount set aside for the type, size, and quality of home you are searching for.</p><pre><code>Note: The down payment is not the only cost you will pay when purchasing a home. There is also a set of costs to be paid at Close of Escrow, called Closing Costs. There will be more on this in the Closing Disclosures section, but briefly this includes stuff like lender costs, title insurance, escrow fees.</code></pre><p>If you are considering using some stock holdings toward your down payment, note that the capital gains you will make from selling those holdings will be subject to either long-term or short-term capital gains during tax season (which you will pay the following calendar year).</p><pre><code>Note: If this is going to be your first place, you might also want to have another allocation for buying furniture, kitchen stuff, TV, etc.</code></pre><h4>Aggregating Funds</h4><p>If you would like to have a full accounting of your assets, I highly recommend using a service like <a href="https://mint.intuit.com/">Mint</a>. I wrote about Mint in my <a href="https://www.buildermentality.com/mastering-your-personal-finances-with-mint/">"Mastering your personal finances with Mint"</a> blog post because I think it is a fantastic service that really helps me get both a high-level overview of all my accounts, as well as providing detailed aggregation of transactions.</p><p>While condo hunting, I would sometimes have to submit updated asset numbers to underwriting departments at lending institutions and it was super easy to do that with Mint's dashboard (the mobile version is great for this use case too) because it gave me the top-level values for each asset class.</p><h3>Light Research</h3><p>Now that you've done some initial thinking about what sort of home you want and you have a ballpark for the amount of down payment, it's time to start searching! Zillow is an excellent first place to start. You can set search areas and see recent sales. You can even make filters and save them so Zillow can automatically notify you when new properties are listed that meet your criteria.</p><p>Once you've started finding some properties that are within range, this would be a good time to decide on a realtor. Zillow can recommend some good ones to you, based on the area(s) in which you're searching.</p><pre><code>Aside: I met Mia at an open house for a property she was listing that I was interested in. I was new to the process and didn't have a realtor already, so Mia offered to be my realtor. To instill confidence in her skills, she even invited me to interview her before deciding on her as my realtor!</code></pre><p>Note that once you decide on a realtor, you generally have to sign a form saying that realtor is representing you (meaning, you can't have two realtors). This form is colloquially called a Buyer Representation Agreement, but the full name from the California Association of Realtors set of documents is "Disclosure Regarding Real Estate Agency Relationship".</p><h3>Do the math</h3><p>Every month, your housing costs will be:</p><ul><li><p>Monthly Principal + Interest (P&amp;I): Your monthly mortgage payment</p></li><li><p>Property Tax Reserve</p></li><li><p>HOA dues (if you buy a condo)</p></li></ul><h4>What is the Monthly Principal + Interest?</h4><p>This is super easy to calculate and should definitely be automated as you are doing your property search. The monthly principal + interest will be comprised of two main parts:</p><ul><li><p>Payment toward the remaining principal of your mortgage</p></li><li><p>Interest on that principal</p></li></ul><p>Refer to the <a href="https://www.buildermentality.com/how-to-buy-a-car#financing">"Monthly Payments for Financing" section</a> in my <a href="https://www.buildermentality.com/how-to-buy-a-car/">"How to buy a car"</a> post to see how to automate this calculation in a Google Sheet. The steps are gonna be exactly the same.</p><p>Briefly, use the <a href="https://support.google.com/docs/answer/3093185?hl=en">PMT() function</a> in Google Sheets with the interest rate for the loan and the principal.</p><pre><code>Principal = Listing Price - Down Payment</code></pre><h5>Private Mortgage Insurance (PMI)</h5><p>A normal down payment is 20% and that means your loan-to-value (LTV) is 80% (the lender is covering 80% of the value of the property). A lender might allow you to make a down payment lower than 20%. In that case, they charge you an additional monthly fee called Private Mortgage Insurance (PMI). So if you want to explore that option, make sure to take it into account when you calculate your monthly fees.</p><pre><code>Note: Some buildings in SF could be under litigation (property developers being sued over some deficiency found after residents moved in) and that makes them riskier for lenders. In that case, a lender that previously allowed for a PMI arrangement might still require 20% down payment, or more.</code></pre><h4>What is the Property Tax Reserve?</h4><p>When you own a property, you have to pay property taxes on that property. In San Francisco, the fiscal year is July 1st to June 30th and tax payments are due twice per year in December and in April. However, there isn't an automatic deduction from your paycheck to cover these taxes. So every month, you have to make sure to set aside enough from your paycheck to cover property taxes. And after 6 months, you will then use the reserve you have continually been building up over the previous 6 months to pay your property tax bill. Then the process will repeat for the next 6 months.</p><pre><code>Tip: Make a new bank account with your primary bank where you can keep the property tax reserve.</code></pre><p>Don't worry about making sure to buy a property at the start of the nearest 6 month window. Let's say you buy a property 2 months after the start of the 6 month period. Then, during close of escrow, the seller will pay you a pro rata amount of property taxes for the 2 months he/she still owned the place, within the current 6 month property tax period.</p><h4>What are HOA dues?</h4><p>An HOA is a "Homeowners Association". They are established in residential communities and neighborhoods of single-family homes or multi-unit buildings (like condominiums). In addition to handling maintenance and general functioning of the communities they serve, they also normally enforce some rules for homeowners (stuff like parking restrictions, noise regulations, procedures for how to reserve common areas for parties, etc).</p><p>So if you buy a condo, it's likely that there will be an HOA that manages the building. For their operations, they require that each homeowner pay an HOA fee per month. This fee is not the same for each resident and is highly dependent on the type of unit. For example, a 1 bedroom unit will not have the same HOA fee as a 2 bedroom unit. And a 1 bedroom corner unit with views of the Bay may have a more expensive HOA fee than a 1 bedroom unit that faces inward toward a building courtyard.</p><h3>Underwriting</h3><p>You should submit applications for underwriting to preferably more than 1 bank. In my case, I rate-shopped with no less than 6 banks and was pre-underwritten by 4 of them. Why did I go through this process so early? Because being pre-underwritten allows you the option to remove a financing contingency from your offers, which in turn makes them more attractive to sellers (more on contingencies later in this post).</p><p>And why did I contact so many banks to get pre-underwritten? A few reasons:</p><ul><li><p>The banks have different rates they can provide, based on the mortgage package you go for (15 year fixed, 30 year fixed, ARM packages, etc.)</p></li><li><p>Some banks might be relationship-oriented and will request something from you, like a non-negligible deposit into a new account (if you are not already a customer)</p></li><li><p>The banks have different allowed debt ratios and max amounts they'd be willing to loan. A debt ratio in this case just counts all major payments per month, divided by gross monthly income. What that means is banks generally won't include stuff like Internet cost, electricity, gas, and credit card bills for this analysis, but they will count:</p><ul><li><p>Monthly principal + interest for a possible mortgage</p></li><li><p>Property Tax Reserves</p></li><li><p>HOA fees (if you buy a condo or townhome)</p></li><li><p>PMI (if down payment &lt; 20% of purchase price)</p></li><li><p>Any outstanding loans (student loans, car loans)</p></li></ul></li><li><p>All the banks will want to see some amount of reserve for after you've made your down payment. You normally make an application to the bank to get pre-underwritten at a certain loan amount. So if your down payment is say, 20%, the bank would want to see that across all your assets, there is still an amount left over beyond the value for the 20% down payment. And not all banks will count the remaining assets the same way. Some only count cash toward the reserve, others count cash and stocks, but they discount the stock value at some percentage of its value, like 70%. Others can count cash, stocks, and retirement funds (and retirement funds are at another discount rate). The amount of reserve that they calculate after your down payment can affect how much of a down payment you can make (and additionally how large of a loan they will underwrite you for).</p></li><li><p>Different lending institutions operate at different speeds to be able to finalize a mortgage for close of escrow. The escrow period is an important part of any offer you make, so you want to find a lender who can work very fast so you can have a short escrow period (that instills confidence in the seller).</p></li><li><p>They can have differing levels of experience within the market you are researching</p></li></ul><p>When you submit an application to a lending institution to pre-underwrite you, they will perform a hard inquiry credit check. That means your credit score will drop a little. But, there is a important tip to utilize: You have 14 days to rate shop at lending institutions and it will all be counted as though it were 1 hard inquiry! So once you've started the process with one bank, do submit applications to as many other banks as you'd like.</p><pre><code>Aside: I found a lender after the 14 day rate shopping period who was going to match my best rate from previous pre-underwritten offers AND underwrite me at a higher mortgage. So I technically took another hit to my credit score since that lender had to perform another hard inquiry check, but that credit score hit was incredibly minor (like 10 points), so it was absolutely worth it to get a better mortgage.</code></pre><p>Ask your friends, family, and even work colleagues about any lender recommendations they have. Also, your realtor may have a lot of connections with lending institutions, which can help you get the best rate!</p><p>The underwriting process is a little long. This is due to how many people need to be included within the bank. You may see the phrase "submitted to underwriting" a lot in your correspondence with your mortgage agents and the reason why is because most banks have separate divisions responsible for looking at your application and assets to determine underwriting. Your agent is not the person who will approve you, but rather he/she will act as the liaison between you and the underwriting department.</p><p>Note that the process will require you to share a lot of information too. That might feel a bit uncomfortable, especially because they need to look at all the assets that you want to be included as part of their analysis. There will be a lot of online forms and document sending.</p><pre><code>Aside: I felt a bit uncomfortable about providing so much personal information to banks while I was submitting mortgage applications. My biggest qualm was about security of my documents on the banks' side.

Most banks will use at least a password-encrypted portal, but many of these portals will support 2FA (ABSOLUTELY do that). In addition, whenever you are sending documents, you can request that the bank provide you with an encrypted email link (you follow that link to a web page where you can upload documents over a secure, encrypted platform).</code></pre><h4>Derive a loan value</h4><p>Now that you know how to calculate your monthly costs for housing, it would be a good idea to have a ballpark of how much you'd like to request a bank to underwrite you for. Some banks will look at all your assets and derive a maximum value that they would want to underwrite. But most will require you to give them a number and then upon analysis of your assets, they will provide approval, or request an updated number.</p><p>There are different kinds of mortgage packages you can get and they have different interest rates, along with additional requirements. The same package type in one bank may not have the same interest rate at another bank, which is why you really should rate shop.</p><p>What most lending institutions will check first is if the requested loan amount over the specified number of years in the mortgage package you select results in a monthly payment that does not exceed their debt ratio policy.</p><p>Remember when I said above that the <strong>debt ratio</strong> is the sum of all large debt payments per month (P&amp;I, Property Tax Reserve, HOA, other debts), divided by your gross monthly income? For most non-Federal mortgage loan packages, a good ballpark for debt ratio maximum is 42%. The debt ratio maximum is highly dependent on each bank, so make sure to ask when you reach out to lending institutions.</p><p>The debt ratio maximum for each bank you reach out to will help you filter your property selection based on cost alone. How? Because your costs for housing cannot exceed the debt ratio maximum for a particular bank in order to be approved for a mortgage from that particular bank:</p><pre><code>Note: All values are "per month"

Debts = P&amp;I + Property Tax Reserve + HOA + Other Debts
Debt ratio = Debts / (Monthly Gross Income) &lt;= 0.42
Debts &lt;= 0.42*(Monthly Gross Income)

For now, let's ignore the "Other Debts":
P&amp;I + Property Tax Reserve + HOA &lt;= 0.42*(monthly gross income)</code></pre><p>For those of you who are mathematically inclined, you may be starting to notice some inter-dependencies:</p><ul><li><p>For the same purchase price, a larger down payment results in a lower P&amp;I, which means more margin for not exercising the debt ratio maximum</p></li><li><p>Conversely, a lower down payment will result in a larger P&amp;I and therefore a higher debt ratio</p></li></ul><p>The second bullet point is the most important to understand. For less money upfront (your down payment), you could theoretically be approved for a larger loan if the resulting debt ratio is less than the debt ratio maximum. That is what you should optimize for.</p><h2>Start the Process</h2><p>At this point, you have decided on what kind of property type you'd like to buy, a general area/neighborhood that you'd like to buy in, and a realtor. You've also done some preliminary math to calculate your down payment and where the sources for those funds will come from. Lastly, you've submitted underwriting applications to one or more banks so you can rate shop.</p><p>Pat yourself on the back! This is a great start and you are well-positioned now to be an educated buyer.</p><h3>Create a watchlist</h3><p>Your realtor probably already has a sense of properties that would be of interest to you, but maybe after doing the math above, you now have an even better idea. Ask your realtor to put together some property recommendations for you to look at more seriously.</p><pre><code>Aside: Mia had a personal client portal where she'd add in properties of interest. Using the portal, I could filter the properties on certain parameters and save them to a priority list for further research.</code></pre><p>In addition to finding properties on Zillow, or through a client portal, a service you should be aware of is a Multiple Listing Service (MLS). MLS' are private databases used by realtors to list properties before they go onto Zillow.</p><p>And if your realtor is really well-connected, you may be presented with buying opportunities that are not even on MLS.</p><pre><code>Aside: In my case, all 3 of the above were true: I was watching properties from Zillow, MLS, and even some that had not been added to MLS (Mia was very good at finding properties of interest!). So I found it very helpful to keep a spreadsheet of the properties I was considering.</code></pre><h3>Tour Properties</h3><p>For each of the properties in your watchlist, you want to get as much info as you can before visiting. Look at as many pictures as possible, read the listing carefully, and see if your realtor can get the disclosures beforehand (more on this topic in the <a href="#disclosure-docs">Disclosure Documents section</a>). The reason why you want to research closely ahead of time is because it will allow you to really dial in on the fantastic properties. Those are the ones you will want to tour. And when you tour them, you will want to know ahead of time what to look for (do they have excellent views, are there any scratches on the flooring, etc.).</p><p>Once you have some properties you'd like to see (and it could even be just a couple), ask your realtor to set up a tour for you. Your realtor and/or his/her operations team will reach out to the listing agent to retrieve all necessary info and do the scheduling for you.</p><h2>Continue the Process</h2><p>In this section, I will talk about the repeated actions you will take as you keep searching, but before you decide to place an offer.</p><h3>Market Research</h3><p>Buying a home has both emotional and logical aspects. Emotion obviously because it's gonna be your home and you want to love it. But the logical aspect comes into play when you consider that owning a home is also an investment. Unless the primary purpose of the home is for investment, I would recommend you place more focus on how you feel about the properties you're looking at, rather than just investment value. That being said, it is always a good idea to understand more about the market you want to buy in, even if you are not considering purchasing a home solely as an investment. The reason why is because it will allow you to make competitive offers without overpaying.</p><pre><code>Note: If you are looking at a popular property, you may get into a bidding war and then "overpay" (the definition of "overpay" is subject to your own market analysis). But there would likely still be info gleaned from doing market analysis beforehand.</code></pre><p>Understanding the market is multi-faceted. There are factors to consider like presence of certain companies and whether or not that affects property values (for example, tech companies moving in and buying up land tends to be positively correlated with property value increases). Also, consider if there are price trends lasting more than a quarter due to some larger, multi-region event. Covid, for example, really hit SF real estate hard back in 2020 with a trough toward the latter part of the year.</p><p>Ask your realtor if he/she has any market research reports to provide to you and see if you can segment by the exact area you're looking in. For example, which neighborhoods/districts in SF (refer to <a href="https://miatakami.com/sf-district-map/">Mia's SF District overview</a>)? And within those districts, which buildings are at the top of your list?</p><p>The Compass group also has some great market reports for the Bay Area at <a href="https://www.bayareamarketreports.com">https://www.bayareamarketreports.com</a>.</p><h3>Comparables Analysis</h3><p>Whenever you are looking at properties, virtually or in person, one of the main questions running through your head will likely be "how does this property compare to others I've seen?". And a primary factor of that is value.</p><p>I found it fascinating to research properties and compare them to others of interest, as well as those that were recently sold, to see where value was derived from. The more data you see, the clearer a picture you'll get.</p><p>As you are looking at properties, it would be a good idea to keep a spreadsheet with sale history. Data in aggregate will show you how the market is reacting. For example, I noticed with the properties I was interested in, they were normally being sold for somewhere between 1.5-2% <em>less</em> than their listing price. Coincidentally, this happened to be still during recovery after Covid.</p><h3>Disclosure Documents</h3><p>Once you've found a property that you really like, it's time to do some more hardcore research about that property. You should do this <strong>before you place an offer. </strong>Ask your realtor to forward you <strong>disclosure documents</strong>, which can be obtained from the listing agent.</p><p>The disclosures are just a series of documents that give you info about the property you are looking at, which include potential flaws, natural hazard analysis, a previous appraisal, HOA information (budgets and meeting minutes), and more.</p><p>These disclosure packages are massive. All told, I probably reviewed more than a thousand pages of disclosure docs across the properties I was interested in. So definitely ask your realtor what to focus on. There are a few specific documents in that package that I would recommend prioritizing (this is from the set of SF real estate docs, but other regions would have similar forms with different names):</p><ul><li><p>Agent Visual Inspection Disclosure: Inspection notes from the listing agent (good stuff like new appliance installations, as well as deficiencies, like scuffs, scratches, stains, etc.)</p></li><li><p>San Francisco Seller Disclosure: The seller disclosing to you all material aspects of the property that could affect its value</p></li><li><p>Parking and Storage Disclosure: Describes where parking space(s) for the unit is/are, as well as any possible storage boxes, lockers, rooms, etc.</p></li><li><p>Preliminary Title Report: Lot of info in this, but something to pay attention to is property taxes paid over the previous year, which is good to know.</p></li><li><p>Natural Hazard Disclosures: A report of all the possible natural hazards near the property, as well as environmental hazards, like underground storage tanks, gas wells, etc.</p></li><li><p>HOA financial docs: Explains the budget of the HOA, their reserves, cash flows, balance sheet, etc.</p></li><li><p>HOA Bylaws and Covenants, Conditions, and Restrictions (CC&amp;Rs): How does the HOA run itself and what are its rules for homeowners in the building (most of these are common sense, like not having a rave at 2 AM &#129315;)?</p></li><li><p>HOA Meeting Minutes: Summaries of meeting proceedings for the HOA over at least the previous year.</p></li></ul><pre><code>Note: The Mission Bay neighborhood in SF (within District 9) actually has a parent HOA organization called the Mission Bay Maintenance Corporation. So if you are looking to buy in that neighborhood, you will likely get both the HOA docs of the condo community, as well as the docs for the Mission Bay Maintenance Corporation.

This also means that you will be responsible for two HOA fees per month: one for your condo community, one for the parent HOA.</code></pre><h2>Making an Offer</h2><p>By this point, you have toured the property and reviewed all the disclosure docs of significance to you. It's time to put together an offer letter to give to the seller.</p><h3>Offer Components</h3><p>The offer is made up of two important parts:</p><ol><li><p>The purchase price (how much are you offering to buy the property for)</p></li><li><p>Contingencies</p></li></ol><p>The purchase price simply being high is not good enough if you have a lot of contingencies. That also means that less contingencies with a lower purchase price can still be competitive. So you will have to work with your realtor a bit on these two components.</p><p>Note also that since real estate is an industry that is highly dependent on relationships, your agent may even know the listing agent, which can help you figure out what the seller's must-haves are within any offer he/she would take seriously.</p><p>I will explain some details regarding the purchase price and contingencies, before I go into additional topics like the escrow period and a buyer letter.</p><h4>Purchase Price</h4><p>Work with your realtor to come up with a purchase price that is competitive, while at the same time being reasonable. This is definitely a bit of an art, but it is a lot simpler if you have data. Because you've done a comparables analysis (and likely were continuing to add stuff to your spreadsheet while searching for properties), you will have an idea of how the market is performing, as well as how recent sales in the building look (were they above asking, at asking, below asking; by how much?).</p><h4>Contingencies</h4><p>Remember earlier in this post when I was talking about getting pre-underwritten by multiple banks so you can remove the financing contingency? Well now, we're going to talk a lot more about what contingencies are. As Mia told me, "contingencies are scary to sellers, but are attractive to buyers". That's a funny statement and is probably the shortest, but most succinct explanation, so I just had to copy it into my post.</p><p>Contingencies are conditions which, if not met, allow the buyer to walk away from the deal, with their earnest money deposit (normally 3% of purchase price). Basically the contract to buy is not binding unless all contingencies stipulated by the buyer, and agreed to by the seller, are actually met.</p><p>Sellers do not like contingencies because they want to just make the sale. Sellers will lean more toward offers with less contingencies, especially if they are relatively minor. What I mean by that is: both the number of contingencies, as well as what they are, are important.</p><p>Deciding on which contingencies you would like to have is a bit of a balancing act between making your offer compelling vs. de-risking the transaction. If you choose to walk away for a condition not covered by one of your contingencies (either because you didn't have the necessary contingency or because it expired), you forfeit the earnest money (which is not a trivial amount). So you would likely want to add some contingencies to protect your earnest money deposit should you choose to walk away. But you have to balance your contingency selection and the duration of each contingency with still making your offer attractive to the seller.</p><h5>Standard Contingencies</h5><ul><li><p>Financing contingency: If you are not paying with cash, then you are likely going to have a mortgage from a bank to pay for your property. A financing contingency basically says "If I do not have approval from a bank within &lt;num&gt; days, then I can walk away from the purchase agreement." So if you can provide a very short financing contingency, or none at all (if you have already been pre-underwritten), that makes sellers more confident in accepting your offer. Note that you <strong>do not</strong> have to remove this contingency, EVEN if you are already pre-underwritten. It's just one way to make your offer more competitive. So if there aren't other offers on the table, no need to start removing contingencies to be more attractive to the seller.</p></li><li><p>Appraisal contingency: After an offer is accepted, your bank will want a third party to do an appraisal for the property. What that means is that an appraiser will come to inspect the property, take some pictures, and do some comparables analysis to come up with a value for the property. Most times, they match the offer price exactly, but if they find a deficiency, they could report a value lower than your offer price. In that case, you would be responsible for paying that delta between offer price and appraisal value back to your lending institution. So some buyers like to have an appraisal contingency in case appraisal comes in lower than offer price.</p></li><li><p>Inspection contingency: This is kind of a catch-all, but it technically allows the buyer to cancel for any reason within the inspection contingency window. What the contingency was originally designed for was to provide time for the buyer to bring in a property inspector and cancel if there were issues found in the inspection.</p></li></ul><pre><code>In a condo, may make sense to either entirely waive, or have a very short duration for the inspection contingency because the HOA already controls everything outside your 4 walls. You can of course go into the unit yourself and test out appliances and electrical outlets, look for mold, check the flooring, investigate stains, etc. So if you still want to have an inspection contingency to give yourself time to inspect the property, try to make it a really short one to keep your offer competitive.</code></pre><h4>Escrow Period</h4><p>Close of Escrow is basically when you get the keys and take over ownership of the property. So the escrow period is another part of the offer that you make. What this means is you are basically telling the seller "I will take ownership of the place by this date". Sellers want the period between an offer being accepted and close of escrow to be short so they make the deal faster.</p><p>This isn't a very strong component of your offer, but it can help you stand out a little if other offers are similar. Only do this if you're actually able to move faster. How quickly you can move is highly dependent on what other parties are involved. If you have a lender, their speed may be the slowest because they have to pass your file through final underwriting approval, order the appraisal, and share info with the title/escrow company. So check with your lender to see how fast he/she can move. A 14-21 day escrow is quite quick compared to a baseline market, but in a hot market, that might be expected.</p><h4>Buyer Letter</h4><p>A buyer letter can be a nice way to put a personal touch on your offer to the seller. You can talk a bit about yourself and why you love the property. This is an emotional connection you are trying to establish, so be sure to really show why you are the best buyer for the property.</p><h3>Submitting the Offer</h3><p>When you have decided on the offer you want to submit, your realtor will put together what's called a <strong>Purchase Agreement</strong>, which includes all the terms of your offer (purchase price, contingencies, escrow period, etc.). He/she will then construct an offer package for the listing agent, which is normally sent over email and contains:</p><ul><li><p>Purchase Agreement</p></li><li><p>Lender commitment letter (shows that you have been pre-underwritten)</p></li><li><p>High-level proof of assets for down payment (could be a redacted account statement)</p></li><li><p>(optional) Buyer Letter</p></li></ul><h3>Seller Actions (and your response)</h3><p>Upon receiving your offer, the seller has a few possible responses:</p><ul><li><p>Accept the offer</p></li><li><p>Decline the offer</p></li><li><p>Issue a counteroffer</p><ul><li><p>Issue a multiple counteroffer</p></li></ul></li></ul><p>Accepting and declining are pretty clear, so I'll skip those. Counteroffers though, are a lot more interesting.</p><p>If the seller is interested in your offer, but there are some things he/she would like you to revise, then he/she will issue a counteroffer. The listing agent can deliver this counteroffer to your agent by either explicitly setting new target values for purchase price and/or contingencies, or by being a bit more vague. Especially when it comes to purchase price, the listing agent will likely be vague. Why? Because by putting a number on the table, he/she may have capped how much the property can be sold for (if you were willing to actually go higher). So it's better for the listing agent to just tell the buyer's agent that the seller would like a higher price (if the buyer then overbids in the next offer, that's good for the seller).</p><p>What gets more complicated is if there are multiple parties involved that the seller wants to continue negotiating with. Then the seller can issue a <strong>multiple counteroffer</strong>. The details of each counteroffer need not be the same for each buyer.</p><p>Even with an already compelling offer, you can still have multiple rounds of negotiation. You could also get into bidding wars if the market is hot. One thing your agent can do to show how serious you are to the seller is to put response time deadlines on your counteroffers back to the seller. What that means is the seller has to respond to your offer within the deadline set by your realtor.</p><p>Once you and the seller both accept (your signatures are on the purchase agreement) with the amended fields updated (purchase price, any contingencies which the seller requested to be made shorter or removed), then you have a <strong>ratified contract</strong>.</p><h3>Immediate Steps After Ratified Contract</h3><p>The ratified contract is essentially a Purchase Agreement, with both your signature and the seller(s) signatures that says you will buy the property, subject to the contingencies you put in and the escrow period. Now most of your work is done, but the other involved parties need to begin theirs.</p><p>First, your realtor will forward the purchase agreement to your lender and to the title/escrow officer (normally picked by the seller or listing agent). The lender wants to know as soon as you have a ratified contract because then he/she can order the appraisal (which can take a long time and can eat into the days you have allotted for the escrow period).</p><p>Second, the title/escrow officer will contact you to verify your identity info and to send you instructions on how to wire your earnest money deposit. The earnest money deposit is normally 3% of the purchase price (a couple days before Close of Escrow, you will wire the rest of the down payment; if you decided on a 20% down payment, then that means the remaining 17%).</p><p>Third, you will have to review all disclosures (and any new ones presented since the time of first review) and sign. This is the <strong>disclosure review period</strong>.</p><h2>During Escrow Period</h2><p>There are a lot of overlapping work streams that are happening at this point:</p><ul><li><p>Your realtor will continue working with the listing agent to pass any new documents your way.</p></li><li><p>The appraiser will be researching the property and then visiting to inspect it and take pictures before writing an appraisal report (with the appraisal value).</p></li><li><p>You will be chatting with an insurance company to line up a home insurance plan (which is normally required by lenders before close of escrow; there are different home insurance packages depending on the home type: condo, townhome, house, etc.).</p></li><li><p>You will be doing your own property inspection too (with or without a property inspector) if you had an inspection contingency.</p></li><li><p>Your lending institution will be going through final underwriting and approval for the specific property you are interested in (previously, their underwriting was just for your financials, but now they are approving your building).</p></li><li><p>Your title/escrow officer and your lender will be computing all the costs necessary to make Closing Disclosures.</p></li></ul><h3>Closing Disclosures</h3><p>The <strong>Closing Disclosures</strong> are a set of documents that indicate all the <strong>Closing Costs</strong> paid by the seller and those paid by the buyer. Closing Costs are line items to be paid at or a couple days before close of escrow. The exact costs paid by the buyer and the seller are somewhat dependent on where the purchase is being made, but I will provide some buyer/seller closing costs for the SF condo market. The buyer is normally paying for:</p><ul><li><p>Title Insurance (both for the buyer AND for the lender)</p></li><li><p>The escrow fee</p></li><li><p>A home insurance plan</p></li><li><p>Any lender fees (including cost of appraisal)</p></li><li><p>(If condo or townhome) Prepaid HOA fees for a couple months.</p></li></ul><p>The seller is paying:</p><ul><li><p>The buying agent's commission</p></li><li><p>The selling agent's commission</p></li><li><p>Property Transfer Tax</p></li><li><p>Property Tax Proration (remember, property taxes are only billed twice a year, so you may be buying during one of the tax periods, so the seller should reimburse you for the time you didn't own the property).</p></li></ul><pre><code>Note: Mission Bay also has a one-time transfer fee to be paid by the buyer, which is different from the property transfer tax paid by the seller. The transfer fee is called a Community Enhancement Fee and is worth 0.25% of the purchase price.</code></pre><p>The lending institution and the title/escrow company will both compute closing costs. The sum of those costs may not be the same initially and that could be due to certain line items having different values, normally because they are making estimates. For example, prepaid interest on your mortgage varies based on when close of escrow is. Don't fret though: by or shortly after close of escrow, the closing costs calculated by the lending institution and by the title/escrow company will be exactly the same.</p><pre><code>Note: Sometimes, at close of escrow, there is a slight discrepancy between the lending institution's calculation for closing costs and the title/escrow company's calculation for closing costs. That discrepancy will result in you getting a refund for the delta a couple days after close of escrow. This refund will be issued to you in the form of a wire transfer from the title/escrow company.

The reverse does not happen: you will not generally underpay and then owe more money after close of escrow.</code></pre><h2>At Close of Escrow</h2><p>You're there! You did it! Just two teeny, tiny steps left:</p><ol><li><p>Wiring the remaining part of your down payment to the title/escrow company</p></li><li><p>Signing your Closing Disclosures with a notary</p></li></ol><p>Okay, maybe step 2 is not so tiny. You have to sign all those forms...BY HAND. A notary agent will come to your place with all the forms in hand, verify your identity (with a driver's license or equivalent), tell you what each form is that you'll be signing, and then you will get a ton of signature practice &#129315;.</p><p>Once you have signed all the Closing Disclosures, the notary will deliver those forms to your title/escrow company who will make a copy for the lending institution. While you're not responsible for making copies and delivering to the relevant parties, you are technically paying for this service through the title/escrow company's fees (which will be reported on your Closing Costs).</p><h2>Get your Keys and Move In</h2><p>Once the Closing Disclosures have been signed and delivered to the title/escrow company + lending institution, you can pick up the keys from the listing agent or from your realtor!</p><p>Now, give yourself a pat on the back and take a moment to celebrate! This was quite the adventure and now the place is yours!</p><p>As you get situated, you're gonna find there are some action items that you should take care of immediately:</p><ul><li><p>Set up auto pay for anything that will be recurring:</p><ul><li><p>Monthly P&amp;I</p></li><li><p>HOA dues</p></li></ul></li><li><p>Set up an account for your property tax reserves (to be deposited into every month)</p></li><li><p>Set up wifi and any utilities (water, gas, electricity)</p></li><li><p>Set up access to your community's intranet</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Finding Your Power Hours]]></title><description><![CDATA[Everyone has a span of time where they can get into a flow and just crank! Read this post to learn about power hours and how they can help you!]]></description><link>https://www.buildermentality.com/p/finding-your-power-hours</link><guid isPermaLink="false">https://www.buildermentality.com/p/finding-your-power-hours</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Sun, 03 Oct 2021 10:33:30 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/78265025-d740-4e8c-9b24-c3705d9a1a86_768x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Disclaimer: I am not in the Amazon Affiliate program. Any links I provide to books are solely because I think they are good reads that I think you'll find more interesting.</em></p><p>Let's set the scene: You're in college and have a paper due in a day, which you had a few weeks to do, but haven't tackled yet. It's 10 PM. You get your coffee/tea/energy drink, put on some headphones, crank some good music, and start typing. 400 open tabs and 12 pages later, you have now finished your paper. And it's 4 AM.</p><p>I was like that in college, as were some of my peers. But I had some other friends who absolutely refused to do the night owl routine and instead opted for early (but more reasonable) morning hours to do their last-minute paper writing. I had other friends who preferred to do a bunch of writing in the afternoon. The point is that while the night owls and the early birds and the afternoon birds (yeah, I don't know what to call them) had the same assignment to do, they picked different times of the day to crank. They each had their own <strong>power hours</strong>, which is the subject of this post.</p><p>There's a certain span of time I like to call "power hours". This is when you can get a lot of s**t done. Power hours vary from person to person and may even vary for one individual while in a certain phase of life (college all-nighters, anyone &#129315;?).</p><p>Whether you are woefully behind on stuff you've gotta get done, or if you just have a busy schedule and have <a href="https://www.buildermentality.com/productivity-tip-how-to-keep-track-of-all-the-st-you-need-to-get-done/">already prioritized your tasks</a>, there are generally certain hours of the day that suit you best to just crank. Your power hours can change as you grow older, or if the type of work you're doing is changing, but it's always a great idea to find them and use them to their full advantage.</p><p>Before I get into how to use your power hours, I'm gonna give some background to frame the discussion.</p><h2>Chronotypes</h2><p>There's an awesome book by Daniel Pink called <a href="https://www.amazon.com/When-Scientific-Secrets-Perfect-Timing/dp/0735210624">When: The Scientific Secrets of Perfect Timing</a>.</p><p>(I am slightly biased because I read the book and thought it was amazing. I also got to meet Daniel Pink when I was an intern in LinkedIn since he was invited as part of LinkedIn's Speaker Series! I'm holding the book in the pic.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V8FY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V8FY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!V8FY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!V8FY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!V8FY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V8FY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg" width="768" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:768,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!V8FY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!V8FY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!V8FY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!V8FY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc736939c-f248-4433-9eb6-e387309fb8f6_768x1024.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the first part of the book, Daniel Pink talks about chronotypes and how being cognizant of your own chronotype and its characteristics can help you achieve certain tasks better at different points in the day.</p><p>There are three main chronotypes that Daniel Pink found in his research:</p><ul><li><p>Larks</p></li><li><p>Owls</p></li><li><p>Third birds (a category for which Daniel Pink mentions he could not come up with a more descriptive name &#128513;)</p></li></ul><p>Larks and third birds have a daily energy cycle that looks something like this:</p><ul><li><p>After wakeup, energy increases until about lunchtime</p></li><li><p>After lunch time, a slump begins that culminates in a trough in the afternoon</p></li><li><p>After dinner, energy starts going back up again before flattening by the time you get ready for bed</p></li></ul><p>Owls, however, have the same cycle, but in reverse.</p><p>Between larks and third birds, all that's really different is that the start of the cycle gets shifted earlier if you're a lark (because you wake up earlier). Larks start their day early and go to sleep early. Most of us are "third birds" though, myself included. We wake up at "normal" times in the morning and go to sleep normally sometime before midnight.</p><p>This daily energy cycle is important to keep in mind because it implies that there are certain times of the day that are better suited for certain kinds of thinking. It just so happens that you are better at analytical tasks after you wake up and you are better at more free-form thinking in the afternoon after you've had lunch.</p><p>Now, owls are the strange ones because their cycle is in reverse, so they actually can perform better analytically in the night time. This is partly due to the fact that they wake up later in the day.</p><p>If you'd like to learn more about the three chronotypes, check out <a href="https://www.danpink.com/resource/when-larks-owls-and-third-birds/">this helpful infographic from Daniel Pink's website</a>.</p><h2>Tying it all together</h2><p>What Daniel Pink describes is a bit of "steady state" for how you should expect your days to look based on your chronotype. There are certain recommendations he makes in the book based on what part of the day you're in and I find that I tend to follow them (I'm a third bird):</p><ul><li><p>Analytical thinking: I tend to answer emails, develop code, and review code and tech specs in the morning.</p></li><li><p>Free-form thinking: I keep design discussions and more exploratory tasks in the afternoon. If I have a large tech spec I need to write, I may do the outline and some initial work in the afternoon, but continue in the morning.</p></li><li><p>Analytical thinking (not as much as morning): I may look into some more code-related things, or answer chat messages, in the evening.</p></li></ul><p>My morning tasks are predominantly more analytical in nature and my afternoon tasks are more free-form, when my analytical skills are not at their peak. In the evening, my analytical skills are increasing, but they're not at their morning levels, so I tend not to code as much in the night time unless I'm behind or really excited about something I'm working on.</p><p>"Ok, so how are power hours different from the most analytical hours in the day based on your chronotype?" you ask. Good question.</p><p>Power hours need not be for solely analytical tasks. They are just a set of hours where you can get a lot of work done. You can definitely do analytical tasks in your power hours and that would be good too, because your efficiency would be higher. But you could do more free-form stuff instead, or even a mix of analytical and free-form thinking in your power hours. The main point is that it's a span of time where you can get into a flow and just crank on stuff that needs to get done or for which you have placed a high priority.</p><h2>A word of caution</h2><p>I am by no means writing this post to urge you to find a way to squeeze even more productivity or efficiency out of an already busy schedule just so you can do more work. That can lead to burnout, which really sucks. You have to make sure you are still getting enough sleep and can function the next day.</p><p>Rather, I'm recommending that you learn both what your steady state is, as well as when you can find your best flow. You could find that your power hours are aligned with your most analytical hours, based on your chronotype. Or, you could find that they are at diametrically opposite ends of the day and in <strong>short</strong> sprints, you can use your power hours to be an absolute task ninja.</p><p>Either way, I recommend you do some experimentation and see what time range works best for you to just crank. If you are super tired and not thinking clearly in the late evening, those are probably not your power hours &#128513;. But if you've simply never done that before, try it out and you may just be surprised! Often, the first time people do the "late night warrior" routine is when they have procrastinated, but some find serendipitously that their power hours are actually late in the evening.</p>]]></content:encoded></item><item><title><![CDATA[How to Buy a Car]]></title><description><![CDATA[If you'd like to buy a car, but don't know where to begin, read this post to learn about cost estimation, researching cars, and negotiating!]]></description><link>https://www.buildermentality.com/p/how-to-buy-a-car</link><guid isPermaLink="false">https://www.buildermentality.com/p/how-to-buy-a-car</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Sun, 22 Aug 2021 09:57:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>People like you or I know, we have an unshakeable belief that cars are living entities. You can develop a relationship with a car.</p><p>Jeremy Clarkson</p></blockquote><p>Just wanted to start this post with a quote from the legendary Jeremy Clarkson, known for hosting Top Gear and The Grand Tour, along with James May and Richard Hammond! What he says is absolutely right: cars are personal and you will develop a relationship with yours. You may even name your car (and many people do!).</p><p>But before you get to that point, you have to buy the car and that process can be a bit overwhelming at first. While the topic of buying a car is not necessarily "software engineering, finance, or investing", as was this blog's original focus, I've gotten a lot of questions about it from my network. So I figure a post on the overall steps and what to look out for would be a great help to anyone else who is considering buying a car.</p><p>One thing I would stress though is that cars are depreciating assets. You can't "diversify your portfolio of assets" like <a href="https://www.buildermentality.com/p/how-to-start-investing-in-stocks">I discussed in my stock investing post</a> by buying a car, unless it's a classic or a super car that is increasing in value over time. So the reasons for why people buy cars, as well as their relationship to them, can vary a lot from person to person. Some people view a car as a way to get from point A to point B. Those people likely value practicality and "bang for their buck". Others have a potentially deeper relationship to their cars and I count myself among that group (can't you tell by the opening quote to this post &#128513;?). I value aesthetics, tech features, build quality, and how the car makes me feel when I'm driving it.</p><p>Fortunately, whatever camp you're in, you can use the same steps to buy a car!</p><h2>Step 0: Do some math</h2><p>Before you start researching what car you want to buy, it's a good idea to think through finances. I know, shocking right &#129315;? There are a lot of costs associated with owning a car:</p><ul><li><p>If you are financing (as opposed to buying with cash), how much of a down payment do you want to make and what does that translate to in monthly costs for the remainder?</p></li><li><p>How much are you expecting to pay for car insurance?</p></li><li><p>How much are you expecting to pay for gas (or electricity, if you opt for a plug-in or electric vehicle)?</p></li><li><p>Do you want tax rebates for buying green cars? Many states offer this (and Tesla popularized it a bit), but there is a phaseout based on your income level, so double check that before assuming you get a rebate.</p></li></ul><p>The last three bullet points are super variable because they vary across locations. So I'm gonna tackle how to estimate car payments per month, since that's pretty specific.</p><h3>Monthly Payments for Financing</h3><p>If you don't buy a car outright, and you are not leasing, then you will need to finance. What that means is that a bank is loaning you money for you to buy your car. But you need to pay that money back, <strong>with interest.</strong></p><p>I'm gonna show you a formula to use for calculating monthly payments and then I'll show you how to cheat by using Google Sheets to calculate it for you &#129315;.</p><pre><code>Joking aside, knowing how to use common financial formulas in Google Sheets is a very good skill to have (which is a subject for another post).</code></pre><p>Alright, math formula first. When you finance, you will be paying back a constant amount per month, comprised of two parts:</p><ul><li><p>A part for your principal (that goes toward paying the loan's remaining balance)</p></li><li><p>A part for interest</p></li></ul><p>These two parts together make up your constant monthly payment. Let's calculate that monthly payment:</p><pre><code>P = (P0 * r) / [1 - (1 + r)^(-n)]
P = monthly payment
P0 = initial principal
r = interest rate per year
n = number of years</code></pre><p>Let's say we have a 5 year, $30,000 car loan at 3% interest rate per year. We can directly use the formula above, but with a small change: we need to divide r by 12 (because there are 12 months in a year) and we need to multiply n by 12 (to account for monthly periods, rather than yearly periods):</p><pre><code>r = 0.03
P0 = 30000
n = 5
P = (30000*0.03/12) / [1 - (1 + 0.03/12)^(-5*12)]
P = $539.06</code></pre><p>What this means is that you will pay $539.06 per month for 60 months (5 years * 12 months/year). If we were to sum up all those payments, we'd get $32,343.64. See how you actually pay more than $30,000 by the end of the 5 years? That's all due to interest &#129318;&#8205;&#9794;&#65039;.</p><p>Something to note: Remember how I said that your monthly payment is comprised of a part toward your principal and another part for interest? Since the total payment you make per month is not changing, the percentage of your monthly payment that will go toward principal will increase while the amount toward interest will decrease:</p><h4>How to cheat with Google Sheets</h4><p>Ok, so I showed you the complicated formula above and now you're wondering, "Isn't there anything that can just calculate the monthly payment for me?" Why, yes there is! Enter Google Sheets &#128513;.</p><p>My Investment Analyst brother swears by Excel, but I'm a Google dude so I love Google Sheets. There's a formula called <a href="https://support.google.com/docs/answer/3093185?hl=en">PMT()</a> that will calculate your monthly payments for you.</p><pre><code>Note: The PMT() formula reports numbers as costs, so there will be a negative sign. If you would prefer to have the absolute value, just multiply your PMT formula by -1 &#128515;</code></pre><p>The PMT formula is incredibly useful. <strong>Make sure to have this in your back pocket.</strong> I'd recommend making a "scratch spreadsheet" where you list out loan amounts on successive rows and then in another column, use PMT to calculate the monthly payment for that loan. All you have to do is prepare the first row and then use the formula fill-down to populate monthly payments in all the following rows which depend on different loan amounts.</p><p>Another reason why it's good to have a scratch spreadsheet is that when you are at a dealership and they quote you on something, you can double check it super fast (I load Google Sheets on my phone and have formula spreadsheets ready to go).</p><p>I have even made a <a href="https://docs.google.com/spreadsheets/d/1ZWF_pZCH_a7N3wZUkxo4sZzfBam6RdL13e2G_bQXhcE/edit?usp=sharing">sample car loan payments Google Sheet for you to use</a>! Feel free to use it for your own calculations! Just tap on File &gt; Make a copy &#128515;</p><h2>Step 1: Do some research</h2><h3>Filter your choices</h3><p>If you already know what car you want to get, feel free to skip this step. But I think there could still be some useful nuggets in this step that you might want to scan &#128513;.</p><p>For those of you who don't know which car to choose, I totally get that. There are so many makes and models that it's easy to get choice paralysis.</p><p>But, there is something that can help us: Because of Step 0, you now probably have a relative price range in mind. That relative price will allow you to target a certain type of <a href="https://en.wikipedia.org/wiki/Car_classification">car segment</a>.</p><p>Within a type of car segment (city car, small family, executive), there are different levels of luxury. And by this point, you've probably filtered to around 3-5 choices for make.</p><p>As for the model, many car companies have sedans, coupes, and SUVs (some even have crossovers). Think about what use cases you have for your car and what you feel comfortable driving. If the width of a particular sedan is the same as an SUV, but you still feel like the SUV is unwieldy, then that's important to take into account.</p><h3>Do some test drives</h3><p>After you have filtered your choices to 3-5 makes, it's a good idea to locate some dealerships for those car companies and schedule some test drives. If you're not sure what model you want yet, that's totally fine! Car salespeople want to make a sale, so they'll be happy to show you different models and explain pros and cons. And if they do not operate like that, or are excessively pushy, <strong>find a different salesperson</strong>. Just like in all business relationships, you should feel comfortable with the representative you are working with.</p><p>While doing test drives, make sure to test out all the features of the car that are important to you. And if there's anything you don't understand, ask your dealership representative. It used to be before Covid that the representative would come with you on the test drive, but many dealerships now are allowing you to self-test drive. That is great if you already know what you're looking for and have done your research for the features you want to test, but if you're still exploring, maybe ask the representative for a brief overview before you take the car out on a test drive.</p><p>And if you find that you're not able to test all of the features, it's perfectly okay to schedule a follow up test drive. A follow up test drive does not imply that you've made an unspoken commitment to buy the car. You're just doing your research!</p><pre><code>Story time: A car company (that shall remain unnamed) had me do 3 test drives because each time I came, certain features were not working. I ended up not going with that car company because of the unreliability of the systems that they were touting as being essential to owning the car.</code></pre><h2>Step 2: Select the car you want</h2><p>After doing some test drives and researching online, it's time to come up with which car make and model you want to go with. Make sure to think about your use cases for the car (do you want to drive it in the city, or take it to Tahoe and go skiing?), what features you'd really like to have, and how much you like the car.</p><p>Also consider how you view a car. Is it just to get from point A to point B, or do you view it as something more? Just like Clarkson said, you can develop a relationship with your car.</p><h2>Step 3: Buy the car</h2><p>This step is the most intimidating. Most car companies do not own their own dealerships (Tesla is the exception). The dealerships are franchises and can actually set different prices for exactly the same car and features. In addition, some dealerships use a model called "no haggle pricing", which means "no negotiation". But, there are many dealerships that do use negotiation.</p><p>Buying a brand new car is a bit different from buying a used car, so I'll address both.</p><h3>Buying a new car</h3><p>When you buy a new car, you can either factory order it or buy something from a dealership's car lot. Unless you find something on the lot that's perfect, I am personally of the opinion that if you are buying a car brand new, you may as well do a factory order and custom configure it however you like. Some dealerships may try to pressure you to buy a car from their lot by stating that they can offer a lot of discounts. They want to close a deal fast, so that's why they use tactics like this.</p><p>However, there are abundant discounts to be found online, even for custom orders! A great source I recommend is <a href="https://www.costcoauto.com/enterzipcode.aspx?gotourl=%2f%3fgclid%3dCjwKCAjw4KyJBhAbEiwAaAQbE-ztKsgZtu77CBqeNGJf9ua7eh-To016HwaawjyqZfIz_L2qgmDZdhoCKdwQAvD_BwE">Costco Auto</a>. Costco Auto has pre-negotiated discounted prices for cars with certain dealerships. As you configure your car, they will show you what discounts they can apply for each feature. What this means is you can buy a brand new car, with exactly the features you want, for a cheaper price! After configuring your car, Costco will recommend some nearby dealerships that are part of the Costco Auto program. You can choose your preferred dealership (within the set of recommendations), bring your configuration, and the dealership will offer you the Costco-discounted price for the car.</p><p>In addition, many dealerships have discounts they can tack on if you ask: new college grad, loyalty (you or your family owns a car from the same manufacturer).</p><p>In fact, when I bought my car, I used Costco Auto to lower the price of my car, then tacked on a new college grad discount AND a loyalty discount. Total savings were near $7k!</p><h3>Buying a used car</h3><p>With a used car, you don't have to go through a custom configurator, but you can still likely negotiate and add on the discounts I mentioned above. If you would like to buy a used car, then I'd recommend seeing if your local dealership has a "Certified Pre-Owned (CPO)" program. Certified Pre-Owned cars are a bit different than just "used cars" because they get a tune up and extended warranty. So if having the latest features is not as important to you, a CPO car can be an excellent bargain because you've still got a warranty.</p><h2>Step 4: Celebrate</h2><p>You've got your car. Time to celebrate now! Plan a drive somewhere or go to the movies with your friends! Or, even better, do donuts in a parking lot (I'm kidding; don't do that &#129315;)!</p><p>Having a car provides a great level of freedom and independence, but it also comes with some responsibility: Make sure to keep your car insurance and registration up-to-date.</p><p>Other than that, the world is your oyster!</p><h2>Extra: Should you lease or buy?</h2><p>Leasing can seem like an attractive option for people who would like to drive a new car every 2-3 years. Also, leasing normally has lower monthly payments than a comparable loan's monthly payments. However, there are some downsides to leasing:</p><ul><li><p>You don't own the car after the end of the lease term.</p></li><li><p>Leases have mileage limits per year and if you exceed them, <strong>you pay extra PER MILE over the limit.</strong></p></li><li><p>Excessive wear and tear can be charged to you at the end of the lease term.</p></li><li><p>You can't customize the car.</p></li></ul><p>One thought experiment to try out (and then verify in Google Sheets by using Step 0 above): Two 3-year leases will end up being more expensive than one 6-year car loan. And you will continue to have even more savings in the case of car ownership beyond 6 years (because you have paid the loan entirely).</p>]]></content:encoded></item><item><title><![CDATA[How to Prep for Software Engineer Interviews]]></title><description><![CDATA[Software Engineering interviews are tough. In this blog post, I'll give you an attack plan for how to prep so you stand out from other candidates and land the role of your dreams!]]></description><link>https://www.buildermentality.com/p/how-to-prep-for-software-engineer-interviews</link><guid isPermaLink="false">https://www.buildermentality.com/p/how-to-prep-for-software-engineer-interviews</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Sun, 15 Aug 2021 06:54:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>I am not affiliated with any of the products I recommend in this post. Opinions reflected within this post are solely my own.</em></p><p>Software engineer interviews are usually the stuff of nightmares for most software engineers, whether junior or senior. If standing at a whiteboard, solving hard problems in front of multiple interviewers doesn't make you sweat, good for you! But for the rest of us mere mortals, the interview process is grueling and anxiety-ridden.</p><p>While the types of interview questions and the recruiting process vary between different companies, luckily there are some common steps you can take to prepare no matter your level of seniority (junior, senior, staff, principal, etc.)</p><p>In this post, I'll give you an attack plan for how to prepare for Software Engineer interviews so you can get an <a href="https://www.buildermentality.com/p/how-to-evaluate-a-swe-offer">offer</a> for the role of your dreams!</p><h2>Step 0: Make your resume shine</h2><p>Before starting your interview prep, I'd recommend spending some time to update your resume. The point of your resume is to engage recruiters and show them how awesome you are. You want them to be able to quickly determine if you're the person for the role they have in mind and the best way to do that is by having a clear and powerful resume.</p><p>Resume tips and tricks is a topic for another post, but some quick advice:</p><ul><li><p>Don't put your address at the top of the page. That just takes up space in your header and recruiters don't need to know that info. However, it may be a good idea to list a general region, like "Bay Area", "SF", "Seattle", etc.</p></li><li><p>Do put a standard email address (so not, littlebunny420@gmail.com &#128513;).</p></li><li><p>Try to put some high-level categories of skills above the work experience. Things like languages you've worked with and platforms you've used (AWS, anyone?) are useful for recruiters to know.</p></li><li><p>In the Work Experience, focus on what you <em>achieved</em>, rather than <em>what you did</em>. There is a difference. What you did is nowhere near as powerful as what you achieved, and if you can back that up with metrics, then you're a superstar. Something like "Generated $10M in quarterly cost savings by designing and implementing &lt;blah&gt;" is very strong.</p></li></ul><h2>Step 1: Do some technical prep</h2><p>Depending on your level of seniority, there are two main types of questions you will have to answer:</p><ul><li><p>Coding/Algorithms</p></li><li><p>System Design</p></li></ul><p>The good news if you are junior engineer (normally level 3 or level 4 in a lot of companies) is that System Design questions are normally not part of the interview process because they can be quite complicated and require intuition into various design alternatives, which make them more suitable for senior engineers with some experience. I'll describe Coding/Algorithms questions a bit more in this post, but I'll briefly touch on System Design.</p><h3>Coding/Algorithms</h3><p>The best way to prep for coding/algorithms questions is to practice implementing full solutions to coding questions. A great source of interview questions is <a href="http://leetcode.com">Leetcode</a>. LeetCode is a fantastic interview prep tool for a few reasons:</p><ul><li><p>The questions are tagged by data structure type (like arrays, hash tables, trees, etc.) and/or by solution techniques (greedy, dynamic programming, graph search, etc.).</p></li><li><p>The questions are rated with 3 difficulty levels: Easy, Medium, Hard (but take these with a grain of salt).</p></li><li><p>You can solve the questions with the embedded LeetCode text editor, which will run your code through some test cases.</p></li><li><p>Many of the questions have solution articles that show alternative implementations and their Big Os (algorithmic complexity). If you want access to all solutions, you will need to get LeetCode Premium (more on that later).</p></li><li><p>LeetCode has curated common questions that are asked at companies like Apple, Facebook, and Google (their company list is way larger than that and is continually growing). While the exact questions may not be recycled within the companies, LeetCode does a pretty good job of presenting a representative sampling of the types of questions and data structures each company likes to test on.</p></li></ul><p>So with this vast resource, how are you supposed to use it to maximum benefit? Easy: solve every question!</p><p>Jk, ain't nobody got time for that &#129315;! However, the more questions you solve, the more confidence you will gain and the more experience you will have in solving variations of problems. Many companies like to vary up problems that are originally from LeetCode, so by solving more LeetCode questions, you increase the likelihood that you may be asked a very similar question in your own technical interviews.</p><p>LeetCode questions within a certain category, like Trees, can also build upon each other which helps you to grow your algorithmic muscles for that topic.</p><pre><code>Note on LeetCode Premium:
LeetCode Premium works on a subscription model that is either monthly or annual. At $35/month, it can seem a bit pricy, but I feel LeetCode Premium is absolutely worth it!

The primary benefit is access to every solution article on LeetCode. In addition, the company-specific interview questions are curated pretty well. There are additional benefits to LeetCode Premium (such as video solutions and interview simulation), but I found just simply having access to all solutions and curated company interview questions was incredibly useful. I was able to move a lot faster through my interview prep by searching for similar types of questions and preparing on the most common topics in most companies.</code></pre><h4>What should you aim for with LeetCode?</h4><p>A general rule of thumb is to be able to solve 2 Medium LeetCode questions in 30 min. Most coding interviews will be around 45 min, so interviewers try to ask a couple Medium-difficulty questions, while providing 15 min for introductions and for questions at the end.</p><p>Sometimes, a coding interview will ask 1 LeetCode Hard question (or a custom question you may have never seen before because it's specific to the company), especially if the interview is during your onsite rounds. Interviewers tend not to jump to LeetCode Hard questions during a technical phone screen because it doesn't provide as much signal as two questions (they get to see your questioning and problem-solving skills twice as opposed to once).</p><pre><code>Make sure that as you are solving LeetCode questions you are also analyzing your solutions to determine Big O (or, algorithmic complexity). You will absolutely be asked to describe the Big O of your solutions in interviews.</code></pre><h3>System Design</h3><p>System Design questions are normally not asked of junior engineers and rarely if ever for new grads. These types of questions are unlike coding/algorithms questions because they are normally not as simple as coming up with one of a few implementations to just code. Instead, you are asked questions like "Design the Facebook News Feed".</p><p>If you just read that and thought, "WHAT?! HE HAS GOT TO BE KIDDING", that question is not a joke. System Design questions require that you think both at the forest level and at the tree level. You need to be able to describe all the components that will have to be built and be able to zoom into very specific implementation details if asked by your interviewer. For example, your interviewer may ask you something as specific as "How is hashing implemented in this particular library, since you want to use the library as part of your solution? Is that hashing technique the best for this question and why?"</p><p>System Design questions are fine-tuned to probe at how much experience an engineer has and the level of technical complexity that he/she can handle and systematically decompose. Unlike coding/algorithms interviews, this type of interview will likely result in a completely filled whiteboard of diagrams and not as much code.</p><p>If you'd like to prepare for these kinds of interviews, I'd recommend the <a href="https://www.educative.io/courses/grokking-the-system-design-interview">Grokking the System Design Interview</a> class on Educative.</p><h2>Step 2: Research Companies</h2><p>This step will likely be somewhat in parallel to the step above (since certain companies may have specific interview question types they like to use), but I'm calling this step out in its own section because it's a very important part of the interview process. The best roles for you are the ones that will have alignment between your personal and professional goals and what the company would like to achieve.</p><p>"Seems obvious," you say. Not so fast. I'll explain.</p><p>You may want to have a good work-life balance, while making a certain amount of money and learning a particular skill. If a company you're researching only has open roles in areas that do not include the skill you'd like to build, or if the work-life balance is not great at the company, but the pay is good, you're gonna have to weigh these factors. Is it worth even interviewing at that company? Your time is valuable. By doing some research beforehand, you can simplify your interviewing experience, reduce stress, and focus on the companies that matter the most to you.</p><h3>Company culture</h3><p>Researching company culture is hard, but there are some great sources to learn from.</p><p>First, and most importantly, your friends and network! If you have friends at the companies you're interested in, ask them how they like their role, what stuff they love about their company, and what stuff they dislike.</p><p>Second, there are some websites that are geared toward providing you with a sense of what it would be like to work at particular companies. Two great websites you should be aware of:</p><ul><li><p><a href="http://glassdoor.com">Glassdoor</a>: Hyper-focused on company culture and interview style, with reviews written by current employees.</p></li><li><p><a href="http://levels.fyi">Levels.fyi</a>: Primarily focused on compensation bands, like "L3 median salary for Software Engineer at Google in the Bay Area".</p></li></ul><h3>Why do you want to work at &lt;company name&gt;?</h3><p>You may not know exactly what you'd like to work on, but you should definitely have a sense of what sorts of projects you like, as well as what you would like to try next.</p><p>So do some research on the company if you don't already know it well. Learn about its main products, where it wants to grow, and especially areas where you believe you can contribute. Creating a narrative about how you see yourself working at that company will create that natural alignment I talked about earlier between your goals and the company's goals. And that will really shine through during interviews with recruiters and with engineers when they see your passion.</p><h2>Step 3: Practice actually interviewing</h2><p>If you are a bit nervous about doing interviews, a really good way to prep is to do sample interviews. You've got all this knowledge, but you should get some experience strutting your stuff before you get to the actual interviews because that will increase your confidence.</p><p>There are a couple ways to prep. You can make use of online services like <a href="https://www.pramp.com/#/">Pramp</a> or <a href="https://leetcode.com/subscribe/?ref=nb_npl">LeetCode Premium's Interview Simulations feature</a>. Or, you can try interviewing with your peers or a mentor. That's a really good way to practice with a fellow human that you trust and can encourage you!</p><p>How you do the sample interviews is up to you. Prior to Covid, it was pretty common for people to practice on whiteboards because that was how you would be interviewed in onsite rounds at companies. Once companies started switching to entirely virtual interviewing loops, preparing on a whiteboard became less relevant because all technical interviews were administered through online services that had collaborative text editors with syntax highlighting. So if you wanted to simulate an entirely virtual interview, one way you could do it is by having a friend call you and use a Google Doc to ask you a coding question.</p><p>That being said, I think it's still good to practice writing code on a whiteboard. Writing out your code by hand will force you to really know a language well and analyze your code carefully. The whiteboard doesn't have any syntax highlighting!</p><h2>Step 4: Take a breather</h2><p>The interview process is brutal. You're gonna be doing technical prep, reaching out to recruiters (and probably your friends who can give you referrals too &#128516;), researching companies, and of course, interviewing. It's really important to take care of your mental and physical health so you can perform your very best, and also just to be happy.</p><blockquote><p>Success comes from knowing that you did your best to become the best that you are capable of becoming.</p><p>John Wooden</p></blockquote><p>I promise you that if you do the prep above and you believe in yourself, the sky's the limit! You got this!</p>]]></content:encoded></item><item><title><![CDATA[How to grow your network within a company]]></title><description><![CDATA[Growing your network within a new company can be really intimidating, but will start yielding gains immediately.]]></description><link>https://www.buildermentality.com/p/how-to-grow-your-network-within-a-company</link><guid isPermaLink="false">https://www.buildermentality.com/p/how-to-grow-your-network-within-a-company</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Mon, 09 Aug 2021 06:58:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When you join a new company, normally the first thing on your mind is getting through the onslaught of onboarding action items you have, like setting up your email and benefits elections, followed by reading thousands of pages of onboarding docs (okay, maybe not that order of magnitude, but it sure as heck feels that way &#129315;). And during all that, you gotta set up your development environment and start getting access to code and build systems. Sounds like a lot, but there is something that a lot of new grads and even some more senior engineers can sometimes overlook: building your network within the company.</p><p>"ONE MORE THING I GOTTA DO?! AM I NOT STRESSED ENOUGH?" you ask. Before you panic, read this post and you'll see that building your network within your new company is not only easy, but also will start yielding gains immediately.</p><h2>Why grow a network within a company?</h2><p>Everyone knows that having a network is important, but why is it important specifically within a company? Also, why is it something that engineers should be cognizant of? After all, we're not sales or marketing people. We just make awesome products by being code ninjas, right?</p><p>Not so fast. The thing is, we still do interact with humans, and wherever there is interaction with humans, there are relationships you can build that will advance you and your career.</p><h3>Your network speaks for you</h3><p>Your broader network is comprised of many different people, including mentors, coaches, peers, and of course, recruiters. Each of those people has helped you grow in some way and will continue to help you grow. They will likely also know about opportunities that would be great for you. And the best part is: those opportunities may never even become public but you will get priority to them by simply having your network reach out to you directly.</p><p>The same phenomenon happens within a company. Internal roles that will allow transfers, or even new projects in search of team members, are opportunities that you could be fast-tracked into by knowing more people in your company.</p><h3>Your network will grow your influence</h3><p>It's always good to know people outside of your team. Those relationships will keep you up to date on all the new developments within the company that are outside of your immediate area. That's incredibly helpful because it will show you how your work fits into the broader context. The broader context understanding may then give you new ideas for how to collaborate cross-org, expand your scope further, and make larger impact (all good things to do &#128513;).</p><h2>Great! How do I grow my network?</h2><p>The main way to grow your network is to actively reach out to people.</p><p>You're probably thinking, "Wow, this dude must think he's some kind of genius." But it is actually that simple.</p><p>I get it: reaching out to people is hard. It can be intimidating and anxiety-ridden, but this is just a muscle that you gotta hone. Once you've done the "elevator pitch" a couple times, you will start getting more comfortable with reaching out to new people.</p><p>But how do you figure out who to reach out to? Just ask anyone you meet the following question:</p><blockquote><p>"Who are 3 people you'd recommend meeting?"</p></blockquote><p>This is a question which was given to me by a senior engineer as a technique to grow my network within a new role. This question is incredibly powerful. Before you know it, you will have met people outside of your org (and this can happen even if the company is large).</p><h3>Start with your manager</h3><p>Your manager is likely your first conduit to your company after you join. And what that means is that he/she can connect you to others, starting with your team and moving outward. Ask your manager the question above to seed your journey to meeting new people in your company!</p><p>Your manager is there to support you so if you're feeling a bit shy, you could ask your manager to introduce you to those 3 people. This can be very casual over Slack, just with 3 different group chats or a mega-one if you feel comfortable with that. Pay attention to how your manager introduces you because if you like it, you can copy it and use it for yourself when you start feeling more comfortable about reaching out to people directly.</p><h3>Actively listen</h3><p>When you start meeting new people, engage in active listening and approach every conversation with a curious mind. Echo back what the person tells you, especially if there are interesting insights. This will help you to gel that fact into your brain, while also showing the other person that you are focused on the conversation.</p><p>I find it's a good idea to also schedule some time after meeting the person to jot down some notes on what was discussed. Personal facts and info about the company can go a long way. At a later point in time, you may find that you are gonna be working with that person and then your background with that person will be an asset to you!</p><h3>You gotta work at it</h3><p>Meeting new people takes effort. At the beginning, it feels like you are climbing a mountain and the mountain is growing in front of you as you get more and more recommendations for people to meet. The good news though is that the more you do it, the faster you will climb the mountain and the easier it will be to meet new people (sometimes even with very minimal preparation).</p><blockquote><p>Oh, the places you'll go,</p><p>Today is your day!</p><p>Your mountain is waiting.</p><p>So...get on your way!</p><p>Dr. Seuss, "Oh, the Places You'll Go!"</p></blockquote>]]></content:encoded></item><item><title><![CDATA[Types of Written Communication]]></title><description><![CDATA[Written communication is a core aspect of life and is especially important in the workplace. Read on to learn how to effectively communicate over Slack, email, or docs.]]></description><link>https://www.buildermentality.com/p/types-of-written-communication</link><guid isPermaLink="false">https://www.buildermentality.com/p/types-of-written-communication</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Sat, 03 Jul 2021 12:48:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I know, you must have groaned internally when you read the name of this post.</p><blockquote><p>Is this guy really about to tell me to write more? But I hate writing!</p><p>Your inner monologue</p></blockquote><p>Yep, most engineers are not huge fans of writing, and probably very much disliked Humanities or GE courses in college where grades were determined by papers. But trust me, this is a really good skill to have.</p><p>You can breathe a sigh of relief though because the subject of this post is not about poetry, or short stories (although you should definitely write those if that interests you). Rather, we are going to discuss written communication, whether that be in the form of Slack messages, emails, or docs (technically presentations can have written content too, but your slides shouldn't just be walls of text!).</p><p>I am also laughing internally as I write this because it's kind of a meta post. I am writing about written communication &#129315;.</p><h2>Why is written communication important?</h2><p>Before we get into tips and tricks for writing over different media, maybe a brief discussion of why written communication is so important would be beneficial.</p><p>As you begin your professional career, or even if you are already a few years in, you will be amazed by how much information you will have to learn from written stuff. You will definitely learn from asking questions and talking to people, but the majority of the content you will learn (and indeed, the way you will unblock yourself) will come from reading.</p><p>Think about how frustrating it is to read a guide or textbook that doesn't help you. Or to read documentation that doesn't get you any closer to being able to write code.</p><p>Now think about receiving ambiguous messages from people, where the messages don't include enough context or are super confusing to understand. I'm sure that is quite annoying in group projects (which, by the way, you will have a lot of in the workplace).</p><p>In both of the above cases, your lack of understanding is not your fault. It is entirely due to ineffective written communication. So if the whole point of written communication is to be able to relay information to others, why is it that we really don't have this muscle developed? I'd argue that it's because we were never really taught it well.</p><h2>Characteristics of Effective Writing</h2><p>Effective writing means a couple things in my opinion. First, and more importantly, it means that you are imparting sufficient meaning to some audience, such that the recipients have as close to full understanding as possible. Secondly, it requires that you have consideration of how that audience prefers to receive information and respond.</p><p>The first point encompasses things like:</p><ul><li><p>Is the message ambiguous?</p></li><li><p>Does the message offer a clear call to action (or, step that the recipient should take)?</p><ul><li><p>Note: An FYI is a "call to action" too, but it means "no action required"</p></li></ul></li></ul><p>The second point encompasses things like:</p><ul><li><p>Does the recipient like bulleted lists, or diagrams, or both?</p></li><li><p>Which communication platforms does the recipient use?</p></li></ul><p>You'll have to weigh both of these points in order to ensure effective written communication, and it will definitely feel like a chore at first. But with practice, this will become second nature to you for each person and group you work with. Once you can weigh these points, you then need to decide which communication platforms to use.</p><h2>Slack/Other Instant Messaging</h2><p>Ok, this is probably the place where you will share GIFs and memes more than actual work content &#129315;. But, chat platforms are incredibly important because a lot of communication is done within them. Most tech companies use Slack, Microsoft Teams, or Google Chat if they have Google Workspace.</p><p>Try to be concise over instant messaging. The people you are sending messages to are likely receiving messages from other coworkers and they're rapidly switching back and forth between all threads. If you start a conversation with someone over instant messaging and the result of the conversation is a small amount of immediate action items, then you're probably okay continuing over instant message. However, if a lot of stuff is decided and/or if the action items are not immediate, you will likely have to document this somewhere.</p><p>Enter the next communication medium.</p><h2>Email</h2><p>The granddaddy of them all: <strong>EMAIL</strong>. Everyone's inbox is just inundated with emails. I mean, think about it. Have you ever heard anyone say "I have no unread emails"? No, likely not.</p><p>Email has been a staple of digital communication in the workplace for decades. Over time though, the types of emails people have received in a work setting have changed. Where they used to be primarily human-driven, the majority of emails that tech employees receive nowadays tend to come from automated bots. And these bots are constantly alerting about integration test results, code submissions, capacity quotas, and more things you can ignore.</p><pre><code>I'm half kidding. Make sure to set up email filters so that you do pay attention to the stuff that matters &#128513;.</code></pre><p>Even with this inbox inundation, emails can still be a very effective form of written communication for documenting decisions made in person or over instant messaging.</p><p>Emails also can be easily forwarded and have the advantage of allowing for distinct named groups of people to be looped in. This makes them very good for announcing new products and processes, or to just keep people informed.</p><p>However, emails are not the place to write multi-page tech specs. This is where docs come in.</p><h2>Docs</h2><p>When I say "docs", I mean any place where the focus is on more long-form written communication. This can be literally Google Docs, or Markdown documentation pages within your company intranet. And if your company uses both, great! Learn about the conventions for use of each type and apply them accordingly. For now though, I'm gonna focus on Google Docs.</p><p>Any time you write a Google Doc, you need to pay attention to structure of your content, as well as typography and readability.</p><p>For structure, it is best to think ahead of time about what you want to say. Sometimes coming up with an outline is a great way to prepare to write a doc.</p><pre><code>In fact, whenever I am writing a doc, whether it be a tech spec, PRD (Product Requirements Doc), retrospective, or post-mortem, I add in headers for each of the sections I want to discuss because that gives me a roadmap for my thoughts. The headers are effectively my "outline".</code></pre><p>For typography, don't use an obscure font. If your company has a doc template, use that. If not, Arial is tried and true (but maybe use a bit more creativity: go for Roboto &#128513;). Some other recommendations:</p><ul><li><p>Make sure your line spacing is not too small.</p></li><li><p>Change font size and styling (italics, bold, underline, etc.) between header text and paragraph text.</p></li></ul><p>Readability is the hardest aspect of doc writing because it's very subjective. But there are some things you can do to make your docs flow naturally, even if they're super long:</p><ul><li><p>Consider writing paragraphs that are no longer than 5 lines. You don't want your readers' eyes to glaze over. The same content across 2 paragraphs is actually easier to read than if it were in one mega paragraph.</p></li><li><p>If there is a process you are describing, try to make it a numbered or bulleted list. This is related to the point above.</p></li><li><p>Include diagrams (can be done with Google Drawings or Lucidchart, if your company uses that). Many people are visual learners.</p></li><li><p>Have a header hierarchy. Not all headers should be at the same level. If you can subdivide your content into a hierarchy, your reader can follow your thought progression, as though it's a structured narrative. Also, in a tool like Google Docs, to the left of the content, there is normally an auto-generated outline which provides an overview to the reader.</p></li></ul><h2>What about using multiple mediums?</h2><p>Good question! This is actually a very good thing to do. You can easily link a doc within an email, or within a Slack message. And you can even link docs to...other docs. It's pretty common when you are writing tech specs to have Background sections that link other docs to provide more context to the reader.</p><p>But don't go link-crazy. Links are great if they are providing more context to the reader, but they can very easily overwhelm. Readers that have to read a bunch of linked docs will eventually have to connect everything they read to the doc you actually wanted them to read and that's a daunting task. Also, they may just not click on the links.</p><p>So if I'm linking something important, a technique I use is to include a 1 or 2 sentence summary with the most relevant takeaway from the linked doc.</p><h2>Wrap Up</h2><p>Holy moly, that was a lot of content above.</p><p>Summary of the main points:</p><ul><li><p>Try to envision what it would be like to be on the recipient end for the content that you are writing. Focus your efforts on delivering meaning clearly.</p></li><li><p>There are many different tools for written communication. Slack, email, and docs are made for different purposes though. Make sure to pick the best one for the kind of content you want to share, as well as what is preferred by your audience.</p></li></ul><p>Written communication is hard, but with practice you will grow this muscle.</p>]]></content:encoded></item><item><title><![CDATA[Mastering your personal finances with Mint]]></title><description><![CDATA[Let's face it: keeping track of all your financial accounts is hard. Read on to learn how to use Mint and master your personal finances.]]></description><link>https://www.buildermentality.com/p/mastering-your-personal-finances-with-mint</link><guid isPermaLink="false">https://www.buildermentality.com/p/mastering-your-personal-finances-with-mint</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Sun, 27 Jun 2021 13:27:06 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/03df9f39-a410-473d-bb19-0bf146ec0bbe_712x1132.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>I am not affiliated with any of the products I recommend in this post. Opinions reflected within this post are solely my own.</em></p><p>Being able to keep track of all your financial accounts and spending is hard, whether you've just recently graduated and are about to start a full time role, or even if you're already a few years in. You may have:</p><ul><li><p>Multiple bank accounts, like checking, saving, and money market (especially if your folks set accounts up for you when you were younger)</p></li><li><p>A personal brokerage account for investing (refer to <a href="https://www.buildermentality.com/p/how-to-start-investing-in-stocks">this post for an intro to investing</a>)</p></li><li><p>A separate brokerage account to administer your company's RSUs (refer to <a href="https://www.buildermentality.com/p/how-to-evaluate-a-swe-offer">this post to learn more about RSUs</a>)</p></li><li><p>A 401k account (and maybe an IRA account if you did a 401k rollover)</p></li><li><p>Credit cards</p></li><li><p>A car loan</p></li><li><p>Student loans</p></li><li><p>More?</p></li></ul><p>How do people keep track of all this stuff? This is out of control, right?!</p><p>I found this very overwhelming when I graduated from college. Every weekend, I would log into each of my financial account portals to update values I kept in a spreadsheet &#129318;&#8205;&#9794;&#65039;. While this process was very detailed and established good financial hygiene, it was not reasonable to maintain and I needed to find a better way.</p><h2>Enter Mint</h2><p>There are multiple financial account aggregator sites in existence. The way these sites work is they have you link each of the accounts that you want them to track and then they periodically update your account balances in the background. The best aggregator sites will analyze your asset growth, notify you of debt increases, and summarize weekly changes so you can see how your personal net worth is changing over time.</p><pre><code>Quick note:

Net worth = assets - liabilities

So if you want to calculate personal net worth by hand, you would add up all your assets (bank accounts, brokerage accounts, retirement accounts, etc.) and subtract all liabilities (meaning, debts, like a car loan).</code></pre><p>My personal favorite is <a href="https://mint.intuit.com/">Mint</a> because it's a one-stop shop for getting a complete view of my finances. Mint is free to use, has been around for more than a decade, provides free credit score updates, and is quite easy to add accounts to. They have both a desktop site and a mobile app (with a pretty sleek design &#128513;) so you can always check in on your financial picture whenever you'd like to.</p><pre><code>Note: Make sure to set up 2FA (two-step verification). At the time of writing this post, the 2FA options for Mint are text message, phone call, and use of an Authenticator app.</code></pre><p>Once your accounts have been added, Mint immediately starts analyzing them to derive trends. One result of these trends is that Mint can generate automated personal budget recommendations on a variety of transaction categories, such as car insurance, entertainment, restaurants. You can adjust those budgets as you'd like and Mint will automatically send you notifications if you exceed a particular budget.</p><h2>Noteworthy features</h2><p>Mint is an incredibly full-featured service so it can be easy to get overwhelmed initially. In the desktop site, the core tabs I look at are the Overview, Trends, and Credit Score.</p><h3>Overview</h3><p>The Overview tab is exactly what it sounds like. There are cards with condensed views for each of the other tabs. The most useful one for me is Accounts, which shows a listing of the balances for every account I have connected to Mint. The accounts are categorized by type (Cash, Credit Cards, Loans, Investments, Property, etc.) and you can expand the categories to see the individual accounts.</p><p>Outside of the Accounts card, another useful one is Spending (which links to the Budgets tab). There's a simple plot of how your spending this month compares against spending from the prior month.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N3Bl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04cd8017-f197-4c91-a919-022526ad5826_712x1132.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N3Bl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04cd8017-f197-4c91-a919-022526ad5826_712x1132.png 424w, https://substackcdn.com/image/fetch/$s_!N3Bl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04cd8017-f197-4c91-a919-022526ad5826_712x1132.png 848w, https://substackcdn.com/image/fetch/$s_!N3Bl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04cd8017-f197-4c91-a919-022526ad5826_712x1132.png 1272w, https://substackcdn.com/image/fetch/$s_!N3Bl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04cd8017-f197-4c91-a919-022526ad5826_712x1132.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N3Bl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04cd8017-f197-4c91-a919-022526ad5826_712x1132.png" width="712" height="1132" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/04cd8017-f197-4c91-a919-022526ad5826_712x1132.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1132,&quot;width&quot;:712,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Mint Accounts Overview&quot;,&quot;title&quot;:&quot;Mint Accounts Overview&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Mint Accounts Overview" title="Mint Accounts Overview" srcset="https://substackcdn.com/image/fetch/$s_!N3Bl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04cd8017-f197-4c91-a919-022526ad5826_712x1132.png 424w, https://substackcdn.com/image/fetch/$s_!N3Bl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04cd8017-f197-4c91-a919-022526ad5826_712x1132.png 848w, https://substackcdn.com/image/fetch/$s_!N3Bl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04cd8017-f197-4c91-a919-022526ad5826_712x1132.png 1272w, https://substackcdn.com/image/fetch/$s_!N3Bl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04cd8017-f197-4c91-a919-022526ad5826_712x1132.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Mint Accounts Overview</figcaption></figure></div><h3>Trends</h3><p>For a more detailed look into net worth, I look at the Trends tab. This tab allows me to look at multiple aspects of my financial profile over time, such as income, spending, assets, debts, and net worth.</p><p>In the screenshot below, you can see a sample net worth trend bar chart. Hovering over any month will bring up a tooltip with a link to see all the transactions over that month that contributed to net worth changes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CYVn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CYVn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png 424w, https://substackcdn.com/image/fetch/$s_!CYVn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png 848w, https://substackcdn.com/image/fetch/$s_!CYVn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png 1272w, https://substackcdn.com/image/fetch/$s_!CYVn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CYVn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png" width="1456" height="1263" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1263,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!CYVn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png 424w, https://substackcdn.com/image/fetch/$s_!CYVn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png 848w, https://substackcdn.com/image/fetch/$s_!CYVn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png 1272w, https://substackcdn.com/image/fetch/$s_!CYVn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc924d9a5-d4a2-4a8d-b945-728ae99ea9c2_1678x1456.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What I really love about this interface is how quickly it allows me to select subsets of accounts to tabulate and re-generate graphs for. As an example, maybe instead of total net worth (which could include relatively illiquid assets such as a car), I may want to see growth over time of cash assets + personal brokerage. The flow would be:</p><ol><li><p>Go into Assets &gt; Over Time</p></li><li><p>In the From tab, select:</p><ol><li><p>All Checking/Savings</p></li><li><p>My personal brokerage account</p></li></ol></li></ol><p>And if I want to tack on RSUs, I can do that by selecting the checkbox for that other brokerage account.</p><h3>Credit Score</h3><p>The Credit Score tab on desktop has essentially the same functionality and info as the Credit Score section on the Mint mobile app. I tend to check credit scores on the mobile app more frequently than on the desktop site because Mint sends push notifications whenever it has automatically pulled an updated credit score.</p><pre><code>Note: There are multiple credit reporting agencies, such as TransUnion, Equifax, and Experian. Each credit reporting agency has a separate algorithm they use to compute your credit score. Credit scores (and what they are used for) are complicated and are definitely a topic for another post &#128513;.

For now, just know that Mint reports credit scores from TransUnion.</code></pre><p>In addition to showing your credit score, Mint has sub-cards for common factors that affect your credit score and how your personal habits stack up. For example, on-time payments, credit utilization, and how long you have had credit accounts all affect your credit score and Mint shows you stats for each of those, as well as additional factors I didn't list.</p><h2>Bonus: Investment tab</h2><p>The Investment tab is one of the coolest features of Mint. If you have imported at least one investment account, this tab is very useful because it will show you stats for the performance of your holdings, percentage allocation to certain asset types or specific equities, and allows you to compare your portfolio's performance against market indices (refer to the <a href="https://www.buildermentality.com/p/how-to-start-investing-in-stocks">stock investing post</a> for a refresher on market indices).</p><h2>Wrap Up</h2><p>Now that you've read this post, I encourage you to try out the features in Mint and see if you like them. The aggregation features alone are quite helpful and if you also use the trend analysis, credit score reporting, and investment insights, I think you'll find Mint to be your digital personal finance buddy!</p>]]></content:encoded></item><item><title><![CDATA[How to make impact as a new grad]]></title><description><![CDATA[Starting at your first ever full time role is super exciting! Read this post to see how you can make impact as a new grad!]]></description><link>https://www.buildermentality.com/p/how-to-make-impact-as-a-new-grad</link><guid isPermaLink="false">https://www.buildermentality.com/p/how-to-make-impact-as-a-new-grad</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Tue, 22 Jun 2021 10:52:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Starting at your first ever full time role is super exciting! You're meeting a bunch of other new grads, learning about your company's products, and likely getting some cool swag too!</p><p>The first couple weeks are gonna be incredibly hectic as you juggle learning new information, while setting up your 401(k) contributions, submitting tax withholding forms, and selecting healthcare, vision, and dental plans. You're also going to start seeing your calendar fill up with team meetings and onboarding events you should be attending. It's gonna be madness, but it will be truly invigorating, trust me!</p><p>After the first couple weeks, you will still be getting your bearings, but you'll start to create a development flow and work schedule for yourself. This will include when you respond to emails and chat messages, how you search for information, how you code up new features, who you reach out to on your team for help, how you unblock yourself, and more. Once you've got a flow, you've got the foundations for scaling up. "Scaling up to what?", you ask. Well, that's the subject of this post!</p><h2>Setting the Stage</h2><p>All tech companies have a ladder of levels for a given role, like "Software Engineer". Each of the levels have guidelines for how to perform well in that level. If this is already starting to give you anxiety, not to worry, I will elucidate the details of this oft misunderstood system.</p><p>At most software companies, you will come in at Level 3 as a new grad and you will be primarily evaluated based on code contributions you're making. Higher levels of engineers will also have code contributions as part of their performance review, but there will be other axes of larger scope that they need to address too, like technical leadership, cross-org execution, and maybe even team sourcing. Your "other factors" beyond code contributions will include things like how well you work with your team, your ability to execute on individual tasks, and what your peers are saying about you in peer reviews. But it's hard to evaluate you based on softer skills, especially as a new grad, so tech companies tend to place more emphasis on, well, technical skills.</p><p>"Great, I will just be a coding master and then I will be invincible," you say. Not so fast &#129315;. That may work initially, but it's not the way you will really truly make <em>impact</em> in your role. I'll explain what I mean by that.</p><h2>What does impact look like?</h2><p>Impact goes beyond how much code you write. It's multi-layered with more visible external results, as well as less visible internal results. External results are things like "I built a system to do &lt;blah&gt;, which sped up &lt;some task/process&gt; by 40%." That is a very concrete externally visible statement. However, an area that most new grads do not consider, but can still make a massive impact in, are those internal results I mentioned above. That brings me to an important point regarding impact:</p><h3>You win together with your team.</h3><p>Software development is a highly collaborative process and cannot be done effectively by just 1 individual. Some other facets of software development, beyond just the coding, are doc writing, presentations, and alignment with other teams. It's usually in the "human interactions" kinds of processes where you have the ability to make an impact that will help you grow, as well as your team.</p><p>Maybe there isn't much documentation on an important team process. Maybe the team has a pain point that has not been resolved yet. Maybe the team's meetings are not that productive. These are all areas where you could step in. Your first thought should be "how can I help my team?". If you're able to help your team, you will not only be growing, but you will also be uplifting your team. And remember what the heading said: <strong>you win together with your team</strong>.</p><p>So be curious and ask a lot of questions to get to the root of topics and then share your findings. Be open to exploring beyond your current area of operation to learn about and rectify your team's pain points. Be courageous in suggesting your own ideas for how to improve team-level processes (like software release cycles and meeting structures). In essence, be the force for improvement of your team and I guarantee you that you will gain visibility, serve as an inspiration to others, and make impact that will stretch far beyond your individual contributions.</p><p>And you'll tend to find that as you mature and become more senior, the impact you make will naturally start shifting away from you and toward your larger team, org, and maybe even company at large. One of the most common ways this shift happens is through mentorship. In fact, most of what I learned in my first full time role came directly from senior engineers and from people who started their careers only a year or two before me. And the stuff I learned from them was not just technical. There was a lot of interpersonal guidance too. Armed with stronger technical and interpersonal skills, I was able to uplift my team even more. In this way, more senior engineers make team-wide impact by elevating the skills of younger engineers.</p><p>This whole process is a virtuous cycle, and with a little effort every day, as well as a mindset of "how can I help my team?", you will find that the impact you can make will continue to grow.</p>]]></content:encoded></item><item><title><![CDATA[Productivity Tip: How to keep track of all the s**t you need to get done]]></title><description><![CDATA[Do you struggle with prioritization and keeping track of your tasks? Learn about my Daily Log technique and you can become a task ninja!]]></description><link>https://www.buildermentality.com/p/productivity-tip-how-to-keep-track-of-all-the-st-you-need-to-get-done</link><guid isPermaLink="false">https://www.buildermentality.com/p/productivity-tip-how-to-keep-track-of-all-the-st-you-need-to-get-done</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Sun, 20 Jun 2021 17:37:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>"Everyone gets the same 24 hours in a day" is a common platitude. It's true, we do all get the same 24 hours in a day, but how do we choose to use them? There's no right answer, but there are definitely steps you can take to make sure you maximize getting done the right stuff each day.</p><p>In one of my internships, I met with an org lead who gave me a fantastic piece of advice that I have continued to use and have since taught to my mentees as well as other peers. The advice went something like this:</p><ol><li><p>Keep a daily log</p></li><li><p>For each entry, have 3 sections:</p><ol><li><p>What I did today</p></li><li><p>What I want to do tomorrow (or Monday, if this log is for work and today is Friday &#128513;)</p></li><li><p>What am I stuck on?</p></li></ol></li></ol><p>The structure within these sections is up to you. I've found that the simplest structure is to have a bullet point list of items for each section.</p><p>This log doesn't have to be that large and it shouldn't require a lot of effort on your part. Maybe just 15 min at the end of every day to fill out the above sections with whatever level of detail is most useful for you. If you're super detail oriented like me, every bullet point in the above 3 sections could have hyperlinks to docs, calendar events, code review, etc. The whole goal is to be able to have a constant guide on what stuff you have done and what you still need to get done. This will help orient you every day and across successive weeks.</p><p>That's it. The whole secret to being a productivity ninja is this. With this one piece of advice, you will complete every task you ever need to do!</p><p>Just kidding. No piece of advice is ever that good. But what this Daily Log strategy will help you with is multi-faceted:</p><ul><li><p>You will always be able to quickly re-contextualize yourself to the work you've done over any period of time, even if you take a multi-month vacation (or if you forget what you were working on literally 2 days ago &#129315;).</p></li><li><p>You will have a much easier time prioritizing what work you still need to get done based on the recent work that you have done.</p></li><li><p>You will be able to trace your own patterns of development to see if there are common things you are stumbling with, or things that you are a master at and can perform in your sleep!</p></li></ul><p>There is another major benefit to this strategy, especially if you are using it for work. Every 6 months, most tech companies have some form of performance review and calibration (but that's a <a href="https://www.buildermentality.com/p/what-are-calibrations">topic for another post</a>). During performance review, you will have to write a self reflection for the stuff you worked on over the past 6 months (or however long the performance review period is for; sometimes it can be a quarter). Most engineers, including myself, cannot remember what was done over a period of 6 months. I mean, how could you? No one's memory is that good. Maybe there was only 1 project you worked on, which would simplify the process of writing a self review, but do you remember all the deliverables? Did you hit all of them? Did you take on additional tasks and uplift your team in some way? What impact did you achieve?</p><p>To answer those questions, most people have to go back through a lot of sources (like JIRA, GitHub, Google Drive, maybe even their calendars too) to get up to speed. That's painful. There has to be a better way.</p><p>And there is:</p><p>IT'S YOUR DAILY LOG! In the span of 10 minutes, you can quickly scan through your Daily Log entries and you'll know exactly what you worked on, without having to go back through project docs or every piece of code you wrote for 6 months. And a supplementary thing you can do at some cadence, say at the end of every month, is to create a high-level summary of what you worked on for the month, by using your Daily Log.</p><p>I hope that this strategy helps you to become even better at execution so you can be a task ninja.</p>]]></content:encoded></item><item><title><![CDATA[How to start investing in stocks]]></title><description><![CDATA[Just starting out on your investment journey? Read this post to learn about the stock market, indices, ETFs, and mutual funds!]]></description><link>https://www.buildermentality.com/p/how-to-start-investing-in-stocks</link><guid isPermaLink="false">https://www.buildermentality.com/p/how-to-start-investing-in-stocks</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Thu, 17 Jun 2021 08:57:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Disclaimer: I am neither a CPA nor a CFP. All opinions represented in this post are my own and are meant for you to learn the basics of stock investing. Any mention of particular equities is not to be construed as an indication to invest in those equities, but you can look into them and see if they are equities you'd like to invest in.</em></p><p>If you're a beginner, investing in stocks is hard. How do you know what to pick? What allocation should you use? What do "market cap", "ETF", and "NASDAQ" mean? Not to worry, padawan. I shall show you the ways of the Force, er, um, the stock market.</p><p>Before we jump into the basics, I just want to state that "investment" is a very broad term. When applied to finance, it's usually referring to allocating your own money into certain ventures or equities with the expectation that your initial allocation will rise in value. In other words, you want to increase the amount of money you have instead of just holding onto cash (and, as you'll see in this post, you'll actually want to invest some money anyway because with inflation, the value of your cash will drop over time).</p><h2>What does "diversify your portfolio" mean?</h2><p>There are a variety of investment vehicles and they differ in risk as well as reward. In an ideal world, you could minimize risk while maximizing reward, but there is usually a spectrum: take on more risk and you can maximize your reward (but also have potential loss), take on less risk and your potential reward is lower (but potential loss is also lower). If you choose something like cryptocurrencies, they have a lot of volatility (meaning they can swing very wildly up or down in value), but they could potentially be a good long term play. For example, if you think that in the long term, a cryptocurrency like Bitcoin will rise faster than some other investment vehicle, then maybe you will allocate some of your money into Bitcoin.</p><p>Possible investment choices include but are not limited to:</p><ul><li><p>Individual stocks</p></li><li><p>Mutual funds</p></li><li><p>ETFs (Exchange-Traded Funds)</p></li><li><p>Options</p></li><li><p>Bonds</p></li><li><p>Real Estate</p></li><li><p>Cryptocurrencies</p></li><li><p>Small startups (through angel investing)</p></li></ul><p>First, what is a <strong>portfolio</strong>? A portfolio is a collection of assets an investor has (this includes cash). When people say to "diversify your portfolio", they could be referring to the types of investment vehicles you choose, as well as within an investment vehicle type, which equities you allocate your money into. For example, a <strong>diversified</strong> investor could own real estate, as well as stocks, and in his/her stock ownership there could be companies of all sizes and in a variety of sectors. In this way, the investor has spread out, or "diversified", his/her allocations of cash into different investment types and specific equities.</p><h2>Why not just hold cash?</h2><p>Excellent question. From every paycheck, after taxes are taken out (refer to <a href="https://www.buildermentality.com/p/how-do-taxes-work-in-the-first-year">this post to see how taxes work</a>), the remainder is deposited into your bank account. Nice! But, that money is just sitting there, not growing.</p><p>Over time, there is a thing called inflation that is eating away at your purchasing power. Inflation can be observed by tracking increases in the average price level of a basket of goods. By "basket", I just mean "a bunch of consumer products whose price can be tracked regularly". So if inflation is at a non-zero rate, what it means is that over time, the prices of goods are increasing. But your money is not increasing in value (because it's just cash), so you're able to buy less in the future than you can now.</p><p>This is horrible! What are we to do to make sure our purchasing power does not erode?!</p><p>Investing is the answer!</p><p>For this post, I am going to focus on stocks, which would cover "Individual Stocks", "Mutual Funds", and "ETFs" in the above list.</p><h2>Baby Step 1: What is an individual stock?</h2><p>An individual stock is exactly what it sounds like: a unit of equity for one company. If you want to buy shares of Apple, you would buy <a href="https://www.google.com/finance/quote/AAPL:NASDAQ">AAPL</a>. If you want to buy shares of Disney, then you would buy <a href="https://www.google.com/finance/quote/DIS:NYSE">DIS</a>. Notice that the lengths of stock tickers do not all have to be 4 characters.</p><p>Buying individual stocks is perfectly fine, especially if you are quite bullish on a company (but still, do your research). However, there's some risk involved in that because you are consolidating money into only 1 or a small number of equities. Also, what if you just didn't know what to pick?</p><p>There's another stock investment vehicle that we should consider called an "index fund", which will allow you to diversify your risk (there's that word "diversify" again!) by spreading some money across multiple equities. Before we get into index funds, we need to first discuss indices.</p><h2>Baby Step 2: What are indices?</h2><p>There are literally thousands of stocks, mutual funds, and ETFs (we'll get to mutual funds and ETFs later in this post) you can trade. In order to make sense of it all, indices were created to track particular groups of equities. Charles Dow launched the first stock index, called the <strong>Dow Jones Transportation Index</strong>, in 1884, and it was made up of 11 transportation companies (a large majority of them were railway companies). This index is still in use today, under the ticker symbol <a href="https://www.google.com/finance/quote/DJT:INDEXDJX">DJT</a>!</p><pre><code>Ticker symbol: This term comes from the ticker tape that would run in exchanges, showing the values of particular equities during a trading day. To shorten names of equities, "ticker symbols" were created, like "AAPL" for "Apple".</code></pre><p>The DJT predates the <strong>Dow Jones Industrial Average</strong> (<a href="https://www.google.com/finance/quote/.DJI:INDEXDJX">DJI</a>), a price-weighted index that tracks 30 large, publicly traded blue-chip companies. "The Dow", as it's commonly referred to, is widely considered to be a signal of health of the U.S. stock market.</p><pre><code>Definitions Aside:
Price-weighted: Each company in the index is weighted by share price. 

Blue chip companies: Mature, established, stable leaders in their industries who frequently give out dividends.</code></pre><p>Two other important indices are the <a href="https://www.google.com/finance/quote/.INX:INDEXSP">S&amp;P 500</a> (^GSPC, .INX) and the <a href="https://www.google.com/finance/quote/.IXIC:INDEXNASDAQ">NASDAQ Composite Index</a> (.IXIC). The S&amp;P 500 tracks the 500 largest publicly traded U.S. companies. The NASDAQ Composite tracks more than 2,500 companies, the majority of which are tech companies, but there are some other sectors too, such as financial and consumer.</p><pre><code>Aside: Those of you shrewd readers may be wondering why I didn't initially say "the NASDAQ". "The NASDAQ" can either refer to the National Association of Securities Dealers Automated Quotations, which was the first electronic exchange, or the NASDAQ Composite Index, which is an index.

From this point on, I will refer to the NASDAQ Composite by "the NASDAQ".</code></pre><p>As for why these indices have such unguessable ticker symbols, or why the S&amp;P 500 has multiple tickers, I have no clue (note to self: research this so you can have it in your back pocket at a dinner party &#129315;). The important thing to remember is the names of the indices so you can search them by name in a service like Google Finance, or Apple's Stocks app.</p><p>Beyond the Dow Jones Industrial Average, the S&amp;P 500, and the NASDAQ, there are many other indices. For example, there is one called the VIX, which indicates volatility in S&amp;P 500 index options (and is therefore sometimes referred to as "the fear index"), but the VIX is a topic for another post.</p><p>So now that we know what indices are, and we can see that they track multiple equities in one place, sounds like they would be a fantastic way to spread out risk without being an expert stock picker. We can just buy some stocks of those indices, right?</p><p>Not quite, padawan. The indices are just numerical representations of how the companies they track are performing. There is no underlying equity to buy. In order to "buy indices", we need to make use of index funds.</p><h2>Baby Step 3: What are index funds?</h2><p>Index funds are equities that you can trade which mirror particular indices. Meaning, they are made up of all the companies that are present within an index, with the same component weighting of each company in the index. When you buy an index fund, you are buying small amounts of each of the companies within the index the fund is tracking.</p><p>For example, the S&amp;P 500 index has some popular index funds, like <a href="https://www.google.com/finance/quote/VFIAX:MUTF?window=1M">VFIAX</a>, <a href="https://www.google.com/finance/quote/VOO:NYSEARCA">VOO</a>, <a href="https://www.google.com/finance/quote/IVV:NYSEARCA">IVV,</a> and <a href="https://www.google.com/finance/quote/SPY:NYSEARCA">SPY</a>. VFIAX and VOO are both offered by Vanguard, but VFIAX is a mutual fund and VOO is an ETF. IVV is an ETF offered by iShares and SPY is an ETF offered by SPDR. All of these index funds are <strong>passively managed</strong>, meaning they automatically rebalance with the S&amp;P 500 index component weightings (for example, if AAPL was initially 5% of the S&amp;P 500 by market cap and then it changed to 5.1%, then these index funds mentioned above would automatically reflect that after a quarter or so).</p><pre><code>Aside: Passively managed vs. Actively managed

Passively managed index funds automatically rebalance, meaning there is no human-level intervention, or if there is, it's very minimal. Due to minimal human intervention, there's less upkeep required for these funds, so their expense ratios are quite low (think of "expense ratios" as percentage fees you pay for owning those funds).

Actively managed index funds are called "active" because asset managers rebalance the funds. These kinds of index funds tend to have higher expense ratios because there is more effort required from the funds' managers.</code></pre><p>The most popular index fund for the NASDAQ is <a href="https://www.google.com/finance/quote/QQQ:NASDAQ">QQQ</a>, which is an ETF.</p><p>As for the Dow Jones Industrial Average, <a href="https://www.google.com/finance/quote/DIA:NYSEARCA">DIA</a> is a popular ETF. DIA is offered by SPDR, like SPY. Note though that DIA is based on 30 stocks, so it can be a bit riskier than an S&amp;P 500 index fund (since that is tracking 500 companies and thus risk is diversified).</p><p>Now, a natural next question you may be asking is "if mutual funds and ETFs are both basket equities, what's the difference between them?" Read on to the next section, Padawan &#128513;.</p><h2>Baby Step 4: Difference between mutual funds and ETFs</h2><p>As we observed in the previous section, the S&amp;P 500 has multiple index funds that you can choose from and one of them is a mutual fund, whereas the others are ETFs. For both mutual funds and ETFs, you can select either passively or actively managed funds.</p><p>You'll frequently see mutual fund offerings that are passively managed within 401(k) retirement plan choices. Remember back to my <a href="https://www.buildermentality.com/p/how-to-evaluate-a-swe-offer">earlier post about evaluating a SWE offer</a> when I mentioned that your company will provide you with 401(k) plans and you can pick what to invest in, among a set of choices. Some of those choices will be mutual funds, normally created by the 401(k) provider, like Fidelity or Vanguard, for example.</p><p>Similarities between mutual funds and ETFs:</p><ul><li><p>They both track multiple equities and offer a single basket equity for you to trade.</p></li><li><p>They both can be either actively or passively managed.</p></li></ul><p>Differences between mutual funds and ETFs:</p><ul><li><p>Mutual funds are only traded at the end of the trading day. If you place an order to buy or to sell, you will not see it execute immediately, but your brokerage will likely send you a notification after the end of the trading day stating the value you purchased or sold.</p></li><li><p>Unlike ETFs, some mutual funds may have minimum values to invest (meaning, you may have to put in something like $3000 to begin; double check the rules for the fund).</p></li><li><p>Mutual funds do not trade in shares: you can buy or sell an exact amount of the fund in dollars, which makes mutual funds a bit easier to work with if you are <strong>dollar-cost averaging</strong> (regularly investing some set amount of money at some cadence, like monthly or quarterly). Now that fractional trading is offered by nearly all brokerages, you can theoretically put in an exact amount of money into ETFs too, but you will get fractional shares, which some early investors might find a bit harder to keep track of.</p></li></ul><h2>Baby Step 5: Performance of different indices</h2><p>Each of the major indices I mentioned in Baby Step 3 (the Dow Jones Industrial Average, S&amp;P 500, and NASDAQ Composite) have all performed differently over various ranges of time. Try out <a href="https://www.google.com/finance/quote/.INX:INDEXSP?comparison=INDEXDJX%3A.DJI%2CINDEXNASDAQ%3A.IXIC&amp;window=6M">this comparison I created on Google Finance</a> to see how the indices performed over various time ranges. Especially pay attention to when they eclipsed each other. The criss-crossing that you see is part of the reason why it's important to diversify your portfolio. When one index is not performing as well as another, you can get gains from the second index.</p><h2>Baby Step 6: Tying it all together</h2><p>Okay, on second read, maybe this step is not as small as its title would suggest. But I will summarize:</p><ul><li><p>There are different investment vehicles you can choose, stocks being one of them.</p></li><li><p>Indices can track multiple single equities across sectors and that index funds are mirrored on the indices they track. They offer a good way to diversify your risk while not having to pick different single equity stocks.</p></li><li><p>While both mutual funds and ETFs are basket equities (they represent a collection of equities), there are some high-level differences between them that may make them more or less suitable for beginners depending on their goals (dollar cost averaging, requirement to have minimum investment, etc.).</p></li><li><p>The indices all perform a little differently, so make sure that your portfolio contains a couple or so index funds that track different indices.</p></li></ul><p>The first thing for you to decide is which brokerage platform you would like to use. There are many options, like Fidelity, Schwab, E-Trade, and Robinhood among others. Each brokerage comes with different features and ease of performing trades.</p><p>I personally use Fidelity and have for awhile because I like the design of their platform, both on web and mobile. I can see my entire portfolio at a glance and have the ability to drill into specific tax lots (batches of stock purchases) to see what their return has been since I bought them. I also think Fidelity's research tools are top notch. When I wanted to learn more about different ETFs and mutual funds for sectors I had not invested in before, I found it was quite easy to filter search results and see performance of various funds. In addition to brokerage accounts, you can also open a Cash Management Account and a Fidelity Visa credit card if you'd like. Lastly, I have found Fidelity customer service to be excellent. They have customer representatives who really want to help you learn how to be a financial master, while mitigating risk.</p><p>I have some friends who use Schwab, others in my network use E-Trade, and there's even a group of them that uses Robinhood. Your choice of brokerage is up to you, but make sure you do your research into any fees the platform charges. I'd also recommend researching the total breadth of the investment vehicles the platform can service. This way, as your investment knowledge grows, you have the ability to try out more complicated things like conditional orders.</p><p>After you decide which brokerage platform to use, start deciding on what asset mix you'd like. In other words, what percentage of your portfolio do you want to be single equities (and which ones), which percentage do you want to be for basket equities (and which ones), and lastly how much you'd like to maintain as just cash. This last bit is important to consider because if you have to move funds into your brokerage account, that can take time (transfers between Fidelity's Cash Management accounts and brokerage accounts are basically instantaneous, so that's just another reason I like the platform).</p><p>Once you've decided, this strategy is not set in stone. You can dial up investment in a particular equity or you could even make a bet on a new one if you'd like (but I'd recommend not just immediately placing a large investment in something new; do some research and dollar cost average yourself in). And you'll find that your initial asset mix will not be static anyway: as time goes on, the relative percentages of each equity will change as certain equities grow in value.</p><h2>Conclusion</h2><p>You now have the basics of stock investing! Give yourself a pat on the back! This was a fairly long post and you read through to the end like a warrior!</p><p>I hope that this post elucidated the often acronym-laden, esoteric world of stock investing to the point where you feel comfortable dipping your toes in.</p><p>The sky is the limit, padawan! You're on your way!</p>]]></content:encoded></item><item><title><![CDATA[IDE or Terminal for Development?]]></title><description><![CDATA[Developers can use an IDE, Terminal, or both for writing code. Read this post to learn why you should adopt a hybrid approach.]]></description><link>https://www.buildermentality.com/p/ide-vs-terminal-for-development</link><guid isPermaLink="false">https://www.buildermentality.com/p/ide-vs-terminal-for-development</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Thu, 17 Jun 2021 08:57:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>I am not affiliated with any of the products I mention in this post. All opinions represented in the post are solely my own.</em></p><p>I'm feeling a bit mirthful today, so figure it's worth making a relatively light-hearted post (but it could also just become a flaming dumpster fire, so let's see &#129315;).</p><p>There are some eternal dichotomies in our day and age: good vs. evil, real vs. imaginary, soul vs. body. But none compare to emacs vs. vim. That is a tale as old as time, with a (virtual) battlefield littered with the bodies of thousands of developers jousting in the hallways of your favorite tech companies over their preferred command line editor: emacs, vim, or even...<em>&lt;shudder&gt;</em> nano. This is a bloody, savage war that will likely not end even with our grandchildren. Since no amount of eloquent writing will end this war, I will address something related, but at a higher level of abstraction &#128513;.</p><p>The topic du jour is use of IDEs for development vs. a terminal. For those of you newer to programming, IDE stands for "Integrated Development Environment". IDEs allow you to write, run, and debug code, all in one place, in a graphical interface. Some IDEs even have the ability to check in your code to version control systems (like git). There are scores of IDEs, but some common examples are Xcode, IntelliJ, Visual Studio, CLion, Pycharm, and Goland.</p><p>For many developers, myself included, use of both an IDE and the Terminal is a pretty common day to day occurrence. But there are some die-hards that swear by only using IDEs and others on the complete opposite end of the spectrum that use only the Terminal for everything.</p><h2>IDEs</h2><p>I don't consider myself to be that old, but back when I first started development in the early 2000s, IDEs weren't that powerful. They may as well have just been glorified text editors. However, over the past decade or so, they have gotten incredibly advanced. Many of them are so full-featured that for 90% of all development you do day-to-day, you would never have to use a Terminal if you were to use an IDE instead. Newer programmers tend to gravitate toward use of IDEs, because they have a tangibility to them: point and click there on that menu and you will see an action happen in front of your eyes. In addition, IDEs can abstract away a lot of complicated details. For example, if you are working in a company that uses git for version control, many IDEs now can automatically add files to the git staging area, confirm commit contents, merge, rebase, show git log history and more, all at the click of a button.</p><h2>Terminal</h2><p>In contrast to IDEs, the Terminal has been around for, well, forever, and its core functionality has been largely unchanged. Programs were initially written and run using only a keyboard at a command line interface (CLI). So old-school programmers tend to continue to use the Terminal, even for typing out code, not just running it.</p><pre><code>Quick note: There are actually multiple Terminals in existence too. The terminal is itself a program. It's a program that runs programs. I know, try wrapping your head around that one.  But stick with me on this quick aside. 

Because the Terminal is itself a program, you can download other Terminal applications (like iTerm2 on Mac) to customize your interaction with the command line, just like you can download other IDEs to help you with your development in a graphical manner. Each Terminal comes with certain features that its developer(s) added to cater to certain populations of command line users who have certain use cases.</code></pre><p>One of the advantages of the Terminal is that power users can write scripts to perform lots of actions in parallel, whereas in an IDE, you are somewhat limited by how fast you can click on things. Another advantage that I see with Terminal usage is that details are not hidden from me. I have, on occasion, had an IDE do a bunch of actions on my behalf that ended up completely messing with my git history. Proponents of IDE interfaces would likely say that I just misunderstood how to use the IDE (which was probably true &#129318;&#8205;&#9794;&#65039;), but because I knew what underlying actions I wanted to do anyway, using a Terminal and issuing those commands would've been more comfortable to me.</p><h2>Can we use both?</h2><p>So are "using an IDE" and "using a Terminal" mutually exclusive? Well, if you remember back to the beginning of this post, the answer is no! And I'll show you how.</p><p>A common development pattern in a tech company might be the following:</p><ol><li><p>Start writing some code for a new functionality.</p></li><li><p>Write some tests for the new code.</p></li><li><p>Run the tests and find out you have a logic error (or even a compilation error).</p></li><li><p>Go back to the code to update the logic (or address the compilation error).</p></li><li><p>Along the way, checkpoint your progress by making git commits.</p></li><li><p>Once everything looks hunky-dory, ask your team to review your code (if your team uses Github, then this is done by putting up a PR, or Pull Request).</p></li><li><p>You read the comments your team has made on your code. Maybe one of your teammates recommended using a particular library for a certain task and there are examples in the codebase of using that library.</p></li><li><p>You go back into the code and address any comments your team made. Along the way, you look up examples of the usage of the library your teammate recommended from Step 6.</p></li><li><p>You ask for another review.</p></li><li><p>You get the go-ahead from your team and you ship the code.</p></li></ol><p>Now in terms of where (IDE vs. terminal) you perform each of these steps, that is somewhat dependent on the tooling you have available within your company (available IDEs and their functionalities, build systems, logging, etc.). You may be able to do literally ALL of the above steps in an IDE without ever opening a Terminal. More mature tech companies have put a lot of investment into developing their own custom IDEs and tooling to help their developers be as productive as possible. But, if you didn't have an IDE available, or your IDE couldn't do certain steps above, you could likely use a Terminal for all the steps above too.</p><p>My IDE vs. Terminal demarcation is usually:</p><div class="captioned-image-container"><figure><p><strong>ToolFunctions Used</strong>IDETyping out code, searching for code examples, interactive debugging with compiled languages, addressing review comments, resolving merge conflictsTerminalRunning code, interactive debugging with Python, running version control commands, batch copying/moving files, custom test scripts</p><figcaption class="image-caption">What I use an IDE vs. Terminal for</figcaption></figure></div><pre><code>Aside: You would be rightly confused if you looked at this table and scratched your head as to why I do interactive debugging with compiled languages in an IDE, whereas I do interactive debugging with Python in a Terminal. I'm particular like that &#128513;.

Joking aside, I learned Python before learning any compiled languages and the way in which I debugged my Python programs was by using pdb (Python Debugger), which is a command line application. With my first compiled language (Java), I was taught to debug from within an IDE debugger window. And I carried that forward. So my debugging practices are largely driven by habit. But I digress. Let's get back to this post.</code></pre><h2>Wrap up</h2><p>So what should you do with all this info? Should you pick an IDE or should you pick a particular Terminal application? I'd recommend an alternative course of action: <strong>test out workflows by using different mixes of tools</strong>.</p><p>Prioritizing experimentation now to generate productivity hacks for yourself will give you massive ROI. Even if there is something that you are used to doing in an IDE, it's worth learning how to do it in the Terminal as well because it widens the scope of tools you can use and provides you with a greater understanding (and maybe you find you actually like it more). Every developer has different preferences for what tools he/she uses, so it's ultimately up to you to find what you like the best. But always keep an open mind and be curious. You may just find yourself picking up new tools and development practices every year!</p><p>Happy coding!</p>]]></content:encoded></item><item><title><![CDATA[How do taxes work in the first year?]]></title><description><![CDATA[Taxes are confusing. But they don't have to be! Read this post to learn about what taxes you'll pay in the first year of your career!]]></description><link>https://www.buildermentality.com/p/how-do-taxes-work-in-the-first-year</link><guid isPermaLink="false">https://www.buildermentality.com/p/how-do-taxes-work-in-the-first-year</guid><dc:creator><![CDATA[Devan Dutta]]></dc:creator><pubDate>Thu, 17 Jun 2021 08:56:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_xQH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179cd6b5-d0be-4ea8-ac3b-ba25f5d05e5b_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Disclaimer: I am not a CPA. This post only serves to provide an introduction to how U.S. tax rules work with personal income. Any recommendations provided within this article represent only my own opinions.</em> <em>I am not affiliated with any of the websites or products I discuss in this post.</em></p><p>One of the first questions my new grad mentees ask me after they sign an offer at a tech company is how much money they will actually see in their bank account after the first year. This is dependent on multiple income factors, including base salary, sign on bonus, and RSUs, as I describe in <a href="https://www.buildermentality.com/p/how-to-evaluate-a-swe-offer">this post</a>. But a factor I haven't discussed yet which has a huge impact on what you get to take home is taxes. And the tax rules are different for standard ordinary income (cash, bonuses) vs. RSUs (or even options). It's important to understand how to calculate your own taxes for a few reasons:</p><ol><li><p>You can estimate how much you will actually make in a year and what your expected tax refund could be the following year (or if you will actually owe taxes).</p></li><li><p>You can double check the work of a CPA or confirm what a tax prep software solution like TurboTax (or something similar) calculates.</p></li></ol><p>Taxes are a bit overwhelming initially, but with some baby steps, you can become a tax master. In this post, we'll consider only cash-based compensation (as would be the case with most new grads in their first year). With RSUs, things get a little more complicated and with options, they get even more complicated than that, but both of them change what is called Adjusted Gross Income (AGI), which is described in this post. So if you understand all the fundamentals in this post, then tacking on RSUs or options into your tax situation is just an incremental step.</p><p>Quick note: This post is just an introduction. For more complicated tax situations, I recommend following up with a CPA. I have found from personal experience that TurboTax Premier was perfectly capable of calculating my taxes, even with RSUs and capital gains and dividends from personal investments from my personal brokerage account, but in your case you can always have a CPA prepare your taxes if you're more comfortable with that.</p><h2>Baby step 1: A timeline of income in the first year</h2><p>Let's start by simplifying your income situation a bit and imagine that you've just started a new role in August (like most new grads do) and all your income is coming from cash, in the form of your salary and sign on bonus.</p><p>To supply some concrete numbers, let's say sign on bonus is $30k and salary is $135k. A possible timeline of actions taken and income made could be the following:</p><h2>Baby Step 2: Calculating Taxable Income</h2><p>Now that we've gone though a timeline, let's simulate calculating taxes. If your salary is $135k, and you worked starting from August in your first year, then you would have 5 months worth of pay from salary. Total gross income would look like:</p><p>5*($135,000/12) = <strong>$56,250</strong> from salary</p><p><strong>$30,000</strong> from sign on bonus (remember that what was actually deposited in your account was 0.6*30,000 = $18,000, but we have to count the total bonus amount in gross income)</p><p>Total income = $56,250 + $30,000 = <strong>$86,250</strong></p><p>This Total income value is called your <strong>Gross pay</strong>. But, this is not what you're actually taxed on. We still have to account for 401(k) contributions and the standard deduction. <strong>What I'm about to describe is only for Traditional 401(k), not Roth 401(k).</strong></p><p>The maximum 401(k) contribution is $19,500, as of the writing of this post in 2021. For this example, let's say that you maxed out your 401(k) contributions and you hit that limit.</p><p>We need to subtract your 401(k) contributions from Gross pay to calculate the <strong>Reported W-2 Wages</strong>, or <strong>Wages, tips, other comp.</strong> This is the value that will be in Box 1 of your W-2:</p><p>Wages, tips, other comp: $86,250 - $19,500 = <strong>$66,750</strong></p><p>Note: You can technically have other income, such as investment income, called <strong>additional taxable income</strong> that would be added to Box 1 to yield what's called <strong>Adjusted Gross Income (AGI)</strong>. For now, we are going to assume there isn't other taxable income, so your AGI is what's in Box 1.</p><p>Now we have to calculate your <strong>taxable income</strong>, by accounting for either what's called the <strong>standard deduction</strong> (which is again, dependent on filing status) or <strong>itemized deductions</strong>. I'm not going to delve into the details of <strong>itemized deductions</strong>, but the basic idea is that there are classes of expenses you can use to deduct (or subtract) from your AGI to lower taxable income so you pay less in taxes. In contrast to itemized deductions, the standard deduction is an absolute dollar amount that can be deducted from your AGI. This ability to deduct a certain amount from your AGI is a benefit the federal government provides to lower your taxable income. And the best part is you have a choice between using either itemized deductions or the standard deduction to maximize the total deductions you can make.</p><p>Tax prep software like TurboTax will ask you a bunch of questions to determine if there are itemized deductions you can take. This allows it to calculate your total possible itemized deductions and compare that to just taking the standard deduction.</p><p>The value we can deduct from AGI in order to derive taxable income is:</p><p><code>MAX(standard deduction, itemized deductions)</code></p><p>Let's say your itemized deductions are not as much as the standard deduction. Therefore, we'll take the standard deduction of $12,550 (2021 single filing status standard deduction value).</p><p><code>So </code><strong><code>taxable income</code></strong><code> = $66,750 - $12,550 = </code><strong><code>$54,200</code></strong></p><h2>Baby Step 3: Calculating Federal Income Tax</h2><p>Now that we have your taxable income, we have to calculate how much you owe in federal income taxes, Social Security taxes, Medicare taxes, and state income taxes. Both federal income taxes and state income taxes are bracketed, meaning you are taxed at increasing rates on ranges of income. Social Security Taxes and Medicare taxes work a little bit differently.</p><p>Let's tackle <strong>federal income taxes first</strong>. If you go to a website like Nerdwallet or Bankrate, you can see all the federal income tax brackets. For now, I am only going to consider Single filing status, 2021 federal tax brackets:</p><p>As you can see, the brackets don't all have the same width. We have to use these ranges to calculate how much federal income tax we owe. The calculation works like so:</p><p><code>0.1*9,875 + 0.12(40,125 - 9,875) + 0.22*(54,200 - 40,125) = </code><strong><code>$7,714</code></strong></p><h2>Baby Step 4: Calculating FICA Taxes</h2><p>FICA stands for Federal Insurance Contributions Act, which is a law that requires employees to have a portion of their paycheck taken out to fund Social Security and Medicare. Technically, even your employer has to make contributions to these programs. But, for our purposes, when we refer to "FICA taxes", we just mean how much you will pay for Social Security taxes and Medicare taxes.</p><p>Let's calculate Social Security taxes first. The way these taxes work is that you are charged 6.2% on the lower of your gross income, or $142,800 (as of the writing of this post in 2021, normally the limit changes every year). What this means is that if your gross income is above $142,800, you are capped at paying 0.062*142,800 = <strong>$8,853.60</strong> in Social Security taxes. So our calculation will look like this:</p><pre><code>Wages to put into Social Security formula = MIN($86,250, $142,800) = $86,250

Social Security taxes = 0.062 * $86,250 = $5,347.50</code></pre><p>Now, let's calculate Medicare taxes. Medicare does not cap the amount of taxes you will pay. There is a flat rate of 1.45% for all gross income, except if you're above a certain gross income threshold, you also have what's called Additional Medicare Tax, which is 0.9% of the value above the threshold. The gross income threshold for Additional Medicare Tax was $200,000 for single filers, as of 2021.</p><p>For our example, we will just have the 1.45% for our gross income:</p><pre><code>Medicare taxes = 0.0145*86,250 = $1,250.63

(For those of you who are super particular, it's technically $1,250.625, but I rounded up &#128515;)</code></pre><p>So total FICA taxes are:</p><pre><code>FICA taxes = Social Security + Medicare
FICA taxes = $5,347.50 + $1,250.63 = $6,598.13</code></pre><h2>Baby Step 5: State Taxes</h2><p>In addition to all the federal taxes you paid, you will also have to pay state income taxes. State income taxes are not all the same. There are some states with no income tax at all, such as Wyoming. There are some states where you have a flat income tax rate, like Colorado. And there are states with tax brackets for income (this is the majority case).</p><p>For this example, I will use CA state taxes. Like the federal income tax brackets, there are varying percentages for CA state tax brackets and they differ between different filing statuses. Let's use single filing status. As of 2021, these are the single filing status tax brackets for CA:</p><p>CA also has its own allowed deductions and credits. The standard deduction for single filing status in 2021 is $4,601. So our tax calculation for CA state income taxes will be:</p><pre><code>CA AGI = $66,750

Taxable income = CA AGI - Standard deduction
Taxable income = 66,750 - 4,601 = $62,149

State income taxes = 0.01*(8,932) + 0.02*(21,175-8,932) + 0.04*(33,421-21,175) + 0.06*(46,394-33,421) + 0.08*(58,634-46,394) + 0.093*(62,149 - 58,634)

State income taxes = $2,908.50</code></pre><h2>Summary</h2><p>So in total, you owe $17,220.63 in taxes, but keep a couple items in mind:</p><ol><li><p>You are already getting a portion of your paycheck withheld for all of the taxes listed above.</p></li><li><p>Your sign on bonus was heavily taxed.</p></li></ol><p>So if, from the beginning of this example, you actually had 40% of your sign on bonus taxed, that would mean 0.4*30,000 = <strong>$12,000</strong> worth of your sign on bonus has already gone toward the taxes you owe. But, the federal and state governments don't adjust how much you should have withheld from each paycheck, even though the sign on bonus was heavily taxed. So what ends up happening is that by the end of the year, <strong>you have actually paid more in taxes than what you owe.</strong></p><p>The way this issue gets addressed is that when you file your tax returns, both the federal and state government will calculate how much they owe you as a refund and you will either get 2 separate checks in the mail or 2 separate direct deposits (if you set that up), one for federal income tax refund and one for state income tax refund.</p><h2>Next Steps</h2><p>In this post, I discussed how to handle only cash-based compensation, but adding on RSUs, options, or other investment income is not too difficult because it will factor into your Adjusted Gross Income (AGI).</p><p>A natural question I get asked after explaining the concepts of this post to my mentees or my peers is, "Ok, do I have to do this calculation every year?" And the answer is, "Up to you!"</p><p>I personally do not calculate my taxes by hand every year because I have written scripts that will do that for me (so I am quasi-calculating by hand &#129315;). But, they are also just estimates because they really only take standard income into account. Due to investment income, RSUs, etc., I just make sure to import all relevant tax forms (1099-Bs, 1099-INTs, 1099-DIVs, W2s, etc.) into TurboTax and I have TurboTax do all this work. So you could absolutely do the same thing if you like, or refer to a trusted CPA. But the point is, now you have the basics so that you could do this yourself and feel more comfortable with the tax returns process.</p><p>I hope this post was helpful to you and demystified how taxing works!</p>]]></content:encoded></item></channel></rss>