<?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: Gabrielle Niamat</title>
    <description>The latest articles on Forem by Gabrielle Niamat (@pidgey0403).</description>
    <link>https://forem.com/pidgey0403</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%2F990011%2F23f7326d-f536-4f0e-b755-bd811288412b.jpg</url>
      <title>Forem: Gabrielle Niamat</title>
      <link>https://forem.com/pidgey0403</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pidgey0403"/>
    <language>en</language>
    <item>
      <title>Navigating the New Grad SWE Job Hunt: System Design Interviews - Part 1</title>
      <dc:creator>Gabrielle Niamat</dc:creator>
      <pubDate>Tue, 01 Jul 2025 15:00:00 +0000</pubDate>
      <link>https://forem.com/pidgey0403/navigating-the-new-grad-swe-job-hunt-system-design-interviews-pt-1-2b5</link>
      <guid>https://forem.com/pidgey0403/navigating-the-new-grad-swe-job-hunt-system-design-interviews-pt-1-2b5</guid>
      <description>&lt;h2&gt;
  
  
  &lt;u&gt;Table of Contents&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;1. Part 3: The System Design Interview&lt;br&gt;
2. Educational Resources 📚&lt;br&gt;
3. Computer and Application Architecture 💻&lt;br&gt;
    3.1 Computer Architecture&lt;br&gt;
    3.2 Application Architecture&lt;br&gt;
    3.3 Design Requirements&lt;br&gt;
    3.4 Considerations for Designing Scalable Systems&lt;br&gt;
4. Networking&lt;br&gt;
    4.1 Internet Protocol (IP) Addresses&lt;br&gt;
    4.2 Transmission Control Protocol (TCP) &amp;amp; User Datagram Protocol (UDP)&lt;br&gt;
    4.3 Domain Name System (DNS)&lt;br&gt;
    4.4 Anatomy of a URL&lt;br&gt;
5. Application Programming Interfaces (APIs) 👩🏼‍💻&lt;br&gt;
    5.1 What Are APIs?&lt;br&gt;
    5.2 HTTP Structure Breakdown&lt;br&gt;
    5.3 Designing Robust &amp;amp; Practical APIs&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u id="p3"&gt;1. Part 3: The System Design Interview&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Hi there! It’s been a while since the last post in this series; thanks for your patience, and welcome back! I’ve been busy settling into my new job, which I started last fall, but I’m excited to continue. Next up on our list is preparing for system design-style interviews and questions, so let’s dive in.&lt;/p&gt;

&lt;p&gt;Before we get into the core concepts, I want to clarify something: in my experience interviewing for new grad roles in Canada, system design interviews were rare. I’ve spoken with recruiters and candidates at FAANG companies who also confirmed they’re uncommon, if not absent, at the Junior/SWE I level. So, I suggest focusing on a high-level understanding of the fundamentals to set yourself up for success. 😊&lt;/p&gt;

&lt;p&gt;Here’s what we’ll cover in this series:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fundamentals&lt;/strong&gt;: Scalability, availability, throughput, reliability, fault tolerance, latency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Networking&lt;/strong&gt;: TCP/UDP, DNS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;APIs&lt;/strong&gt;: HTTP(s), REST, GraphQL, WebSockets, gRPC&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure&lt;/strong&gt;: Caching, Content Delivery Networks (CDNs), load balancing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Databases:&lt;/strong&gt; NoSQL, SQL, replication, sharding, object storage, CAP theorem&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture:&lt;/strong&gt; Microservices vs. monolithic architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to go further, try designing systems like a URL shortener or Google Drive, or revisit past projects and think about how you’d scale them. That said, this might be overkill—in most cases, a solid grasp of the topics above is more than enough to handle any entry-level system design questions.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;u id="r"&gt;2. Educational Resources 📚&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Before we take a glance at the most critical topics to know for your system design interviews, I'd like to provide a list of learning materials so you can dive deeper when you're ready to explore more.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;System Design repo by &lt;em&gt;systemdesign42&lt;/em&gt; - &lt;a href="https://github.com/systemdesign42/system-design" rel="noopener noreferrer"&gt;https://github.com/systemdesign42/system-design&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;System Design Primer repo by &lt;em&gt;donnnemartin&lt;/em&gt; - &lt;a href="https://github.com/donnemartin/system-design-primer" rel="noopener noreferrer"&gt;https://github.com/donnemartin/system-design-primer&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;NeetCode's&lt;/em&gt; System Design for Beginners course - &lt;a href="https://neetcode.io/courses/system-design-for-beginners" rel="noopener noreferrer"&gt;https://neetcode.io/courses/system-design-for-beginners&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;u id="c"&gt;3. Computer and Application Architecture 💻&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;To start, let’s look at the fundamentals of computer architecture before moving on to how we build systems that scale.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u id="ca"&gt;3.1 Computer Architecture&lt;/u&gt;
&lt;/h3&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%2Ffdt5fvqovhsei5fyeh8f.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%2Ffdt5fvqovhsei5fyeh8f.png" alt="Memory hierarchy diagram in computer architecture" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Be familiar with the key components of a computer’s hardware architecture, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Disks&lt;/strong&gt;: Persistent, non-volatile storage. Know the difference between &lt;strong&gt;Hard Disk Drives (HDDs)&lt;/strong&gt; and &lt;strong&gt;Solid State Drives (SSDs)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Random Access Memory (RAM)&lt;/strong&gt;: Temporary storage used to hold data for quick access by the CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Central Processing Unit (CPU)&lt;/strong&gt;: The “brain” of the computer that executes instructions and handles computation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cache (SRAM)&lt;/strong&gt;: A small, high-speed memory located close to the CPU that stores frequently accessed data to reduce latency.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You should understand how these components compare in terms of read/write speed, access latency, and storage capacity at a high level.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u id="aa"&gt;3.2 Application Architecture&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;While computer architecture focuses on hardware within a single machine, application architecture looks at how thousands of computers (or nodes) work together to run modern software and services. Key concepts include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Client-Server Model&lt;/strong&gt;: Understand the basic interaction where clients (e.g. browsers or apps) send requests and servers respond with data or services.&lt;/li&gt;
&lt;li&gt;Scaling:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vertical Scaling&lt;/strong&gt;: Adding more resources (e.g. CPU, memory) to a single server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Horizontal Scaling&lt;/strong&gt;: Adding more machines to handle the load. This is generally preferred in large systems for greater reliability and scalability and is often supported by &lt;strong&gt;load balancers&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Supporting Services: Large-scale systems require more than just clients and servers. You’ll often see tools for:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Logging&lt;/strong&gt; (e.g. ELK stack) to capture app behaviour&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring&lt;/strong&gt; (e.g. DataDog dashboards) to track performance metrics and alerts for errors, latency, and usage patterns.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;u id="dr"&gt;3.3 Design Requirements&lt;/u&gt;
&lt;/h3&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%2Fyd85buc6qrvwk5r9x83g.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%2Fyd85buc6qrvwk5r9x83g.png" alt="Client uptime promises" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At a high level, system design comes down to solving three fundamental challenges:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Moving Data: Efficiently transferring data between geographically distributed clients and servers.&lt;/li&gt;
&lt;li&gt;Storing Data: Ensuring data persistence and accessibility.&lt;/li&gt;
&lt;li&gt;Transforming Data: Processing and manipulating data to derive value.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You’ll also want to understand how &lt;strong&gt;Service Level Agreements (SLAs)&lt;/strong&gt; and &lt;strong&gt;Service Level Objectives (SLOs)&lt;/strong&gt; shape system design:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SLAs: A formal contract with clients defining guarantees like up-time (e.g. 99.999% monthly availability). If the SLA isn’t met, providers often owe financial compensation.&lt;/li&gt;
&lt;li&gt;SLOs: Internal targets that help ensure SLAs are consistently met (e.g. 99.99% response time under 200ms). These agreements are a major driver behind the focus on up-time, fault tolerance, and reliability in distributed system design.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;u id="cdss"&gt;3.4 Considerations for Designing Scalable Systems&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;When designing systems at scale, consider these critical factors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Availability&lt;/strong&gt;: The percentage of time a system is operational. Measured in "nines" (e.g. 99.999% availability equates to ~5 minutes of downtime annually).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;: The likelihood a system operates without failure over a specified period.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fault Tolerance&lt;/strong&gt;: The system's ability to detect and recover from failures without affecting functionality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redundancy&lt;/strong&gt;: Backup resources, such as shadow servers, to maintain service continuity during failures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Throughput&lt;/strong&gt;: The volume of operations a system can handle within a given time frame.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latency&lt;/strong&gt;: The round-trip time for a request to travel from client to server and back.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;u id="n"&gt;4. Networking&lt;/u&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;u id="nb"&gt;4.1 Internet Protocol (IP) Addresses&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;Next up, let’s cover some networking fundamentals. You’ve probably heard the term IP address tossed around — and maybe even configured one before — but here’s a quick refresher just in case:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;IP Address&lt;/strong&gt;: A unique identifier for every device, allowing them to receive and send data on a network. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Think of it like a digital home address for your device. Every phone, computer, or smart toaster that connects to a network gets one so it can send and receive information.&lt;/p&gt;

