<?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: Mikhail Karan</title>
    <description>The latest articles on Forem by Mikhail Karan (@mikehtmlallthethings).</description>
    <link>https://forem.com/mikehtmlallthethings</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%2F334854%2F1e66954d-916f-4e76-88fc-415ad2b29a69.png</url>
      <title>Forem: Mikhail Karan</title>
      <link>https://forem.com/mikehtmlallthethings</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mikehtmlallthethings"/>
    <language>en</language>
    <item>
      <title>API’s Explained | HTTP vs RPC</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Fri, 24 Oct 2025 13:56:31 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/apis-explained-http-vs-rpc-1gd7</link>
      <guid>https://forem.com/mikehtmlallthethings/apis-explained-http-vs-rpc-1gd7</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Every modern web app has to &lt;strong&gt;connect a client (browser, mobile app, desktop app) to a server&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Why? To do things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check if a user is logged in.&lt;/li&gt;
&lt;li&gt;Get their subscription status.&lt;/li&gt;
&lt;li&gt;Update their profile picture.&lt;/li&gt;
&lt;li&gt;Process a payment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These requests are how applications feel “alive”, the client asks the server for information, and the server responds.&lt;/p&gt;

&lt;p&gt;Two common ways to make those requests are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTTP APIs&lt;/strong&gt; (like REST or GraphQL).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote Procedure Calls (RPC)&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At first glance, they both look similar: you send data and get data back. But their design philosophy and developer experience are quite different. Let’s walk through both, with real-world examples.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is HTTP?
&lt;/h2&gt;

&lt;p&gt;HTTP (HyperText Transfer Protocol) is the &lt;strong&gt;language of the web&lt;/strong&gt;. It works by thinking in &lt;strong&gt;resources&lt;/strong&gt; (nouns), each exposed at a URL.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Example: &lt;em&gt;“Give me the subscription status of user 123.”&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// REST-style HTTP call with fetch&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getSubscriptionStatus&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`/api/users/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/subscription`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;GET&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;active&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;inactive&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;subscription&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;getSubscriptionStatus&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;123&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;subscription&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "active"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here we’re “fetching a resource” at &lt;code&gt;/api/users/123/subscription&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is RPC?
&lt;/h2&gt;

&lt;p&gt;RPC (Remote Procedure Call) is designed around &lt;strong&gt;actions (functions/methods)&lt;/strong&gt; instead of URLs.&lt;/p&gt;

