<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: devgrowth</title>
    <description>The latest articles on Forem by devgrowth (@devgrowth).</description>
    <link>https://forem.com/devgrowth</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F122783%2F7e413e64-f6ec-456c-ad94-34c992c1e50e.PNG</url>
      <title>Forem: devgrowth</title>
      <link>https://forem.com/devgrowth</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/devgrowth"/>
    <language>en</language>
    <item>
      <title>Unleash Your Software Developer Potential: Mastering Growth with the Ultimate Notion Template</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Wed, 24 May 2023 00:17:26 +0000</pubDate>
      <link>https://forem.com/devgrowth/unleash-your-software-developer-potential-mastering-growth-with-the-ultimate-notion-template-36bf</link>
      <guid>https://forem.com/devgrowth/unleash-your-software-developer-potential-mastering-growth-with-the-ultimate-notion-template-36bf</guid>
      <description>&lt;h2&gt;
  
  
  Why documentation is also important for software developer’s career growth
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;The resistance to documentation among &lt;br&gt;
developers is well known and needs no emphasis.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Software developers all desire good documentation, and we are well aware of how challenging it can be. However, have you ever considered the vital role that good documentation plays in one’s career growth?&lt;/p&gt;

&lt;p&gt;Over the past decade, I have had the opportunity to work at lean startups, large tech companies, and even in different countries with their unique work cultures. Throughout my journey, I have consistently practiced collecting various types of notes. These habits have proven to be immensely beneficial for acing job interviews, securing promotions, expanding my professional network, and sharpening my technical skills. I have crafted these practices into a streamlined workflow in &lt;a href="https://devgrowth.gumroad.com/l/devgrowth-notion"&gt;this Notion template&lt;/a&gt;. My hope is that it can also aid in your career growth. In this post, I will guide you through the motivation and intention behind this template.&lt;/p&gt;

&lt;h2&gt;
  
  
  The benefit of using this Notion template
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep track of your achievements&lt;/strong&gt;: Previously collecting success stories for promotions or resumes often left me with days of frustration due to insufficient data points. This template basically prompts you to keep track of all your achievements, by the time you need it, it’s almost effortless to convert them into the success stories you need.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Write developer journals&lt;/strong&gt;: The idea behind it is that taking relevant notes as you go about your daily tasks can help the future you. You may remember the excitement when you finally find a solution to fix a tricky bug, however a few months later, you may not even remember what was the problem you’ve solved at that time. This template essentially guides you to write your own developer journals regularly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Task management and knowledge management in one place&lt;/strong&gt;: This notion template also includes a task management section, you can link specific tasks from this section when building up your knowledge base. Essentially this notion template dashboard provides everything you need to work as a software developer. Having said that, if you already have a customized workflow to manage tasks, you could skip the task management section.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Harness the power of your network&lt;/strong&gt;: Your network connections, including managers, mentors, mentees, and peers, hold immense learning potential. I recommend maximize this opportunity by scheduling regular coffee chats with them and capture valuable thought-provoking exchanges in your notes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Farewell to cluttered notes&lt;/strong&gt;: Have you ever jotted down a useful snippet, command, or config somewhere on your laptop, only to struggle to find it when you need it again? Say goodbye to the chaos of scattered notes and enjoy the convenience of having everything you need stored in one centralized place.&lt;br&gt;
Based on my own experience, the habit of keep these notes and the ability to manage everything in one Notion dashboard has helped me tremendously to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;update my resume effortlessly&lt;/li&gt;
&lt;li&gt; prepare for behaviour interview round with plenty of stories&lt;/li&gt;
&lt;li&gt;collect datapoints for promotions&lt;/li&gt;
&lt;li&gt;build up my own knowledge base&lt;/li&gt;
&lt;li&gt;capture valuable lessons from my professional network&lt;/li&gt;
&lt;li&gt;be productive since I have everything needed in one place&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope &lt;a href="https://devgrowth.gumroad.com/l/devgrowth-notion"&gt;this notion template&lt;/a&gt; will help you to grow your career as well!&lt;/p&gt;




&lt;p&gt;I’ve compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the free PDF &lt;a href="https://devgrowth.gumroad.com/l/TheUltimateListofJobHuntingResourcesforSoftwareDevelopers"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>careerdevelopment</category>
      <category>career</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Gradually Shift Traffic with AWS Route 53 Weighted Routing Policy</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Fri, 10 Mar 2023 18:01:47 +0000</pubDate>
      <link>https://forem.com/devgrowth/gradually-shift-traffic-with-aws-route-53-weighted-routing-policy-2efh</link>
      <guid>https://forem.com/devgrowth/gradually-shift-traffic-with-aws-route-53-weighted-routing-policy-2efh</guid>
      <description>&lt;h2&gt;
  
  
  🤔 Why do we need to shift traffic gradually?
&lt;/h2&gt;

&lt;p&gt;It is common in software to migrate an existing service to a new infrastructure such as moving to cloud. The business logic remains the same, but it is still a drastic change since the new service stack will be on new infrastructure. We can use extensive integration tests, load tests etc to ensure the new service is working as expected, however with critical services, it is still a safer option to gradually shift production traffic to the new service stack, so that the service owner can verify the new service is also robust and scalable in a safe and incremental way, as well as giving clients time to adjust if necessary.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---NXEVFdH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/suk91risy1qtwffpozsu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---NXEVFdH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/suk91risy1qtwffpozsu.jpg" alt="High level idea of traffic shifting" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You may think there are already tools for this "gradual shifting" scenarios, for example, there are many feature flags tools, either built in-house or from third party vendors, they probably have functionalities like this, and it could be the right solution for some cases, especially for experimenting a new feature. But for other scenarios you have to consider if it's the right solution, will increase latencies that could break your service's SLA? or if the tools can handle the level of traffic for all traffic goes to a service? or any cleanup work you need to do with the feature flag after all traffic is migrated. &lt;/p&gt;