&lt;p&gt;There are two main types of IP addressing systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IPv4&lt;/strong&gt;: The older, more common one - uses 32-bit addresses (e.g. &lt;code&gt;192.168.0.1&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IPv6&lt;/strong&gt;: The newer system - uses 128-bit addresses to support the massive growth of internet-connected devices (e.g. &lt;code&gt;3002:0bd6:0000:0000:0000:ee00:0033:6778&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When multiple apps run on the same device (which they always do), &lt;strong&gt;ports&lt;/strong&gt; help keep things organized:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Think of a port like an apartment number in a building. It lets your device know which app a packet of data is meant for. For example, port 80 is typically used for HTTP (web browsing).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, how does data get from one device to another?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Internet Protocol (IP)&lt;/strong&gt; breaks information into &lt;strong&gt;data packets&lt;/strong&gt; — each with a header (think: address info), the actual content (payload), and a trailer (extra info like error checking).&lt;/li&gt;
&lt;li&gt;Devices can live on &lt;strong&gt;public networks&lt;/strong&gt;, where they have a globally unique IP address assigned by an Internet Service Provider (ISP), making them reachable from anywhere.&lt;/li&gt;
&lt;li&gt;Or they can be part of &lt;strong&gt;private networks&lt;/strong&gt;, like your home Wi-Fi, where devices use local IPs and aren’t directly accessible from the outside world.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are two types of IP addresses you’ll come across:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Static IP&lt;/strong&gt;: Manually set and doesn't change - useful for things like servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic IP&lt;/strong&gt;: Assigned temporarily by a network (usually via DHCP), and it can change over time - which is what most home devices use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;u id="tcp"&gt;4.2 Transmission Control Protocol (TCP) &amp;amp; User Datagram Protocol (UDP)&lt;/u&gt;
&lt;/h3&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%2Fppi0y2pzzgidlkabr115.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%2Fppi0y2pzzgidlkabr115.png" alt="TCP vs UDP benefits and drawbacks" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When data is sent across a network, it's broken into smaller pieces called &lt;strong&gt;packets&lt;/strong&gt;. Two of the most common transport layer protocols that handle this process are &lt;strong&gt;TCP&lt;/strong&gt; and &lt;strong&gt;UDP&lt;/strong&gt;. Both serve different purposes depending on what the application needs: reliability or speed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Transmission Control Protocol (TCP):&lt;/strong&gt; TCP is all about &lt;strong&gt;reliability&lt;/strong&gt;. It ensures that packets arrive &lt;strong&gt;in order&lt;/strong&gt;, &lt;strong&gt;without errors&lt;/strong&gt;, and &lt;strong&gt;without missing anything&lt;/strong&gt;. If any packets are lost or arrive out of sequence, TCP handles re-transmission and reordering behind the scenes. This makes it ideal for tasks where data integrity is critical - like loading web pages, downloading files, or sending emails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Datagram Protocol (UDP):&lt;/strong&gt; UDP focuses on &lt;strong&gt;speed&lt;/strong&gt; over reliability. It sends packets without waiting for acknowledgements, meaning there's no guarantee they’ll arrive in the right order - or at all. That sounds risky, but it’s perfect for use cases like live video streaming, online gaming, or VoIP, where &lt;strong&gt;low latency&lt;/strong&gt; is more important than perfect accuracy. If a few packets drop, the user experience often isn't noticeably affected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;TCP&lt;/strong&gt; when you need &lt;strong&gt;accuracy and consistency&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;UDP&lt;/strong&gt; when you need &lt;strong&gt;speed and real-time performance&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;u id="dns"&gt;4.3 Domain Name System (DNS)&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;DNS is like the Internet's phone book — a decentralized, hierarchical naming system that translates human-readable website names into numerical IP addresses.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For example, when you type &lt;code&gt;google.com&lt;/code&gt;, DNS translates it into the corresponding IP address that your browser can use to find Google’s servers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;u id="anat"&gt;4.4 Anatomy of a URL&lt;/u&gt;
&lt;/h3&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%2Fyl32uxmhuk8zxrfvbjzu.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%2Fyl32uxmhuk8zxrfvbjzu.png" alt="Anatomy of a URL" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You probably already know what a URL is, but let’s quickly refresh the concept just in case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;URL&lt;/strong&gt; stands for &lt;strong&gt;Uniform Resource Locator&lt;/strong&gt;, and it’s the address used to access resources online, like web pages, files, images, or APIs. A URL typically includes a &lt;strong&gt;protocol&lt;/strong&gt;, a &lt;strong&gt;domain name&lt;/strong&gt;, and an optional &lt;strong&gt;path&lt;/strong&gt; to a specific resource.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Protocol&lt;/strong&gt; - The protocol (also called the &lt;em&gt;scheme&lt;/em&gt;) defines how data is transferred:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The most common are &lt;strong&gt;HTTP&lt;/strong&gt; and &lt;strong&gt;HTTPS&lt;/strong&gt; (the secure version).&lt;/li&gt;
&lt;li&gt;Others include &lt;strong&gt;FTP&lt;/strong&gt; (for file transfers) and &lt;strong&gt;SSH&lt;/strong&gt; (for secure shell access to servers).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Domain&lt;/strong&gt; - The domain has several parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subdomain:&lt;/strong&gt; A prefix that defines a distinct section of a site. For example, &lt;code&gt;blog.example.com&lt;/code&gt; uses &lt;code&gt;blog&lt;/code&gt; as a subdomain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary Domain:&lt;/strong&gt; The main part of the domain, like &lt;code&gt;example&lt;/code&gt; in &lt;code&gt;example.com&lt;/code&gt;. This is the part you typically purchase from a domain registrar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Top-Level Domain (TLD):&lt;/strong&gt; The suffix, such as &lt;code&gt;.com&lt;/code&gt;, &lt;code&gt;.org&lt;/code&gt;, or &lt;code&gt;.tech&lt;/code&gt;. TLDs often give context about the site's purpose, location, or industry.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;u id="a"&gt;5. Application Programming Interfaces (APIs) 👩🏼‍💻&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;APIs are the glue of modern software. They define how different systems, services, or components talk to each other, often over a network, without needing to know how the other is built internally. Let’s break down some common paradigms, how APIs work under the hood, and what makes a well-designed API.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u id="wat"&gt;5.1 What Are APIs?&lt;/u&gt;
&lt;/h3&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%2Forrv13y91u0za0le39t5.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%2Forrv13y91u0za0le39t5.png" alt="API types" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;APIs come in many forms, but here are a few popular styles you'll likely encounter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;REST (Representational State Transfer):&lt;/strong&gt; One of the most common architectural styles. It uses standard HTTP methods (GET, POST, PUT, DELETE) and works with resources identified via URLs. REST APIs are stateless, widely supported, and easy to understand, making them great for most general use cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GraphQL:&lt;/strong&gt; A more flexible alternative to REST, GraphQL lets clients specify exactly what data they need - no more, no less. It's powerful for front-end-heavy applications or situations where bandwidth is a concern. However, it introduces added complexity and requires more tooling to manage effectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;WebSockets:&lt;/strong&gt; Unlike HTTP-based APIs (which follow a request/response model), WebSockets provide full-duplex communication. This means both the client and server can send messages anytime. It’s perfect for real-time applications like chat, multiplayer games, or live dashboards.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;gRPC:&lt;/strong&gt; Developed by Google, gRPC uses Protocol Buffers (a compact binary format) and is great for high-performance, internal service communication, especially in microservice architectures. It’s strongly typed, efficient, and supports bi-directional streaming, but it's less human-readable and trickier to debug compared to REST.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GraphQL is great for apps where the client needs precise control over the shape of data (e.g. mobile apps on limited bandwidth). On the other hand, gRPC is often used in high-throughput, service-to-service communication within backends.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u id="breakdown"&gt;5.2 HTTP Structure Breakdown&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;Most APIs, especially REST and GraphQL, are built on top of HTTP, so it’s worth understanding how it works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Client-Server Model:&lt;/strong&gt; The client (e.g., your browser or app) makes a request to the server, which processes it and sends back a response.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Requests and Responses&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Headers&lt;/strong&gt; (metadata like content type or authorization)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Body&lt;/strong&gt; (the data being sent or returned)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;SSL/TLS:&lt;/strong&gt; Secure communication happens over HTTPS, which encrypts data using SSL/TLS to protect against eavesdropping or tampering.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;u id="design"&gt;5.3 Designing Robust &amp;amp; Practical APIs&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;Good API design is essential for usability, maintainability, and scalability. A few core principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity:&lt;/strong&gt; Keep endpoints predictable and easy to use. Stick to consistent naming conventions and avoid unnecessary complexity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency:&lt;/strong&gt; Follow established standards (like using plural nouns for REST resources) and make behaviour uniform across endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Versioning:&lt;/strong&gt; Use clear versioning (e.g., &lt;code&gt;/v1/users&lt;/code&gt;) to avoid breaking clients when making changes.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pagination &amp;amp; Streaming:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For large datasets, implement &lt;strong&gt;pagination&lt;/strong&gt; (limit/offset or cursor-based) to avoid overloading the client or server.&lt;/li&gt;
&lt;li&gt;For real-time or continuous data, consider &lt;strong&gt;streaming&lt;/strong&gt; responses — either via HTTP streaming, WebSockets, or gRPC.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




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

&lt;p&gt;If you’ve made it this far—congratulations! System design fundamentals are no small feat, but I hope this overview has helped you get a solid start. In the next article, we’ll dive into caching (including CDNs, proxies, and hashing strategies for load balancers) and storage concepts like SQL vs. NoSQL databases.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>interview</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Navigating the New Grad SWE Job Hunt: Behavioural Interviews</title>
      <dc:creator>Gabrielle Niamat</dc:creator>
      <pubDate>Mon, 07 Oct 2024 12:00:00 +0000</pubDate>
      <link>https://forem.com/pidgey0403/tips-for-navigating-the-new-gradjunior-swe-job-hunt-part-2-behavioural-interviews-3pmd</link>
      <guid>https://forem.com/pidgey0403/tips-for-navigating-the-new-gradjunior-swe-job-hunt-part-2-behavioural-interviews-3pmd</guid>
      <description>&lt;h2&gt;
  
  
  &lt;u&gt;Table of Contents&lt;/u&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Part 2: The Behavioural Interview&lt;/li&gt;
&lt;li&gt;Personality Questions&lt;/li&gt;
&lt;li&gt;Qualification Questions&lt;/li&gt;
&lt;li&gt;Problem-Solving Questions&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;u id="p2"&gt;Part 2: The Behavioural Interview&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Welcome back 👋🏼&lt;/p&gt;

&lt;p&gt;Let’s dive right into Part 2: preparing for the &lt;em&gt;behavioural interview&lt;/em&gt; round. You’ll face these questions in nearly every stage, from phone screens to bar raisers. In my experience, they pop up all throughout the Canadian new grad interview process. If you're like me and need to practice what you're going to say before you actually say it, I hope this part of the article helps you feel more confident and nail your answers—so you’re not just winging it through trial and error during the interviews.&lt;/p&gt;

&lt;p&gt;Let's break down behavioural interviews into the 3 key areas they're assessing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Your personality&lt;/strong&gt; – Do you fit into the team/company’s engineering culture?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your qualifications&lt;/strong&gt; – What experience do you have with different frameworks, languages, and tech stacks?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your problem-solving abilities&lt;/strong&gt; - Given a complex situation, how do you go about solving it?&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;u id="p"&gt;1 - Personality Questions&lt;/u&gt;
&lt;/h3&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%2Fatlassianblog.wpengine.com%2Fwp-content%2Fuploads%2F2019%2F07%2Fpersonality-tests_featured%402x-1560x760.png" class="article-body-image-wrapper"&gt;&lt;img width="800" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fatlassianblog.wpengine.com%2Fwp-content%2Fuploads%2F2019%2F07%2Fpersonality-tests_featured%402x-1560x760.png" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Personality questions, regardless of who asks them, are all about &lt;strong&gt;getting to know you&lt;/strong&gt;. They’re interested in learning about your work style, how you handle conflicts, whether you prefer working independently or in groups, and more. Being able to answer behavioural questions using the &lt;a href="https://www.themuse.com/advice/star-interview-method" rel="noopener noreferrer"&gt;STAR format&lt;/a&gt; is key, and I recommend preparing &lt;strong&gt;at least&lt;/strong&gt; two examples for each type of question.&lt;/p&gt;

&lt;p&gt;Here’s a comprehensive list of all the personality-type questions I’ve ever been asked, along with specific advice for some of them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Introduce yourself / Tell me a bit about your background.

&lt;ul&gt;
&lt;li&gt;list your educational and work experience&lt;/li&gt;
&lt;li&gt;explain any achievements that you're proud of and showcase your expertise&lt;/li&gt;
&lt;li&gt;discuss where you see yourself headed in the future&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Walk me through your resume.&lt;/li&gt;

&lt;li&gt;What is your biggest strength/weakness as it relates to this role (e.g. a technical strength)?&lt;/li&gt;

&lt;li&gt;Describe a time when you had to push or advocate for something in a project. What impact did it have?

&lt;ul&gt;
&lt;li&gt;Pick an example that showcases your leadership skills, and ability to communicate while creating clarity in times of uncertainty&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Why did you choose to pursue software engineering?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Try to avoid saying 'money' or 'flexibility to work where you want'. Great candidates stand out when asked this question by giving a memorable story that sets them apart from others. &lt;/li&gt;
&lt;li&gt;For example, when I was asked this question, I shared that during high school, I played an &lt;a href="https://en.wikipedia.org/wiki/Otome_game" rel="noopener noreferrer"&gt;otome game&lt;/a&gt; where the characters used a chatroom app they had built from scratch. This sparked my interest in how software could be developed to meet specific needs, inspiring me to explore how I could do the same.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Tell me about a time you received negative or constructive feedback and how you responded.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Give an example of when you took initiative or leadership during a challenging time at work.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;What are you looking for in your next role?&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Where do you see yourself in 5 years?&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Why did you apply for this role/company?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is really asking why they should hire you over other candidates. Be sure to list your technical competencies, as well as anything that stood out about the company/position that enticed you to apply.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;What part of the tech stack do you enjoy the most?&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Describe a time when you had a conflict with a coworker or team, and how you resolved it.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Explain a difficult bug you fixed in the past 6 months.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This question seeks to dive deeper into your problem-solving abilities and how you unblock yourself when stuck. Focus on explaining things like time-blocking, independent investigation, consulting various resources, and pair-programming with other devs.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Walk me through a project you’re most proud of and why. What challenges did you face? Describe them in technical detail and how you solved them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Be ready to discuss at least 1-2 challenges for each experience and project on your resume.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;How do you handle pressure and tight deadlines? Give an example from work.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;How do you de-stress and relax?&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;The goal of these questions is to understand your personality, work style, and communication skills. They also help the interviewer assess whether you’re approachable, friendly, and able to clearly articulate your thoughts. If you can keep the conversation engaging, maybe make your interviewer smile or laugh with a good story, you're on the right track. The key is to present yourself as someone who is not only pleasant to work with but &lt;strong&gt;also&lt;/strong&gt; capable of performing well on the team. Be authentic, and have a strong story about why you chose this career and company—it’ll help you stand out, especially when competing against similarly qualified candidates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip&lt;/strong&gt;: Before my interviews, I always reviewed the job posting I applied to and checked &lt;a href="https://www.glassdoor.ca/Community/index.htm" rel="noopener noreferrer"&gt;Glassdoor&lt;/a&gt; reviews for insights on the interview process. Glassdoor is an invaluable resource, and many people share exact questions they were asked, along with details about the number of interview rounds. Definitely use it to get a feel for the questions you might face.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u id="q"&gt;2 - Qualification Questions&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExOGgwNDQyamJjZ2d6d3N0b3Q5djNqOWRpZmswZW15amtvYXo5MWU2eSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/1iu8uG2cjYFZS6wTxv/giphy-downsized-large.gif" class="article-body-image-wrapper"&gt;&lt;img width="306" src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExOGgwNDQyamJjZ2d6d3N0b3Q5djNqOWRpZmswZW15amtvYXo5MWU2eSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/1iu8uG2cjYFZS6wTxv/giphy-downsized-large.gif" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second type of interview questions you’ll encounter dive deeper into your technical background and previous experiences. Since I had three software engineering internships and one full-stack project on my resume, I was often asked to explain what I did in each role, which part of the tech stack I’m most comfortable with, and some of the challenges I faced in those positions.&lt;/p&gt;

&lt;p&gt;These questions require thorough preparation, so my advice is to sit down and think through how you’d expand on each bullet point in your resume. Ask yourself the following for &lt;em&gt;every&lt;/em&gt; experience, project, or club you’ve listed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can I give a high-level overview of my responsibilities and the impact of my work?&lt;/li&gt;
&lt;li&gt;What challenges did I face, and how did I overcome them?&lt;/li&gt;
&lt;li&gt;Can I explain the technologies and frameworks I used, and why I chose them?&lt;/li&gt;
&lt;li&gt;Did I improve any processes? If not, is there anything I would improve now?

&lt;ul&gt;
&lt;li&gt;You should &lt;strong&gt;always&lt;/strong&gt; have something to say regarding what you can improve, from processes to documentation to architecture etc. The important thing is that you've reflected and thought about how to make your work more efficient, which is a positive signal to interviewers. &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Try to prepare answers for these types of questions, focusing on the technical details to highlight your skills and expertise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What tech stack did you use and why?&lt;/li&gt;
&lt;li&gt;What projects did you work on (in school and at previous jobs)?&lt;/li&gt;
&lt;li&gt;What was the most challenging situation in your previous role, and how did you solve it?&lt;/li&gt;
&lt;li&gt;Have you ever creatively solved a problem or challenge? How did you approach it?&lt;/li&gt;
&lt;li&gt;How did you resolve a disagreement with a coworker or classmate? (This could be about code style, architecture decisions, or a PR that got held up due to comments.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make sure you fully understand the technologies you’ve listed on your resume. While my resume suggests that most of my experience is in frontend development, my personal interest is in backend engineering, so I made sure I could speak confidently about both areas. For &lt;strong&gt;backend topics&lt;/strong&gt;, I brought up concepts like SQL vs. NoSQL databases, REST vs. GraphQL APIs, sharding, scalability (horizontal vs. vertical), and CDNs (Content Delivery Networks) when discussing my design decisions for personal projects. On the &lt;strong&gt;frontend&lt;/strong&gt; side, I made sure I could explain concepts like state and props, dependency injection, lazy loading, debouncing, and asynchronous JavaScript—especially when talking about my past work with frameworks like React.js, Vue.js, and Angular.js.&lt;/p&gt;

&lt;p&gt;It’s important to be well-versed in both the areas you’ve worked in and the areas you want to move into. That way, if an engineer or hiring manager asks you about a particular technology or concept, you’re not caught off guard.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u id="ps"&gt;3 - Problem-Solving Questions&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExZDlicXIzZ3JqYnp1ZDZsdGlnbTVwN3l3dTJjZWp1emxtNWF1eXBhaSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3V33ssIjg0BUGafaU0/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="480" src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExZDlicXIzZ3JqYnp1ZDZsdGlnbTVwN3l3dTJjZWp1emxtNWF1eXBhaSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3V33ssIjg0BUGafaU0/giphy.gif" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition to personality and qualification questions, you’ll likely encounter problem-solving or technical questions where interviewers assess your ability to think on your feet. These questions might not always be a formal coding challenge; sometimes, they’ll involve discussing how you’d approach a technical problem verbally, walking the interviewer through your thought process.&lt;/p&gt;

&lt;p&gt;I encountered quite a few of these types of questions, and it really helps to be comfortable with high-level concepts, including some system design topics. Here are a few examples of the kinds of verbal technical questions you might face:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How would you optimize the performance of the frontend for an application that’s experiencing slow load times?&lt;/li&gt;
&lt;li&gt;Can you explain the difference between synchronous and asynchronous programming, and when you would use each?&lt;/li&gt;
&lt;li&gt;What is the event loop?&lt;/li&gt;
&lt;li&gt;What’s your approach to debugging a large codebase when you’re unfamiliar with the code?&lt;/li&gt;
&lt;li&gt;Would you choose to design a REST API or GraphQL API for an application like Twitter, and why? Walk me through the basic endpoints you’d create.&lt;/li&gt;
&lt;li&gt;What kind of database (NoSQL, SQL, document) would you choose to store X and why?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In these questions, the focus is on how you break down a problem, consider trade-offs, and arrive at a solution. The interviewers aren’t necessarily looking for a perfect solution but rather your ability to communicate your thought process clearly, collaborate on ideas, and show that you can handle real-world technical challenges.&lt;/p&gt;

&lt;p&gt;Tips for tackling problem-solving questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Think out loud:&lt;/strong&gt; Let the interviewer in on your thought process, even if you’re not 100% sure of the answer right away. This helps show how you approach challenges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consider trade-offs:&lt;/strong&gt; Be ready to discuss the pros and cons of different solutions. For example, if you’re asked about scaling an application, you might talk about database sharding vs. vertical scaling, or the trade-offs between performance and cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don’t panic if you don’t know something:&lt;/strong&gt; If you’re not familiar with a specific concept or technology, be honest about it, but try to relate it to something you do know. You can also talk about how you’d go about researching and solving the problem. I’ve had moments where I didn’t have all the specifics, but I drew parallels to similar knowledge I had, and the interviewers were fine with that.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask clarifying questions:&lt;/strong&gt; Don’t be afraid to ask for more information if the problem is vague. Asking good questions shows that you’re thinking critically about the problem.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>beginners</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Tips for working from the office?</title>
      <dc:creator>Gabrielle Niamat</dc:creator>
      <pubDate>Wed, 02 Oct 2024 13:56:17 +0000</pubDate>
      <link>https://forem.com/pidgey0403/tips-for-working-from-the-office-5810</link>
      <guid>https://forem.com/pidgey0403/tips-for-working-from-the-office-5810</guid>
      <description>&lt;p&gt;With more companies announcing mandatory return to office (RTO) policies, I’m curious — how are other developers handling the shift back to in-person work? Do you prefer working from the office, or are you still team WFH?&lt;/p&gt;

&lt;p&gt;I recently accepted a new grad offer as a Software Engineer I, and  starting soon, I’ll be commuting to the office 3-4 days a week in  downtown. My past internships were all remote, so this is a large shift for me.&lt;/p&gt;

&lt;p&gt;For those of you who have already worked in-office, I’d love to hear your advice on a few things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How do you handle the fatigue from commuting?&lt;/li&gt;
&lt;li&gt;If you’ve ever felt awkward or shy in the office, how did you overcome it?&lt;/li&gt;
&lt;li&gt;What’s typical attire like for engineering teams these days?&lt;/li&gt;
&lt;li&gt;Do you usually pack your lunch, or grab something near the office?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For those who work in-office or have a hybrid schedule, I’d really appreciate any tips on making the most of the experience. Thanks! 😊&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>discuss</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Navigating the New Grad SWE Job Hunt: Landing Interviews</title>
      <dc:creator>Gabrielle Niamat</dc:creator>
      <pubDate>Wed, 02 Oct 2024 13:53:19 +0000</pubDate>
      <link>https://forem.com/pidgey0403/navigating-the-new-gradjunior-swe-job-hunt-part-1-landing-interviews-1j3</link>
      <guid>https://forem.com/pidgey0403/navigating-the-new-gradjunior-swe-job-hunt-part-1-landing-interviews-1j3</guid>
      <description>&lt;h2&gt;
  
  
  &lt;u&gt;Table of Contents&lt;/u&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Part 1 - Landing Interviews&lt;/li&gt;
&lt;li&gt;Writing a Software Engineer Resume&lt;/li&gt;
&lt;li&gt;My Current Software Engineer Resume&lt;/li&gt;
&lt;li&gt;Reflect - Are you focusing on the right thing?&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;u id="intro"&gt;Introduction&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Hi everyone, it’s been a while since my last post—I hope you’ve all been doing well. Today, I want to share my journey in searching for a new graduate software engineer position here in Canada. I’ll also provide a timeline of my study process and some advice based on my recent interview experiences. I know the job market has been tough over the last year or two, and many of my fellow alumni have struggled to land interviews, so I hope my insights will help you approach your job search with more confidence.  &lt;/p&gt;

&lt;p&gt;To start, a little background about me: I’m Gabby, a Canadian citizen and recent Computer Science graduate from Western University. I completed my degree in April 2024 and was fortunate enough to secure 3 software engineering internships during my undergrad, primarily focused on fullstack development. After graduation, I took about two months off to relax and spend time with my family. I started applying for jobs seriously in mid-July and continued through to the end of September. While I didn’t keep track of the exact number of applications (and honestly, I don’t think you should either), I progressed to the final rounds with three companies and received an offer from a Fortune 500 company 🎊.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExNzZtMzI4ZWpndmZnMjRtcGp6Nm85aGZnOG4xY2VsdDFqNTYxaW5xcyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xT8qBqNisx9dkXWAX6/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="480" src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExNzZtMzI4ZWpndmZnMjRtcGp6Nm85aGZnOG4xY2VsdDFqNTYxaW5xcyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xT8qBqNisx9dkXWAX6/giphy.gif" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;During my time off, I treated the break as an opportunity to recharge and prepare for interviews. I focused primarily on the &lt;a href="https://neetcode.io/practice" rel="noopener noreferrer"&gt;Neetcode 150&lt;/a&gt; list of questions, following Neetcode’s beginner and advanced roadmaps. In hindsight, while I dedicated most of my time to data structures and algorithms (DS&amp;amp;A) preparation, I’ve realized that behavioral interviews and resume preparation &lt;strong&gt;were equally—if not more—important&lt;/strong&gt;. From my experience, non-FAANG companies emphasized behavioral interviews far more than Leetcode-style technical interviews, and these were often the key factors in determining the &lt;strong&gt;outcome&lt;/strong&gt; of your application.&lt;/p&gt;

&lt;p&gt;A quick disclaimer: I’m writing this from the perspective of a typical CS graduate seeking full-time employment. By "typical," I mean someone who isn’t specifically aiming for top FAANG or quant firms. There are plenty of great resources available if you're targeting those highly competitive positions, and some of the ones I mention can certainly help you get started on that path. However, the focus of these articles is to provide young professionals with the tools they need to feel confident interviewing for roles that prioritize work-life balance (WLB) at a variety of companies, not just exclusively FAANG.&lt;/p&gt;

&lt;p&gt;Of course, working for a prestigious company that offers top-of-market TC is amazing — but please don’t feel like that’s the only option. During my undergrad, I saw a lot of "FAANGMULA or bust" mentalities in students that, in the end, only hurt the confidence and resiliency of those who didn’t land those roles.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u id="p1"&gt;Part 1 - Landing Interviews 🔎&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Before you start sinking hundreds of hours into interview prep, it's crucial to ensure you can actually &lt;strong&gt;land&lt;/strong&gt; interviews in the first place. One common cause of burnout during the job search is spending months on Leetcode and cold applying to jobs, only to end up with no interviews, feeling completely drained, and realizing you haven’t made any progress with companies that are hiring 😪. I also think this might be one of the hardest parts of the job search, so it's essential to make yourself as competitive as possible.&lt;/p&gt;

&lt;p&gt;In Part 4, I’ll discuss a bit more regarding how networking and joining local tech communities can help you secure referrals and uncover unadvertised roles through word-of-mouth (see: the &lt;a href="https://www.indeed.com/career-advice/finding-a-job/hidden-job-market" rel="noopener noreferrer"&gt;hidden job market&lt;/a&gt;). For now though, I want to focus on optimizing your resume, LinkedIn, and social media profiles to increase your chances of passing ATS filters and recruiter resume screens.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u id="a"&gt;Writing a Software Engineer Resume&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;There’s a lot of conflicting advice out there about resume best practices, but here are some guidelines I strongly recommend:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Keep your resume to a maximum of 1 page&lt;/em&gt; - unless you have more than 10 years of experience&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;International candidates&lt;/em&gt;: Be sure to indicate if you need visa sponsorship or if you already have a visa and don't require sponsorship.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Avoid listing every achievement&lt;/em&gt; - While professional publications and certifications are great, you likely don’t need to include them unless they’re directly relevant to the positions you’re applying for.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Skip listing hobbies, interests, or the high school you attended&lt;/em&gt; (assuming you have college or university experience) — this doesn’t add any value to your application&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Don't include a professional summary&lt;/em&gt; - again, unless you have enough seniority to justify it&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Stick to a single-column format for your resume&lt;/em&gt; — it’s easier to read for both ATS systems and recruiters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you haven’t come across it yet, I highly recommend checking out the &lt;a href="https://www.techinterviewhandbook.org/resume/#how-to-write-work-experience-for-a-software-engineer" rel="noopener noreferrer"&gt;Tech Interview Handbook&lt;/a&gt;. It’s an excellent resource that goes way more in depth on resume writing, and also covers how to prepare for every stage of the software engineering interview process 🫶🏼.&lt;/p&gt;

&lt;p&gt;If you're struggling to condense your experience into concise bullet points, I completely understand — it’s tough! Writing a resume requires deep reflection on the work you did, the projects you were involved in, and the impact you had. I’ve found that many people are pretty darn good at explaining their impact verbally, but struggle to translate that into written text on paper. If that sounds like you, try using voice-to-text software to capture your thoughts. You can also ask friends to quiz you about your past internships—it’s a solid way to uncover the technologies you used and the impact you made.&lt;/p&gt;

&lt;p&gt;Some additional tips for writing your resume include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you’re stuck on what to write, start by &lt;em&gt;listing everything you’ve done&lt;/em&gt;. It’s easier to refine from too much detail than from too little.&lt;/li&gt;
&lt;li&gt;Don’t hesitate to reach out to classmates, friends, or family for &lt;em&gt;multiple rounds of edits on your resume&lt;/em&gt;. It’s normal to go through several revisions before reaching a final version.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Don’t rely solely on friends for feedback&lt;/em&gt;. In my experience, close friends may hold back from being overly critical. Consider taking advantage of resources like ChatGPT, and online communities like &lt;a href="https://bobatalks.com/" rel="noopener noreferrer"&gt;BobaTalks&lt;/a&gt; (their &lt;a href="https://discord.com/servers/bobatalks-1029965764960210945" rel="noopener noreferrer"&gt;Discord server&lt;/a&gt; offers excellent feedback from mentors), and &lt;a href="https://www.cscareers.dev/" rel="noopener noreferrer"&gt;CS Careers Dev&lt;/a&gt; (their &lt;a href="https://discord.com/invite/cscareers" rel="noopener noreferrer"&gt;Discord server&lt;/a&gt; provides brutally honest resume reviews, which is exactly what everyone needs).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Tailor your resume to the roles you’re targeting&lt;/strong&gt;&lt;/em&gt;. For instance, I’ve seen people focus heavily on including frontend development experience while applying for full-stack roles, only to be frustrated when they get rejected. Make sure your resume aligns with the types of roles you want. If you’re aiming for cloud computing roles, having certifications or licenses, like an AWS Cloud certification, could help bridge the gap if your experience is lacking.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;u id="b"&gt;My Current Software Engineer Resume&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;I think thanks to my past engineering internships, I’ve been fortunate enough to receive a good response rate from my resume, so I’d like to share the formatting and approach I use with all of you. Hopefully, it will give you some ideas and inspiration on how to write effective bullet points that follow the &lt;a href="https://www.naukri.com/campus/career-guidance/star-method-resume" rel="noopener noreferrer"&gt;STAR method&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faivc9nhgx8r22a6vv6gy.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%2Faivc9nhgx8r22a6vv6gy.jpg" alt="The resume I used to apply to new graduate jobs" width="800" height="1035"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purple highlights&lt;/strong&gt; - impact/result of my actions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yellow highlights&lt;/strong&gt; - the action taken&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No highlights&lt;/strong&gt; - context, situation, and/or technologies I used&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can see I used &lt;a href="https://www.overleaf.com/latex/templates/jakes-resume/syzfjbzwjncs" rel="noopener noreferrer"&gt;Jake’s resume&lt;/a&gt; template, which is super popular in the tech community for its clean, no-nonsense design. You don’t have to use this exact one, but I’d suggest sticking to a single-column format for readability. If you're early in your career, it's a good idea to put your education at the top so recruiters can quickly spot your degree and graduation date.&lt;/p&gt;

&lt;p&gt;One thing to note: &lt;strong&gt;always&lt;/strong&gt; include start and end dates for all your experiences. For your degree, the start date is optional, but definitely include the end date or your anticipated graduation date. Make sure your resume has your phone number, a non-school email, LinkedIn, and GitHub. If you have a polished personal website, throw that in too.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Common mistake: avoid listing generic tools like MS Office or IDEs you’ve used. Your resume has limited space, so focus on showcasing the key languages and frameworks you're skilled in and that are relevant to the jobs you're applying for.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To get through resume screens, you need to think about keywords recruiters might search for. While it’s optional, I do think highlighting technologies and including some quantitative metrics helps make your resume more skimmable for recruiters. You’ll notice that my bullet points really try to cram in as much impact as possible while being concise and logical. I always mention the technologies and frameworks I used, plus explain what kind of difference my work made. Be honest about your metrics, and if exact numbers aren’t possible, give your best educated guess. Numbers stand out, so even if you have to estimate, try to include metrics where possible ‼️&lt;/p&gt;

&lt;p&gt;If you don’t have much software engineering experience yet, list your strongest experience first—whether it’s personal projects, freelance work, or internships—and leave the less relevant stuff toward the bottom. If you're still in school or just graduated, pick your best project(s) (ideally something you built on your own, not just a class project) to show off your skills and initiative.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u id="c"&gt;Reflect - Are you focusing on the right thing?&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;When you've finished writing, rigorously editing, and re-editing your resume - take a step back. Ask yourself, “What kinds of roles does my resume seem most suited for? 💭” Ideally, it should align with the roles you’re applying to. If not, there’s a serious mismatch between your content and your goals, and you need to fix this.&lt;/p&gt;

&lt;p&gt;Let's break down the technologies in my resume as an example:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tech-stack&lt;/th&gt;
&lt;th&gt;Internship 1&lt;/th&gt;
&lt;th&gt;Internship 2&lt;/th&gt;
&lt;th&gt;Internship 3&lt;/th&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Front-end?&lt;/td&gt;
&lt;td&gt;Angular.js&lt;/td&gt;
&lt;td&gt;Vue.js&lt;/td&gt;
&lt;td&gt;React.js&lt;/td&gt;
&lt;td&gt;React.js&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Back-end?&lt;/td&gt;
&lt;td&gt;Ruby on Rails&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Nest.js, PostgreSQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Misc?&lt;/td&gt;
&lt;td&gt;DataDog&lt;/td&gt;
&lt;td&gt;AWS EC2, Docker&lt;/td&gt;
&lt;td&gt;Electron.js, Axios&lt;/td&gt;
&lt;td&gt;Prisma&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you were my recruiter, where would you say my experiences and skill-sets lie? Probably more front-end focused than back-end, right? Overall, when applying to positions I need to keep in mind that my resume is more suited for front-end or full-stack roles, rather than purely back-end roles, thanks to my past experiences.&lt;/p&gt;

&lt;p&gt;If my goal was something else—like AI or Cloud Engineering—I’d need to rethink my approach. I’d focus on selecting internships or personal projects that highlight skills in those areas, like cloud infrastructure or AI-related technologies. You should always think about how your resume comes across and align your experiences with your target roles.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u id="d"&gt;Conclusion&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;Getting interviews is arguably the hardest part of the recruitment process, especially in today’s market where even experienced engineers struggle to get callbacks after sending out hundreds of applications. I hope some of my advice helped you craft a stronger resume. Many of these tips can also be applied to optimizing your LinkedIn profile (though feel free to include certifications, research papers, volunteering, etc. on LinkedIn—it’s the place where all your qualifications can really shine 🤩).&lt;/p&gt;

&lt;p&gt;I’d love to hear any additional advice you might have for crafting resumes or landing interviews through cold applications. Thanks for reading all the way through!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F26gskaXMHwQFmuXAc%2Fgiphy.gif%3Fcid%3D790b7611jb28m3hwt12ut5a1oqe54eeodpydne441f0c14j9%26ep%3Dv1_gifs_search%26rid%3Dgiphy.gif%26ct%3Dg" class="article-body-image-wrapper"&gt;&lt;img width="480" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F26gskaXMHwQFmuXAc%2Fgiphy.gif%3Fcid%3D790b7611jb28m3hwt12ut5a1oqe54eeodpydne441f0c14j9%26ep%3Dv1_gifs_search%26rid%3Dgiphy.gif%26ct%3Dg" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>discuss</category>
      <category>resume</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Advice for newbie devs that are Working From Home? 💻</title>
      <dc:creator>Gabrielle Niamat</dc:creator>
      <pubDate>Wed, 05 Jul 2023 15:54:24 +0000</pubDate>
      <link>https://forem.com/pidgey0403/advice-for-newbies-devs-that-are-working-from-home-17n0</link>
      <guid>https://forem.com/pidgey0403/advice-for-newbies-devs-that-are-working-from-home-17n0</guid>
      <description>&lt;p&gt;Hi all! ☀️&lt;/p&gt;

&lt;p&gt;I'll be starting my first full-time software developer co-op in the fall and I will be working entirely remotely. I'd love to hear your tips/advice on how to be productive and consistent when working in an entirely remote setup!?&lt;/p&gt;

&lt;p&gt;I also want to secure a return offer with this company, so any guidance on how to excel during my WFH co-op would also be fantastic :) 🐳&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
      <category>career</category>
      <category>beginners</category>
    </item>
    <item>
      <title>MLH Fellowship: My Admissions Timeline &amp; Program Experience!</title>
      <dc:creator>Gabrielle Niamat</dc:creator>
      <pubDate>Sun, 08 Jan 2023 06:19:23 +0000</pubDate>
      <link>https://forem.com/pidgey0403/mlh-fellowship-my-admissions-timeline-program-experience-4clo</link>
      <guid>https://forem.com/pidgey0403/mlh-fellowship-my-admissions-timeline-program-experience-4clo</guid>
      <description>&lt;h2&gt;
  
  
  What is the MLH Fellowship ⁉️
&lt;/h2&gt;

&lt;p&gt;In case you’re unfamiliar or just need a refresher, the MLH Fellowship is a 12-week program designed to support individuals who are interested in pursuing a career in the tech industry. The program provides participants with the opportunity to work on real-world projects from top engineering companies, receive mentorship from industry professionals, and develop valuable skills that will help them succeed in their future careers. Some notable companies that partner with the MLH Fellowship include &lt;strong&gt;Google, Meta, Amazon, G-Research, RBC, GitHub, Solana Labs&lt;/strong&gt;, and many, many more.&lt;/p&gt;

&lt;p&gt;For more information, check out their official website: &lt;a href="https://fellowship.mlh.io/" rel="noopener noreferrer"&gt;https://fellowship.mlh.io/&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Timeline ⏰
&lt;/h2&gt;

&lt;p&gt;My timeline for applying to the Fall 2022 MLH Fellowship is outlined below (note the duration between application steps might be slightly different for each individual):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;August 5, 2022&lt;/em&gt; - Submission of initial application 🤞🏼&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;August 8, 2022&lt;/em&gt; - Application went into review ⭐️&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;August 21, 2022&lt;/em&gt; - Invitation to schedule behavioural interview round 👩🏻‍💼&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;August 25, 2022&lt;/em&gt; - Completed behavioural interview ✅&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;August 27, 2022&lt;/em&gt; - Invitation to schedule technical interview 💻&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;September 5, 2022&lt;/em&gt; - Completion of technical interview ✅&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;September 12, 2022&lt;/em&gt; - Email of acceptance into the program 🎉&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, the process took a bit over one month to complete from start to finish. I would strongly encourage all applicants to apply at least &lt;strong&gt;2 months before&lt;/strong&gt; the program start date, as the process is lengthy and highly competitive. Applying early also means you get to know that you’re a part of the program earlier, as acceptances are sent out on a rolling basis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Onboarding Process 🏄‍♀️
&lt;/h2&gt;

&lt;p&gt;Curious to know what the on-boarding process for the MLH Fellowship looks like in the weeks leading up to the program’s start? The following is a short recap of my personal experience getting set up for the Fellowship.&lt;/p&gt;

&lt;p&gt;Firstly, I received an email of acceptance which told me I was successfully matched to a project! This invitation came straight from the wonderful Amanda D'Avria herself and included the program start and end date, the track, time commitment, meeting days and times, and the stipend amount. Included in the email is also a link to a form I was &lt;strong&gt;required&lt;/strong&gt; to fill out to confirm my enrolment in the program.&lt;/p&gt;

&lt;p&gt;Some other little things I did before the program started included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Signing the Educational Fellowship Agreement&lt;/em&gt; (basically a contract and ToS for the program)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Joining the MLH Fellowship GitHub organization&lt;/em&gt; via invitation&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Joining the MLH Fellowship Discord server&lt;/em&gt; (this is where all pod meetings, announcements, educational events, etc. take place)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Signing the Handbook Acknowledgement&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Creating a Calendly account and meeting link&lt;/em&gt; (so others could book a meeting)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once all that was done, the only thing left to do was wait for the program to begin!&lt;/p&gt;

&lt;h2&gt;
  
  
  Fellowship Activities and Events 🎭
&lt;/h2&gt;

&lt;p&gt;The MLH Fellowship also provided a great number of activities and events for Fellows to partake in. While I, unfortunately, couldn’t attend most of them due to class, it was still really nice to have the option to join these events when possible as it helped to build a sense of community and have some fun during the program. &lt;/p&gt;

&lt;p&gt;Some things the Fellowship offered to all Fellows, regardless of track, included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Weekly educational events&lt;/em&gt; → LeetCode workshops, resume and interview preparation workshops, industry speakers going over a Day in their Life&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Introductory week hackathon&lt;/em&gt; → all Fellows are required to participate in the hackathon and build a project using tools from their partner company. At the end of the week, winners from 3 categories are chosen, and special prizes are mailed out (not to brag but my team was one of the winners 🎖️✨)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Final week Capture the Flag&lt;/em&gt; → it’s not required for fellows to participate but it’s highly recommended. This CTF involves numerous cyber-security and hacking puzzles that teams must complete to win first place. The winners are announced during the graduation ceremony of the program.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project Details 📁
&lt;/h2&gt;

&lt;p&gt;During the program, I had the privilege of working with &lt;a href="https://www.gresearch.co.uk/" rel="noopener noreferrer"&gt;G-Research&lt;/a&gt;, Europe’s leading quantitative and research firm. I was initially quite unsure about working with a fintech company as I hadn’t researched the field before but quickly grew to love my Pod members (also working with G-Research) as well as my professional maintainers and technical leads from the company. &lt;/p&gt;

&lt;p&gt;I specifically worked on the frontend for G-Research Open Source Software projects and used frameworks and technologies like &lt;strong&gt;Vue.js, AWS EC2, Confluence, Jira, Docker, bash, and npm&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A lot of my time was spent on algorithm design and refinement, but more importantly, understanding the mindset behind open-source contributions. My maintainer taught me the importance of being able to understand large code bases, troubleshoot bugs and errors, independently work on assigned tasks, take initiative to reach objectives, and the importance of clear communication as a software engineer. &lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Thoughts / Feelings / Stories 🥳
&lt;/h2&gt;

&lt;p&gt;While I was initially a bit disappointed that I wasn’t working on backend development or with a fancy FAANG company like Google, the MLH Fellowship was absolutely an incredible experience that has bolstered my &lt;strong&gt;confidence&lt;/strong&gt; and &lt;strong&gt;technical&lt;/strong&gt; &lt;strong&gt;ability&lt;/strong&gt; as a rising software engineer. The skills and connections I created during the program were invaluable, and I hope to continue applying the knowledge I gained in open-source development to help others build efficient and purposeful software.&lt;/p&gt;

&lt;p&gt;Thanks for reading about my journey! If this article helped you learn more about the MLH Fellowship, feel free to like it and share it with other curious developers ❤️&lt;/p&gt;

</description>
      <category>mlhgrad</category>
      <category>opensource</category>
      <category>career</category>
    </item>
    <item>
      <title>Applying to the MLH Fellowship in 2023 🎊</title>
      <dc:creator>Gabrielle Niamat</dc:creator>
      <pubDate>Fri, 23 Dec 2022 19:43:51 +0000</pubDate>
      <link>https://forem.com/pidgey0403/tips-on-applying-to-the-mlh-fellowship-in-2023-19m0</link>
      <guid>https://forem.com/pidgey0403/tips-on-applying-to-the-mlh-fellowship-in-2023-19m0</guid>
      <description>&lt;h3&gt;
  
  
  Table of Contents
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;What is the MLH Fellowship&lt;/li&gt;
&lt;li&gt;Application Tips and Tricks&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;li&gt;Additional Resources&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;u id="intro"&gt;Introduction 📖&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Hey there, nice to meet you 👋🏼! I'm Gabby, a returning MLH Fellow in the Software Engineering track for Spring 2023, a 3rd-year computer science student at Western University, and a Software Engineering and DevOps enthusiast!&lt;/p&gt;

&lt;p&gt;Over the past couple of weeks, I've received quite a few DMs on LinkedIn and Discord asking for advice on how to nail the MLH Fellowship application and interview process. As a result, I've decided to compile all the advice I've gathered from past Fellows, the admissions team, and my personal experience into one master list of tips and tricks to help make your application stand out and increase your chances of being invited to the Fellowship 🎉&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u id="about"&gt;What is the MLH Fellowship? 💭&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;If you're curious about the MLH Fellowship and not sure where to start, I highly recommend checking out their official website for more details on the program &lt;a href="https://fellowship.mlh.io/" rel="noopener noreferrer"&gt;https://fellowship.mlh.io/&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;In short, the MLH Fellowship is a highly competitive program for aspiring technologists (hint: think SWEs, SREs, DevRel specialists and more!). It provides a unique opportunity for talented individuals to work on meaningful projects, learn new skills, earn a stipend while receiving education from expert mentors, and make a real impact in the tech industry. &lt;/p&gt;

&lt;p&gt;What I especially love about the program is that it's open to applicants from virtually any country and does not require you to be in post-secondary education to qualify. You do have to be 18 years or older, however, so for high school students do your best to contribute to other Open Source projects while you wait!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u id="tips"&gt;Application Tips and Tricks 🎩✨&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;So you've decided that you're going to apply to the MLH Fellowship, but you're unsure how to guarantee that your application demonstrates your excellence to the admissions team and stands out from the rest of the crowd. Don't worry, I've been there too! By following the tips below on how to craft your application, you'll be setting yourself up for success as a future MLH Fellow. &lt;/p&gt;

&lt;h3&gt;
  
  
  1) Start early
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;"The early bird really does get the worm when it comes to getting into the Fellowship [...] Most folks who will get into the Spring program will have applied by November 30th." - &lt;a href="https://youtu.be/dKC0Dd2ghxU?t=535" rel="noopener noreferrer"&gt;Amanda, MLH Admissions Team&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;MLH Fellowship applications typically open several months before the start of the program so it's important to start preparing your application as early as possible. According to the admissions team, about 50% of Fellows apply at least &lt;strong&gt;2 months before&lt;/strong&gt; the start of the program. By giving yourself enough time to write a strong essay application and build a polished code sample, you'll already have a leg-up compared to other applicants. Don't forget to update your social media like GitHub and LinkedIn to reflect your most recent experiences! &lt;/p&gt;

&lt;p&gt;When I first applied to the Fellowship, I only applied a month before the start date. The 3-step admissions process took quite a while, nearly 4 weeks from the time I submitted my application to the time I received my acceptance letter. So please don't be like me and give yourself enough time to comfortably go through the process, especially if you are not a returning Fellow! &lt;/p&gt;

&lt;h3&gt;
  
  
  2) Tailor your application