&lt;p&gt;You don’t think “hit this endpoint.” Instead you think: &lt;em&gt;“Call the function &lt;code&gt;getSubscriptionStatus&lt;/code&gt; with parameter &lt;code&gt;123&lt;/code&gt;.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The code looks almost identical, but the philosophy is different.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Example RPC call (JSON-RPC-like)&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callRPC&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;unknown&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/rpc&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt; &lt;span class="p"&gt;}),&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Looks like a function call instead of a URL&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;subscription&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;callRPC&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;getSubscriptionStatus&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;123&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;subscription&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "active"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice how the &lt;strong&gt;method name (&lt;code&gt;getSubscriptionStatus&lt;/code&gt;) is the function&lt;/strong&gt;, and the &lt;code&gt;params&lt;/code&gt; are the arguments. That’s the “functions and methods” idea in plain English.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Differences: RPC vs HTTP
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;HTTP (REST/GraphQL)&lt;/th&gt;
&lt;th&gt;RPC (tRPC, better-call)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;How you think&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;“Get the &lt;code&gt;/users/123/subscription&lt;/code&gt; resource”&lt;/td&gt;
&lt;td&gt;“Call &lt;code&gt;getSubscriptionStatus(123)&lt;/code&gt;”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Interface&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Endpoints &amp;amp; resources (nouns)&lt;/td&gt;
&lt;td&gt;Functions &amp;amp; methods (verbs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Type safety&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Optional (OpenAPI, GraphQL)&lt;/td&gt;
&lt;td&gt;Strong with TypeScript bindings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Standardization&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Universally understood&lt;/td&gt;
&lt;td&gt;Framework-specific&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DX&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Boilerplate-heavy&lt;/td&gt;
&lt;td&gt;Feels like local function calls&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Example with tRPC
&lt;/h2&gt;

&lt;p&gt;Here’s how the same thing looks in tRPC:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// server.ts&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;initTRPC&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@trpc/server&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;initTRPC&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;appRouter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;router&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;getSubscriptionStatus&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;procedure&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(({&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="c1"&gt;// simulate DB lookup&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;active&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="p"&gt;}),&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;AppRouter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;appRouter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// client.ts&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createTRPCProxyClient&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;httpBatchLink&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@trpc/client&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;AppRouter&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./server&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;createTRPCProxyClient&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;AppRouter&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;links&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;httpBatchLink&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/trpc&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;})],&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Looks like a local function call&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;subscription&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getSubscriptionStatus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;123&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;subscription&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "active"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here you literally “call the function” on the client, and it automatically makes the server request. That’s the DX benefit of RPC.&lt;/p&gt;




&lt;h2&gt;
  
  
  Example with better-auth (&lt;code&gt;better-call&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;better-auth uses &lt;code&gt;better-call&lt;/code&gt; (an RPC package) under the hood. Instead of manually hitting &lt;code&gt;/api/auth/session&lt;/code&gt;, you call a method.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// auth.ts&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createAuthClient&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;better-auth&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;auth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createAuthClient&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;baseURL&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/auth&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Get the current session&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Log in&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;signIn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;email&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;test@example.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;secret&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Again: no manual URLs, just &lt;strong&gt;functions you can call&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pros and Cons
&lt;/h2&gt;

&lt;h3&gt;
  
  
  RPC
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ Strong typing, great DX in TypeScript&lt;/li&gt;
&lt;li&gt;✅ Feels like local function calls&lt;/li&gt;
&lt;li&gt;❌ Less standardized, harder to expose publicly&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  HTTP
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ Universally understood, great for public APIs&lt;/li&gt;
&lt;li&gt;✅ Mature ecosystem (docs, caching, gateways)&lt;/li&gt;
&lt;li&gt;❌ More boilerplate&lt;/li&gt;
&lt;li&gt;❌ Weaker type inference without extra tooling&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  When to Use Which
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use RPC&lt;/strong&gt; when building internal apps or monorepos where both client and server are in TypeScript. (tRPC, better-call).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use HTTP (REST/GraphQL)&lt;/strong&gt; when building public APIs or needing wide interoperability with non-TypeScript clients.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;Both RPC and HTTP let clients talk to servers, whether you’re checking subscription status, logging in, or updating user data. The difference is &lt;strong&gt;how you think about those calls&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP → “resources and endpoints.”&lt;/li&gt;
&lt;li&gt;RPC → “functions and methods.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For internal, TypeScript-heavy projects, RPC can feel magical. For external APIs, HTTP remains the practical standard.&lt;/p&gt;




</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Stack Overflow Developer Survey 2025</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Wed, 13 Aug 2025 17:28:03 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/stack-overflow-developer-survey-2025-2249</link>
      <guid>https://forem.com/mikehtmlallthethings/stack-overflow-developer-survey-2025-2249</guid>
      <description>&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/3VhUWt0ENVJ8RmAqT5Pj3W" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML All The Things?
&lt;/h2&gt;

&lt;p&gt;HTML All The Things is a &lt;a href="https://www.htmlallthethings.com/" rel="noopener noreferrer"&gt;web development podcast&lt;/a&gt; and &lt;a href="https://discord.com/invite/jweMCx9" rel="noopener noreferrer"&gt;discord community&lt;/a&gt; which was started by Matt and Mike, developers based in Ontario, Canada. &lt;/p&gt;

&lt;p&gt;The podcast speaks to web development topics as well as running a small business, self-employment and time management. You can join them for both their successes and their struggles as they try to manage expanding their Web Development business without stretching themselves too thin.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's This One About?
&lt;/h2&gt;

&lt;p&gt;In what's becoming an annual feature, Matt and Mike discussed the results of the Stack Overflow Developer Survey 2025. There are an absolute ton of different categories and results in this survey, the guys have cherry picked a few key metrics to drive conversation and debate on the state of the 2025 developer market. With AI tools coming in hot this year (and last for that matter), many think that the industry is in a state of upset - do you think the survey results confirm that?&lt;/p&gt;

&lt;p&gt;This week we take a look at the &lt;a href="https://survey.stackoverflow.co/2025/" rel="noopener noreferrer"&gt;Stack Overflow Developer Survey 2025&lt;/a&gt; - below we've included screenshots of some select charts that we discussed, debated, or touched on in the episode.&lt;/p&gt;

&lt;p&gt;We also included some links to related episodes below.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stack Overflow Developer Survey 2025 Screenshots
&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%2Fljbbwlwasrmpwosngeij.webp" 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%2Fljbbwlwasrmpwosngeij.webp" alt="__wf_reserved_inherit" width="800" height="777"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How many developers are working remote in 2025?&lt;/p&gt;

&lt;p&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%2Fzdj1vkmtdyzsn8g58mgm.webp" 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%2Fzdj1vkmtdyzsn8g58mgm.webp" alt="__wf_reserved_inherit" width="800" height="728"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How much did Python adoption grow in 2025?&lt;/p&gt;

&lt;p&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%2Foss5xrsa3h94sm04zop7.webp" 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%2Foss5xrsa3h94sm04zop7.webp" alt="__wf_reserved_inherit" width="800" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Popular web frameworks and technologies in 2025&lt;/p&gt;

&lt;p&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%2Fj0b09unwbdbuzoo7x35w.webp" 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%2Fj0b09unwbdbuzoo7x35w.webp" alt="__wf_reserved_inherit" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Popular programming, scripting, and markup languages in 2025&lt;/p&gt;

&lt;p&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%2Fcdn.prod.website-files.com%2F5f21f5bb63183fc595ff8426%2F689a3c118a9892c346411e45_5%2520-%2520Popular%2520Cloud%2520Platforms%2520Docker%25202025.webp" 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%2Fcdn.prod.website-files.com%2F5f21f5bb63183fc595ff8426%2F689a3c118a9892c346411e45_5%2520-%2520Popular%2520Cloud%2520Platforms%2520Docker%25202025.webp" alt="__wf_reserved_inherit" width="800" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What cloud platforms are popular in 2025?&lt;/p&gt;

&lt;p&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%2Fgxs19okxdsvt3lmt3qm5.webp" 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%2Fgxs19okxdsvt3lmt3qm5.webp" alt="__wf_reserved_inherit" width="800" height="244"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How many developers spent some time learning new skills in 2025?&lt;/p&gt;

&lt;p&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%2F221bx5xf4z1tiubrfhbd.webp" 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%2F221bx5xf4z1tiubrfhbd.webp" alt="__wf_reserved_inherit" width="800" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How did you learn to code for AI?&lt;/p&gt;

&lt;p&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%2Fmm811hvbdzt9kgpapg44.webp" 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%2Fmm811hvbdzt9kgpapg44.webp" alt="__wf_reserved_inherit" width="800" height="781"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Claude reins supreme in 2025, as most admired AI model&lt;/p&gt;

&lt;p&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%2F5kfli8gqk51dwqsjsjpi.webp" 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%2F5kfli8gqk51dwqsjsjpi.webp" alt="__wf_reserved_inherit" width="800" height="1166"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have AI agents been productive for developers in 2025?&lt;/p&gt;

&lt;p&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%2Fip9n1khbuv62fb05ayn4.webp" 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%2Fip9n1khbuv62fb05ayn4.webp" alt="__wf_reserved_inherit" width="800" height="765"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How many developers are using AI in 2025?&lt;/p&gt;

&lt;p&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%2Fy95094krea39t0fst3jy.webp" 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%2Fy95094krea39t0fst3jy.webp" alt="__wf_reserved_inherit" width="800" height="843"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In 2025, are developer still positive on AI models?&lt;/p&gt;

&lt;p&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%2Feniibxzj812dvm7oq4p7.webp" 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%2Feniibxzj812dvm7oq4p7.webp" alt="__wf_reserved_inherit" width="800" height="813"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do developers think AI tools are trustworthy in 2025?&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.htmlallthethings.com/podcasts/does-ai-have-tech-bias-ai-all-the-things" rel="noopener noreferrer"&gt;Does AI Have Tech Bias? | AI All The Things | HTML All The Things Podcast&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.htmlallthethings.com/podcasts/how-to-be-successful-as-a-remote-developer" rel="noopener noreferrer"&gt;How to Be Successful as a Remote Developer | HTML All The Things Podcast&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>javascript</category>
      <category>podcast</category>
    </item>
    <item>
      <title>The 6 Best Developer Education Platforms to Help You Get A Job in 2025</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Wed, 16 Jul 2025 15:09:48 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/the-6-best-developer-education-platforms-to-help-you-get-a-job-in-2025-3e9i</link>
      <guid>https://forem.com/mikehtmlallthethings/the-6-best-developer-education-platforms-to-help-you-get-a-job-in-2025-3e9i</guid>
      <description>&lt;p&gt;To get a job as a developer in 2025 you &lt;strong&gt;need&lt;/strong&gt; to use the right resources to get ahead. Whether it be coding along with your instructors or going down a niche like web3 to find an in demand vertical, you need to find the instructors that work well with your learning style and learn as well as build as many projects as you can. &lt;/p&gt;

&lt;p&gt;The learning platforms below all have some major points in common, great instructors, updated curriculums and great communities around them. I urge you not to sleep on the community aspect of learning as they people you meet along your journey might be the people that help you get your first contract or job. &lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;a href="https://scrimba.com/home?via=htmlallthethings" rel="noopener noreferrer"&gt;Scrimba&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Scrimba is an interactive web development education platform with a built in code editor. It allows the users to follow along with the instructors code and also edit the code that is written in realtime. Great for checking how different changes can effect the output rapidly. &lt;/p&gt;

&lt;p&gt;The courses vary from basics like HTML and CSS to a full on advanced full-stack developer learning path that will teach you everything from front-end to back-end and dev ops. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;We do have a affiliate link for Scrimba that gets 20% off a subscription to the premium courses: &lt;a href="https://scrimba.com/home?via=htmlallthethings" rel="noopener noreferrer"&gt;https://scrimba.com/home?via=htmlallthethings&lt;/a&gt;&lt;/em&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%2Fferu5qvkwyt08gqpdbt6.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%2Fferu5qvkwyt08gqpdbt6.png" alt="screenshot of scrimba" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Built-in dynamic code editor that follows the instructor&lt;/li&gt;
&lt;li&gt;High quality instructors&lt;/li&gt;
&lt;li&gt;Scrimba Community&lt;/li&gt;
&lt;li&gt;Curated Challenges&lt;/li&gt;
&lt;li&gt;Full-stack development curriculum&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Recommendation
&lt;/h3&gt;

&lt;p&gt;Use Scrimba to learn the core basics of HTML, CSS and JavaScript and follow the Full-stack curriculum path to get a good base in Node.js, Databases, React, Next.js and TypeScript&lt;/p&gt;

&lt;h2&gt;
  
  
  2. &lt;a href="https://updraft.cyfrin.io/dashboard" rel="noopener noreferrer"&gt;Cyfrin Updraft&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Cyfrin Updraft is a web3 education platform that will teach you all you need to know about blockchains, smart contracts and security. &lt;/p&gt;

&lt;p&gt;The passion from lead instructor Patrick Collins makes the complex and dense material quite enjoyable and easy to follow. The courses are packed with all the relevant information you will need to become a top level smart contractor developer and/or security auditor, both very in demand fields. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: I work as the head of engineering for Cyfrin and oversee the development of the Cyfrin Updraft platform&lt;/em&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%2Foh12c5bwnvnq7rhz9esy.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%2Foh12c5bwnvnq7rhz9esy.png" alt="screenshot of updraft" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Entertaining instructors teaching complex topics&lt;/li&gt;
&lt;li&gt;All courses are completely free&lt;/li&gt;
&lt;li&gt;Tons of projects to follow and build during each course&lt;/li&gt;
&lt;li&gt;Niche industry topics that have a ton of demand&lt;/li&gt;
&lt;li&gt;Great Discord community that will help you along the way&lt;/li&gt;
&lt;li&gt;Top level certifications provided that are recognized by the industry&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Recommendation
&lt;/h3&gt;

&lt;p&gt;If you’re looking to get into something a bit more niche but has a lot of growth potential blockchain and security could be a good bet due to the amount of money flowing in it. Completing Updraft courses has proven to give developers a step up in their job search as it is high recognized by the industry as a leading education platform. &lt;/p&gt;

&lt;p&gt;The certifications are difficult to get but due to that are also quite highly recognized. &lt;/p&gt;

&lt;h2&gt;
  
  
  3. &lt;a href="https://frontendmasters.com/" rel="noopener noreferrer"&gt;Frontend Masters&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Frontend Masters offers comprehensive, high-quality courses from some of the best developers in the industry, focusing primarily on front-end and JavaScript development. The platform is renowned for its rigorous, in-depth courses that guide students from foundational concepts through advanced topics such as React, Vue, Angular, and Web Performance Optimization.&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%2Fvmxxaa6jke7091ma6kb0.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%2Fvmxxaa6jke7091ma6kb0.png" alt="screenshot of frontend masters" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Expert instructors recognized industry-wide&lt;/li&gt;
&lt;li&gt;Regularly updated courses covering cutting-edge technologies&lt;/li&gt;
&lt;li&gt;Interactive workshops and practical exercises&lt;/li&gt;
&lt;li&gt;Downloadable resources and course notes&lt;/li&gt;
&lt;li&gt;Structured learning paths from beginner to advanced&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Recommendation
&lt;/h3&gt;

&lt;p&gt;Frontend Masters is ideal for developers serious about leveling up their JavaScript and front-end skills. The depth and quality of instruction make it particularly valuable for those aiming to become proficient with modern front-end frameworks and improve their overall code quality and performance optimization.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. &lt;a href="https://leveluptutorials.com/" rel="noopener noreferrer"&gt;Level Up Tutorials&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Level Up Tutorials focuses on delivering modern, project-based tutorials across a wide range of web development technologies, including front-end frameworks, full-stack development, GraphQL, and web performance. Co-founded by popular instructor &lt;a href="https://tolin.ski/" rel="noopener noreferrer"&gt;Scott Tolinski&lt;/a&gt;, the platform’s relaxed yet informative style appeals to developers looking for practical, hands-on experience.&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%2F7oyosf1x989ywl8mr5nv.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%2F7oyosf1x989ywl8mr5nv.png" alt="screenshot of level up tutorials" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Project-based tutorials with real-world applicability&lt;/li&gt;
&lt;li&gt;Diverse topics covering modern web development stacks&lt;/li&gt;
&lt;li&gt;Easy-to-follow, engaging video instruction&lt;/li&gt;
&lt;li&gt;Regularly released new content to keep skills current&lt;/li&gt;
&lt;li&gt;Supportive and interactive community environment&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Recommendation
&lt;/h3&gt;

&lt;p&gt;Choose Level Up Tutorials if you prefer learning by building real-world projects. It’s perfect for developers seeking hands-on experience and looking to understand modern tech stacks deeply, such as React, Next.js, Svelte, and GraphQL, to bolster their professional portfolio and job market value.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. &lt;a href="https://www.codewithantonio.com/" rel="noopener noreferrer"&gt;Code with Antonio&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Code with Antonio offers concise yet impactful web development courses focusing on modern, high-demand web technologies. Antonio’s straightforward, project-driven teaching style allows learners to rapidly acquire practical skills in popular tools such as React, Next.js, Prisma, and TypeScript, making the platform highly accessible for aspiring web developers.&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%2Fptpvxt5s01wf06qobz22.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%2Fptpvxt5s01wf06qobz22.png" alt="screenshot of code with antonio" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Project-focused learning to build portfolio-ready applications&lt;/li&gt;
&lt;li&gt;Clear and concise teaching approach&lt;/li&gt;
&lt;li&gt;Courses covering in-demand technologies like Next.js and Prisma&lt;/li&gt;
&lt;li&gt;Strong emphasis on best practices and clean coding&lt;/li&gt;
&lt;li&gt;Active support via community and Discord channels&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Recommendation
&lt;/h3&gt;

&lt;p&gt;If you're eager to quickly learn modern technologies and build real-world projects that employers look for, Code with Antonio is a great choice. The platform particularly shines in providing practical experience with tech stacks increasingly sought after by innovative companies and startups.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. &lt;a href="https://www.freecodecamp.org/" rel="noopener noreferrer"&gt;freeCodeCamp&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;freeCodeCamp is a completely free, comprehensive platform designed to help beginners and intermediate developers gain practical coding skills through structured curricula. Covering topics from basic HTML and CSS to advanced JavaScript, Python, and even machine learning, freeCodeCamp excels in making programming education accessible to everyone.&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%2Fromigz0gn9h9cz8dopcw.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%2Fromigz0gn9h9cz8dopcw.png" alt="screenshot of freecodecamp" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Completely free access to extensive curricula&lt;/li&gt;
&lt;li&gt;Thousands of hours of hands-on coding challenges and exercises&lt;/li&gt;
&lt;li&gt;Real-world project assignments for nonprofits, enhancing your portfolio&lt;/li&gt;
&lt;li&gt;Strong and supportive global developer community&lt;/li&gt;
&lt;li&gt;Recognized certifications after course completion&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Recommendation
&lt;/h3&gt;

&lt;p&gt;Use freeCodeCamp if you’re new to programming or looking to deepen your coding skills without a financial investment. The structured curriculum, combined with real-world projects and certifications, makes it ideal for building both foundational skills and a robust developer portfolio that employers value.&lt;/p&gt;




&lt;p&gt;Once you find the education platforms that work best for you make sure you also use the knowledge the give you to build projects. Building your portfolio and actual tangible skills should be a top priority after you get a good base of knowledge from the courses. &lt;/p&gt;

&lt;p&gt;Other then courses and projects I always urge anyone trying to break into the industry to find a community and establish good relationships with as many developers and aspiring developers as you can along the way. One of the reasons that we started the &lt;a href="http://htmlallthethings.com" rel="noopener noreferrer"&gt;HTML All The Things&lt;/a&gt; podcast was to find that community. &lt;/p&gt;

&lt;p&gt;If you’re looking for more inspiration and web development knowledge make sure to check out our podcast where we discuss all things related to web development and contracting. &lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Which platform has the best community support for Web3 and security?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://updraft.cyfrin.io" rel="noopener noreferrer"&gt;&lt;strong&gt;Cyfrin Updraft’s&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dedicated Discord is renowned for active discussions on blockchain, smart contracts, and security auditing, guided by expert instructors like Patrick Collins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I earn industry‑recognized certifications?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.freecodecamp.org/" rel="noopener noreferrer"&gt;&lt;strong&gt;freeCodeCamp&lt;/strong&gt;&lt;/a&gt; and &lt;strong&gt;Cyfrin Updraft&lt;/strong&gt; both provide certificates after completing projects and/or passing exams.&lt;/li&gt;
&lt;li&gt;Platforms like &lt;a href="https://scrimba.com/home?via=htmlallthethings" rel="noopener noreferrer"&gt;&lt;strong&gt;Scrimba&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://frontendmasters.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Frontend Masters&lt;/strong&gt;&lt;/a&gt; issue badges of completion, but these aren’t formal credentials, though they’re respected by many employers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What’s the difference between self‑paced courses and bootcamps?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Self‑paced courses&lt;/strong&gt; (e.g., freeCodeCamp, &lt;a href="https://www.codewithantonio.com/" rel="noopener noreferrer"&gt;Code with Antonio&lt;/a&gt;) let you learn on your own schedule with community support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bootcamps&lt;/strong&gt; (intensive, cohort‑based programs) offer fixed schedules, career coaching, and sometimes job guarantees but cost significantly more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Which platform is best for absolute beginners?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Many beginners start with &lt;strong&gt;freeCodeCamp&lt;/strong&gt; for its 100% free, structured curriculum and real‑world projects. &lt;strong&gt;Scrimba&lt;/strong&gt; is also beginner‑friendly thanks to its interactive code editor and guided full‑stack path.&lt;/p&gt;

</description>
      <category>learning</category>
      <category>career</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How To Get A Web Development Job in 2025</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Wed, 14 May 2025 14:41:37 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/how-to-get-a-web-development-job-in-2025-e87</link>
      <guid>https://forem.com/mikehtmlallthethings/how-to-get-a-web-development-job-in-2025-e87</guid>
      <description>&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/1G394ZtSMCwFyl6TWLOlkI" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML All The Things?
&lt;/h2&gt;

&lt;p&gt;HTML All The Things is a &lt;a href="https://www.htmlallthethings.com/" rel="noopener noreferrer"&gt;web development podcast&lt;/a&gt; and &lt;a href="https://discord.com/invite/jweMCx9" rel="noopener noreferrer"&gt;discord community&lt;/a&gt; which was started by Matt and Mike, developers based in Ontario, Canada. &lt;/p&gt;

&lt;p&gt;The podcast speaks to web development topics as well as running a small business, self-employment and time management. You can join them for both their successes and their struggles as they try to manage expanding their Web Development business without stretching themselves too thin.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's This One About?
&lt;/h2&gt;

&lt;p&gt;In this episode, Matt and Mike talk about the current state of the dev world—layoffs, AI tools, and the unstable job market—while highlighting the real opportunities that still exist. They share actionable ways to stand out, build useful projects, network, and niche down to land work in a tough economy.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Current Landscape
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  The Bad

&lt;ul&gt;
&lt;li&gt;  Economy is not stable&lt;/li&gt;
&lt;li&gt;  AI is becoming better and better&lt;/li&gt;
&lt;li&gt;  Layoffs are happening more and more&lt;/li&gt;
&lt;li&gt;  Overhiring during covid flooded the market with more junior and intermediate developers then it can handle right now&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  The Good

&lt;ul&gt;
&lt;li&gt;  Democratization of POC creation allows for anyone to test out ideas quickly and see if anything sticks. More startups might be made from this&lt;/li&gt;
&lt;li&gt;  AI is absolutely not anywhere near being able to replace a decent developer in a large codebase&lt;/li&gt;
&lt;li&gt;  The AI tools make it easier to learn and write better code faster&lt;/li&gt;
&lt;li&gt;  Companies are still hiring developers (even the ones that are building tools to replace them have not stopped hiring)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  What you can do today
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Learn and stay up to date with the latest AI tools&lt;/li&gt;
&lt;li&gt;  Dive deeper into the most popular and in demand languages and frameworks

&lt;ul&gt;
&lt;li&gt;  Double down, become someone that can take a bad codebase and make it better&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Network, network, network

&lt;ul&gt;
&lt;li&gt;  Social media&lt;/li&gt;
&lt;li&gt;  Local meetups&lt;/li&gt;
&lt;li&gt;  Conferences&lt;/li&gt;
&lt;li&gt;  Open source&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Build something you and others might use and market it

&lt;ul&gt;
&lt;li&gt;  Try to find something to build that would actually be useful to someone&lt;/li&gt;
&lt;li&gt;  Prove you can solve complex technical hurdles&lt;/li&gt;
&lt;li&gt;  Build it in public, market it so others know about it and that you’re building it&lt;/li&gt;
&lt;li&gt;  Todo apps are great to learn a tech stack but not great show pieces, build something a bit outside the common example project box&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  If you’re in school, double down on networking there

&lt;ul&gt;
&lt;li&gt;  Prove to everyone in any class or group project that you’re in that you’re one of the best coders there&lt;/li&gt;
&lt;li&gt;  If anyone gets jobs and there are openings, why wouldn’t they suggest someone that helped them during their projects?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Niche down

&lt;ul&gt;
&lt;li&gt;  Find areas of development that you think might have immediate impact but aren’t overly saturated with people&lt;/li&gt;
&lt;li&gt;  Our journey

&lt;ul&gt;
&lt;li&gt;  Learned chrome app/extension development and got our first major contract&lt;/li&gt;
&lt;li&gt;  Learned web3 and got two major contracts&lt;/li&gt;
&lt;li&gt;  Dove into webflow early and have had constant work&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Examples:

&lt;ul&gt;
&lt;li&gt;  Cross platform development (react-native, cordova, etc)&lt;/li&gt;
&lt;li&gt;  Desktop apps&lt;/li&gt;
&lt;li&gt;  Performance&lt;/li&gt;
&lt;li&gt;  Security&lt;/li&gt;
&lt;li&gt;  Web3

&lt;ul&gt;
&lt;li&gt;  Cyfrin Updraft full-stack web 3 course &lt;a href="https://updraft.cyfrin.io/courses/full-stack-web3-development-crash-course" rel="noopener noreferrer"&gt;https://updraft.cyfrin.io/courses/full-stack-web3-development-crash-course&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  AI integration&lt;/li&gt;

&lt;li&gt;  Fixing vibe coded codebases&lt;/li&gt;

&lt;li&gt;  CRM integrations&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to support the show
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Patreon
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prices subject to change and are listed in USD&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Support the show from as little as ~$1/month&lt;/li&gt;
&lt;li&gt;  Get a shoutout at the end of the episode (while supplies last) for just ~$3/month&lt;/li&gt;
&lt;li&gt;  Help support the HTML All The Things Podcast: &lt;a href="https://www.patreon.com/htmlallthethings" rel="noopener noreferrer"&gt;Click Here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scrimba Discount - Coding Courses!
&lt;/h2&gt;

&lt;p&gt;Learn to code using Scrimba with their interactive follow-along code editor.&lt;/p&gt;

&lt;p&gt;Join their exclusive discord communities and network to find your first job!&lt;/p&gt;

&lt;p&gt;Use our &lt;a href="https://scrimba.com/?via=htmlallthethings" rel="noopener noreferrer"&gt;affiliate link&lt;/a&gt; for a 20% discount!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click the link to take you to the Scrimba site&lt;/li&gt;
&lt;li&gt;  A pop-up should appear on your screen with the discount amount and instructions on how to claim it&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Discount is for new accounts only&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;We receive a monetary kickback if you use our affiliate link and make a purchase.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
      <category>podcast</category>
    </item>
    <item>
      <title>Why Prisma Is Still the Best ORM | w/ William Madden</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Thu, 08 May 2025 14:41:19 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/why-prisma-is-still-the-best-orm-w-william-madden-4l18</link>
      <guid>https://forem.com/mikehtmlallthethings/why-prisma-is-still-the-best-orm-w-william-madden-4l18</guid>
      <description>&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/1gJn4B3I8LwPdlAH2H0rMa" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML All The Things?
&lt;/h2&gt;

&lt;p&gt;HTML All The Things is a &lt;a href="https://www.htmlallthethings.com/" rel="noopener noreferrer"&gt;web development podcast&lt;/a&gt; and &lt;a href="https://discord.com/invite/jweMCx9" rel="noopener noreferrer"&gt;discord community&lt;/a&gt; which was started by Matt and Mike, developers based in Ontario, Canada. &lt;/p&gt;

&lt;p&gt;The podcast speaks to web development topics as well as running a small business, self-employment and time management. You can join them for both their successes and their struggles as they try to manage expanding their Web Development business without stretching themselves too thin.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's This One About?
&lt;/h2&gt;

&lt;p&gt;In this episode of &lt;em&gt;HTML All The Things&lt;/em&gt;, Mike chats with William Madden, Developer Advocate at Prisma, to uncover what makes modern ORMs essential in today's development workflows. They break down what an ORM is, why developers should care, and how Prisma sets itself apart in the crowded ORM space. William also dives into the technical challenges of building an ORM, the reasoning behind Prisma’s shift from Rust binaries to TypeScript, and what’s on the horizon for the platform. Whether you’re deep in backend development or just getting started with databases, this episode offers insights you won’t want to miss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interview Questions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Can you describe what an ORM is and why developers should use them?&lt;/li&gt;
&lt;li&gt;  What is unique about Prisma in the ORM landscape?&lt;/li&gt;
&lt;li&gt;  What’s the biggest challenge when creating an ORM?&lt;/li&gt;
&lt;li&gt;  What led you down the path of switching from Rust binaries to TypeScript?

&lt;ul&gt;
&lt;li&gt;  Extra follow up questions will come up around the answer to this one&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  What’s next for Prisma?&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  William's Links - &lt;a href="https://www.prisma.io/docs/getting-started" rel="noopener noreferrer"&gt;Try Prisma!&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://pris.ly/orm-roadmap" rel="noopener noreferrer"&gt;ORM Roadmap&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Monthly Dev AMA (&lt;a href="https://www.youtube.com/watch?v=bH4nla8Awzs&amp;amp;list=PLn2e1F9Rfr6momn4STlH83rq4ABd42NTq&amp;amp;index=1" rel="noopener noreferrer"&gt;YouTube Playlist for VODs&lt;/a&gt;)

&lt;ul&gt;
&lt;li&gt;  Or participate via the &lt;a href="https://discord.com/invite/prisma-937751382725886062" rel="noopener noreferrer"&gt;Prisma Discord Server&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to support the show
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Patreon
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prices subject to change and are listed in USD&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Support the show from as little as ~$1/month&lt;/li&gt;
&lt;li&gt;  Get a shoutout at the end of the episode (while supplies last) for just ~$3/month&lt;/li&gt;
&lt;li&gt;  Help support the HTML All The Things Podcast: &lt;a href="https://www.patreon.com/htmlallthethings" rel="noopener noreferrer"&gt;Click Here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scrimba Discount - Coding Courses!
&lt;/h2&gt;

&lt;p&gt;Learn to code using Scrimba with their interactive follow-along code editor.&lt;/p&gt;

&lt;p&gt;Join their exclusive discord communities and network to find your first job!&lt;/p&gt;

&lt;p&gt;Use our &lt;a href="https://scrimba.com/?via=htmlallthethings" rel="noopener noreferrer"&gt;affiliate link&lt;/a&gt; for a 20% discount!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click the link to take you to the Scrimba site&lt;/li&gt;
&lt;li&gt;  A pop-up should appear on your screen with the discount amount and instructions on how to claim it&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Discount is for new accounts only&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;We receive a monetary kickback if you use our affiliate link and make a purchase.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>prisma</category>
      <category>podcast</category>
    </item>
    <item>
      <title>Why Flip Phones Still Matter in 2025 | w/ Tom Barrasso</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Mon, 05 May 2025 13:09:41 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/why-flip-phones-still-matter-in-2025-w-tom-barrasso-p9m</link>
      <guid>https://forem.com/mikehtmlallthethings/why-flip-phones-still-matter-in-2025-w-tom-barrasso-p9m</guid>
      <description>&lt;h2&gt;
  
  
  What is HTML All The Things?
&lt;/h2&gt;

&lt;p&gt;HTML All The Things is a &lt;a href="https://www.htmlallthethings.com/" rel="noopener noreferrer"&gt;web development podcast&lt;/a&gt; and &lt;a href="https://discord.com/invite/jweMCx9" rel="noopener noreferrer"&gt;discord community&lt;/a&gt; which was started by Matt and Mike, developers based in Ontario, Canada. &lt;/p&gt;

&lt;p&gt;The podcast speaks to web development topics as well as running a small business, self-employment and time management. You can join them for both their successes and their struggles as they try to manage expanding their Web Development business without stretching themselves too thin.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's This One About?
&lt;/h2&gt;

&lt;p&gt;In this episode, Matt sits down with Tom Barrasso from Cloud Phone to explore why flip phones are still relevant in 2025. They discuss the rise of digital detox, who’s using feature phones today, and how developers can still build apps for low-spec devices. From KaiOS and Cloud Phone to nostalgia and screen-time reduction—this is a deep dive into the flip phone revival and the tech powering it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to support the show
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Patreon
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prices subject to change and are listed in USD&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Support the show from as little as ~$1/month&lt;/li&gt;
&lt;li&gt;  Get a shoutout at the end of the episode (while supplies last) for just ~$3/month&lt;/li&gt;
&lt;li&gt;  Help support the HTML All The Things Podcast: &lt;a href="https://www.patreon.com/htmlallthethings" rel="noopener noreferrer"&gt;Click Here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scrimba Discount - Coding Courses!
&lt;/h2&gt;

&lt;p&gt;Learn to code using Scrimba with their interactive follow-along code editor.&lt;/p&gt;

&lt;p&gt;Join their exclusive discord communities and network to find your first job!&lt;/p&gt;

&lt;p&gt;Use our &lt;a href="https://scrimba.com/?via=htmlallthethings" rel="noopener noreferrer"&gt;affiliate link&lt;/a&gt; for a 20% discount!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click the link to take you to the Scrimba site&lt;/li&gt;
&lt;li&gt;  A pop-up should appear on your screen with the discount amount and instructions on how to claim it&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Discount is for new accounts only&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;We receive a monetary kickback if you use our affiliate link and make a purchase.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Interview Questions &amp;amp; Topics
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  When I think of a flip phone in 2025 I think of either the old school Motorola RAZR from my high school days, or a cutting edge phone with a foldable display (New RAZR, Samsung Fold, Samsung Z Flip). 

&lt;ul&gt;
&lt;li&gt;  To establish where we are coming from for the audience, can you give us some context on what segment of the industry you work with and why? Why’d you get into flip phones in the first place?&lt;/li&gt;
&lt;li&gt;  What kind of prices do these phones sell for? Why don’t people just buy cheap Android phones?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  We discussed off-air that some of the devices you work with have as little as 16MB of RAM

&lt;ul&gt;
&lt;li&gt;  What special considerations do you need to take into account to accommodate these devices in native apps and/or web apps?&lt;/li&gt;
&lt;li&gt;  Do you build modern websites/web apps? If you do, why work with such low-spec devices?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Digital availability and excessive screen time has been plaguing humans since smartphones starting hitting the scene in the late 2000s/early 2010s, and as such we are seeing people start to do digital detox where they get a dumb phone, an iPod, and a digital camera again

&lt;ul&gt;
&lt;li&gt;  Does this “digital detox” movement affect your industry at all? Is it becoming less niche and more mainstream with movements like this? Maybe this movement is more about temporary nostalgia?&lt;/li&gt;
&lt;li&gt;  If people are using flip phones to get away from smartphone functionality, are they looking for more advanced tech like podcasts, YouTube, and ChatGPT?&lt;/li&gt;
&lt;li&gt;  What about seniors, do older folks still use flip phones? What other demographics can you share?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  As a web developer, what other platforms can you target for flip phones? Can you build natively?

&lt;ul&gt;
&lt;li&gt;  What’s the difference between Opera Mini, Cloud Phone, and KaiOS? What about Android flip phones?&lt;/li&gt;
&lt;li&gt;  Two decades ago, developers used to use WAP (Wireless Application Protocol). Is that still a thing? What about Java ME?&lt;/li&gt;
&lt;li&gt;  There are so many models, manufacturers, and platforms. Why is the ecosystem so fragmented?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  I’m in Canada, you’re speaking to us from New Zealand, our listeners are all over. Where can we get a flip phone? How about one with Cloud Phone?

&lt;ul&gt;
&lt;li&gt;  Are there ways to test your app without a physical device?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tom's Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.cloudfone.com/" rel="noopener noreferrer"&gt;https://www.cloudfone.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developer.cloudfone.com/" rel="noopener noreferrer"&gt;https://developer.cloudfone.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.reddit.com/r/cloudphone/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/cloudphone/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://discord.gg/YDCh3NXYaN" rel="noopener noreferrer"&gt;https://discord.gg/YDCh3NXYaN&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="http://linkedin.com/in/tombarrasso" rel="noopener noreferrer"&gt;https://linkedin.com/in/tombarrasso&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/cloudmosa" rel="noopener noreferrer"&gt;https://github.com/cloudmosa&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://puffin.com/" rel="noopener noreferrer"&gt;https://puffin.com/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>podcast</category>
    </item>
    <item>
      <title>Startups vs Big Tech for Web Developers</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Mon, 21 Apr 2025 00:44:18 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/startups-vs-big-tech-for-web-developers-3bf4</link>
      <guid>https://forem.com/mikehtmlallthethings/startups-vs-big-tech-for-web-developers-3bf4</guid>
      <description>&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/3YRRuIdZIGJzK1YQmV9o2t" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML All The Things?
&lt;/h2&gt;

&lt;p&gt;HTML All The Things is a &lt;a href="https://www.htmlallthethings.com/" rel="noopener noreferrer"&gt;web development podcast&lt;/a&gt; and &lt;a href="https://discord.com/invite/jweMCx9" rel="noopener noreferrer"&gt;discord community&lt;/a&gt; which was started by Matt and Mike, developers based in Ontario, Canada. &lt;/p&gt;

&lt;p&gt;The podcast speaks to web development topics as well as running a small business, self-employment and time management. You can join them for both their successes and their struggles as they try to manage expanding their Web Development business without stretching themselves too thin.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's This One About?
&lt;/h2&gt;

&lt;p&gt;In this episode, Mike shares his theory that AI will make it easier to prototype and launch startups, potentially opening more opportunities for developers outside of big tech. Matt and Mike compare working in startups versus big tech across several categories like career growth, pace, culture, job security, and more. Drawing on personal experiences and industry research, they explore how each environment can shape a developer’s career—and how AI might change the game.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to support the show
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Patreon
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prices subject to change and are listed in USD&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Support the show from as little as ~$1/month&lt;/li&gt;
&lt;li&gt;  Get a shoutout at the end of the episode (while supplies last) for just ~$3/month&lt;/li&gt;
&lt;li&gt;  Help support the HTML All The Things Podcast: &lt;a href="https://www.patreon.com/htmlallthethings" rel="noopener noreferrer"&gt;Click Here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scrimba Discount - Coding Courses!
&lt;/h2&gt;

&lt;p&gt;Learn to code using Scrimba with their interactive follow-along code editor.&lt;/p&gt;

&lt;p&gt;Join their exclusive discord communities and network to find your first job!&lt;/p&gt;

&lt;p&gt;Use our &lt;a href="https://scrimba.com/?via=htmlallthethings" rel="noopener noreferrer"&gt;affiliate link&lt;/a&gt; for a 20% discount!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click the link to take you to the Scrimba site&lt;/li&gt;
&lt;li&gt;  A pop-up should appear on your screen with the discount amount and instructions on how to claim it&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Discount is for new accounts only&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;We receive a monetary kickback if you use our affiliate link and make a purchase.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Show Notes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  One of the theories I have is with the rise of AI, it will democratize creating POCs and therefore creating startups&lt;/li&gt;
&lt;li&gt;  Therefore there might be more opportunities for developers to get into startups in the future vs big tech&lt;/li&gt;
&lt;li&gt;  What is big tech? 

&lt;ul&gt;
&lt;li&gt;  FAANG (or MAANG)&lt;/li&gt;
&lt;li&gt;  Fortune 500 corps&lt;/li&gt;
&lt;li&gt;  Large enterprises&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  What is a startup?

&lt;ul&gt;
&lt;li&gt;  Usually less than 100 employees&lt;/li&gt;
&lt;li&gt;  Funding is often from investors or bootstrapped&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  My experience

&lt;ul&gt;
&lt;li&gt;  Worked in a larger startup that transitioned to a mid size company&lt;/li&gt;
&lt;li&gt;  Have friends and family that work in big tech (Amazon, Instacart, Facebook, Apple)&lt;/li&gt;
&lt;li&gt;  Working currently at a 30-40 person startup&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Scope and Breadth of Responsibilities&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Startup&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Broad scope: Developers wear multiple hats, often handling frontend, backend, DevOps, and even customer support.&lt;/li&gt;
&lt;li&gt;  High autonomy: Opportunity to influence product direction.&lt;/li&gt;
&lt;li&gt;  Potential downside: Risk of burnout or lack of specialization.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; According to Stack Overflow's Developer Survey (2023), startup developers often report higher job diversity but also higher stress.  &lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Big Tech&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Clearly defined roles: Developers usually specialize in a specific area (frontend, backend, infrastructure, etc.).&lt;/li&gt;
&lt;li&gt;  Deep expertise: Opportunity to master specialized skill sets.&lt;/li&gt;
&lt;li&gt;  Potential downside: Reduced visibility into overall product direction and slower personal impact.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; FAANG companies frequently hire specialists in niche technologies (e.g., React core teams, backend-only roles at Google).  &lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Development Pace and Workflows&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Startup&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Faster iteration cycles: Quick prototyping and MVP approach.&lt;/li&gt;
&lt;li&gt;  Agile in practice, less rigid adherence to formal processes.&lt;/li&gt;
&lt;li&gt;  Potential downside: Technical debt accrues faster due to speed.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; Lean Startup methodology popularized by Eric Ries emphasizes fast cycles of "build-measure-learn."  &lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Big Tech&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  More structured release cycles: Greater emphasis on code review, testing, QA processes, and gradual rollout.&lt;/li&gt;
&lt;li&gt;  Emphasis on reliability, scalability, and maintainability.&lt;/li&gt;
&lt;li&gt;  Potential downside: Slower pace of innovation due to bureaucracy.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; Google's development practices emphasize rigorous code reviews and automated testing frameworks for scalability (Google’s SRE Handbook).  &lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Impact and Ownership&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Startup&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  High impact per developer: Individual contributions directly influence company survival.&lt;/li&gt;
&lt;li&gt;  Sense of ownership: Close connection to users, seeing immediate results of work.&lt;/li&gt;
&lt;li&gt;  Potential downside: Higher pressure and responsibility can lead to stress.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; Harvard Business Review (2022) highlights higher engagement and job satisfaction among startup employees due to perceived personal impact.  &lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Big Tech&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Impact at scale: Changes made by a developer potentially affect millions of users.&lt;/li&gt;
&lt;li&gt;  Shared ownership: Contributions are part of larger initiatives and teams.&lt;/li&gt;
&lt;li&gt;  Potential downside: Individual impact can feel diluted.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; Netflix’s engineering culture emphasizes shared responsibility, allowing broad autonomy within clearly defined parameters.  &lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Career Growth and Mentorship&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Startup&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Accelerated learning: Exposure to multiple technologies and rapid problem-solving.&lt;/li&gt;
&lt;li&gt;  Potential downside: Less structured mentorship or formalized training.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; TechCrunch (2023) notes developers at startups tend to self-teach more frequently due to fewer internal resources.  &lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Big Tech&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Structured career paths: Clearly defined levels (junior, mid, senior, staff engineer).
Strong mentorship and training programs.&lt;/li&gt;
&lt;li&gt;  Potential downside: Progression can be slower due to rigid promotion cycles and bureaucracy.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; Big tech companies like Amazon and Microsoft frequently provide formal mentorship programs and career mapping (Glassdoor, 2023).  &lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5. Job Security and Stability&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Startup&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Higher risk: Employment stability closely tied to funding rounds, product-market fit, and growth trajectory.&lt;/li&gt;
&lt;li&gt;  Higher reward potential: Equity opportunities can provide financial upside if the startup succeeds.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; Forbes reports (2022) that 70% of startups fail within the first five years, highlighting employment risk.  &lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Big Tech&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Greater stability: Established companies offer consistent employment, stable income, and extensive employee benefits.&lt;/li&gt;
&lt;li&gt;  Predictable career trajectory with established compensation packages.&lt;/li&gt;
&lt;li&gt;  Potential downside: Lower potential financial upside (aside from steady incremental raises or bonuses).
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; LinkedIn Workforce Report (2023) shows big tech employees have longer average tenure compared to startup employees.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;a href="https://www.investopedia.com/articles/personal-finance/040915/how-many-startups-fail-and-why.asp#:~:text=Despite%20their%20promise%2C%20as%20many,first%20five%20to%20ten%20years" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="https://www.investopedia.com/articles/personal-finance/040915/how-many-startups-fail-and-why.asp#:%7E:text=Despite%20their%20promise%2C%20as%20many,first%20five%20to%20ten%20years" rel="noopener noreferrer"&gt;https://www.investopedia.com/articles/personal-finance/040915/how-many-startups-fail-and-why.asp#:~:text=Despite%20their%20promise%2C%20as%20many,first%20five%20to%20ten%20years&lt;/a&gt;.  &lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6. Culture and Work Environment&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Startup&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Informal culture: Generally flexible hours, casual dress code, emphasis on camaraderie.&lt;/li&gt;
&lt;li&gt;  Greater influence on culture: Early employees shape organizational values.&lt;/li&gt;
&lt;li&gt;  Potential downside: Sometimes chaotic or unclear structure.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; Surveys by AngelList consistently rate startup flexibility and culture as key attractions for tech workers.  &lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Big Tech&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Structured, professional environment: Clear policies, formal processes, extensive HR frameworks.&lt;/li&gt;
&lt;li&gt;  Extensive perks: Often include comprehensive healthcare, parental leave, wellness programs, catered meals, and more.&lt;/li&gt;
&lt;li&gt;  Potential downside: Possible feeling of being just another employee in a large organization.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; Employee reviews on Glassdoor commonly highlight extensive benefits and stability in big tech, but also occasional lack of personalized attention or care.  &lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;7. Tech Stack and Innovation&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Startup&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Greater freedom in choosing technologies: Typically quick adoption of cutting-edge or experimental frameworks.&lt;/li&gt;
&lt;li&gt;  Potential downside: Less mature tooling and potential compatibility issues or frequent rewrites.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;em&gt;Evidence:&lt;/em&gt; Developer happiness surveys (Stack Overflow 2023) indicate developers value the ability to experiment, common at startups.  &lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Big Tech&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Well-established stacks: Battle-tested technologies, large-scale deployments, and internal tooling.&lt;/li&gt;
&lt;li&gt;  Potential downside: Slow adoption of new technologies due to scale and operational constraints.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;‍&lt;em&gt;Evidence:&lt;/em&gt; Facebook's slow adoption and careful rollouts of React 18 demonstrate caution in big tech’s approach to innovation (Facebook Engineering Blog, 2022).&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>startup</category>
      <category>career</category>
      <category>podcast</category>
    </item>
    <item>
      <title>Understanding Svelte 5 Runes: $derived vs $effect</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Wed, 16 Apr 2025 16:38:00 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/understanding-svelte-5-runes-derived-vs-effect-1hh</link>
      <guid>https://forem.com/mikehtmlallthethings/understanding-svelte-5-runes-derived-vs-effect-1hh</guid>
      <description>&lt;p&gt;Svelte 5 introduces a powerful new reactive primitive system called "runes" that simplifies state management. Let's explore what runes are and dive deep into two important ones: &lt;code&gt;$derived&lt;/code&gt; and &lt;code&gt;$effect&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To demonstrate how to use these runes we will use a water tracker application that I've built. You can find the source code here: &lt;a href="https://github.com/mikhail-karan/water-tracker-svelte5" rel="noopener noreferrer"&gt;https://github.com/mikhail-karan/water-tracker-svelte5&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Svelte 5 Runes?
&lt;/h2&gt;

&lt;p&gt;Runes are special primitives in Svelte 5 marked with a &lt;code&gt;$&lt;/code&gt; prefix that enable fine-grained reactivity. Unlike Svelte 4's compiler-based reactivity, runes bring reactivity directly into the JavaScript runtime, making it more explicit and portable.&lt;/p&gt;

&lt;p&gt;The main runes include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;$state&lt;/code&gt; - Declares reactive state &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$derived&lt;/code&gt; - Computes values from state&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$effect&lt;/code&gt; - Runs side effects when dependencies change&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$props&lt;/code&gt; - Handles component props&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Power of $derived
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;$derived&lt;/code&gt; is used to compute values that depend on reactive state. It automatically updates whenever its dependencies change, and importantly, it's memoized (calculated only when needed).&lt;/p&gt;

&lt;p&gt;From our water tracker app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;blocksToFill&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$derived&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;waterConsumed&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;waterBlocks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$derived&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nc"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;_&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;blocksToFill&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 20 blocks representing 100ml each&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;lastDrinkDerived&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$derived&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;waterConsumed&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here we use &lt;code&gt;$derived&lt;/code&gt; to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Calculate how many water blocks to fill based on water consumed&lt;/li&gt;
&lt;li&gt;Generate an array of boolean values representing filled/unfilled blocks&lt;/li&gt;
&lt;li&gt;Track when the last drink was taken&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These values are perfect for &lt;code&gt;$derived&lt;/code&gt; because they:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are pure calculations based on state&lt;/li&gt;
&lt;li&gt;Need to update automatically when dependencies change&lt;/li&gt;
&lt;li&gt;Don't perform side effects&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Understanding $effect
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;$effect&lt;/code&gt; is for running side effects when reactive values change. Unlike &lt;code&gt;$derived&lt;/code&gt;, it doesn't return a value - it performs actions.&lt;/p&gt;

&lt;p&gt;From our app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$effect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Persist data to localStorage whenever values change&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;firstRun&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;waterData&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
                &lt;span class="na"&gt;waterConsumedSaved&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;waterConsumed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;lastDrinkSaved&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;lastDrink&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;dailyGoalSaved&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;dailyGoal&lt;/span&gt;
            &lt;span class="p"&gt;})&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;waterData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;waterData&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;waterData&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;waterConsumedSaved&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lastDrinkSaved&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;dailyGoalSaved&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;waterData&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="nx"&gt;waterConsumed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;waterConsumedSaved&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="nx"&gt;lastDrink&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;lastDrinkSaved&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lastDrinkSaved&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="nx"&gt;dailyGoal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;dailyGoalSaved&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;firstRun&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This &lt;code&gt;$effect&lt;/code&gt; is perfect for what it's doing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Persisting data to localStorage (side effect)&lt;/li&gt;