&lt;p&gt;More often if there is no plan to maintain the existing service stack, "redirect" the traffic using DNS resolution is common, and this is what this article will focus(I've also seen people do a one time flip using DNS, but this is usually not recommended considering the risk)&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 How do we use DNS to solve this problem
&lt;/h2&gt;

&lt;p&gt;Before we get into the details of using AWS Route53, we need to understand a bit more about DNS and AWS Route 53:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Amazon Route 53 is a highly available and scalable cloud domain name system(DNS) service. Enables to customize DNS routing policies to reduce latency&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So how does DNS(domain name system) work?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MwIhjHAK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/alrtsbugpio0hqd58ez4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MwIhjHAK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/alrtsbugpio0hqd58ez4.png" alt="Image description" width="680" height="520"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;source: AWS - &lt;a href="https://medium.com/r?url=https%3A%2F%2Faws.amazon.com%2Froute53%2Fwhat-is-dns%2F"&gt;What is DNS?&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In a nutshell, DNS is the phone book to translate a human friendly domain name such as example.com to machine readable IP address such as 192.0.2.244.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When a request is initiated, DNS lookup happens in a hierarchy name resolution architecture that resolves the DNS name with different name servers. For example in above diagram, the domain name &lt;a href="http://www.example.com"&gt;www.example.com&lt;/a&gt; is answered first by DNS root name server, then name server for .com TLD, when it reaches Route53 name server, which has the record for &lt;a href="http://www.example.com"&gt;www.example.com&lt;/a&gt;, then it will return the machine readable IP address for the client to make request to the host, and the resolution result is heavily cached along this path.&lt;br&gt;
Now that we know how DNS work, let's see how to implement it with AWS Route53:&lt;/p&gt;
&lt;h3&gt;
  
  
  Scenario A: Ask clients to use new API domain/URL
&lt;/h3&gt;

&lt;p&gt;If it's easy to ask clients to use new API URL, then it is relatively straightforward to add weighted routing policy records. You will delegate a new domain from either company's internal infrastructure or third party service provider, then create a new (public) hosted zone in Route53&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XNzynbkF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jxbx3uwzt6abo6deaexe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XNzynbkF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jxbx3uwzt6abo6deaexe.png" alt="Add a new hosted zone in Route 53" width="800" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on the hosted zone line, you should be able to see a NS record(name server) and a SOA record(start of authority) created automatically, for this scenario you don't need to make changes to these record, just keep it as it is and know that they are the administration type of information for DNS resolution. We will talk more about it in another scenario.&lt;br&gt;
Next step is to create records with weighted routing policy:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SltjZsPo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/czg12r7gxcn4f7mfaz1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SltjZsPo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/czg12r7gxcn4f7mfaz1f.png" alt="create weighted record to shift traffic" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After creating a record that points to the new service(with 155 as the weight), we can create another record that points to the existing service with a weight of 100, then we should see these two records in the hosted zone as below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k4ND5Bdh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gr4189yktgwg299a4lkp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k4ND5Bdh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gr4189yktgwg299a4lkp.png" alt="weighted records in hosted zone" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once this is set up, you can gradually change the weight config so that eventually the new service stack can get all the traffic.&lt;/p&gt;
&lt;h3&gt;
  
  
  Scenario B: No change required from clients to use weighted record
&lt;/h3&gt;

&lt;p&gt;In reality, production services often serves a wide range of clients and it could be challenging to ask every client to use the new API domain/URL, luckily we can still control which endpoints clients are using behind the scenes. To understand how this approach works, we need to understand what is the role of name sever:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An NS record (or nameserver record) is a DNS record that contains the name of the authoritative name server within a domain or DNS zone. When a client queries for an IP address, it can find the IP address of their intended destination from an NS record via a DNS lookup.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In another words, A name server or DNS server contains all of the DNS zone files and records for a domain. As we mentioned in scenario A, when you create a hosted zone in Route53, by default a NS record and SOA record will be created, basically these name servers know all the records you create in this hosted zone.&lt;/p&gt;

&lt;p&gt;How do we make the clients using the weighted records we create in route53 without any changes? For example, the clients are using an endpoint medium.com, this domain is managed by some internal infra or third party tool and you can get the corresponding name server record with this command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dig medium.com +noall +answer NS

; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.10.6 &amp;lt;&amp;lt;&amp;gt;&amp;gt; medium.com +noall +answer NS
;; global options: +cmd
medium.com.  86400 IN NS alina.ns.cloudflare.com.
medium.com.  86400 IN NS kip.ns.cloudflare.com.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this case, we want to use the name server in Route53 instead of the cloudflare name server so that the DNS resolution will flow through Route53 instead of cloudflare, then the weighted records we set up in Route53 hosted zone will be effective.&lt;/p&gt;




&lt;h2&gt;
  
  
  📝 Lessons Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;DNS is cached heavily, changes are not instant and traffic is going to linger for a while after making changes&lt;/li&gt;
&lt;li&gt;Shorter TTL for records is helpful for easier rollback. Once migration is completed and there is no need for rollback, you can change the TTL back to default value or other value you see fit.&lt;/li&gt;
&lt;li&gt;During testing phase, if you have load test set up, remember that a host will resolve to one of the record destination and use that for the duration of TTL, so it's better to have the load tests running from several hosts and perhaps longer than the DNS resolution TTL, then you may see the traffic following the DNS resolution weights.&lt;/li&gt;
&lt;li&gt;If the domains in DNS record is not publicly accessible, you cannot use the commonly used Route53 health check since it requires the domain to be accessible publicly. There are other metrics such as DNS query metrics, but if the domains can only be reached internally, it's better have to find other ways to measure the health of the request&lt;/li&gt;
&lt;li&gt;To make your application more resilient, Route53 Application Recovery Controller(ARC) can help, and AWS recently released a feature called zonal shift you can use to mitigate grey failures.&lt;/li&gt;
&lt;li&gt;One thing I noticed is that if you have a weight setup as 100% traffic goes to A, 0% traffic goes to B, theoretically you would not see traffic goes to B. However if A cannot be resolved, Route53 will fall back to other records such as B.&lt;/li&gt;
&lt;li&gt;When you replace name server record as described in scenario B, remember to replace the name server record in one single operation(append and delete), otherwise there will be a period of time when the domain cannot be resolved.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you are interested in learning more about DNS or networking in general, this &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fimp.i384100.net%2FqnQkxj"&gt;Coursera course&lt;/a&gt; from google and &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fimp.i384100.net%2F5bXe2N"&gt;course&lt;/a&gt; from University of Colorado gives you an overview of computer networking, or if you prefer books, there is a classic computer networking book &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.amazon.com%2Fdp%2F9356061319%3Ftag%3Dsfdev-20"&gt;Computer Networking: A Top-down Approach&lt;/a&gt;. Hope this helps!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I've compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the free PDF &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fdevgrowth.gumroad.com%2Fl%2FTheUltimateListofJobHuntingResourcesforSoftwareDevelopers"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>tutorial</category>
      <category>cloud</category>
      <category>dns</category>
    </item>
    <item>
      <title>The Ultimate List of Job Hunting Resources for Software Developers Part 7: Negotiation</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Thu, 16 Feb 2023 16:53:35 +0000</pubDate>
      <link>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-7-negotiation-5hem</link>
      <guid>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-7-negotiation-5hem</guid>
      <description>&lt;p&gt;I've compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the free PDF &lt;a href="https://devgrowth.gumroad.com/l/TheUltimateListofJobHuntingResourcesforSoftwareDevelopers" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Negotiate Offers&lt;br&gt;
To negotiate offers you need to know the market, you may also get this question at the beginning of the interview pipeline as well, whether you want to disclose is up for you, but you should know how the market is at the beginning of the job hunting process as well as the last step of job hunting, here are some resources to help:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@CandidatePlanet" rel="noopener noreferrer"&gt;Candidate Planet&lt;/a&gt;: Youtube channel talks about negotiation&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.levels.fyi/" rel="noopener noreferrer"&gt;levels.fyi&lt;/a&gt;: It has the most comprehensive data points for tech jobs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://meterwork.com/salaries/" rel="noopener noreferrer"&gt;meterwork&lt;/a&gt;: mostly 🇨🇦 tech job data points&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.payscale.com/research/CA/Country=Canada/Salary" rel="noopener noreferrer"&gt;payscale&lt;/a&gt;: not just for tech jobs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.glassdoor.com/" rel="noopener noreferrer"&gt;glassdoor&lt;/a&gt;: not just for tech jobs, not too many data points there but you can check the review and ratings&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.teamblind.com/" rel="noopener noreferrer"&gt;teamblind&lt;/a&gt;: it has ratings and reviews for a company, and some time you can see people sharing compensation anonymously&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devto</category>
      <category>announcement</category>
      <category>web3</category>
    </item>
    <item>
      <title>The Ultimate List of Job Hunting Resources for Software Developers Part 6: Computer Science Fundamentals</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Wed, 15 Feb 2023 13:26:54 +0000</pubDate>
      <link>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-6-computer-science-fundamentals-4p87</link>
      <guid>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-6-computer-science-fundamentals-4p87</guid>
      <description>&lt;p&gt;I've compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the free PDF &lt;a href="https://devgrowth.gumroad.com/l/TheUltimateListofJobHuntingResourcesforSoftwareDevelopers" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;Depending on the company and position you are interviewing for, you may need to refresh on computer science. With the time constraints of getting ready for an interview, I recommend finding the knowledge gap you need to close and close it, instead of going through the material sequentially(but if you have the time to go through the books or courses, it's always good to learn).&lt;/p&gt;