&lt;/h3&gt;

&lt;p&gt;A large factor in determining whether you get an invitation to the behavioural interview stage is how strong your essay application is. One of the questions you will need to write a response to is &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"[...] What perspective or experience will you bring to the fellowship to strengthen our community?" &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When answering this question, take the time to highlight what unique experiences or insights you have and how you believe they will help to strengthen the MLH community. Keep in mind, you don't have to have to be an ex-FAANG intern to be able to highlight your unique qualities as an applicant! When I first applied I explained how my perspectives as a political science student gave me a unique outlook on incorporating ethics and security into the software I built. Try to draw on your past school experiences, personal interests, hackathons and more for this question!&lt;/p&gt;

&lt;p&gt;Additionally, make sure that your &lt;strong&gt;resume has been tailored&lt;/strong&gt; to showcase your strongest and most relevant experiences when applying to the Fellowship. And please, make sure to &lt;strong&gt;answer the question you're asked&lt;/strong&gt; during the essay portion of the application - by directly answering the question you demonstrate to the admissions team your ability to succinctly and efficiently solve problems. &lt;/p&gt;

&lt;h3&gt;
  
  
  3) Show your passion
&lt;/h3&gt;

&lt;p&gt;One of the key qualities that the MLH Fellowship is looking for is a passion for growth and learning. Make sure your code sample and essay answers are well-thought-out, and that you've taken the time to polish them to the best of your abilities. Submitting the best version of your work possible signals to the admissions that you are serious about producing high-quality work and that you already have a good grasp of the technical skills needed to excel in the program.&lt;/p&gt;