&lt;li&gt;Loading data on first run (side effect)&lt;/li&gt;
&lt;li&gt;Tracking when state changes to trigger these operations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When to Use $effect (Sparingly)
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;$effect&lt;/code&gt; should be used rarely and only for side effects. Common appropriate uses include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Persisting data to localStorage (as in our example)&lt;/li&gt;
&lt;li&gt;Making API calls when dependencies change&lt;/li&gt;
&lt;li&gt;Interacting with the DOM in ways not handled by Svelte's templating&lt;/li&gt;
&lt;li&gt;Logging or analytics&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Common $effect Misuses
&lt;/h2&gt;

&lt;p&gt;Here are examples of misusing &lt;code&gt;$effect&lt;/code&gt; that should be avoided:&lt;/p&gt;

&lt;h3&gt;
  
  
  Misuse 1: Computing values that should be $derived
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// BAD&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;doubledWater&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nf"&gt;$effect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;doubledWater&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;waterConsumed&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// GOOD&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;doubledWater&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$derived&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;waterConsumed&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Misuse 2: Conditional side effects that could be inline
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// BAD&lt;/span&gt;
&lt;span class="nf"&gt;$effect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;waterConsumed&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="nx"&gt;dailyGoal&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Goal reached!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// GOOD - In template&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nx"&gt;waterConsumed&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="nx"&gt;dailyGoal&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;mount&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Goal reached!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Goal&lt;/span&gt; &lt;span class="nx"&gt;reached&lt;/span&gt;&lt;span class="o"&gt;!&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sr"&gt;/if&lt;/span&gt;&lt;span class="err"&gt;}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Misuse 3: Overusing for simple DOM manipulations
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// BAD&lt;/span&gt;
&lt;span class="nf"&gt;$effect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`Water: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;waterConsumed&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;ml`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// GOOD - Use Svelte's &amp;lt;svelte:head&amp;gt; component instead&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Understanding the difference between &lt;code&gt;$derived&lt;/code&gt; and &lt;code&gt;$effect&lt;/code&gt; is crucial:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;$derived&lt;/code&gt; is for computing values based on state (pure, returns a value)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$effect&lt;/code&gt; is for running side effects when state changes (impure, no return value)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By using the right rune for the job, your Svelte 5 applications will be more maintainable, predictable, and efficient. Our water tracker app demonstrates how these runes can work together to create a responsive, state-driven application.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>svelte</category>
      <category>beginners</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Top 5 Code Editors for Web Developers</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Tue, 01 Apr 2025 18:08:13 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/top-5-code-editors-for-web-developers-16pn</link>
      <guid>https://forem.com/mikehtmlallthethings/top-5-code-editors-for-web-developers-16pn</guid>
      <description>&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/6HBRIdixhfD6iKrE0oL0C2" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML All The Things?