&lt;h2&gt;
  
  
  Open source courses
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/7mEL1A" rel="noopener noreferrer"&gt;Udacity: Networking for developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/MXPoRJ" rel="noopener noreferrer"&gt;Udacity: Intro to OS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i384100.net/qnQkxj" rel="noopener noreferrer"&gt;Coursera: Networking by Google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imp.i115008.net/vn51Ed" rel="noopener noreferrer"&gt;Udacity: Computer Networking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://web.mit.edu/6.033/www/" rel="noopener noreferrer"&gt;MIT: Computer System Engineering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pdos.csail.mit.edu/6.824/index.html" rel="noopener noreferrer"&gt;MIT: Distributed Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://15445.courses.cs.cmu.edu/spring2023/" rel="noopener noreferrer"&gt;CMU: Database Systems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Books
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3W47bYW" rel="noopener noreferrer"&gt;Computer Systems: A Programmer’s Perspective&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://amzn.to/3HcjE6u" rel="noopener noreferrer"&gt;Code: The Hidden Language of Computer Hardware and Software&lt;/a&gt;:&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3YqhRCK" rel="noopener noreferrer"&gt;Operating Systems: Three Easy Pieces&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you have seen resources that helped your job hunting process, leave a comment and share with more people :)&lt;br&gt;
Next post I will go over tools that may help your negotiation. Stay tuned!&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>interview</category>
      <category>interviewpreparation</category>
      <category>interviewprep</category>
    </item>
    <item>
      <title>The Ultimate List of Job Hunting Resources for Software Developers Part 5: Behavior Round</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Tue, 14 Feb 2023 21:20:43 +0000</pubDate>
      <link>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-5-behavior-round-27jn</link>
      <guid>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-5-behavior-round-27jn</guid>
      <description>&lt;p&gt;&lt;em&gt;I've compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the free PDF &lt;a href="https://devgrowth.gumroad.com/l/TheUltimateListofJobHuntingResourcesforSoftwareDevelopers" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;To nail the behavior round, it really depends on what role or level you are interviewing at, but a few things that are generally helpful is to 1)keep note of your achievements and challenges you solved at work 2)use format such as STAR to tell your story. &lt;/p&gt;

&lt;p&gt;There are some resources showing you common mistakes you want to avoid and tips during behavior interview:&lt;/p&gt;

&lt;h2&gt;
  
  
  Courses
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/courses/grokking-the-behavioral-interview" rel="noopener noreferrer"&gt;Grokking the Behavioral Interview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://leetcode.com/explore/interview/card/leapai/" rel="noopener noreferrer"&gt;Rock the Behavioral Interview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Youtube Channels
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@DanCroitor" rel="noopener noreferrer"&gt;DanCroitor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@CandidatePlanet" rel="noopener noreferrer"&gt;Candidate Planet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@SelfMadeMillennial/featured" rel="noopener noreferrer"&gt;Self Made Millennial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@JeffHSipe" rel="noopener noreferrer"&gt;Jeff H Sipe&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Other Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.crackingthecodinginterview.com/uploads/6/5/2/8/6528028/cracking_the_soft_skills_-_v6.pdf" rel="noopener noreferrer"&gt;Cracking the soft skills&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/viraptor/reverse-interview" rel="noopener noreferrer"&gt;The Reverse Interview&lt;/a&gt; (usually towards the end of the interview you will have a few minutes to ask questions, it is also a great opportunity to learn about your potential employers, remember the interview is a two way street)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you have seen resources that helped your job hunting process, leave a comment and share with more people :)&lt;br&gt;
Next post I will go over resources for computer science fundamentals. Stay tuned!&lt;/p&gt;

</description>
      <category>interview</category>
      <category>interviewpreparation</category>
      <category>interviewprep</category>
      <category>behavioral</category>
    </item>
    <item>
      <title>The Ultimate List of Job Hunting Resources for Software Developers Part 4: Prepare For System Design Interview</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Sat, 11 Feb 2023 01:39:29 +0000</pubDate>
      <link>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-4-prepare-for-system-design-interview-5fm4</link>
      <guid>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-4-prepare-for-system-design-interview-5fm4</guid>
      <description>&lt;p&gt;I've compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the free PDF &lt;a href="https://devgrowth.gumroad.com/l/TheUltimateListofJobHuntingResourcesforSoftwareDevelopers" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Learn Basics
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/donnemartin/system-design-primer" rel="noopener noreferrer"&gt;The System Design Primer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://amzn.to/3l7Meic" rel="noopener noreferrer"&gt;Designing Data-Intensive Applications&lt;/a&gt;: highly recommended by many people, it is very helpful especially if you are not familiar with distributed or data intensive systems, note that this book is not intended for interview per se, but it will help you close some knowledge gaps.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://amzn.to/3X2ldKi" rel="noopener noreferrer"&gt;System Design Interview - An insider's guide&lt;/a&gt;: The book is geared toward system design interview, it includes a recommended flow of solving a system design interview question, and uses several common questions to explain this flow.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://amzn.to/3HU13Ob" rel="noopener noreferrer"&gt;System Design Interview - An Insider's Guide: Volume 2&lt;/a&gt;: The second volume contains much more details than the first book and covers more domains. You can even just use it to learn what aspects to consider when designing for a particular domain.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.lewis-lin.com/blog/pedals-method" rel="noopener noreferrer"&gt;PEDALS method&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sre.google/workbook/non-abstract-design/" rel="noopener noreferrer"&gt;Google Site Reliability Engineering book&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  System Design Popular Youtube channels
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@infoq" rel="noopener noreferrer"&gt;InfoQ&lt;/a&gt;: It has many great recordings from those who worked on large scale systems&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@scale1913" rel="noopener noreferrer"&gt;System @Scale&lt;/a&gt;: It has recordings from tech conferences maintained by engineering community at Meta &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://interviewing.io/" rel="noopener noreferrer"&gt;interviewing.io&lt;/a&gt;: It will share some mock interview recordings where you can observe and hear the feedback from the mock interviewer.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@SystemDesignInterview" rel="noopener noreferrer"&gt;System Design Interview&lt;/a&gt;: It goes over some common system design problem in depth.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@SDESkills" rel="noopener noreferrer"&gt;SDE Skills&lt;/a&gt;: This community also has regular mock interview sessions&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@tryexponent/videos" rel="noopener noreferrer"&gt;Exponent&lt;/a&gt;: It is the owner of the Pramp mock interview platform, sometime they share mock interview recordings&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/@hnasr" rel="noopener noreferrer"&gt;Hussein Nasser&lt;/a&gt;: He shared videos on common backend system problems, it is not geared toward interviews, but is helpful in terms of learning backend in general&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Courses
&lt;/h2&gt;