&lt;p&gt;Be sure to also stress why you're an excellent applicant when answering the essay questions &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Why do you want to become an MLH Fellow" and "Is there anything else we should know about you." &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Too often people leave the last question blank when in reality they should be sharing a story with the admissions team that leaves a great first impression about their passions and excitement to join the Fellowship. &lt;/p&gt;

&lt;h3&gt;
  
  
  4) Demonstrate your technical skills
&lt;/h3&gt;

&lt;p&gt;The MLH Fellowship is a technical program, so it's important to demonstrate your technical skills and capabilities in your application. This includes highlighting any relevant coursework, projects, or hackathons that you've participated in, in your resume.&lt;/p&gt;

&lt;p&gt;More importantly, please make sure you add enough &lt;strong&gt;detail and polish to your code sample&lt;/strong&gt;. If you're creating a web app, make sure to deploy it and put the link somewhere visible on your GitHub repository so the admissions team can easily interact with your website. If you're building a mobile app, provide a zipped download file or even a link to the application on the App Store! Making your project visible is an enormous factor in making it easier for the admissions team to assess your skills and competency. &lt;/p&gt;

&lt;p&gt;Also, be sure that your code is nicely formatted (using a linter or similar tool), that your commit history is informative (i.e. all the commit messages aren't just 'commit'), that you have sufficient complexity and Isolation of Concerns in your codebase (i.e. don't throw everything into 1 file that is only a few lines long), and that you create an informative and easy to understand Readme.MD (this is crucial to the success of your application). &lt;/p&gt;