&lt;/h2&gt;

&lt;p&gt;HTML All The Things is a &lt;a href="https://www.htmlallthethings.com/" rel="noopener noreferrer"&gt;web development podcast&lt;/a&gt; and &lt;a href="https://discord.com/invite/jweMCx9" rel="noopener noreferrer"&gt;discord community&lt;/a&gt; which was started by Matt and Mike, developers based in Ontario, Canada. &lt;/p&gt;

&lt;p&gt;The podcast speaks to web development topics as well as running a small business, self-employment and time management. You can join them for both their successes and their struggles as they try to manage expanding their Web Development business without stretching themselves too thin.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's This One About?
&lt;/h2&gt;

&lt;p&gt;Choosing the right code editor can make or break a web developer's workflow. In this episode, we dive into the Top 5 Code Editors for Web Developers—exploring their strengths, quirks, and everything in between. From the widely-loved Visual Studio Code to the blazing-fast newcomer Zed, we discuss which editors could suit your coding style. Whether you're a fan of Vim's keyboard mastery, WebStorm's all-in-one features, or experimenting with modern tools like Cursor, there's something here for everyone. Tune in to find the perfect fit for your development journey!&lt;/p&gt;

&lt;h2&gt;
  
  
  How to support the show
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Patreon
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prices subject to change and are listed in USD&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Support the show from as little as ~$1/month&lt;/li&gt;
&lt;li&gt;  Get a shoutout at the end of the episode (while supplies last) for just ~$3/month&lt;/li&gt;
&lt;li&gt;  Help support the HTML All The Things Podcast: &lt;a href="https://www.patreon.com/htmlallthethings" rel="noopener noreferrer"&gt;Click Here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scrimba Discount - Coding Courses!
&lt;/h2&gt;