&lt;p&gt;If you prefer to spend your time efficiently on high quality and well instructed videos, &lt;a href="https://systemdesignthinking.thinkific.com/courses/system-design-for-interviews-and-beyond" rel="noopener noreferrer"&gt;System Design for Interviews and Beyond&lt;/a&gt; is created by the same person who owns this &lt;a href="https://www.youtube.com/@SystemDesignInterview" rel="noopener noreferrer"&gt;System Design Interview&lt;/a&gt; Youtube channel(if you ever searched system design videos on YouTube, mostly likely you've seen into this channel before)&lt;/p&gt;

&lt;p&gt;Educative also has some system design courses(note its courses is mainly in text)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/path/scalability-system-design" rel="noopener noreferrer"&gt;Scalability &amp;amp; System Design for Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/courses/grokking-modern-system-design-interview-for-engineers-managers?utm_campaign=SystemDesign&amp;amp;utm_source=google&amp;amp;utm_medium=ppc&amp;amp;utm_content=search&amp;amp;utm_term=course&amp;amp;eid=5082902844932096&amp;amp;utm_term=educative%20system%20design&amp;amp;utm_campaign=%5BNew%5D+System+Design-Search-+Exc+US+CN+IND&amp;amp;utm_source=adwords&amp;amp;utm_medium=ppc&amp;amp;hsa_acc=5451446008&amp;amp;hsa_cam=18181328148&amp;amp;hsa_grp=142026927593&amp;amp;hsa_ad=618844618313&amp;amp;hsa_src=g&amp;amp;hsa_tgt=kwd-902536692919&amp;amp;hsa_kw=educative%20system%20design&amp;amp;hsa_mt=b&amp;amp;hsa_net=adwords&amp;amp;hsa_ver=3&amp;amp;gclid=EAIaIQobChMI9aeUwpX6_AIVZRCzAB0hZgT0EAAYASAAEgIE-vD_BwE" rel="noopener noreferrer"&gt;Grokking Modern System Design Interview for Engineers &amp;amp; Managers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2: Mock Interview
&lt;/h2&gt;

&lt;p&gt;I can't stress enough about the importance of mock interviews, you learn from the feedback, adjust or learn, then rinse and repeat, it applies to system design interviews as well.&lt;/p&gt;

&lt;p&gt;You can also set up random peer mock system design interviews on Pramp. However for system design interviews, the feedback is often valuable when your peer is already an experienced engineer, this is not always guaranteed since the platform pairs peers randomly.&lt;/p&gt;

&lt;p&gt;I would say try to find people who are more experienced in your network see if they can help with mock interview, but if you think this is your bottleneck, perhaps check interviewing.io to find some experienced engineers to mock and provide detailed feedback with you could be a good investment(they also release some video recording on YouTube)&lt;/p&gt;

&lt;h2&gt;
  
  
  Other Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://learn.microsoft.com/en-us/azure/architecture/patterns/" rel="noopener noreferrer"&gt;Cloud Design Patterns&lt;/a&gt;(From Azure)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3XFGaM5" rel="noopener noreferrer"&gt;Fundamentals of Software Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kilimchoi/engineering-blogs" rel="noopener noreferrer"&gt;Curated list of engineering blogs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you have seen resources that helped your job hunting process, leave a comment and share with more people :)&lt;br&gt;
Next post I will go over resources for behavior rounds. Stay tuned!&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>interview</category>
      <category>interviewprep</category>
      <category>interviewpreparation</category>
    </item>
    <item>
      <title>The Ultimate List of Job Hunting Resources for Software Developers Part 3: Prepare For Coding Interview</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Thu, 09 Feb 2023 19:50:15 +0000</pubDate>
      <link>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-3-prepare-for-coding-interview-29d2</link>
      <guid>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-3-prepare-for-coding-interview-29d2</guid>
      <description>&lt;p&gt;&lt;em&gt;I've compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the free PDF &lt;a href="https://devgrowth.gumroad.com/l/TheUltimateListofJobHuntingResourcesforSoftwareDevelopers"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Learn data structure and algorithm
&lt;/h2&gt;

&lt;p&gt;If you are new to data structure and algorithm or you want to brush up on it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Udacity Course: &lt;a href="https://imp.i115008.net/kjyQo3"&gt;Intro to Data Structures and Algorithms&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Coursera Course: &lt;a href="https://imp.i384100.net/P0eYVN"&gt;Algorithm Part I&lt;/a&gt;, &lt;a href="https://imp.i384100.net/kjyQM3"&gt;Algorithm Part 2&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://amzn.to/3kDAsM9"&gt;Cracking the Coding Interview&lt;/a&gt;(it's a big book, but to ramp up on data structure and algorithm, you probably want to read below sections/chapters first): VI: Big O, VII: Technical Questions, IX: Interview Questions(Chapter 1–5, 7–10 since they cover common coding interview questions)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are many other classic books or courses on data structure and algorithms, but to ace coding interviews, we should focus on practicing to solve common coding interview questions, there is no shortcut, practice makes perfect. Having said that, as of right now there are already more than 2500 practice problems on &lt;a href="https://leetcode.com/"&gt;Leetcode&lt;/a&gt;, we also need to be smart about preparing for coding interviews.&lt;/p&gt;

&lt;p&gt;A common and effective strategy I've seen many people used and worked(including myself) is:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: After learning about the fundamentals of a data structure or an algorithm, try to solve some corresponding classic problems
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You can check this book &lt;a href="https://amzn.to/3HwoTiV"&gt;Elements of Programming Interviews in Python&lt;/a&gt;(or in &lt;a href="https://amzn.to/3Hui7tQ"&gt;Java&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.techinterviewhandbook.org/grind75"&gt;Grind 75 questions&lt;/a&gt; is a great tool if you want to spend less time but get the best coverage of frequently asked coding interview questions&lt;/li&gt;
&lt;li&gt;Leetcode has a couple of study plans such as &lt;a href="https://leetcode.com/study-plan/binary-search/"&gt;Binary Search Study Plan&lt;/a&gt;, &lt;a href="https://leetcode.com/study-plan/graph/"&gt;Graph Theory Study Plan&lt;/a&gt;(some problems may require premium to unlock)&lt;/li&gt;
&lt;li&gt;Neetcode has &lt;a href="https://neetcode.io/roadmap"&gt;roadmap&lt;/a&gt; for studying data structure and algorithm&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Once you are familiar with these topics, now it's time to see if you are able to recognize which data structure or algorithm to use when you encounter a new problem
&lt;/h3&gt;

&lt;p&gt;During this phase, you can try to practice &lt;a href="https://www.crackingthecodinginterview.com/uploads/6/5/2/8/6528028/cracking_the_coding_skills_-_v6.pdf"&gt;this approach&lt;/a&gt; to solve new problems&lt;br&gt;
Some community resources like this &lt;a href="https://seanprashad.com/leetcode-patterns/"&gt;leetcode patterns&lt;/a&gt; is also helpful to learn about patterns&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Once you are confident you can solve most new problems, the next step is to practice mock interviews
&lt;/h3&gt;

&lt;p&gt;Note that Leetcode has a &lt;a href="https://leetcode.com/assessment/"&gt;Mock Assessment&lt;/a&gt; feature, you can try this feature to see if you can solve a problem within limited time, it mimics the online assessment in interview pipelines.&lt;/p&gt;

&lt;p&gt;A more challenging yet common way to evaluate candidates is to have an interviewer work with you to solve a problem, it usually requires the candidates to be able to clarify requirements, communicate his or her thought process and solve the problem within a limited time. Other words, you also need to practice this scenario.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.pramp.com/#/"&gt;Pramp&lt;/a&gt; is a free platform where you can pair with random peers to mock this type of interview&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://interviewing.io/"&gt;interviewing.io&lt;/a&gt; also provides mock interview with FAANG engineers, although it's pricey, personally I think if you practice enough on Pramp and Leetcode it should be sufficient, but up to you if you want to invest a bit more in getting a FAANG engineer to mock coding interview with you&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Coding interview Popular Youtube Channels
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@tusharroy2525"&gt;Tushar Roy - Coding Made Simple&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@BackToBackSWE"&gt;Back To Back SWE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@abdul_bari"&gt;Abdul Bari&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@ByteByByte"&gt;Byte by Byte&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@WilliamFiset-videos"&gt;WilliamFiset&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Other useful resources to prepare for coding interview
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.bigocheatsheet.com/"&gt;Big O cheatsheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://refactoring.guru/design-patterns"&gt;Design Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://refactoring.guru/refactoring"&gt;Refactoring&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3R5pSK6"&gt;A Philosophy of Software Design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you have seen resources that helped your job hunting process, leave a comment and share with more people :)&lt;br&gt;
Next post I will go over how to study for system design interviews. Stay tuned!&lt;/p&gt;

</description>
      <category>interviewpreparation</category>
      <category>interviewprep</category>
      <category>codinginterview</category>
      <category>codinginterviews</category>
    </item>
    <item>
      <title>The Ultimate List of Job Hunting Resources for Software Developers Part 2: Apply For Jobs and Manage Your Applications</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Wed, 08 Feb 2023 23:26:04 +0000</pubDate>
      <link>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-2-apply-for-jobs-and-manage-your-applications-59bp</link>
      <guid>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-2-apply-for-jobs-and-manage-your-applications-59bp</guid>
      <description>&lt;p&gt;&lt;em&gt;I've compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the free PDF &lt;a href="https://devgrowth.gumroad.com/l/TheUltimateListofJobHuntingResourcesforSoftwareDevelopers" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;For this post, I am going to share resources that you can use in applying for jobs and tools to manage your applications:&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to apply for jobs
&lt;/h2&gt;

&lt;p&gt;There are some popular job postings aggregator sites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://linkedin.com" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;: I would say LinkedIn has most of the job postings for tech, and they often give you one month free premium trial, you can use that to see more analytics about an opportunity&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://indeed.com" rel="noopener noreferrer"&gt;Indeed&lt;/a&gt; and &lt;a href="http://glassdoor.com" rel="noopener noreferrer"&gt;Glassdoor&lt;/a&gt;: Still being used by many companies&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://angel.co" rel="noopener noreferrer"&gt;AngelList&lt;/a&gt;: more towards startup jobs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hired.com" rel="noopener noreferrer"&gt;Hired&lt;/a&gt;: more towards startup jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Don't forget referrals
&lt;/h3&gt;

&lt;p&gt;The job posting aggregator sites are great, but if you can get someone to refer you to a position, it usually has abetter response rate, trying to reach out to your network for potential referrals is always a good thing to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to manage multiple applications
&lt;/h2&gt;

&lt;p&gt;If you are applying for multiple positions, you probably want to manage all these job applications with a tool or system to track progress and keep notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://huntr.co/" rel="noopener noreferrer"&gt;Huntr&lt;/a&gt;: a great tool to manage your job search, the free tier should be sufficient for individual usage&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://affiliate.notion.so/pobxqck1bfi7" rel="noopener noreferrer"&gt;Notion&lt;/a&gt;: a powerful tool to write and collaborate, for example, you can use it to summarize knowledge for coding interview, write down behavior stories and ask your friends to provide feedback. You can also find beautiful &lt;a href="https://affiliate.notion.so/pobxqck1bfi7" rel="noopener noreferrer"&gt;notion templates&lt;/a&gt; to get started faster.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://doist.grsm.io/nxsb9mx9xmup" rel="noopener noreferrer"&gt;Todoist&lt;/a&gt;: What's powerful about Todoist as todo app is its natural language todo creation and advanced filter views to track todo tasks&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you have seen resources that helped your job hunting process, leave a comment and share with more people :)&lt;/p&gt;

&lt;p&gt;Next post I will go over how to prepare for coding interviews efficiently. Stay tuned!&lt;/p&gt;

</description>
      <category>interviewprep</category>
      <category>interviewpreparation</category>
      <category>jobs</category>
      <category>jobsearching</category>
    </item>
    <item>
      <title>The Ultimate List of Job Hunting Resources for Software Developers Part 1: Get Your Resume Ready</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Tue, 07 Feb 2023 14:05:10 +0000</pubDate>
      <link>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-1-get-your-resume-ready-549l</link>
      <guid>https://forem.com/devgrowth/the-ultimate-list-of-job-hunting-resources-for-software-developers-part-1-get-your-resume-ready-549l</guid>
      <description>&lt;p&gt;&lt;em&gt;I've compiled and curated a list of job hunting resources for software developers, it covers resources for writing resumes, applying and managing job applications, efficient ways to prepare for coding interviews, resources to learn system design, you can download the free PDF &lt;a href="https://devgrowth.gumroad.com/l/TheUltimateListofJobHuntingResourcesforSoftwareDevelopers" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;For this post, I am going to share resources that you can use in putting together a resume to get you interview opportunities:&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Write down your career stories in resume
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Read &lt;a href="https://www.techinterviewhandbook.org/resume/" rel="noopener noreferrer"&gt;Practical guide to writing FAANG-ready software engineer resume&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Read &lt;a href="https://thetechresume.com/" rel="noopener noreferrer"&gt;The Tech Resume Inside Out&lt;/a&gt; to learn about what a good tech resume looks like and why&lt;/li&gt;
&lt;li&gt;Read &lt;a href="https://amzn.to/3kDAsM9" rel="noopener noreferrer"&gt;Cracking the Coding Interview&lt;/a&gt;: check the section Introduction-Before the Interview&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2: Vet your resume
&lt;/h2&gt;

&lt;p&gt;Once you finish writing your resume, it is essential to have someone else vet your resume, you can ask your friends to help with proofreading, run it through Grammarly to correct grammar errors, or if your resume has never been vetted before you can find dedicated service on &lt;a href="https://go.fiverr.com/visit/?bta=628384&amp;amp;brand=fiverrhybrid&amp;amp;landingPage=https%3A%2F%2Fwww.fiverr.com%2Fjytliu%2Frewrite-your-software-engineering-resume-and-cover-letter%3Fcontext_referrer%3Dsearch_gigs%26source%3Dtop-bar%26ref_ctx_id%3D9825771f1524f46a02902322fd790866%26pckg_id%3D1%26pos%3D4%26ad_key%3D985f8c0c-772c-44d7-be01-74efb8d85651%26context_type%3Dauto%26funnel%3D9825771f1524f46a02902322fd790866%26fiverr_choice%3Dtrue%26imp_id%3D3d8c17b6-f947-4677-8909-579b49ad827f" rel="noopener noreferrer"&gt;Fiverr&lt;/a&gt; to review and edit your resume.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Take it further to build your personal brand online
&lt;/h2&gt;

&lt;p&gt;If you have projects you are proud of and can demonstrate your skill sets , you can showcase it with one page websites. You can use &lt;a href="https://try.carrd.co/kk6ddf2f" rel="noopener noreferrer"&gt;Carrd&lt;/a&gt; to create simple, free, fully responsive one-page sites for your projects/products.&lt;/p&gt;

&lt;p&gt;If you want to take it further to establish a personal brand online as a developer, you should get a domain via registrars such as &lt;a href="https://namecheap.pxf.io/rn9eeR" rel="noopener noreferrer"&gt;Namecheap&lt;/a&gt;, they usually have very affordable domains.&lt;/p&gt;




&lt;p&gt;If you have seen resources that helped your job hunting process, leave a comment and share with more people :)&lt;br&gt;
Next post I will go over apply for jobs and tools to manage job applications. Stay tuned!&lt;/p&gt;

</description>
      <category>jobhunting</category>
      <category>interviewprep</category>
      <category>resume</category>
      <category>jobsearching</category>
    </item>
    <item>
      <title>🏅Year in Review: My Productivity Setup As A Software Engineer</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Tue, 27 Dec 2022 17:38:26 +0000</pubDate>
      <link>https://forem.com/devgrowth/year-in-review-my-productivity-setup-as-a-software-engineer-50e4</link>
      <guid>https://forem.com/devgrowth/year-in-review-my-productivity-setup-as-a-software-engineer-50e4</guid>
      <description>&lt;p&gt;The end of this year is approaching, as many people take some time to reflect on the past 12 months, I want to review the productivity system I’ve used as a software engineer, and share what have worked for me and what didn’t. &lt;/p&gt;

&lt;h2&gt;
  
  
  Tracking Todos
&lt;/h2&gt;

&lt;p&gt;Many tech companies have adopted the scrum approach to plan sprints, many teams I’ve seen use Jira while others use similar products such as Trello. You may think this should be sufficient since Jira already track tasks and assignees, what’s the point of having another todo tracking system? That’s what I thought initially too, but here are a few pitfalls:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your work todos and personal todos(if you use one) are most likely in different places(one in Jira, the other in your personal todos) that means you have to manage different tools.&lt;/li&gt;
&lt;li&gt;Not everything is appropriate to be logged in Jira as a ticket or subtasks for an individual. For example, to complete a design documentation, you may need to schedule meetings with engineers from infra team, you may need to do implement a proof of concept demo before putting it down as proposed solution, you can break them down into sub tasks on Jira, but 1) This level of granularity is often unnecessary for other team members or the team manager to see 2) sub tasks may not be easy to be included in JQL(Jira Query) compared to a story ticket&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore I only use one app to manage all my todos, after experimenting with a handful of Todo apps(Reminder, Google Tasks, WunderList etc), I find &lt;a href="https://doist.grsm.io/nxsb9mx9xmup" rel="noopener noreferrer"&gt;Todoist&lt;/a&gt; is the best fit for my use case, especially with it’s natural language todo creation and filter views(to differentiate personal todos and work todos), here is the projects and filter views I use:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvk4t8g83ynthk2nyotrp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvk4t8g83ynthk2nyotrp.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The only thing I think is a bit counterintuitive is that the free plan does not include a reminder feature, which should be the basic feature for a todo app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Developer Journal + Brag Document
&lt;/h2&gt;