&lt;h3&gt;
  
  
  5) Network and seek out mentors
&lt;/h3&gt;

&lt;p&gt;This is a tip that I leveraged a lot, especially when I first applied to the Fellowship. &lt;/p&gt;

&lt;p&gt;Networking can be a key factor in the success of your application, so don't be shy to seek out mentors and advisors who can provide guidance and advice on how to improve your application. Message people on LinkedIn and even join the official &lt;a href="https://discord.gg/qY7ZTZAT" rel="noopener noreferrer"&gt;MLH Fellowship Discord&lt;/a&gt; to ask the team and past/current Fellows any questions you may have! &lt;/p&gt;

&lt;h3&gt;
  
  
  6) Follow the application instructions
&lt;/h3&gt;

&lt;p&gt;I've already mentioned this in a previous point but I cannot stress it enough. &lt;em&gt;Please&lt;/em&gt; &lt;em&gt;please&lt;/em&gt; &lt;em&gt;please&lt;/em&gt; make sure to answer all questions in your initial application as thoroughly as possible, and pay special attention to what they say they're looking for in a code sample. &lt;/p&gt;

&lt;p&gt;I've had a few applicants message me and ask why their code sample got rejected, and their GitHub repository included 3 commits and 3 files in total. This is unfortunately not enough information for the admissions team to determine whether your code was original and whether you can create larger projects of sufficient quality during the program. The MLH Fellowship is a highly competitive program and as such, they are looking for proof that you understand how to write good documentation and substantial code.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u id="conc"&gt;Conclusion ✅&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;If you've made it this far into the article, congratulations and thank you! I hope the advice I've shared about the application process will help you find success as a future MLH Fellow. With that said, please don't be discouraged if you don't get in the first or even the second time you apply! The program is highly competitive and as the admissions team says, you should take the rejection as a "not right now" instead of "never"! &lt;/p&gt;

&lt;p&gt;Please feel free to comment about more articles you'd like to see and reach out on LinkedIn for any personal questions you may have about the program. ✨&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u id="resource"&gt;Additional Resources 📚&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;Looking for more information on the Fellowship? Here are some great links to get started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The official MLH Fellowship website: &lt;a href="https://fellowship.mlh.io/" rel="noopener noreferrer"&gt;https://fellowship.mlh.io/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;The official MLH Fellowship LinkedIn page (hint: find past fellows here and reach out about their experiences) &lt;a href="https://www.linkedin.com/school/mlh-fellowship/" rel="noopener noreferrer"&gt;https://www.linkedin.com/school/mlh-fellowship/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;The November 2022 MLH Fellowship information session, hosted by the admissions team: &lt;a href="https://lnkd.in/g6KGiek3" rel="noopener noreferrer"&gt;https://lnkd.in/g6KGiek3&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>mlhgrad</category>
      <category>devops</category>
      <category>devrel</category>
    </item>
  </channel>
</rss>