&lt;p&gt;Learn to code using Scrimba with their interactive follow-along code editor.&lt;/p&gt;

&lt;p&gt;Join their exclusive discord communities and network to find your first job!&lt;/p&gt;

&lt;p&gt;Use our &lt;a href="https://scrimba.com/?via=htmlallthethings" rel="noopener noreferrer"&gt;affiliate link&lt;/a&gt; for a 20% discount!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click the link to take you to the Scrimba site&lt;/li&gt;
&lt;li&gt;  A pop-up should appear on your screen with the discount amount and instructions on how to claim it&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Discount is for new accounts only&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;We receive a monetary kickback if you use our affiliate link and make a purchase.&lt;/em&gt;&lt;/p&gt;




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

&lt;h2&gt;
  
  
  Show Notes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Visual Studio Code (VS Code)&lt;/strong&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  **Description:
**A free, open-source editor developed by Microsoft, known for its versatility, extensive extension ecosystem, and robust community support.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Pros:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Rich Extensions Marketplace:&lt;/strong&gt; Easily customizable with thousands of extensions.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Integrated Terminal &amp;amp; Debugger:&lt;/strong&gt; Supports in-editor debugging and terminal operations.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Cross-Platform:&lt;/strong&gt; Runs on Windows, macOS, and Linux.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Cons:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Resource Usage:&lt;/strong&gt; Can become heavy with too many extensions.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Frequent Updates:&lt;/strong&gt; Sometimes rapid changes can lead to compatibility issues.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Interesting Facts:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  It’s one of the most popular editors in the developer community and has influenced many features in other editors.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://www.cursor.com/en" rel="noopener noreferrer"&gt;&lt;strong&gt;Cursor&lt;/strong&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  **Description:
**A fork of VS Code that integrates with AI models heavily allowing developers to use full agentic AI (yolo mode) with their codebase.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Pros:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;AI Built In:&lt;/strong&gt; Built with a AI first mindset that allows you to talk to your codebase and have AI do a lot more then just autocomplete the next line&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Easy to ramp up:&lt;/strong&gt; since it's a fork of VS Code it's easy for most developers to learn and start being productive quickly&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Cons:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Over Reliance on AI:&lt;/strong&gt; Making it super easy to use AI in code editors has a pitfall that makes you over reliant on AI to the point it could impact your ablity to understand your codebase.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Interesting Facts:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  Was first created as a specifically React IDE that helped make React/Next.js projects with AI&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://neovim.io/" rel="noopener noreferrer"&gt;&lt;strong&gt;Vim / Neovim&lt;/strong&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  **Description:
**Classic text editors built for efficiency through keyboard-centric commands. Neovim is a modern refactor of Vim that aims to improve extensibility and integration.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Pros:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Efficiency &amp;amp; Speed:&lt;/strong&gt; Extremely lightweight with a minimal footprint.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Customizable:&lt;/strong&gt; Powerful scripting capabilities via vimrc or Lua (in Neovim).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Modal Editing:&lt;/strong&gt; Allows for rapid navigation and editing once mastered.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Cons:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Steep Learning Curve:&lt;/strong&gt; Not immediately intuitive for newcomers.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;User Experience:&lt;/strong&gt; Lacks the GUI polish of more modern editors.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Interesting Facts:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  Vim’s philosophy of “doing more with less” has influenced many text editors and IDEs.&lt;/li&gt;
&lt;li&gt;  Neovim’s architecture is designed to improve upon long-standing limitations, fostering a renewed community interest.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://www.jetbrains.com/webstorm/" rel="noopener noreferrer"&gt;&lt;strong&gt;WebStorm&lt;/strong&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  **Description:
**A full-featured IDE from JetBrains specifically tailored for JavaScript and front-end development. Known for its intelligent code assistance and deep integrations.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Pros:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Robust Features:&lt;/strong&gt; Advanced code refactoring, debugging, and testing tools.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Smart Code Completion:&lt;/strong&gt; Context-aware suggestions that adapt to your coding style.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Integrated Tools:&lt;/strong&gt; Seamless support for version control, build tools, and frameworks.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Cons:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Paid Product:&lt;/strong&gt; Requires a license, which may be a barrier for some developers.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Resource Intensive:&lt;/strong&gt; Can be heavy on system resources, especially with larger projects.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Interesting Facts:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  JetBrains’ ecosystem is renowned for its developer-centric approach, and WebStorm often sets the bar for feature-rich web development environments.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5.&lt;/strong&gt; &lt;a href="https://zed.dev/" rel="noopener noreferrer"&gt;&lt;strong&gt;Zed&lt;/strong&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  **Description:
**A newcomer designed for speed and minimalism, Zed aims to provide a distraction-free coding experience with a modern twist.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Pros:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Performance:&lt;/strong&gt; Focused on speed and responsiveness.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Clean UI:&lt;/strong&gt; Minimalist design that reduces distractions.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Modern Features:&lt;/strong&gt; Built with contemporary developer needs in mind.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Cons:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Early Stage:&lt;/strong&gt; May still be missing some of the mature features found in other editors.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Community Support:&lt;/strong&gt; Smaller ecosystem compared to VS Code or WebStorm.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Interesting Facts:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  Zed is attracting attention as a “next-gen” editor, appealing to developers who value speed and efficiency over a fully loaded feature set.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Timestamps
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Timestamps are machine generated, there may be errors.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  00:00 Introduction and Episode Overview&lt;/li&gt;
&lt;li&gt;  00:51 Personal Preferences and Code Editors&lt;/li&gt;
&lt;li&gt;  01:27 Support the Show and Auctioneer Anecdote&lt;/li&gt;
&lt;li&gt;  02:16 Storage Wars Canada Story&lt;/li&gt;
&lt;li&gt;  04:07 Transition to Code Editors Discussion&lt;/li&gt;
&lt;li&gt;  04:33 The Relevance of Code Editors Today&lt;/li&gt;
&lt;li&gt;  07:45 Visual Studio Code: Features and Benefits&lt;/li&gt;
&lt;li&gt;  12:24 VS Code: Cons and Personal Experiences&lt;/li&gt;
&lt;li&gt;  19:22 AI Integration in Code Editors&lt;/li&gt;
&lt;li&gt;  21:48 Cursor: The AI-Powered Code Editor&lt;/li&gt;
&lt;li&gt;  25:10 AI's Impact on the Tech Industry&lt;/li&gt;
&lt;li&gt;  33:09 Exploring Level Three and Bot Usage&lt;/li&gt;
&lt;li&gt;  33:29 The Impact of Economic Conditions on AI and Developers&lt;/li&gt;
&lt;li&gt;  35:17 The Future of AI in Development&lt;/li&gt;
&lt;li&gt;  36:56 Integrating AI into Your Workflow&lt;/li&gt;
&lt;li&gt;  38:21 Cursor: AI-Powered VS Code Fork&lt;/li&gt;
&lt;li&gt;  39:12 NeoVim: The Terminal-Based Text Editor&lt;/li&gt;
&lt;li&gt;  49:33 WebStorm: The Feature-Packed JavaScript Editor&lt;/li&gt;
&lt;li&gt;  55:01 Zed: The Fast Rust-Based Code Editor&lt;/li&gt;
&lt;li&gt;  59:34 The Importance of Syntax Highlighting and Themes&lt;/li&gt;
&lt;li&gt;  01:03:54 Conclusion and Patreon Shoutouts&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
      <category>podcast</category>
    </item>
    <item>
      <title>My Real-World SEO Checklist for New Websites</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Tue, 25 Mar 2025 17:50:45 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/my-real-world-seo-checklist-for-new-websites-2f9i</link>
      <guid>https://forem.com/mikehtmlallthethings/my-real-world-seo-checklist-for-new-websites-2f9i</guid>
      <description>&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/0O3XvdJyF83MKB3XxgRTds" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML All The Things?