&lt;p&gt;I really like the idea of keeping a &lt;a href="https://jvns.ca/blog/brag-documents/" rel="noopener noreferrer"&gt;brag document&lt;/a&gt;, before I read this amazing article, I already had something similar to a &lt;a href="https://opensource.com/article/19/4/what-developer-journal" rel="noopener noreferrer"&gt;developer journal&lt;/a&gt; that I take notes about problems I encounter and the solutions from day to day work. So I thought why not combine them together, in my opinion the benefits of combining them together are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Less documents to manage&lt;/li&gt;
&lt;li&gt;Can be updated more frequently&lt;/li&gt;
&lt;li&gt;Provide more context on how a problem is solved and what kind of achievement it is. For example, your teammates encountered a tricky production bug, you helped them debug the root cause and fixed it quickly, now you can not only keep a note of the problem and the solution, also how you helped your team fix a production bug which removed the risk of losing customers etc(as an achievement)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The journal is chronological, however when we need to retrieve info, we either search by the keyword of the problem or filter out the achievements when we need to write promo doc or update our resumes, so there should be a label or filter feature for you to tag a paragraph to be achievement of certain category. I used &lt;a href="https://dynalist.io/" rel="noopener noreferrer"&gt;Dynalist&lt;/a&gt; mainly because you can nest things infinitely, use labels to find certain content quickly and you can link anywhere within the app, lastly it support sync everywhere as well as backup. Here is the template I created:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhmkx7n52zc2jgw8057gk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhmkx7n52zc2jgw8057gk.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are some alternatives such as &lt;a href="https://workflowy.com/" rel="noopener noreferrer"&gt;workflowy&lt;/a&gt; although the free plan has a limit on how many items you can create per month.&lt;/p&gt;

&lt;p&gt;Leave a comment below if you are interested in the template I created.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary Notes
&lt;/h2&gt;

&lt;p&gt;The developer journal + brag document mentioned above often acts as a scratchpad, I dump everything I can think of during the day, add tags when applicable. Sometimes I noticed myself keep adding notes under the same theme for more than a few days. For example, for the past weeks I’ve been researching how to integrate Route53 with a legacy system, I find new problems I need to answer almost every day, but they are all related to DNS or traffic flow. Once I reached to the point where I am clear on the subject, I will summarize these Q&amp;amp;A into a note, with better structure and formatting so that it could be published to internal wikis or public if appropriate.&lt;/p&gt;

&lt;p&gt;I’ve used &lt;a href="https://affiliate.notion.so/pobxqck1bfi7" rel="noopener noreferrer"&gt;notion&lt;/a&gt; for this type of summary notes, what I like about Notion are the markdown format support, clear user interface and wide range support of integrations, makes it easier for me to export it to different platform with great readability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Write it Down(with pen and paper)
&lt;/h2&gt;

&lt;p&gt;Even though I spent majority of my time with my laptop+monitor like every other software engineer, there are times where you want to write things down with just pen and paper, many apps are built for kind of mind mapping or diagram activity, but at the end of the day, using pen and paper allows me to focus more on the content I want to create and express more freely/easily&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxuc3yirky6an89bmo0tk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxuc3yirky6an89bmo0tk.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
I use &lt;a href="https://amzn.to/3WB0kpA" rel="noopener noreferrer"&gt;Midori notebooks&lt;/a&gt; for everything I want to put down on paper at work. (I also use its &lt;a href="https://amzn.to/3Vnju12" rel="noopener noreferrer"&gt;cotton notebook&lt;/a&gt; for journaling since writing on cotton paper with fountain pen is joyful to me)&lt;/p&gt;

&lt;h2&gt;
  
  
  Workflows
&lt;/h2&gt;

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