&lt;/h2&gt;

&lt;p&gt;HTML All The Things is a &lt;a href="https://www.htmlallthethings.com/" rel="noopener noreferrer"&gt;web development podcast&lt;/a&gt; and &lt;a href="https://discord.com/invite/jweMCx9" rel="noopener noreferrer"&gt;discord community&lt;/a&gt; which was started by Matt and Mike, developers based in Ontario, Canada. &lt;/p&gt;

&lt;p&gt;The podcast speaks to web development topics as well as running a small business, self-employment and time management. You can join them for both their successes and their struggles as they try to manage expanding their Web Development business without stretching themselves too thin.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's This One About?
&lt;/h2&gt;

&lt;p&gt;In this episode, Matt walks through his real-world SEO checklist for launching new websites—based on the process he followed while preparing a recent client site for launch. He covers everything from SEO titles, meta descriptions, and OG images to page performance, link structure, and content considerations. Along the way, Mike shares some of his own experiences, tools, and hard-earned lessons—like why automatic OG image generation can be a pain and how redirects can impact link equity. Whether you're prepping a site for launch or just want to tighten up your SEO workflow, this episode is packed with practical, real-world advice.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to support the show
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Patreon
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prices subject to change and are listed in USD&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Support the show from as little as ~$1/month&lt;/li&gt;
&lt;li&gt;  Get a shoutout at the end of the episode (while supplies last) for just ~$3/month&lt;/li&gt;
&lt;li&gt;  Help support the HTML All The Things Podcast: &lt;a href="https://www.patreon.com/htmlallthethings" rel="noopener noreferrer"&gt;Click Here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scrimba Discount - Coding Courses!
&lt;/h2&gt;

&lt;p&gt;Learn to code using Scrimba with their interactive follow-along code editor.&lt;/p&gt;

&lt;p&gt;Join their exclusive discord communities and network to find your first job!&lt;/p&gt;

&lt;p&gt;Use our &lt;a href="https://scrimba.com/?via=htmlallthethings" rel="noopener noreferrer"&gt;affiliate link&lt;/a&gt; for a 20% discount!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click the link to take you to the Scrimba site&lt;/li&gt;
&lt;li&gt;  A pop-up should appear on your screen with the discount amount and instructions on how to claim it&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Discount is for new accounts only&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;We receive a monetary kickback if you use our affiliate link and make a purchase.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Show Notes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  I’ve recently launched a client site and as such have done a large amount of SEO preparation and checking before launch
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  SEO Title, SEO Description, and OG Image
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Ensure all pages have an SEO Title, SEO Description, and OG Image

&lt;ul&gt;
&lt;li&gt;  SEO Title is a  tag

&lt;ul&gt;
&lt;li&gt;  Recommended: 50-60 characters in length&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  SEO Description is a 