&lt;p&gt;&lt;a href="https://www.alfredapp.com/" rel="noopener noreferrer"&gt;Alfred&lt;/a&gt; is the best workflow or efficiency apps hands down. I’ve used it for many years and I think I’ve only scratched the surface of its powerful features. You will need to buy the powerpack to use Alfred but it’s a one time purchase(about 40 USD) and it’s worth every penny. I use features such as hotkey, snippet, keywords, workflow every day and I would highly recommend it to every developer or anyone who wants to boost their efficiency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other apps I use
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://magnet.crowdcafe.com/" rel="noopener noreferrer"&gt;Magnet&lt;/a&gt;: window management, similar apps such as &lt;a href="https://rectangleapp.com/" rel="noopener noreferrer"&gt;rectangle&lt;/a&gt;. In my opinion, window management is a must have if you user monitors to manage many windows.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://justgetflux.com/" rel="noopener noreferrer"&gt;f.lux&lt;/a&gt;: it makes the color of your computer's display adapt to the time of day, warm at night and like sunlight during the day. If you spend hours a day looking at a screen, flux can help reducing eye strain.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://matthewpalmer.net/horo-free-timer-mac/" rel="noopener noreferrer"&gt;Horo&lt;/a&gt;: free timer app on Mac with clean UI, this is basically my pomodoro app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What’s your developer productivity system? Leave a comment below 😎&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>productive</category>
      <category>developer</category>
      <category>developertools</category>
    </item>
    <item>
      <title>Dreading a System Design Interview? Here Are Five Resources That Can Help🏅</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Tue, 20 Dec 2022 02:54:25 +0000</pubDate>
      <link>https://forem.com/devgrowth/top-5-resources-to-get-ready-for-system-design-interview-e0j</link>
      <guid>https://forem.com/devgrowth/top-5-resources-to-get-ready-for-system-design-interview-e0j</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1k1v2mb5b62jibmf4dky.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1k1v2mb5b62jibmf4dky.jpg" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;System design interview has gained popularity among hiring companies in recent years, and there seems to be a trend that it’s going to be a common module in technical interviews just like data structures and algorithms(even though it is still controversial) .Unlike data structures and algorithms, system design interview is often open-ended, which means the interviewer can probe in many possible directions in less than 45min or 60min, this makes the interview preparation a daunting task.&lt;/p&gt;

&lt;p&gt;We could try our best at work to gain more hands-on system design experience to increase our chance of acing the interview, this is a doable solution but it will take quite some time to accumulate  these knowledges or experiences, if we only have a short period of time to prepare for system design interviews, it is a different story. Here are the top 5 resources I’ve found so far:&lt;/p&gt;

&lt;h2&gt;
  
  
  1️⃣ &lt;strong&gt;&lt;a href="https://amzn.to/3PIYgcT" rel="noopener noreferrer"&gt;Designing Data-Intensive Applications&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321?keywords=design+data+intensive+applications+2nd+edition&amp;amp;qid=1671502086&amp;amp;sprefix=design+dat%2Caps%2C249&amp;amp;sr=8-1&amp;amp;linkCode=li3&amp;amp;tag=sfdev-20&amp;amp;linkId=8fdb8d0465ac6de254f38f7f115d0b16&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il" rel="noopener noreferrer"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=1449373321&amp;amp;Format=SL250&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=sfdev-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fir-na.amazon-adsystem.com%2Fe%2Fir%3Ft%3Dsfdev-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3D1449373321" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fir-na.amazon-adsystem.com%2Fe%2Fir%3Ft%3Dsfdev-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3D1449373321" alt="" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This book has been recommended many times in numerous places, and it is indeed a great start to understand distributed system. Software keeps changing, but the fundamental principles remain the same. The book discusses the pros and cons of various technologies for processing and storing data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who should use it?
&lt;/h3&gt;

&lt;p&gt;If you don’t have much distributed system design knowledge or system design experience, and you have sufficient time to prepare, this book will give a good amount of exposure to what should you consider when designing a data intensive system and the trade offs.&lt;/p&gt;

&lt;h2&gt;
  
  
  2️⃣ &lt;strong&gt;&lt;a href="https://github.com/donnemartin/system-design-primer" rel="noopener noreferrer"&gt;The System Design Primer&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&gt;

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

&lt;p&gt;This is probably  the most popular open source system design repo. It covers the fundamental concepts used in system design, a basic framework to approach system design interview questions, as well as applying this framework to solve some common system design questions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who should use it?
&lt;/h3&gt;

&lt;p&gt;If you are going to have an interviewing soon and you don’t have a lot time to learn a lot of things, this primer repo should be handy&lt;/p&gt;

&lt;h2&gt;
  
  
  3️⃣ &lt;strong&gt;&lt;a href="https://amzn.to/3PE39ns" rel="noopener noreferrer"&gt;System Design Interview – An insider's guide Volume 1&lt;/a&gt;, &lt;a href="https://amzn.to/3YA1SlC" rel="noopener noreferrer"&gt;Volume 2&lt;/a&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF?keywords=system+design+interview+volume+1&amp;amp;qid=1671502551&amp;amp;sprefix=system+design+%2Caps%2C169&amp;amp;sr=8-1&amp;amp;linkCode=li3&amp;amp;tag=sfdev-20&amp;amp;linkId=fbccb1f568e6781af9a341776a0c7806&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il" rel="noopener noreferrer"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B08CMF2CQF&amp;amp;Format=SL250&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=sfdev-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fir-na.amazon-adsystem.com%2Fe%2Fir%3Ft%3Dsfdev-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB08CMF2CQF" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fir-na.amazon-adsystem.com%2Fe%2Fir%3Ft%3Dsfdev-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB08CMF2CQF" alt="" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/System-Design-Interview-Insiders-Guide/dp/1736049119?crid=1FJ4ZPKJP4NL1&amp;amp;keywords=system+design+interview+volume+2&amp;amp;qid=1671502556&amp;amp;sprefix=system+design+interview+volume+2%2Caps%2C164&amp;amp;sr=8-1&amp;amp;linkCode=li3&amp;amp;tag=sfdev-20&amp;amp;linkId=0d6cfaef99b8dbf5ce6bd3e45eba090a&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il" rel="noopener noreferrer"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=1736049119&amp;amp;Format=SL250&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=sfdev-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fir-na.amazon-adsystem.com%2Fe%2Fir%3Ft%3Dsfdev-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3D1736049119" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fir-na.amazon-adsystem.com%2Fe%2Fir%3Ft%3Dsfdev-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3D1736049119" alt="" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These books provide step by step detailed guide on how to answer common system design questions in an interview setting. I like how it applies the framework it suggested in every example and the trade offs parts a lot. The first book covers some common system design interview questions, the second book has much  more content and the trade off comparison is deeper&lt;/p&gt;

&lt;p&gt;I’ve also used the &lt;a href="https://www.educative.io/courses/grokking-the-system-design-interview" rel="noopener noreferrer"&gt;Grokking the System Design Interview&lt;/a&gt; course when there weren’t many other options available to study system design, however looking back now, I think it would be great if it doesn’t spent too much paragraphs on calculating the numbers since in real interviews, you just don’t have that much time to do these calculations and it is supposed to be a back of the envelope estimations.(However educative has released a few new versions of system design courses, I didn't read any these newer versions but hopefully they are better than the initial version).&lt;/p&gt;

&lt;h3&gt;
  
  
  Who should use it?
&lt;/h3&gt;

&lt;p&gt;If you are okay with spending a bit money to get the book(s), and your main purpose is to pass the system design interview with flying colours, not to also learn designing distributed system along the way. Then these books are worth the investment.&lt;/p&gt;

&lt;h2&gt;
  
  
  4️⃣ System Design Courses
&lt;/h2&gt;

&lt;p&gt;If you’ve ever searched system design videos on YouTube, then most likely you’ve seen this SystemDesignInterview &lt;a href="https://www.youtube.com/@SystemDesignInterview" rel="noopener noreferrer"&gt;channel&lt;/a&gt;, and if you’ve watched any of the videos in this channel, then most likely you would find it useful and in depth. Good news is that the creator recently release a course on &lt;a href="https://try.thinkific.com/og2j3hw2chuw" rel="noopener noreferrer"&gt;Thinkific&lt;/a&gt; called &lt;a href="https://systemdesignthinking.thinkific.com/courses/system-design-for-interviews-and-beyond" rel="noopener noreferrer"&gt;System Design for Interviews and Beyond&lt;/a&gt; course that covers system design interview extensively.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who should use it?
&lt;/h3&gt;

&lt;p&gt;If you are a video-watching type of learner, and you’ve already watched the creator’s videos(you liked them), then you don’t wanna miss this course.&lt;/p&gt;

&lt;h2&gt;
  
  
  5️⃣ Rinse and repeat with mock interviews
&lt;/h2&gt;

&lt;p&gt;After learning system design knowledge from any of the above resources, the next essential step is to do mock interviews as many as you can, so that you get to practise applying the framework you learned, such as clarifying requirement in an interview setting, how to communicate trade offs with the interviewer etc.&lt;/p&gt;

&lt;p&gt;I’ve used two platforms for mock interviews, one is &lt;strong&gt;&lt;a href="https://www.pramp.com/#/" rel="noopener noreferrer"&gt;Pramp&lt;/a&gt;&lt;/strong&gt; where get paired randomly with a peer then you interview each other and gather feedback, it’s free(recently acquired by &lt;a href="https://blog.tryexponent.com/pramp-joining-exponent/" rel="noopener noreferrer"&gt;Exponent&lt;/a&gt;), although for system design interview, sometimes you get an experienced peer sometimes you are the more experienced peer. If you really want more predictable interviewers, especially when you want to interview for the next level, I would say &lt;strong&gt;&lt;a href="http://interviewing.io/" rel="noopener noreferrer"&gt;interviewing.io&lt;/a&gt;&lt;/strong&gt; has interviewers who are more experienced but the session is a bit pricy.&lt;/p&gt;

&lt;p&gt;Hope this helps you to start your system design journey!&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>interview</category>
      <category>interviewing</category>
      <category>interviewpreparation</category>
    </item>
    <item>
      <title>📚3 Must Read Books for Programmers from Non-traditional Background</title>
      <dc:creator>devgrowth</dc:creator>
      <pubDate>Fri, 16 Dec 2022 16:00:00 +0000</pubDate>
      <link>https://forem.com/devgrowth/3-must-read-books-for-programmers-from-non-traditional-background-4mha</link>
      <guid>https://forem.com/devgrowth/3-must-read-books-for-programmers-from-non-traditional-background-4mha</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwai51c4v5rgr6ir5gyjs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwai51c4v5rgr6ir5gyjs.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1️⃣ &lt;strong&gt;&lt;a href="https://amzn.to/3YlW9zP" rel="noopener noreferrer"&gt;Code: The Hidden Language of Computer Hardware and Software&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczkoj8nmz66mwu3v91x7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczkoj8nmz66mwu3v91x7.png" alt="Code: The Hidden Language of Computer Hardware and Software"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a classic book I believe should be the first thing to read when you want to learn about how computer works. Even though the &lt;a href="https://amzn.to/3Yu64Du" rel="noopener noreferrer"&gt;first edition&lt;/a&gt; was published nearly two decades ago, the content is still relevant, and good news is that the &lt;a href="https://amzn.to/3V1PuYw" rel="noopener noreferrer"&gt;second edition&lt;/a&gt; was just released Aug 2022 with new chapters on clock, ALU etc, and the companion website, &lt;a href="http://codehiddenlanguage.com/" rel="noopener noreferrer"&gt;CodeHiddenLanguage.com&lt;/a&gt;, uses animated graphics of key circuits in the book to make computers even easier to comprehend.&lt;/p&gt;

&lt;p&gt;It covers how technology involved and computer was built, how do hardware components work together to run a program, the book answered my questions about what happens in a computer behind the scenes, and it laid foundation for me to grasp higher abstraction level mechanism such as operating system&lt;/p&gt;

&lt;p&gt;2️⃣ &lt;strong&gt;&lt;a href="https://amzn.to/3V4JE8R" rel="noopener noreferrer"&gt;Computer Systems: A Programmer's Perspective&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy01r38a3o622wi43g8ns.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy01r38a3o622wi43g8ns.png" alt="Computer Systems: A Programmer's Perspective"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is actually a text book used at Carnegie Mellon, it explains the underlying elements common among all computer systems and how they affect general application performance but from the programmer’s perspective, it’s a big book and indeed pricy, I was following the corresponding open sources course online, after a while, I just thought I better go with the hard copy so I can flip through them and work on the exercises. But if you don’t want to spend the money on hard copy, learn with the open source course videos should be equivalent from a self learning perspective.&lt;/p&gt;

&lt;p&gt;The book is in three main parts: program structure and execution, running programs on a system, interaction and communication between programs. I did not read this book from start to end, but rather dive into the chapters I want to learn more details or curious about, since I’ve already have some basic ideas after reading the first book. Depends on your learning style and your knowledge system, you can go through the chapters sequentially or read the first book and use this as some sort of advanced learning material. &lt;/p&gt;

&lt;p&gt;The benefit of the content in this book/course at least for me is that it provided extensive coverage on how a computer works and the practice problems to test if you really understand a concept.&lt;/p&gt;

&lt;p&gt;3️⃣ &lt;strong&gt;&lt;a href="https://amzn.to/3YqhRCK" rel="noopener noreferrer"&gt;Operating Systems: Three Easy Pieces&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;This book is the culmination of years of teaching intro to operating systems by by Remzi H and Andrea Arpaci-Dusseau to both undergraduates and graduates at the University of Wisconsin-Madison Computer Sciences department. &lt;/p&gt;

&lt;p&gt;It has three pieces: virtualization, concurrency, persistence, these are the fundamental concepts in OS construction. I find it works great with the operating system course the authors are teaching. Note that on the course page it lists CSAPP similar course as its prerequisite.&lt;/p&gt;

&lt;p&gt;After learning the fundamentals I’ve found it helps when I look at OS level metrics to identify system bottlenecks, and it was easier to understand the new technologies such as Docker, also the learnings at this abstraction level enables me to have a clearer picture when I debug or design a system, or even during system design interviews.&lt;/p&gt;

&lt;p&gt;Which one are you mostly interested in? Let me know what you think about using them as a start to get a better understanding of computer systems!🤓&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>programmer</category>
      <category>softwareengineering</category>
      <category>selflearning</category>
    </item>
  </channel>
</rss>