&lt;ul&gt;
&lt;li&gt;  Recommended: 150-160 characters in length&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Some SEO experts prefer a longer description to accommodate Google snippets in search results (180-220 characters), you can pursue this if it’s part of your SEO strategy&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  OG Image is the image that appears when you link is shared on other platforms (if they support OpenGraph), think the cards that X make and the link previews that Facebook creates from text links

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Dimensions:&lt;/strong&gt; 1200px by 630px and 600px by 315px (Aspect ratio 1.91:1)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Size:&lt;/strong&gt; Compressing your image below 5MB is best practice for fast loading (I personally try to get my image to be well under 1MB)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Format:&lt;/strong&gt; You can use JPEG and PNG (WEBP may not be supported by all platforms, but support is quite good these days)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Platform Consideration:&lt;/strong&gt; If your links are shared on specific platforms a lot, you can take them into consideration - sometimes a platform will support different image sizes and aspect ratios better, and many will actually list specific og meta tags you can add to your HTML to help build things like Twitter/X cards and other things&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Matt’s Personal Notes:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  If your site has a CMS, I recommend making all three of these into editable and required fields as soon as possible. You and/or your clients will then be forced to fill in these fields properly. As an added bonus, I like to add character limits that align with my SEO strategy (ie Description must be between 155-160 characters)&lt;/li&gt;
&lt;li&gt;  I also personally prefer the larger 1200px by 630px for OG images (sometimes I’ll even use 720p) I find that they look higher quality on the various platforms&lt;/li&gt;
&lt;li&gt;  Always keep in mind that Google can and will change SEO titles and descriptions if they feel that they have better ones available - blatant keyword stuffing, or adding additional keywords that don’t appear on the page itself contribute to this greatly so keep and eye out for it&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Mike's Personal Notes&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  Automatic OG image generation can be a huge PAIN&lt;/li&gt;
&lt;li&gt;  Should be created on first hit but cached and used on every next hit (made this mistake before)&lt;/li&gt;
&lt;li&gt;  Polypane was a great tool for testing OG images and how they will appear on every platform [Link to Killian Polypane episode: &lt;a href="https://dev.to/mikehtmlallthethings/creating-a-browser-for-developers-polypane-podcast-3435"&gt;https://dev.to/mikehtmlallthethings/creating-a-browser-for-developers-polypane-podcast-3435&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;  Open graph image caching on each platform can be annoying as if you set a wrong one, the old image may show up for a while after a new one is set&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Performance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Super heavy pages (slow load time wise) can cause people to think a page isn’t working (long load time) and then skip visiting the site. This contributes to lost traffic, lost backlinks (nobody wants to link to a super slow page), it can also fall below competitors that have faster loading pages on SERPs.&lt;/li&gt;
&lt;li&gt;  Asset Sizes (usually images and videos) are the number one killer of page load times in my experience

&lt;ul&gt;
&lt;li&gt;  People don’t use efficient formats like WEBP and AVIF&lt;/li&gt;
&lt;li&gt;  Assets aren’t compressed&lt;/li&gt;
&lt;li&gt;  Uploaders will often not resize an image, letting the browser take a huge 1080p for a spot that’s 300px wide (wasting space)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Matt’s Personal Notes&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  Page performance SEO penalty isn’t as dramatic as some might think. Some SEO experts think that having an absolutely perfect PageSpeed score will solve a lot of SEO problems and in my experience that’s just simply not the case. However, very slow load times should be fixed as they will suffer SEO penalties because it’s almost like they’re “broken” in a way&lt;/li&gt;
&lt;li&gt;  When it comes to images, forcing users to upload images of certain parameters inside a CMS can help prevent mistakes&lt;/li&gt;
&lt;li&gt;  On larger sites I won’t check each individual image, I will just go after the biggest offenders (ie 4k image (18MB)  being used for a small 300px wide area) to get the pages to an acceptable load time - I won’t delay a site launch or stop a launch if the pages aren’t as efficient as possible (I believe this is a waste of time)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Link Structure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  If you’re replacing an old site, ensure the URLs of important pages are preserved to maintain link equity&lt;/li&gt;
&lt;li&gt;  Have URL structure that makes sense (ie /blog/blog-post-title) don’t have all the blog posts scattered all over the place, or URLs that are non-descriptive (/a20shdfasdf)&lt;/li&gt;
&lt;li&gt;  Choose which version you want as the default (www or non-www)&lt;/li&gt;
&lt;li&gt;  If you use subdomains, use them in a consistent way (ie each subdomain is a different web app under the same brand, don’t just have subdomains for random things and individual pages for others, keep it consistent)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Matt’s Personal Notes&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  I’m a firm believer in obvious and consistent link structure (ie Google knows what a blog is so &lt;a href="http://htmlallthehtings.com/blog" rel="noopener noreferrer"&gt;htmlallthehtings.com/blog&lt;/a&gt; makes sense)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Mike's Personal Notes&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  Redirects that don’t ruin link equity 

&lt;ul&gt;
&lt;li&gt;  301 for permanent and immediate preservation of link equity&lt;/li&gt;
&lt;li&gt;  302 if you’re redirecting for a particular temporary reason (event is happening that you want people to be taken to)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Ensure heading structure h1-h6&lt;/li&gt;
&lt;li&gt;  Check for articles that are too short and may be seen as clickbait (won’t rank)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Matt’s Personal Notes&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  Make it easy for your clients to edit and add content

&lt;ul&gt;
&lt;li&gt;  Many clients don’t even want to really make content, they want to focus on their main business activities, by making it easy the barrier to entry is lowered&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Create digestible SEO plans for your clients

&lt;ul&gt;
&lt;li&gt;  Instead of saying “okay we need 100 blog posts” try breaking things into phases “We need 10 blog posts over the next few months”&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Nitpicks
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Sitemap

&lt;ul&gt;
&lt;li&gt;  Ensure the appropriate pages are allowed/disallowed&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Analytics

&lt;ul&gt;
&lt;li&gt;  This is very subjective thing and so the tools vary (some people want in-depth information, others just want pageviews)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Global canonical tag

&lt;ul&gt;
&lt;li&gt;  Use this to define a clearcut link that should be used and indexed by search engines (commonly the www or non-www version)&lt;/li&gt;
&lt;li&gt;  Ensure your global canonical tag &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Icons

&lt;ul&gt;
&lt;li&gt;  Favicon&lt;/li&gt;
&lt;li&gt;  Icons for saving your site to home screens or as an app (PWA)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Matt’s Personal Notes&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  Even though global canonicals can help with this, I like to get my customers on the same page when sharing either the www or non-www version&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;strong&gt;Mike's Personal Notes&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  HTTPS 

&lt;ul&gt;
&lt;li&gt;  Sometime images come with http but that can flag some SEO tools so just changing them to https will save some headaches down the line&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>seo</category>
      <category>podcast</category>
    </item>
    <item>
      <title>Corporate Burnout: How the CIA Invented Your 9 to 5</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Mon, 24 Mar 2025 14:07:46 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/corporate-burnout-how-the-cia-invented-your-9-to-5-3kco</link>
      <guid>https://forem.com/mikehtmlallthethings/corporate-burnout-how-the-cia-invented-your-9-to-5-3kco</guid>
      <description>&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/5nymOQf6nDtK1XIc9izxi3" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML All The Things?
&lt;/h2&gt;

&lt;p&gt;HTML All The Things is a &lt;a href="https://www.htmlallthethings.com/" rel="noopener noreferrer"&gt;web development podcast&lt;/a&gt; and &lt;a href="https://discord.com/invite/jweMCx9" rel="noopener noreferrer"&gt;discord community&lt;/a&gt; which was started by Matt and Mike, developers based in Ontario, Canada. &lt;/p&gt;

&lt;p&gt;The podcast speaks to web development topics as well as running a small business, self-employment and time management. You can join them for both their successes and their struggles as they try to manage expanding their Web Development business without stretching themselves too thin.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's This One About?
&lt;/h2&gt;

&lt;p&gt;Modern office work is a dystopian nightmare, but did you know a WWII sabotage manual describes it perfectly? In this episode, Matt and Mike explore the eerie similarities between workplace inefficiency and deliberate sabotage, diving into burnout, corporate jargon, and the illusion of productivity. From pointless meetings to overcomplicated approval processes, we break down the hidden forces making work feel meaningless. Inspired by the &lt;em&gt;Burnout - When does work start feeling pointless?&lt;/em&gt; documentary, we also discuss the origins of corporate buzzwords, ineffective management, and the promises of career success that no longer hold true. If you've ever felt drained by work, this one's for you!&lt;/p&gt;

&lt;h2&gt;
  
  
  Episode Sponsor - Magic Mind
&lt;/h2&gt;

&lt;p&gt;We'd like to thank this episode's sponsor for their support!&lt;/p&gt;

&lt;h3&gt;
  
  
  Magic Mind Gummies - No Caffeine
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  The Magic Mind shots in gummy form - but no caffeine!&lt;/li&gt;
&lt;li&gt;  Resealable bag of 90 gummies&lt;/li&gt;
&lt;li&gt;  Get up to 25% off

&lt;ul&gt;
&lt;li&gt;  Using our affiliate link: &lt;a href="https://magicmind.com/HTMLGM" rel="noopener noreferrer"&gt;https://magicmind.com/HTMLGM&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Or use promo code: HTML25&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to support the show
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Patreon
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prices subject to change and are listed in USD&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Support the show from as little as ~$1/month&lt;/li&gt;
&lt;li&gt;  Get a shoutout at the end of the episode (while supplies last) for just ~$3/month&lt;/li&gt;
&lt;li&gt;  Help support the HTML All The Things Podcast: &lt;a href="https://www.patreon.com/htmlallthethings" rel="noopener noreferrer"&gt;Click Here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scrimba Discount - Coding Courses!
&lt;/h2&gt;

&lt;p&gt;Learn to code using Scrimba with their interactive follow-along code editor.&lt;/p&gt;

&lt;p&gt;Join their exclusive discord communities and network to find your first job!&lt;/p&gt;

&lt;p&gt;Use our &lt;a href="https://scrimba.com/?via=htmlallthethings" rel="noopener noreferrer"&gt;affiliate link&lt;/a&gt; for a 20% discount!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click the link to take you to the Scrimba site&lt;/li&gt;
&lt;li&gt;  A pop-up should appear on your screen with the discount amount and instructions on how to claim it&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Discount is for new accounts only&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;We receive a monetary kickback if you use our affiliate link and make a purchase.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Show Notes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Back in WWII a manual was written by the Office of Strategic Services (predecessor of the CIA) for citizens and resistance fighters of Nazi-occupied territory. This manual was titled the “&lt;a href="https://libcom.org/article/simple-sabotage-field-manual" rel="noopener noreferrer"&gt;Simple Sabotage Field Manual&lt;/a&gt;” and it offered instructions on how to grind the German war machine to a halt by sabotaging their workplaces.&lt;/li&gt;
&lt;li&gt;  It’s strange then that many of the points brought up in this manual describe perfectly what the average day at the office entails

&lt;ul&gt;
&lt;li&gt;  “Interrupt work as often as possible”

&lt;ul&gt;
&lt;li&gt;  Do you find it difficult to focus at the office?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  “Arrange meetings when there is more important work to be done”

&lt;ul&gt;
&lt;li&gt;  Endless meetings anyone?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  “Multiply paperwork”

&lt;ul&gt;
&lt;li&gt;  How many forms do you have to fill out that nobody will read? &lt;/li&gt;
&lt;li&gt;  How much bureaucracy?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  “All decisions should be taken to a committee”

&lt;ul&gt;
&lt;li&gt;  Despite the endless meetings, real decisions need to be made by a bigger meeting down the road&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  “Hold ‘speeches’, bring up irrelevant issues”

&lt;ul&gt;
&lt;li&gt;  Let’s do a town hall to bring up people’s spirits&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  “3 people have to approve anything when one would be enough”

&lt;ul&gt;
&lt;li&gt;  Remember when you had one boss, and now you have many?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;  A few nights ago, I decided that I wanted to watch a documentary, so I typed that into the YouTube search and two results came up on top 

&lt;ul&gt;
&lt;li&gt;  “How to Be a Billionaire” (&lt;a href="https://youtu.be/5JpIz7mYKUw?si=suZ4QWhF_lLZpKiw" rel="noopener noreferrer"&gt;documentary link&lt;/a&gt;)

&lt;ul&gt;
&lt;li&gt;  An uplifting look at a handful of billionaires, how they made their fortunes, their differences, and then commonalities&lt;/li&gt;
&lt;li&gt;  It ultimately boiled down to people that have a dream and execute it no matter what people around them say. Failure is an option, but is only temporary - just keep going.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  “Burnout - When does work start feeling pointless?” (&lt;a href="https://youtu.be/raVms8w61No?si=-7M02E7xX86rqbYA" rel="noopener noreferrer"&gt;documentary link&lt;/a&gt;) via DW Documentary

&lt;ul&gt;
&lt;li&gt;  A less uplifting look at the workplaces many of us experience, but an interesting deep dive into what makes people and corporations tick&lt;/li&gt;
&lt;li&gt;  This documentary is where many of the facts and information in this episodes come from, including the information about correlation between the sabotage manual and modern offices&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Office Work Is Dystopian
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  100 years ago, modern office work was portrayed only in imagined dystopian futures&lt;/li&gt;
&lt;li&gt;  Back in 1930 an economist named John Keynes predicted that we would be working a 15 hour work week by 2030 - largely our jobs could be done in less than 8 hours a day, but instead we created millions of administrative jobs. 

&lt;ul&gt;
&lt;li&gt;  Back in Keynes time ~25% of jobs were administrative, now we’re looking at ~75% today)&lt;/li&gt;
&lt;li&gt;  We created: supervisory jobs, managerial jobs, clerical jobs&lt;/li&gt;
&lt;li&gt;  You can kind of think of the office like a big play, where nobody is able to be honest - the employee can’t be honest about their manager fi they think they’re an idiot, the manager can’t treat the director poorly if they don’t like them&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  I’m going to throw some stats at you:

&lt;ul&gt;
&lt;li&gt;  20% of workers worldwide are engaged (engaged as in engaged in their work)&lt;/li&gt;
&lt;li&gt;  61% are not engaged&lt;/li&gt;
&lt;li&gt;  19% are so unhappy that they’re working against their employer&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Causes of Burnout
&lt;/h3&gt;

&lt;p&gt;The documentary broke down the areas that they investigated into 6 topics:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; The CEO&lt;/li&gt;
&lt;li&gt; Jargon&lt;/li&gt;
&lt;li&gt; The Human Machine&lt;/li&gt;
&lt;li&gt; The Manager&lt;/li&gt;
&lt;li&gt; Education&lt;/li&gt;
&lt;li&gt; Empty Promises&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;The CEO&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  The star of the show&lt;/li&gt;
&lt;li&gt;  Give the main monologue of the company&lt;/li&gt;
&lt;li&gt;  Speeches are typically rooted in fiction and are not even close to what will actually happen&lt;/li&gt;
&lt;li&gt;  Salaries keep increasing, but they aren’t getting any better

&lt;ul&gt;
&lt;li&gt;  Since 1978 CEO salaries grew 1322% | Worker’s grew 18% &lt;/li&gt;
&lt;li&gt;  Under Elop’s leadership Nokia lost 4.9 billion euro, he had an exit bonus of 19 million euro&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Monetary failures are measured, but what isn’t measured is the human cost of these failures

&lt;ul&gt;
&lt;li&gt;  Disruptive company reorganizations and unhappiness among employees goes largely unspoken&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Jargon&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Back in the late 1980s Pacific Bell became interested in a new program for their employees

&lt;ul&gt;
&lt;li&gt;  They spent about 30 million dollars on a consciousness-raising program based in part on the teachings of a Russian mystic/philosopher who roamed the Middle East and Asia searching for the meaning of life&lt;/li&gt;
&lt;li&gt;  The program was officially called “Leadership Development”

&lt;ul&gt;
&lt;li&gt;  Nicknamed “Krone” after Carmel Krone, the consultant that developed much of the training material&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  It was designed to broaden the perception and increase sensory input of the employees&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;  The language used in this program has become the backbone of a lot of corporate jargon today including terms like: touch base, close the loop, thought leader, going forward, low hanging fruit&lt;/li&gt;

&lt;li&gt;  People need to have substance to their work, even if they’re doing empty tasks, so this is a way to cover up the emptiness of tasks&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  ‍&lt;strong&gt;The Human Machine&lt;/strong&gt;‍
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Just as machines are made to be more efficient over time, corporations look at people as machines - looking at people like cogs in a machine, each cog can be made more efficient &lt;/li&gt;
&lt;li&gt;  By the 1970s a corporation was no longer treated as a corporation with people in it, it’s a way to maximize shareholder value

&lt;ul&gt;
&lt;li&gt;  Corps would start using phrases like “How much human capital have we got” instead of addressing the “human capital” as people&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  ‍&lt;strong&gt;The Manager&lt;/strong&gt;‍
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Many managers are promoted into their position because they’ve been around the company for a while, or have been a great individual contributor&lt;/li&gt;
&lt;li&gt;  This is why so many managers are not good at managing their teams

&lt;ul&gt;
&lt;li&gt;  Companies are taking people out of jobs they’re good at, raising their pay, and then moving them into jobs that they aren’t necessarily good at&lt;/li&gt;
&lt;li&gt;  Many managers don’t even look at their team as people, as good individual contributors, it’s likely that they’re totally focussed on the work and not the managing angle&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Education&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Our education system is designed to destroy the natural curiosity we had as children

&lt;ul&gt;
&lt;li&gt;  Many structures of primary education are designed to prepare people for factory labour (bells ringing, going room to room)&lt;/li&gt;
&lt;li&gt;  Since many people aren’t doing manufacturing jobs anymore,  they’re preparing us for a life that doesn’t make much sense

&lt;ul&gt;
&lt;li&gt;  Teaching us to not ask questions about things that intelligent people would ask (ie why write this report if nobody is going to read it)&lt;/li&gt;
&lt;li&gt;  Play along if someone is an authority or acting as if they have authority&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Empty Promises&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Do well at school, go to post-secondary, get a job, get a house, and live a prosperous life 

&lt;ul&gt;
&lt;li&gt;  Millennials are 40% poorer than their parents or grandparents at the same page&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  CEOs that do things that are supposed to benefit the company but don’t

&lt;ul&gt;
&lt;li&gt;  60% of reorganization programs improve nothing&lt;/li&gt;
&lt;li&gt;  These programs impress analysts which report on it and cause the stock to go up for shareholders&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Being given a massive workload with not enough resources to handle it&lt;/li&gt;

&lt;li&gt;  Being told exactly how to do a task and not being able to stray from that (no autonomy, no control)&lt;/li&gt;

&lt;li&gt;  Little to no reward

&lt;ul&gt;
&lt;li&gt;  Do you get any social recognition for a job well done? Do you feel appreciated?&lt;/li&gt;
&lt;li&gt;  Is your salary as high as you want/need it to be?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  “Robots are going to take your jobs away” 

&lt;ul&gt;
&lt;li&gt;  Oh this is so horrible because then people won’t know what to do with themselves! &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Trying to achieve societal norms (ie buying a house) which requires a lot of money - so therefore a lot of work. If you don’t work hard and for very long hours then you won’t be able to afford these societal norms… then what!?! But also consider that if you’re working all the time that you won’t be able to use what you’ve bought&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  What is Burnout?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Burnout and burnout symptoms are very common&lt;/li&gt;
&lt;li&gt;  Many people describe it as a wave of exhaustion at a level they’ve never experienced before&lt;/li&gt;
&lt;li&gt;  It can happen to you because of one or several different issues that arise at work or in your personal life, many of which we’ve already described&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Blind questions for Mike&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>burnout</category>
      <category>podcast</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Developer Education w/ Maximilian Schwarzmüller</title>
      <dc:creator>Mikhail Karan</dc:creator>
      <pubDate>Tue, 18 Mar 2025 18:53:19 +0000</pubDate>
      <link>https://forem.com/mikehtmlallthethings/developer-education-w-maximilian-schwarzmuller-165b</link>
      <guid>https://forem.com/mikehtmlallthethings/developer-education-w-maximilian-schwarzmuller-165b</guid>
      <description>&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/13yU0RVoymPX09VtFWb5NY" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTML All The Things?
&lt;/h2&gt;

&lt;p&gt;HTML All The Things is a &lt;a href="https://www.htmlallthethings.com/" rel="noopener noreferrer"&gt;web development podcast&lt;/a&gt; and &lt;a href="https://discord.com/invite/jweMCx9" rel="noopener noreferrer"&gt;discord community&lt;/a&gt; which was started by Matt and Mike, developers based in Ontario, Canada. &lt;/p&gt;

&lt;p&gt;The podcast speaks to web development topics as well as running a small business, self-employment and time management. You can join them for both their successes and their struggles as they try to manage expanding their Web Development business without stretching themselves too thin.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's This One About?
&lt;/h2&gt;

&lt;p&gt;In this episode Mike had the pleasure of sitting down with Maximilian Schwarzmüller to discuss developer education. Before the days of AI, developers would typically go to a traditional school program, do a Udemy course, or maybe take part in a bootcamp. In 2025, the AI era has shifted a lot of things, including developer education into a new space. Mike and Max explore the evolution of developer education, the role of AI in your 2025 learning journey, and what skills (if any) you should prioritize in these new exciting times.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to support the show
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Patreon
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prices subject to change and are listed in USD&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Support the show from as little as ~$1/month&lt;/li&gt;
&lt;li&gt;  Get a shoutout at the end of the episode (while supplies last) for just ~$3/month&lt;/li&gt;
&lt;li&gt;  Help support the HTML All The Things Podcast: &lt;a href="https://www.patreon.com/htmlallthethings" rel="noopener noreferrer"&gt;Click Here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scrimba Discount - Coding Courses!
&lt;/h2&gt;

&lt;p&gt;Learn to code using Scrimba with their interactive follow-along code editor.&lt;/p&gt;

&lt;p&gt;Join their exclusive discord communities and network to find your first job!&lt;/p&gt;

&lt;p&gt;Use our &lt;a href="https://scrimba.com/?via=htmlallthethings" rel="noopener noreferrer"&gt;affiliate link&lt;/a&gt; for a 20% discount!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click the link to take you to the Scrimba site&lt;/li&gt;
&lt;li&gt;  A pop-up should appear on your screen with the discount amount and instructions on how to claim it&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;Discount is for new accounts only&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;We receive a monetary kickback if you use our affiliate link and make a purchase.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Show Notes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. The Evolution of Web Development Education&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  How have you seen web development education change over the past few years, and where do you think it's heading?&lt;/li&gt;
&lt;li&gt;  With the rise of AI, do you think traditional educational methods (courses, bootcamps, etc.) are still as effective?&lt;/li&gt;
&lt;li&gt;  What are the biggest challenges facing self-taught developers today compared to five years ago?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. The Role of AI in Learning Web Development&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Do you believe AI tools like ChatGPT and GitHub Copilot are enhancing or hindering the learning process for new developers?&lt;/li&gt;
&lt;li&gt;  How should aspiring web developers balance using AI tools with learning the fundamentals from scratch?&lt;/li&gt;
&lt;li&gt;  Are AI-driven coding assistants making it too easy to rely on shortcuts, potentially leading to a knowledge gap?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Shifting Skills and Curriculum in the AI Era&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  What skills do you think web developers should prioritize in a world increasingly influenced by AI?&lt;/li&gt;
&lt;li&gt;  Should web development curriculums include AI-related content, and if so, what specific areas should be covered?&lt;/li&gt;
&lt;li&gt;  Do you think AI will replace the need for developers to deeply understand JavaScript frameworks, or will foundational knowledge always be critical?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Max's Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.udemy.com/user/maximilian-schwarzmuller/" rel="noopener noreferrer"&gt;Udemy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  YouTube

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.youtube.com/@maximilian-schwarzmueller" rel="noopener noreferrer"&gt;Personal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.youtube.com/c/academind" rel="noopener noreferrer"&gt;Academind&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;a href="https://www.twitch.tv/maxedapps" rel="noopener noreferrer"&gt;Twitch&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;

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

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>podcast</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
