<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Entrepreneurship - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Entrepreneurship - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Wed, 06 May 2026 22:14:18 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/entrepreneurship/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Automating a coffee shop chain using self-taught coding skills with Eamonn Cottrell [Interview #151] ]]>
                </title>
                <description>
                    <![CDATA[ On this week's episode of the podcast, I interview Eamonn Cottrell. He's a software engineer who also runs a local chain of coffee shops in Knoxville. Eamonn taught himself to code using freeCodeCamp. And he's since published 37 freeCodeCamp tutorial... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/self-taught-coding-automating-coffee-shop-chain-eamonn-cottrell-interview-151/</link>
                <guid isPermaLink="false">6740ac934465e258a6ed9ff7</guid>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ excel ]]>
                    </category>
                
                    <category>
                        <![CDATA[ running ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Quincy Larson ]]>
                </dc:creator>
                <pubDate>Fri, 22 Nov 2024 16:08:51 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1732291205597/f1fc0cf3-a295-43be-9dd7-ecc4784bd71a.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>On this week's episode of the podcast, I interview Eamonn Cottrell. He's a software engineer who also runs a local chain of coffee shops in Knoxville. Eamonn taught himself to code using freeCodeCamp. And he's since published 37 freeCodeCamp tutorials on productivity and automation using spreadsheets.</p>
<p>We talk about:</p>
<ul>
<li><p>Eamonn’s love of coffee and how he bought VHS tapes to learn latte art</p>
</li>
<li><p>How he finds time to expand his skills in between running coffee shops and ultra-marathoning</p>
</li>
<li><p>How he used spreadsheets to automate the logistics of running coffee shops</p>
</li>
<li><p>How he balances being a musician and writer with the practical realities of providing for a family of 6</p>
</li>
</ul>
<p>Can you guess what song I'm playing in the intro?</p>
<p>Support comes from the 11,113 kind folks who support freeCodeCamp through a monthly donation. Join these kind folks and get involved in our mission by going to <a target="_blank" href="http://donate.freecodecamp.org">donate.freecodecamp.org</a></p>
<p>CORRECTION: Vincent van Gogh was supported by his younger brother – not his brother in-law. van Gogh never married so he never had a brother in law. I'm not sure why I thought that. Also, he seems to have sold more than one painting in his life (as many of us were taught in school), but nowhere near enough paintings to support himself as an artist.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/5MoZ1hJuvqM" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p> </p>
<p>Links we talk about during our conversation:</p>
<p>Eamonn's freeCodeCamp articles: <a target="_blank" href="https://www.freecodecamp.org/news/author/sieis/">https://www.freecodecamp.org/news/author/sieis/</a></p>
<p>Eamonn's YouTube channel: <a target="_blank" href="https://www.youtube.com/@eamonncottrell">https://www.youtube.com/@eamonncottrell</a></p>
<p>Excel-based esports: <a target="_blank" href="https://www.youtube.com/watch?v=N2QC6VQXo8U">https://www.youtube.com/watch?v=N2QC6VQXo8U</a></p>
<p>Ultra Marathons: <a target="_blank" href="https://www.youtube.com/@runtired">https://www.youtube.com/@runtired</a></p>
<p>Got Sheet: <a target="_blank" href="https://www.gotsheet.xyz/">https://www.gotsheet.xyz/</a></p>
<p>Progress and Perfection: <a target="_blank" href="https://www.progressandperfection.com/">https://www.progressandperfection.com/</a></p>
<p>Eamonn on LinkedIn: <a target="_blank" href="https://www.linkedin.com/in/eamonncottrell/">https://www.linkedin.com/in/eamonncottrell/</a></p>
<p>Eamonn on Twitter: <a target="_blank" href="https://x.com/EamonnCottrell">https://x.com/EamonnCottrell</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Become a Street Smart Developer – From Dropout to Selling his Company w/ Dennis Ivy [Podcast #144] ]]>
                </title>
                <description>
                    <![CDATA[ On this week's episode of the podcast, freeCodeCamp founder Quincy Larson interviews Dennis Ivy, a software engineer and prolific freelancer. Dennis dropped out of college at 18 and taught himself how to build websites. He started his first agency, b... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-become-a-street-smart-developer-dennis-ivy-interview-144/</link>
                <guid isPermaLink="false">66fff14dce48c7ef192e4198</guid>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ podcast ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Quincy Larson ]]>
                </dc:creator>
                <pubDate>Fri, 04 Oct 2024 13:44:45 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1728049425954/70835994-ec19-41c3-b2ea-9c3801ef3245.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>On this week's episode of the podcast, freeCodeCamp founder Quincy Larson interviews Dennis Ivy, a software engineer and prolific freelancer.</p>
<p>Dennis dropped out of college at 18 and taught himself how to build websites. He started his first agency, built and sold products, and eventually started teaching his skills on YouTube.</p>
<p>We talk about:</p>
<ul>
<li><p>Growing up in an immigrant family of 13 kids</p>
</li>
<li><p>Dropping out of school and working construction before learning to code</p>
</li>
<li><p>Figuring out how to get web development clients through trial and error</p>
</li>
<li><p>Selling his codebase to his employer $61,000 and using it to fund his journey into teaching Python</p>
</li>
</ul>
<p>Can you guess what song I'm playing during the intro?</p>
<p>Also, I want to thank the 10,943 kind people who support our charity each month, and who make this podcast possible. You can join them and support our mission at: <a target="_blank" href="https://www.freecodecamp.org/donate">https://www.freecodecamp.org/donate</a></p>
<p>You can watch the interview on YouTube:</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/MIKZK8r7y-M" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p> </p>
<p>Or you can listen to the podcast in Apple Podcasts, Spotify, or your favorite podcast app. Be sure to follow the freeCodeCamp Podcast there so you'll get new episodes each Friday.</p>
<p>Or you can listen to the podcast in Apple Podcasts, Spotify, or your favorite podcast app. Be sure to follow the freeCodeCamp Podcast there so you'll get new episodes each Friday.</p>
<p>Links we talk about during our conversation:</p>
<ul>
<li><p>The Bussard Ramjet theoretical spacecraft Quincy mentions as an analogy: <a target="_blank" href="https://en.wikipedia.org/wiki/Bussard_ramjet">https://en.wikipedia.org/wiki/Bussard_ramjet</a></p>
</li>
<li><p>Dennis Ivy's React + Appwrite course on freeCodeCamp: <a target="_blank" href="https://www.freecodecamp.org/news/build-a-sticky-notes-app-with-react-and-appwrite/">https://www.freecodecamp.org/news/build-a-sticky-notes-app-with-react-and-appwrite/</a></p>
</li>
<li><p>Dennis Ivy's YouTube channel: <a target="_blank" href="https://www.youtube.com/c/dennisivy">https://www.youtube.com/c/dennisivy</a></p>
</li>
<li><p>Dennis Ivy on Twitter: <a target="_blank" href="https://twitter.com/dennisivy11">https://twitter.com/dennisivy11</a></p>
</li>
</ul>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Become a Pro Designer [Interview with Gary Simon Podcast #123] ]]>
                </title>
                <description>
                    <![CDATA[ On this week's episode of the podcast, I interview Gary Simon, a developer and designer who started DesignCourse and has published several courses on freeCodeCamp.org over the years. We talk about: Growing up in rural Ohio, marrying young, and stayi... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-become-a-pro-designer-in-2024-interview-with-gary-simon-podcast-123/</link>
                <guid isPermaLink="false">663e61f93f6496fbe66c72b5</guid>
                
                    <category>
                        <![CDATA[ podcast ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Quincy Larson ]]>
                </dc:creator>
                <pubDate>Fri, 10 May 2024 18:05:45 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1715398245475/df3e1138-477a-4718-9f59-5608e611f4a3.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>On this week's episode of the podcast, I interview Gary Simon, a developer and designer who started DesignCourse and has published several courses on <a target="_blank" href="http://freeCodeCamp.org">freeCodeCamp.org</a> over the years.</p>
<p>We talk about:</p>
<ul>
<li><p>Growing up in rural Ohio, marrying young, and staying out there despite his success as a developer and entrepreneur</p>
</li>
<li><p>Early client work, and how he designed thousands of logos for clients before becoming an all-out web developer</p>
</li>
<li><p>Using his skills to help his wife start her own lactation consultant business online</p>
</li>
<li><p>Gary's guitar shredding chops</p>
</li>
</ul>
<p>I recorded this podcast live and I haven't edited it at all. I want to capture the feel of a real live conversation, with all the human quirks that entails.</p>
<p>Can you guess what song I'm playing on my bass during the intro? It's from a 1995s Nintendo game.</p>
<p>Be sure to follow The freeCodeCamp podcast in your favorite podcast app. And share this podcast with a friend. Let's inspire more folks to learn to code and build careers for themselves in tech.</p>
<p>You can watch the interview on YouTube:</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/h4puc1P2VMA" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p> </p>
<p>Or you can listen to the podcast in Apple Podcasts, Spotify, or your favorite podcast app. You can also listen to the podcast below, right in your browser:</p>
<div class="embed-wrapper">
        <iframe width="100%" height="152" src="https://open.spotify.com/embed/episode/7hx0sDb5HPxtwGEMRXCGtd" style="" title="Spotify embed" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" allowfullscreen="" loading="lazy"></iframe></div>
<p> </p>
<p>Also, I want to thank the 9,331 kind people who support our charity each month, and who make this podcast possible. You can join them and support our mission at: <a target="_blank" href="https://www.freecodecamp.org/donate">https://www.freecodecamp.org/donate</a></p>
<p>Links we talk about during the interview:</p>
<ul>
<li><p>Gary's Learn UI Fundamentals course on freeCodeCamp: <a target="_blank" href="https://www.freecodecamp.org/news/learn-ui-design-fundamentals-with-this-free-one-hour-course/">https://www.freecodecamp.org/news/learn-ui-design-fundamentals-with-this-free-one-hour-course/</a></p>
</li>
<li><p>Gary's freeCodeCamp live stream series: <a target="_blank" href="https://www.freecodecamp.org/news/design-course/">https://www.freecodecamp.org/news/design-course/</a></p>
</li>
<li><p>Gary's tool for memorizing the Guitar fretboard and it's 49 notes: <a target="_blank" href="https://fretastic.com/">https://fretastic.com/</a></p>
</li>
<li><p>Gary's Retrowave Guitar music video: <a target="_blank" href="https://www.youtube.com/watch?v=yDc2OvReYh0">https://www.youtube.com/watch?v=yDc2OvReYh0</a></p>
</li>
</ul>
<p>On this week's episode of the podcast, I interview Gary Simon, a developer and designer who started DesignCourse and has published several courses on <a target="_blank" href="http://freeCodeCamp.org">freeCodeCamp.org</a> over the years.</p>
<p>We talk about:</p>
<ul>
<li><p>Growing up in rural Ohio, marrying young, and staying out there despite his success as a developer and entrepreneur</p>
</li>
<li><p>Early client work, and how he designed thousands of logos for clients before becoming an all-out web developer</p>
</li>
<li><p>Using his skills to help his wife start her own lactation consultant business online</p>
</li>
<li><p>Gary's guitar shredding chops</p>
</li>
</ul>
<p>I recorded this podcast live and I haven't edited it at all. I want to capture the feel of a real live conversation, with all the human quirks that entails.</p>
<p>Can you guess what song I'm playing on my bass during the intro? It's from a 1995s Nintendo game.</p>
<p>Be sure to follow The freeCodeCamp podcast in your favorite podcast app. And share this podcast with a friend. Let's inspire more folks to learn to code and build careers for themselves in tech.</p>
<p>You can watch the interview on YouTube:</p>
<p>Or you can listen to the podcast in Apple Podcasts, Spotify, or your favorite podcast app. You can also listen to the podcast below, right in your browser:</p>
<p>Also, I want to thank the 9,331 kind people who support our charity each month, and who make this podcast possible. You can join them and support our mission at: <a target="_blank" href="https://www.freecodecamp.org/donate">https://www.freecodecamp.org/donate</a></p>
<p>Links we talk about during the interview:</p>
<ul>
<li><p>Gary's Learn UI Fundamentals course on freeCodeCamp: <a target="_blank" href="https://www.freecodecamp.org/news/learn-ui-design-fundamentals-with-this-free-one-hour-course/">https://www.freecodecamp.org/news/learn-ui-design-fundamentals-with-this-free-one-hour-course/</a></p>
</li>
<li><p>Gary's freeCodeCamp live stream series: <a target="_blank" href="https://www.freecodecamp.org/news/design-course/">https://www.freecodecamp.org/news/design-course/</a></p>
</li>
<li><p>Gary's tool for memorizing the Guitar fretboard and it's 49 notes: <a target="_blank" href="https://fretastic.com/">https://fretastic.com/</a></p>
</li>
<li><p>Gary's Retrowave Guitar music video: <a target="_blank" href="https://www.youtube.com/watch?v=yDc2OvReYh0">https://www.youtube.com/watch?v=yDc2OvReYh0</a></p>
</li>
</ul>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ One Step at a Time: My Journey from Full-time Software Engineer to First Indie Project ]]>
                </title>
                <description>
                    <![CDATA[ Introduction: The Spark of Indie Hacking I’m Gaël, a 25-year-old software engineer who’s been working in a startup environment in Southeast Asia for a few years. 🌏  Working remotely has its perks, and while hopping from one exotic location to anothe... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/from-full-time-software-engineer-to-first-indie-project/</link>
                <guid isPermaLink="false">66bb92030eaca026d8cfa5e9</guid>
                
                    <category>
                        <![CDATA[ Career development  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ personal development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Gaël Thomas ]]>
                </dc:creator>
                <pubDate>Mon, 01 Apr 2024 19:33:07 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2024/03/Blog-Banner-Final.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <h2 id="heading-introduction-the-spark-of-indie-hacking">Introduction: The Spark of Indie Hacking</h2>
<p>I’m Gaël, a 25-year-old software engineer who’s been working in a startup environment in Southeast Asia for a few years. 🌏 </p>
<p>Working remotely has its perks, and while hopping from one exotic location to another, I’ve been nurturing a little dream: to kick-start my journey as a solopreneur.</p>
<p>I genuinely love my job—there’s a certain thrill in startup life that I think everyone should experience at least once. Sure, it’s a rollercoaster of highs and lows, but it's where I've learned the ropes of product development and caught the bug for making things people love (and will hopefully pay for!). I often think of coding as adult LEGO—endless possibilities and just plain fun. 🤓</p>
<p>After two years of nomadic life, I chose to plant my feet firmly on the ground to strike a better work-life balance and finally carve out time for my side projects. </p>
<p>But here’s the kicker: settling down didn’t magically make time appear. Between the 9-5 grind and weekend exhaustion, I struggled to find the energy and belief needed to start something of my own.</p>
<h2 id="heading-choosing-the-right-tools-for-the-journey">Choosing the Right Tools for the Journey</h2>
<p>Embarking on this solopreneur journey, I decided to harness the tools and technologies I was already familiar with: HTML, CSS, Tailwind, JavaScript, along with React and Next.js for creating websites. </p>
<p>This choice was not just about comfort but was also about applying best practices in web development that I've learned over a few years of experience.</p>
<p>In the following sections, I'll explain why I chose these particular technologies. I'll also provide guidance on how you can select the most suitable tools for your own projects, balancing learning curves, productivity, and project requirements. </p>
<p>Expect to find practical tips and lessons from my hands-on experience, which you can apply to enhance your coding skills or streamline your development process.</p>
<h2 id="heading-realizing-the-need-for-change">Realizing the Need for Change</h2>
<p>Until recently, my daily routine was disordered. I juggled work with late-night phone scrolling sessions until 1-2 AM, only waking just in time for a hurried breakfast before starting my day. </p>
<p>Frequent use of food delivery apps led to overeating and unhealthy habits, which, despite my overall good life, I knew wasn’t sustainable. </p>
<p>I was trapped in a cycle, fearing that cutting back on my late nights would reduce my life to just work, work, and work. 💻</p>
<p>Then, something clicked a month ago. Motivated by all the recommendations I've seen about going to the gym, I contacted a personal trainer and started my first few sessions. Initially skeptical about lifting weights, I was surprised by the surge in energy it brought me.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/CleanShot-2024-03-26-at-09.17.21@2x.png" alt="Image" width="600" height="400" loading="lazy">
<em>"Talking to my therapist today" - @levelsio on X (Twitter)</em></p>
<p>This burst of energy triggered a chain reaction: I began paying more attention to my diet, choosing healthier, lighter meals. Sleep, too, became a priority. Influenced by the insights from "Why We Sleep" I transformed my sleep routine, targeting eight hours a night. This shift turned my mornings from a rush into a peaceful, productive time. 😴</p>
<p>Now, a month later, these practices have almost become natural. Waking up earlier, I feel more energized, and I've discovered precious time in the morning before work.</p>
<h3 id="heading-how-improved-health-boosts-coding-productivity">How Improved Health Boosts Coding Productivity</h3>
<p>For those on a coding journey or balancing work with learning new skills, I cannot stress enough the importance of good sleep and regular exercise. These aren’t just lifestyle choices – they are essential tools for enhancing your cognitive function and focus.</p>
<p>After integrating better sleep and exercise into my routine, I noticed a significant improvement in my coding productivity. I was able to learn faster, stay focused for more extended periods, and tackle complex problems with more clarity. It felt like unlocking a cheat code for my brain!</p>
<p>Coding is an exciting yet demanding journey. With the additional energy gained from these changes, you'll be more equipped to face the challenges and joys of learning how to code.</p>
<h2 id="heading-taking-the-first-step-booksbymood">Taking the First Step: BooksByMood</h2>
<p>The concept for BooksByMood had been developing in my mind for months, inspired by Mood2Movie, an app developed by <a target="_blank" href="https://twitter.com/marc_louvion">Marc Lou</a>. </p>
<p>The idea of finding books based on your mood captivated me, and I envisioned a platform with my own twist on design and suggestions. This marked the beginning of my indie project journey with BooksByMood. 📚</p>
<p>Getting started on this new journey was daunting. My Twitter feed was full of stories of polished apps and good earnings, which heightened my stress and anxiety about starting. At that time, I didn't fully realize that we all have to start somewhere, and even the well-known people out there started at the beginning one day. </p>
<p>To manage my expectations and focus, I established clear, achievable goals:</p>
<ul>
<li>To create a straightforward website centered around a single, compelling feature.</li>
<li>To keep the website free, ensuring accessibility and user engagement (IMO, also easier to get started with–particularly as a 1st project).</li>
<li>To dedicate a week to learning promotion techniques, aiming to drive traffic to the site.</li>
</ul>
<p>These goals weren’t just milestones – they were my commitment to myself to prove that I could bring an idea to fruition and attract visitors. 🎯</p>
<h3 id="heading-how-i-chose-my-technical-stack">How I Chose My Technical Stack</h3>
<p>As mentioned earlier, I utilized technologies I was proficient in: HTML, CSS, JavaScript, along with Tailwind for styling and Next.js for the framework. I chose this stack for its familiarity and efficiency.</p>
<p>I specifically opted for Next.js due to its convenient features:</p>
<ul>
<li>server-side rendering and static site generation, leading to improved website performance</li>
<li>the file-based routing system</li>
<li>various optimizations such as website navigation using the <code>&lt;Link&gt;</code> component or the <code>&lt;Image&gt;</code> component</li>
<li>it's great for SEO</li>
<li>overall it helps craft a better user experience</li>
</ul>
<p>This stack allowed me to rapidly prototype and deploy, enhancing the site's performance without additional effort.</p>
<p><strong>Takeaways:</strong> Stick to technologies you know well when validating an idea quickly. This approach helps you move faster and focus on the project's core value. That's why you can find many solopreneurs online using the same technologies for years (for example, <a target="_blank" href="https://twitter.com/levelsio">Pieter Levels</a> is using HTML, CSS, JS (with JQuery) and PHP for years).</p>
<h2 id="heading-app-development-process-and-challenges">App Development Process and Challenges</h2>
<p>The journey of developing BooksByMood was iterative, starting with a basic, barely functional version. </p>
<p>I encountered several challenges, such as sourcing reliable book data and crafting a user-friendly interface. Overcoming these obstacles required research, trial and error, and continuous iteration.</p>
<h3 id="heading-challenge-1-finding-reliable-books-data">Challenge 1: Finding Reliable Books Data</h3>
<p>Finding a dependable source for book data was unexpectedly challenging.</p>
<p>I initially wanted to use some APIs. Unfortunately, Goodreads closed its API on December 8th, 2020. OpenLibrary was not bad, but the data needed to be more consistent. Google Books API was alright, but I would have also curated manually in the end, and sometimes some info could have been better.</p>
<p>This made me realize that it's hard to find a good books API out there (probably due to Amazon owning Goodreads and making sure it's hard for competitors to have good data as they do).</p>
<p>There was one thing I knew: it'd be complex to satisfy everyone with the recommendations, but I could do my best. My best was to ensure that what was recommended was well rated by the community (for example, it had a good rating on Goodreads).</p>
<p>You may wonder what will happen in the future, if the website is growing? In that case, it'll definitely need improvement. But, for a first release, it does the trick!</p>
<p><strong>Takeaways:</strong> When facing a challenge on a new project, always take your time to consider all options and find the right balance between shipping fast, quality and reliability. </p>
<p>As an example, I'm 95% sure that curating books manually in JSON files with the help of AI has been a great choice. It resulted in shipping in a reasonable time, only showing books liked by the community, and controlling the data (for example, cover, title, description, tags, authors, and so on).</p>
<h3 id="heading-challenge-2-designing-a-user-friendly-interface">Challenge 2: Designing a user-friendly interface</h3>
<p>As a full stack developer who's been working on the backend for a while, designing an appealing front end was my second major hurdle. Ensuring the site was not only functional but also aesthetically pleasing was crucial for user engagement.</p>
<p>I'm still in the process of learning about design, and it's far from perfect. But I discovered <a target="_blank" href="https://dribbble.com/">Dribbble</a> and it's been a great place to get inspiration. Also, I've been using <a target="_blank" href="https://excalidraw.com/">Excalidraw</a> to sketch an initial layout version showing how I'd like to organize the information.</p>
<p><strong>Takeaways:</strong> For non-designers, drawing inspiration from design-focused platforms like Dribbble can be incredibly helpful. Combining this with UI component libraries, like <a target="_blank" href="https://daisyui.com/">DaisyUI</a>, can significantly enhance the design process, making it more effective.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Build-in-Public-Day-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Initial sketch of BooksByMood on Excalidraw (shared for my 1st day of #buildinpublic)</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/CleanShot-2024-03-30-at-15.56.46@2x.png" alt="Image" width="600" height="400" loading="lazy">
<em>1st version of BooksByMood</em></p>
<h2 id="heading-releasing-the-app">Releasing the App</h2>
<p>With the extra time my new morning routine afforded me, I devoted 1-2 hours each weekday and additional weekend time to developing BooksByMood. After a week of focused effort, I opted for a soft launch: I added the project on Twitter by updating my bio link.</p>
<p>The following day marked the beginning of more assertive promotion across various platforms, including Twitter, Reddit, and HackerNews. ✍️</p>
<p><strong>Takeaways:</strong> Feel free to release your project everywhere you can. It can sound scary, but you never know what will happen. Doing that will help you in many ways, such as starting to attract visitors, getting feedback, getting backlinks, and so on. There's nothing to lose!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/CleanShot-2024-03-28-at-21.52.59@2x.png" alt="Image" width="600" height="400" loading="lazy">
<em>BooksByMood Homepage</em></p>
<h2 id="heading-learning-and-growing-early-lessons-from-the-journey">Learning and Growing: Early Lessons from the Journey</h2>
<h3 id="heading-personal-and-business-lessons">Personal and Business Lessons</h3>
<p>It might sound a bit cliché, but these points have genuinely resonated with me:</p>
<ul>
<li><strong>Believe in Yourself</strong>: Doubt was a constant companion, but taking the leap showed me the importance of faith in my ability to turn an idea into reality.</li>
<li><strong>Ship That Idea:</strong> After all, there could be only positives in doing so. Releasing a product, no matter how small, is a victory in itself.</li>
<li><strong>Building Publicly Is Rewarding</strong>: Engaging with the Indie Hackers community has been a blast. Their support and encouragement have been pivotal, making the process not just about building a product but also about being part of an inspiring collective.</li>
<li><strong>Believe in the Internet’s Magic</strong>: Sharing my project on HackerNews was a leap into the unknown. To my astonishment, we hit the first page, and the influx of visitors exceeded my expectations. Indeed, the internet can work wonders, turning small actions into significant impacts.</li>
</ul>
<h3 id="heading-technical-lessons">Technical lessons</h3>
<p>On the technical front, the project has been a rich source of learning:</p>
<ul>
<li><strong>Choosing the Right Stack</strong>: Leveraging familiar technologies like Next.js and React facilitated a smoother development process and quicker iterations. This really underscored the importance of choosing the right tools for the job. I've said it many times in this article: <em>Use what you know</em>. Don't try to overthink using the latest shiny technology. I'd advise you to focus on your product, not how it's being built.</li>
<li><strong>Data Handling and AI Utilization</strong>: The challenge of sourcing reliable book data forced me to consider solutions, including using AI for content curation. This experience highlighted the need for flexibility and creativity in problem-solving. Sometimes, in tech, you'll not find exactly what you want, and you'll have to evaluate potential tradeoffs to find alternatives.</li>
<li><strong>Design for the User</strong>: As a backend-focused developer, delving into front-end design was challenging. But prioritizing user experience and employing design resources like Dribbble for inspiration proved crucial in creating an engaging interface. Also, don't be too worried about your design. Your first version will probably be "ugly," but over time and iterations, you'll start having something visually pleasing. Everything takes time!</li>
<li><strong>Iterative Development</strong>: Start with a minimal viable product with only one focused feature. It's tempting for a developer to add many features, such as a dark mode, a user account, fancy filters, and so on, but that's unnecessary. Instead, use your technical skills to make that one feature work perfectly.</li>
</ul>
<p>To wrap up this reflection, I can’t emphasize enough the satisfaction of crafting a project, releasing it, and seeing people using it. It’s an amazing experience that I recommend to everyone. If you’ve been sitting on an idea, stop overthinking and start building it now. 🚧</p>
<h2 id="heading-looking-ahead-the-road-to-indie-hacking">Looking Ahead: The Road to Indie Hacking</h2>
<p>I plan to stay committed to the indie hacking path for the upcoming months, balancing it alongside my 9-5 job. </p>
<p>A vast landscape of knowledge awaits me, especially in areas like design and marketing, where my experience is limited. Objectively, I know it's not gonna be easy. Yet, the idea of acquiring new skills is exciting. 🎨</p>
<p>The Indie Hackers community has been a goldmine of insights, with members generously sharing their tips and success stories. This collective wisdom, along with a wealth of books and resources, will continue to guide and inspire my journey. 🔖</p>
<p>In the coming months, my focus is on continuous learning and building. I aim to diversify my projects, incorporating paid features to explore different business models and market needs.</p>
<p>Regarding the tech stack, I plan to stick with my current tools, which are versatile enough to meet most of my needs. While I'm open to integrating new libraries like <a target="_blank" href="https://next-auth.js.org/">NextAuth</a> for streamlined authentication processes, my primary focus will be learning marketing. Understanding and getting better at marketing is crucial for any indie hacker, as it's often required to transform a side project into something bigger.</p>
<p>Whether it leads to success or failure, every step forward is one step toward. I'm excited to see where this path will take me and to share the journey's story with you all.</p>
<p><strong>Takeaways:</strong> Your journey should be one of continuous iteration and exploration. While developing your project, never underestimate the power of marketing—it's essential for gaining traction and turning your ideas into reality. To realize your full potential, embrace both the technical and business sides.</p>
<h2 id="heading-conclusion-an-invitation-to-join-the-journey">Conclusion: An Invitation to Join the Journey</h2>
<p>As this chapter of my journey unfolds, I invite you to come along. I'd love to navigate the ups and downs of indie hacking together.</p>
<p><a target="_blank" href="https://twitter.com/gaelgthomas">Join me on Twitter</a> where I share real-time updates, insights, and milestones of this journey, all in the hope of inspiring some of you to embark on your own adventures. 👀</p>
<h2 id="heading-explore-booksbymood">Explore BooksByMood</h2>
<p>Curious about what I’ve been working on? Check out BooksByMood, my first indie project that helps you find books based on your mood. 👇</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://booksbymood.com/">https://booksbymood.com/</a></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Podcast: From MIT to Startup Land with Arian Agrawal ]]>
                </title>
                <description>
                    <![CDATA[ On this week's podcast, I meet with Arian Agrawal in New York City to talk about her journey into tech startups. Arian grew up in New York and studied at MIT. She worked in finance for a few years, then built her own ecommerce Marketplace startup wit... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/podcast-arian-agrawal-from-mit-to-startup-land/</link>
                <guid isPermaLink="false">66b8d4fd0c9c1d363b7c423b</guid>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ podcast ]]>
                    </category>
                
                    <category>
                        <![CDATA[ women in tech ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Quincy Larson ]]>
                </dc:creator>
                <pubDate>Fri, 10 Nov 2023 22:11:15 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/11/signal-2023-11-10-152545_002_jpeg.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>On this week's podcast, I meet with Arian Agrawal in New York City to talk about her journey into tech startups.</p>
<p>Arian grew up in New York and studied at MIT. She worked in finance for a few years, then built her own ecommerce Marketplace startup with a friend.</p>
<p>Along the way, Arian went through the South Park Commons startup accelerator, and she now leads their New York City branch as a partner.</p>
<p>We talk about technology, startups, and her journey from finance to building products.</p>
<p>Be sure to follow The freeCodeCamp podcast in your favorite podcast app. And share this podcast with a friend. Let's inspire more folks to learn to code and build careers for themselves in tech.</p>
<p>You can listen to the podcast in Apple Podcasts, Spotify, or your favorite podcast app. You can also listen to the podcast below, right in your browser:</p>
<div class="embed-wrapper"><iframe style="border:none" src="https://play.libsyn.com/embed/episode/id/28590033/height/192/theme/modern/size/large/thumbnail/yes/custom-color/2a4061/time-start/00:00:00/playlist-height/200/direction/backward/download/yes" height="192" width="100%" title="Embedded content" loading="lazy"></iframe></div>



<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/signal-2023-11-10-152545_002_jpeg-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Me hanging out at the NYC South Park Commons with Arian Agrawal, the startup founder who now runs the NYC branch of the accelerator.</em></p>
<p>Some links relevant to our discussion:</p>
<p><a target="_blank" href="https://twitter.com/AgrawalArian">Arian on Twitter</a></p>
<p><a target="_blank" href="https://www.linkedin.com/in/arian-agrawal-46639439/">Arian on LinkedIn</a></p>
<p><a target="_blank" href="https://www.southparkcommons.com/">South Park Commons</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Start a Freelance Dev Business ]]>
                </title>
                <description>
                    <![CDATA[ By Andrej Kovacevic Many people who want to try freelancing believe that they need to have years of experience to succeed. But this is a common misconception that many freelancers have disproved. Regardless of your industry, a helpful blueprint can b... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-start-a-freelance-dev-business/</link>
                <guid isPermaLink="false">66d45daa680e33282da25e2b</guid>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Freelancing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 17 Feb 2022 15:04:27 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/02/freelance-dev-business-article-image.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Andrej Kovacevic</p>
<p>Many people who want to try freelancing believe that they need to have years of experience to succeed. But this is a common misconception that many freelancers have disproved.</p>
<p>Regardless of your industry, a helpful blueprint can be all you need to fast-track your freelancing success. This article underscores what you need to know to start a freelance web development business.</p>
<h2 id="heading-being-a-freelance-developer-and-its-advantages">Being a Freelance Developer and Its Advantages</h2>
<p>Getting started as a freelance web designer can be a challenging feat. But if you succeed, you can be in a high-value position in your field.</p>
<p>As a freelancer, you need to be capable of running your own business. This task requires self-discipline, which can be hard work. You need to implement strict and rigid rules for yourself to succeed.</p>
<p>To motivate you, here are several major advantages of becoming a freelance web developer.</p>
<h3 id="heading-1-high-demand-for-web-design-services">1. High Demand for Web Design Services</h3>
<p>The most obvious benefit is the high demand for your services. Data from Indeed shows that there are over <a target="_blank" href="https://www.indeed.com/q-web-developer-l-usa-jobs.html?vjk=36fc4e40b6a03689">60,000 web developer jobs</a> in the US as of this writing.</p>
<p>The high demand for web design services ensures that you always have customers. There are a lot of people willing to pay you for your skills.</p>
<h3 id="heading-2-shortage-of-developers">2. Shortage of Developers</h3>
<p>Another advantage is that there is a massive <a target="_blank" href="https://www.daxx.com/blog/development-trends/software-developer-shortage-us">shortage of developers</a> in the US and worldwide in general. The lack of web designers means that you do not have to compete with too many people in your industry to get paid as a freelancer.</p>
<h3 id="heading-3-you-get-to-be-your-own-boss">3. You Get to Be Your Own Boss</h3>
<p>Freelancing also means that you are your own boss. You have more freedom and more time on your hands than when you work for someone else.</p>
<p>When you run your own business, you do not have to report to anyone. It will be your choice which new clients to accept, how many hours you work, and what your rate is.</p>
<h3 id="heading-4-attractive-earning-potential">4. Attractive Earning Potential</h3>
<p>Web designers get paid a decent amount for their services. According to the US Bureau of Labor Statistics, the average yearly pay for web developers was <a target="_blank" href="https://www.bls.gov/ooh/computer-and-information-technology/web-developers.htm">$77,200</a> in 2020.</p>
<h2 id="heading-important-steps-to-take-to-become-a-freelance-developer">Important Steps to Take to Become a Freelance Developer</h2>
<p>This section highlights three crucial steps to help you get your freelance business up and running. After reading, you can start offering your web development services from home with ease.</p>
<h3 id="heading-1-choose-a-niche">1. Choose a Niche</h3>
<p>It is impossible to be equally good in all areas of web design. Choosing a niche lets you focus your time and effort on narrower tasks. </p>
<p>Having a niche also allows you to become an expert who can address the needs of one group of clients. Doing so is much easier than learning a little bit of everything about different businesses or website styles.</p>
<p>When choosing a specialty, it is not enough to be interested in a particular niche. You must know if there is a demand in this niche for websites. Ask yourself if people are willing to pay for it.</p>
<p>This step is crucial for anyone starting a business regardless of your industry. You first need to know the marketability of your business idea.</p>
<p>What can help you complete this step is researching the market and looking for opportunities.</p>
<p>For example, if you like collecting toys, you can work for online stores selling rare action figures. Your selling point could be knowing how toy collectors think and what they want in a toy figure online shop.</p>
<p>If you were a grade-school teacher, you could help build websites for educators. A website can help them save time, market their teaching services better, and earn more.</p>
<p>If you are an activist, reach out to organizations. Check and see if anyone needs a website to promote their advocacy.</p>
<p>You can research online and visit communities on Facebook, Reddit, or Quora. These platforms are where people from different niche markets often hang out online.</p>
<p>Read their questions, look for their pain points, and determine the kind of product they need. After reading up, you can tailor your web development services to solve their problems.</p>
<h3 id="heading-2-build-a-portfolio">2. Build a Portfolio</h3>
<p>Getting that first project can be one of the most challenging things for many web designers. It can be tough to convince a prospect if you do not have a portfolio. Luckily, there are ways to secure your first gig without any experience.</p>
<p>You <a target="_blank" href="https://myaws.co.nz/website-design-could-be-the-difference-between-business-success-and-failure/">need to have a web design portfolio that serves as your website</a>. The site should tell clients what you do and how you can address their needs.</p>
<p>You must include feedback from former clients and several of your past outstanding projects.</p>
<p>To get your first project, you may need to build a couple of websites for free.</p>
<p>In your chosen niche, look for an organization that urgently needs a site and do it for free. In exchange, you ask them to submit a testimonial on how your services helped them.</p>
<p>Looking for a client can be easy since you are offering free work. They will have nothing to lose if they choose to accept your offer.</p>
<p>You can use web development platforms like WordPress to finish your work faster. You need to keep in mind the user experience, accessibility, and conversion rate optimization as you work.</p>
<p>Aside from these three factors, you should also remember to keep your client's needs at the forefront. You should design the website in a way that addresses their specific needs.</p>
<p>Some clients may worry more about conversion than user experience. Some may have other site concerns, like <a target="_blank" href="https://www.similarweb.com/corp/blog/marketing/seo/">search engine optimization</a> (SEO). Regardless of what they need, you must ensure that your output delivers.</p>
<p>If you do not want to look for a client, you can buy domains and build websites yourself. This step can be a faster yet more expensive way to get your business up and running.</p>
<p>If all clients want to see is your skill, then this can be a good solution. Unfortunately, you will not receive any testimonials if you choose to buy domains.</p>
<p>Once you finish two to three projects, you can begin looking for your first paying client.</p>
<h3 id="heading-3-search-for-clients">3. Search for Clients</h3>
<p>Now that you have a portfolio that showcases your skills, you can begin searching for clients.</p>
<p>Social media can be helpful when looking for clients who will pay for your services.</p>
<p>For example, you can market your new business by using Facebook Groups. You can either make a new group or join an existing one.</p>
<p>Facebook groups are made up of people with common interests. Whatever niche your business is in, you can likely find a relevant group on Facebook.</p>
<p>Using social media to market your web design services does not only help you find clients. It also allows you to know your target customers better. It informs you what their problems are and what solutions they want.</p>
<p>Another way to meet clients is by speaking at events. Attending events about web design can be a great way to establish credibility. It can also be an effective way to build a network of contacts.</p>
<p>The downside of this approach is it could be challenging to get invites to events, and it involves a high level of preparation.</p>
<p>If you are not keen on socializing in person, you can look for clients through online job boards. Regularly visiting these sites can help you get more work. Try visiting Smashing Jobs, Mediabistro, Coroflot, or RemoteOK.</p>
<p>You can also try freelance marketplaces. Make sure to create a detailed profile that informs your clients of your specialties and how you can help them.</p>
<p>When creating a profile for freelancing sites, do not forget to include your skills, experience, and portfolio.</p>
<h2 id="heading-wrapping-up">Wrapping Up</h2>
<p>Becoming a freelance web designer requires a significant investment of your time and effort. But the result is a career that provides you with the freedom, flexibility, and income you want. </p>
<p>So push yourself to learn and increase your skill set to offer the most value to potential clients.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Tech Entrepreneur 101 – Lessons they Don't Teach You in Business School ]]>
                </title>
                <description>
                    <![CDATA[ How can you find customers? How can you get a meeting with anyone? How can you take your career to the next level?  Learn the answers to these questions and more in an entrepreneurship course we just published on the freeCodeCamp.org YouTube channel.... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/important-lessons-they-dont-teach-you-in-business-school/</link>
                <guid isPermaLink="false">66b2038e297cd6de0bd5465e</guid>
                
                    <category>
                        <![CDATA[ business ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ youtube ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Beau Carnes ]]>
                </dc:creator>
                <pubDate>Mon, 14 Feb 2022 18:30:23 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/02/ENTRE.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>How can you find customers? How can you get a meeting with anyone? How can you take your career to the next level? </p>
<p>Learn the answers to these questions and more in an entrepreneurship course we just published on the freeCodeCamp.org YouTube channel.</p>
<p>Business Insider wrote an article stating that book version of this course called <em>101 Crucial Lessons They Don't Teach You in Business School</em> was voted as the #1 most popular business book of the year by Business Insider readers.</p>
<p>Chris Haroun teaches this course. Chris has sold more than 1,000,000 of his online business and self improvement courses in 12 languages in 196 countries and his courses have been profiled in Business Insider, NBC, Inc, Forbes, CNN, Entrepreneur and on other business news websites.</p>
<p>This course is an amalgamation of business advice that Chris has compiled from his many meetings with successful business people over the past two decades as well as observations of why the founders of giant tech companies have become incredibly successful.</p>
<p>The course also includes a free workbook for you to use as you go through the course.</p>
<p>Here are the sections in this free business course:</p>
<ul>
<li>Section 1: Relationships Are More Important Than Product Knowledge</li>
<li>Section 2: Be Long Term Greedy</li>
<li>Section 3: Avoid Burnout</li>
<li>Section 4: Create Off The Charts Confidence; Wear That Super Superman Cape!</li>
<li>Section 5: Ethics. Use It or Lose It</li>
<li>Section 6: Every Battle is Won Before It Has Been Fought</li>
<li>Section 7: Goal Setting</li>
<li>Section 8: Happiness is...</li>
<li>Section 9: Legal Stuff is Important</li>
<li>Section 10: Management Best Practices</li>
<li>Section 11: Navigating Corporate Politics; Swimming with Sharks</li>
<li>Section 12: Only Take Advice from Successful People</li>
<li>Section 13: Only the Paranoid Survive</li>
<li>Section 14: Risk Taking</li>
<li>Section 15: Sales Best Practices</li>
<li>Section 16: Think Different</li>
<li>Section 17: You Be You</li>
</ul>
<p>Watch the course below or <a target="_blank" href="https://youtu.be/UEngvxZ11sw">on the freeCodeCamp.org YouTube channel</a>. </p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/UEngvxZ11sw" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Be a Successful Entrepreneur – A Developer's Guide to Startup Strategy and Design ]]>
                </title>
                <description>
                    <![CDATA[ By Akar Sumset According to freeCodeCamp’s 2018 New Coder Survey, 40.3% of participants want to build a business of their own, either as a freelancer or as an entrepreneur.  If you are in that 40.3%, then this article is for you. If you are in the re... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/be-a-successful-entrepreneur-developers-guide-to-startup-strategy-and-design/</link>
                <guid isPermaLink="false">66d45d5933b83c4378a517a8</guid>
                
                    <category>
                        <![CDATA[ business strategy ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[  Startup Lessons ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 18 May 2021 16:08:27 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/05/akar-post-hero-image.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Akar Sumset</p>
<p>According to freeCodeCamp’s <a target="_blank" href="https://www.freecodecamp.org/news/the-2018-new-coder-survey-31-000-people-told-us-how-theyre-learning-to-code-and-getting-dev-jobs-e10feb9ed419/">2018 New Coder Survey</a>, 40.3% of participants want to build a business of their own, either as a freelancer or as an entrepreneur. </p>
<p>If you are in that 40.3%, then this article is for you. If you are in the remaining 59.7%, you might still benefit from it. Give it a try.</p>
<p>This is not a “dummies’ guide to strategy and design” or a “strategy and design 101” article. This article is written specifically for developer folks. Not just software developers but also no-code developers. <em>(Shout out to my ODNC1 fellows who encouraged me to write this piece.)</em></p>
<h2 id="heading-table-of-contents-and-how-to-use-this-guide">Table of Contents and How to Use this Guide</h2>
<p>This is a long article. Actually, this is not an article – <strong>this is a guide.</strong> So, it's better to read the prologue and give the guide a quick scan. Then start applying the methods rather than reading the whole text and trying to internalize it. </p>
<p><strong>You can only internalize this guide by applying it.</strong></p>
<h3 id="heading-getting-startedheading-getting-started"><a class="post-section-overview" href="#heading-getting-started">Getting Started</a></h3>
<ol>
<li><strong><a class="post-section-overview" href="#heading-what-is-strategy">What is Strategy?</a></strong></li>
<li><a class="post-section-overview" href="#heading-the-main-components-of-a-business-strategy">The Main Components of a Business Strategy</a></li>
<li><a class="post-section-overview" href="#heading-strategy-the-scientific-mindset-and-software-development">Strategy, the Scientific Mindset, and Software Development</a></li>
</ol>
<h3 id="heading-a-rough-guide-to-strategy-and-design-for-developersheading-a-rough-guide-to-strategy-and-design-for-developers"><a class="post-section-overview" href="#heading-a-rough-guide-to-strategy-and-design-for-developers">A Rough Guide to Strategy and Design for Developers</a></h3>
<ol>
<li><a class="post-section-overview" href="#heading-how-to-define-your-purpose">How to Define Your Purpose</a></li>
<li><a class="post-section-overview" href="#heading-how-to-develop-strategic-hypotheses">How to Develop Strategic Hypotheses</a></li>
<li><a class="post-section-overview" href="#heading-how-to-test-strategic-hypotheses">How to Test Strategic Hypotheses</a></li>
<li><strong><a class="post-section-overview" href="#heading-how-to-design-your-product">How to Design Your Product</a></strong></li>
<li><strong><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></strong></li>
</ol>
<h3 id="heading-the-structure-of-the-guide">The Structure of the Guide</h3>
<p>This guide is structured to make the actions you should take very clear. So, in every section, you will be given a little bit of context and then action items. </p>
<p>It is essential that you read the context in full before taking action so that you can see the part the action plays in the bigger picture.</p>
<h1 id="heading-getting-started">Getting Started</h1>
<p>I know that strategy and design can sound, well, <em>fluffy</em>. I know that because I have been there. </p>
<p>I am an engineer. I love physics and mathematics. I love breaking challenges down into their parts and overcoming them one by one using logic. I love to work with hyper-realists who think rationally. I love viewing processes as functions that take certain inputs and spit out certain outputs. I love all of that and more. </p>
<p>However, I am also a strategist and a designer. I know that not everything has natural reasons to be so. </p>
<p>Sometimes they are purely based on <a target="_blank" href="https://fs.blog/2013/03/playing-to-win-how-strategy-really-works/#:~:text=In%20short%2C%20strategy%20is%20choice,value%20relative%20to%20the%20competition.">choice</a>. I know that people are irrational, though still <a target="_blank" href="https://www.wikiwand.com/en/Predictably_Irrational">predictable</a>. I know that people value <a target="_blank" href="https://media.bain.com/elements-of-value/">social and emotional benefits</a> as much as functional benefits, if not more.</p>
<p>So, I know that bringing together strategy, design, and engineering mindsets dramatically increases our chances to achieve whatever goals we have. I witness that day in and day out thanks to my job at <a target="_blank" href="https://atolye.io/en/home/">ATÖLYE</a> as its Ventures Director. </p>
<p>But if you don't believe me, I hope you will believe in the data. This might be one of the saddest statistics you might ever see (!):</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/Top-20-reasons-startups-fail.png" alt="CB Insights - Top 20 Reasons Startups Fail" width="600" height="400" loading="lazy">
<em>Top 20 Reasons Startups Fail - CB Insights</em></p>
<p><a target="_blank" href="https://www.cbinsights.com/research/startup-failure-reasons-top/">CB Insights’ findings</a> are chilling. 42% of startups failing simply because they are not needed. </p>
<p>Imagine this: You quit your job, and maybe risked your reputation. You raised funding from your friends, family, and investors. You started living on a very low budget. You worked tirelessly, 12 hours a day if not more… and after a year you realize there is no need for what you have been grinding and hustling for all that time. Isn’t that chilling?</p>
<p>Strategy and design help you minimize the chances of failing. How? Good strategy and design focus us on building lasting businesses based on customer needs and/or wants and competitive advantages. Also, they inherently mean testing hypotheses and iterating constantly. </p>
<p>They are great tools to find our way out of complexity… but let’s leave praising strategy and design aside and get practical. We will start by agreeing on a definition because the meaning of strategy is highly variable.</p>
<h2 id="heading-what-is-strategy">What is Strategy?</h2>
<p>Strategy is one of those concepts that everybody understands when they hear it but no two people understand the same thing. </p>
<p>Very generically put, strategy is a high level plan to achieve pre-determined goals. However, in a business context it has a more specific definition. Here is how I would describe it: </p>
<blockquote>
<p>Strategy is a set of hypotheses that describe a set of integrated key choices, key actions and a progress measurement framework for achieving business objectives.  </p>
<p>We develop strategies because we believe achieving objectives will help us realize our purpose.</p>
</blockquote>
<h2 id="heading-the-main-components-of-a-business-strategy">The Main Components of a Business Strategy</h2>
<p>Below are the most relevant main components for a startup founder at the beginning of their journey. </p>
<p>If we were to consider an established company rather than an early stage startup, we'd have to think about competitive advantages, core capabilities, management systems and – depending on the type of business – a few more specific components. </p>
<p>The key thing to remember is that however many components there might be, they all have to be integrated with the main components listed below. </p>
<h3 id="heading-the-purpose-for-doing-business">The purpose for doing business</h3>
<p>What drives you to do business? What impact and value do you want to create? What do you want to get in return? How is it measured (directly or indirectly)? </p>
<p>I list this first because it is the basis, ideally, upon which all your decisions will be made. When you are in doubt or things are too difficult to figure out or mutually exclusive options are similarly attractive – you will come back to the basis and seek guidance.</p>
<h3 id="heading-market-definition">Market definition</h3>
<p>Who are the customers, users, competitors, regulators, and other main actors who take part in the value exchange you want to create? </p>
<p>Market definition and Value proposition are extremely intertwined. That is why I list them one after the other. Without a sharp, even discriminating, <em>(as in consciously choosing not to compete in certain markets and thus choosing not to serve certain customers)</em> definition of a market, we cannot define meaningful value propositions. </p>
<p>Say that you are developing an analytics product. If you are focused on mobile applications then you are "discriminating" against web applications and your value propositions will be shaped with this choice.</p>
<h3 id="heading-value-proposition">Value proposition</h3>
<p>Your value proposition is what you have to offer to your customers (and, if you are thinking more ecosystemically, to all the actors you have in a give-take relationship) in exchange for the value you ask from them. </p>
<p>For example, customers pay you money, users might provide you with data, partners might help you reach customers, government supposedly ensures a fair market, and so on.</p>
<p>Value propositions are not the same as products, features, or services. An easy way to distinguish value propositions is to answer the question, <em>"How will our customers <strong>benefit from using our product</strong>?"</em> (And, again, you can extend this question to all the key actors in your market by asking <em>"How will this key actor benefit from being part of the value equation I'm creating?"</em>)</p>
<p>As this question implies, it is not the product itself that your customer is after. It is the benefits that your customers are hoping to get out of using your product.</p>
<h3 id="heading-meaningful-differentiation">Meaningful Differentiation</h3>
<p>Why will anyone choose your product over all the alternative products or ways to get the benefits they seek? What makes you a better fit for them? </p>
<p>How do you create that fit? How are you doing that differently from your competitors? How long can you hold on to this difference? </p>
<p>What can you do to keep the competition away? How might you make the competition irrelevant to your customers? </p>
<p>As <a target="_blank" href="https://youtu.be/1SfUsSyGWJ8?t=60">Jobs to Be Done (JTBD) theory</a> explains, jobs (the things people are trying to get done using products) do not change. The products keep changing but jobs stay more or less the same. </p>
<p>Take commuting, for instance. The way we commute has been in a constant evolution that brought autonomous electric cars to our lives. However, the job of getting from one point to another has been with us from the very beginning. </p>
<p>With every step in this evolution, more and more nuances are addressed. However, at the heart of it the job is still the same.</p>
<p>So, the differentiation lies not in inventing new jobs but in finding new and meaningful ways to help with getting those jobs done. </p>
<p>Price is just one way to differentiate. Features, benefits, the overall experience, the nuances you choose to address – there are countless ways to differentiate. </p>
<p>However, meaningful and lasting differentiation is hard. It's hard because copying is easier than ever. It's hard because developing software (unless it's something super advanced) is getting easier and easier. Good design is more accessible than ever. </p>
<p>So, we need more than design and technology to sustain a meaningful differentiation. More on this in the design section.</p>
<h2 id="heading-strategy-the-scientific-mindset-and-software-development">Strategy, the Scientific Mindset, and Software Development</h2>
<p>Strategy is about developing hypotheses from a mixture of deductive and inductive reasoning and then measuring progress against objectives. </p>
<p>It requires us to break things (markets, value propositions, differentiation, and so on) down to their parts (customers, buyers, users, partners, regulators, products, services, experience, branding), understand them individually, and then melt them together to create a coherent whole (a business). </p>
<p>It's extremely analytical and holistic at the same time. I find these aspects of strategy very similar to the scientific mindset. </p>
<p>This similarity also reminds me of the role of a software architect. They are tasked with a similar challenge. The level of uncertainty and complexity, though very different in their nature, are similar. </p>
<p>They both have some level of information available to them to make decisions but never the full picture. They both need to develop hypotheses and test them before fully committing to a particular approach. </p>
<p>Crucially, they both are aware that there is no one way to achieve the objectives, which means they are making choices. So, they want all the other things that will be built on top of their strategy/architecture to be coherent with their key choices. </p>
<p>And this similarity makes me question why so many engineers and developers distance themselves from strategy. Probably because of the way we talk about strategy and position it in companies, but also in education. That's very sad and needs to change.   </p>
<h1 id="heading-a-rough-guide-to-strategy-and-design-for-developers">A Rough Guide to Strategy and Design for Developers</h1>
<p>Definitions are important. They help us develop our own language and communicate. Now that we have our language in place, let's get into execution. </p>
<p>The guide below is rough by design. It's rough because I don't want to put too much emphasis on the guide itself. </p>
<p>It's rough because you are a developer trying to get something off the ground. Not a strategist or design manager in a company setting.</p>
<p>It's rough because it aims to hit the sweet spot which helps you get 80% of the results with 20% of the effort.</p>
<p>And it's rough because this is my first attempt to customize it for developers and I want to test this hypotheses before fully committing to it. So meta, isn't it? :)</p>
<h2 id="heading-how-to-define-your-purpose">How to Define Your Purpose</h2>
<h3 id="heading-start-from-within">Start from within</h3>
<p>What are you hoping to achieve for yourself? A side business? A learning project? The business of your life?</p>
<p>Describe a day in your life assuming everything went great and you have succeeded. What does a usual day look like?</p>
<h3 id="heading-continue-with-others">Continue with others</h3>
<p>Again, imagine everything went great and you have succeeded. What impact did you create on your customers', users' and partners' lives with that success? How did things change for them?</p>
<p><strong>Action</strong>: Summarize and posterize. Try to boil everything down into a paragraph that describe a future state for you and your customers. Rewrite and rewrite it again. </p>
<p>Pay attention to every word you use and make sure that the paragraph sits comfortably with you. Then print it out and keep it visible in your working environment.</p>
<h2 id="heading-how-to-develop-strategic-hypotheses">How to Develop Strategic Hypotheses</h2>
<h3 id="heading-start-with-customers">Start with customers</h3>
<p>Wanting to serve as many people as possible is great. However, it is very difficult to create a product that will serve a majority of a big market from the first day. </p>
<p>There are many reasons that will prevent your target customers from changing their way of getting the job done: <a target="_blank" href="https://www.investopedia.com/terms/s/switchingcosts.asp">Switching costs</a>, <a target="_blank" href="https://www.wikiwand.com/en/Formula_for_change#:~:text=The%20formula%20for%20change%20provides,Kathie%20Dannemiller%20in%20the%201980s.">human resistance to change</a>, even <a target="_blank" href="https://www.wikiwand.com/en/Inertia">inertia</a> can be considered a reason. </p>
<p>So, if change is so difficult, what should we do? <strong>We start with a super niche group of people who are most open to change.</strong> So, naturally, that's a very small part of the potential market. <a target="_blank" href="https://www.wikiwand.com/en/Technology_adoption_life_cycle">That's how it's meant to be.</a>   </p>
<p>Thinking in terms of <a target="_blank" href="https://www.blueoceanstrategy.com/what-are-red-blue-oceans/">Blue Ocean Strategy</a> is very useful for identifying people who are most open to change. Ask yourself:</p>
<ul>
<li>Who are most dissatisfied with current solutions? Why?</li>
<li>Who needs a solution but isn't finding any of the options are good enough? Why?</li>
<li>Who is disregarded by current market leaders? Why?</li>
<li>What are some common attributes of these people?</li>
<li>Do I know anyone who fits to this description?</li>
<li>Where can I find more people like them?</li>
</ul>
<p>Then go talk to them. <a target="_blank" href="https://review.firstround.com/build-products-that-solve-real-problems-with-this-lightweight-jtbd-framework">This article</a> has ALL the things you need to know about the Jobs to Be Done approach.   </p>
<p><strong>Action:</strong> If you want something a little simpler for customer interviews, <a target="_blank" href="https://jtbd.info/may-the-forces-diagram-be-with-you-always-applying-jtbd-everywhere-b1b325b50df3">use this article about the idea of "Push and Pull"</a> to clarify who your customers are and what they need. </p>
<h3 id="heading-identify-your-value-propositions">Identify your value propositions</h3>
<p>We value practical benefits. We expect products to provide practical benefits first. For sure. </p>
<p>However, especially in software, practical benefits are not enough to meaningfully differentiate ourselves. They are easy to copy. <a target="_blank" href="https://techcrunch.com/2017/05/16/to-clone-or-not-to-clone/">“This is the way the tech industry works”</a>. So, what can we do about it?  </p>
<p>Luckily, people are social and emotional beings. So, we can add social and emotional benefits to the mix and provide more value as well as making it more difficult to be copied. </p>
<p>Social and emotional benefits are the things that make people say "yeah, it's similar but not the same...". </p>
<p>Think about a product you really like. Not just how it works but the feeling of using that product. Then compare it with an alternative that gets the same practical (functional as it is called in the theory) job done. See how you feel about it.   </p>
<p>So, how do we know what social and emotional value to provide? First, it comes from your interviews. You need to pay attention to things beyond functionality. </p>
<p>Second, it comes from your choices. Yes, your choices. There will be lots of options for providing social and emotional benefits. You need to choose ones that will sit well with your purpose.   </p>
<p><strong>Action:</strong> Use Bain's <a target="_blank" href="https://media.bain.com/elements-of-value/">Elements of Value</a> to identify your options. They have a <a target="_blank" href="https://media.bain.com/b2b-eov/">B2B version</a>, too.  </p>
<h3 id="heading-define-your-position">Define your position</h3>
<p>Now, you will make things crystal clear by defining where you stand. You'll do that by defining polarities. </p>
<p>Polarities help because that's essentially how we tell things apart. Think of the role of contrast in our ability to see. Similarly, we need a clear contrast for things we do and don't do. This will help us clarify our scope and also crystallize our value propositions for the super niche group of people we are targeting.  </p>
<p><strong>Action:</strong> <a target="_blank" href="https://medium.com/signal-v-noise/position-position-position-34b510a28ddc">Use the More About Less About technique to define your position.</a> </p>
<h2 id="heading-how-to-test-strategic-hypotheses">How to Test Strategic Hypotheses</h2>
<p>Testing, contrary to what you might expect, is more of an art than science. Yes, it is at the heart of scientific method, but designing tests requires imagination rather than analysis. Analysis only comes after you conduct the test. </p>
<p>Let's look at a very high level overview of the <strong>test process:</strong></p>
<ol>
<li>Decide what to test and what results count as success. In other words what numbers and/or feedback would show that your hypotheses are valid.</li>
<li>Devise a test from which you can trust the results and can execute as cheaply and quickly as possible. This is where you need more imagination and divergence (expanding options without judging them) rather than analysis.</li>
<li>Run a few dry-runs to mitigate failure due to simple mistakes. Learn from dry-runs and iterate.</li>
<li>Run the test and closely monitor the results to learn from them.</li>
<li>Analyse the results and decide the next steps according to your learnings.</li>
</ol>
<p>Testing is extremely tactical and context-dependent. That is what makes testing more of an art than science for me. </p>
<p>That's why, instead of following a strict process, I believe that you'd be better off getting inspired by the following articles and finding your own way of testing. Much like an artist would do.</p>
<p><strong>Actions:</strong> </p>
<ul>
<li>Learn about the concept of <a target="_blank" href="https://hackernoon.com/the-mvp-is-dead-long-live-the-rat-233d5d16ab02">Riskiest Assumption Testing</a> (RAT).</li>
<li><a target="_blank" href="https://uxdesign.cc/riskiest-assumption-canvas-73ec0e2e0abc">Identify your riskiest assumptions</a>. (p.s. I don't agree with the notion of MVP in this article. I strongly suggest you disregard it. I wrote about <a target="_blank" href="https://uxplanet.org/why-doing-things-that-dont-scale-is-the-ultimate-way-for-being-lean-a81708d96c51">how I like to think of MVPs here</a>.) Assuming you are at the very early stages of your endeavor, it's more likely that your riskiest assumptions will be about the problems, needs, and wants of your customers and how your product can help them.</li>
<li><a target="_blank" href="https://thenextweb.com/dd/2014/11/12/15-ways-test-minimum-viable-product/">Choose the type of MVP from this list</a> that would be the most suitable for testing your riskiest assumptions. Build a rough version of that MVP. Do dry runs and then launch the test.</li>
</ul>
<h2 id="heading-how-to-design-your-product">How to Design Your Product</h2>
<p>Now that you've developed strategic hypotheses and tested them, it is time for you to build things, right? Wrong. Not so fast. </p>
<p>One of the biggest blind spots I see in developer-led startups (software, low-code, no-code) is Design. Design with a capital D. </p>
<p>What do I mean by "Design with a capital D"? Often, the design work in the software industry is reduced to how things look and feel. Sometimes, people go beyond that and add the simplicity element to the mix. Making things easy as well as beautiful. </p>
<p>But that's not all there is to designing products. There is more. Much more. </p>
<p>How much more? Well, so much more that I wrote the article below to describe my personal principles for product design and management. I don't think you need to read it or create your own principles, because I assume that your aim is to start your own business. Not to become a product designer or manager. </p>
<p>However, I'd highly recommend reading the Design and Brand Strategy sections of that article if you are curious about what I mean by "Design with a capital D".</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://uxdesign.cc/first-principles-for-product-design-3aa0a3a1cfea">https://uxdesign.cc/first-principles-for-product-design-3aa0a3a1cfea</a></div>
<p>Let's leave the philosophical discussions aside and get practical. Below is an overview of the process I recommend for designing your product. I have summarized the philosophy behind this process in the article above:</p>
<blockquote>
<p>Unless we have to invent something new, we are much better off using patterns, heuristics and principles without forgetting to adjust them to the problem at hand. This way, we’ll give people (both users and business owners) what they want: <a target="_blank" href="http://www.nirandfar.com/2015/06/california-role-rule.html">Familiar Done Differently</a>.</p>
</blockquote>
<h3 id="heading-consider-your-customers-context">Consider your customers' context</h3>
<p>Start with considering <strong>your customers' immediate context</strong> when they use your product.   </p>
<p>What's happening? What happened before? What will happen after? What are they trying to get done? How do they feel in that situation? In short: <a target="_blank" href="https://medium.com/signal-v-noise/designer-bs-5ebadc32f628">Don't focus on the "why". Focus on the "when</a>". </p>
<h3 id="heading-think-about-related-products">Think about related products</h3>
<p>Consider <strong>the other products they use to get things done</strong> in relation to your product, as well as competitors' products.  </p>
<p>How do those products work? How do they talk about themselves? Any common patterns in their design, branding? </p>
<p>If your product plays well with related products and if it is familiar to your customers, then it's more likely they will adopt your product.</p>
<h3 id="heading-list-out-your-products-features-and-choose-the-most-important-ones">List out your product's features and choose the most important ones</h3>
<p>It's important to list the features your product will have and then choose yourself a few <strong>North Stars.</strong>   </p>
<p>You'll "<a target="_blank" href="https://www.wikiwand.com/en/Steal_Like_an_Artist">steal like an artist</a>" from these North Stars. </p>
<p>Say that your product has a question and answer feature. <a target="_blank" href="https://www.freecodecamp.org/news/p/135dcfa1-a789-4893-afff-8b1fa05bcb20/www.quora.com">Quora</a> would be a good North Star as they are all about Q&amp;A's and have been around successfully for many years. </p>
<p>You can also choose North Stars for your branding, look, and feel. The key is viewing them as a solid starting point rather than things to imitate.</p>
<h3 id="heading-dig-deeper-into-your-north-stars">Dig deeper into your North Stars.</h3>
<p>If you've chosen a North Star for a specific feature, then use it several times. Try to break it. Take notes on how you'd do something differently and why. Do that for all your North Stars.</p>
<p><strong>Start your design with a user flow,</strong> not with a wireframe or any visual technique. One of the biggest mistakes you can make is to start designing the user interface (like screens). As I like to say, “Remember, we are not designing things. We are designing behaviours.” So, we must start with actions rather than interfaces. </p>
<h3 id="heading-break-your-product-down-into-features">Break your product down into features</h3>
<p>You will need to create user flows for each feature, but how do you break your product into features? </p>
<p>Luckily, Ryan Singer has given a <a target="_blank" href="https://www.mindtheproduct.com/video-ryan-singers-product-development-tools/">demonstration of how he uses the shorthand for UI and how he breaks things down into their parts.</a> Watch the entire video.</p>
<h3 id="heading-use-ryan-singers-shorthand-for-uihttpssignalvnoisecomposts1926-a-shorthand-for-designing-ui-flows-to-design-user-flows">Use <a target="_blank" href="https://signalvnoise.com/posts/1926-a-shorthand-for-designing-ui-flows">Ryan Singer's shorthand for UI</a> to design user flows.</h3>
<p>This will save you hours if not days. You may have ideas for the interface while doing the user flow. Just scribble them somewhere and take a note but never focus on them until you are done with the user flow. </p>
<h3 id="heading-test-your-user-flows">Test your user flows</h3>
<p>Once you have a rough first version, test your user flow(s) with a few potential users.   </p>
<p>Simply, first give them a quick walk through. Then ask them to critique it by thinking out loud. </p>
<p>You may ask them questions to kick start the conversation: "What did you like about this? What would you change? Why? How would you change it? What is this flow missing?" and similar other questions.</p>
<h3 id="heading-improve-your-user-flows-accordingly">Improve your user flow(s) accordingly.</h3>
<p>To design the interface (how things will look) go back to your North Stars. But before that you need to establish an overall look and feel through choosing colors and fonts.   </p>
<p>First, choose a font pair from <a target="_blank" href="https://www.quicksprout.com/best-font-for-website/">this list</a>. Try to make it familiar to your customers but also try to choose a pair that gives the feeling you want your users to have while using your product.  </p>
<p>Next, choose a color palette. Try to choose a palette gives the feeling you want your users to have while using your product – but also try to make it different from your competitors. </p>
<p><strong>Action</strong>: Use <a target="_blank" href="https://99designs.co.uk/blog/tips/branding-colors/">this article</a> to choose your main colors. Then <a target="_blank" href="https://coolors.co/">use this website</a> to create a color palette based on your main colors.</p>
<h3 id="heading-design-your-interface-in-detail">Design your interface in detail</h3>
<p>Now, you are ready to <strong>design the interface in detail</strong>. This is where stealing like an artist will come into play, again. Since, you've already made color and font choices, you can focus on the layout.  </p>
<p>Go back to your North Stars and base your interface design on their existing designs. Don't change things unless you have clear reason for changing them. Check out tools like <a target="_blank" href="https://mobbin.design/">Mobbin</a> for further inspiration.</p>
<p>Remember – design doesn't end with the interface. An extremely crucial and very much overlooked element of Design is the copywriting. So much depends on the language. </p>
<p>It's a great contributor to usability if it's clear enough. It gives your design a deeper character if you can strike a chord. It allows you to test things faster, easier, and cheaper. It's extremely important. I highly recommend investing serious time in it.  </p>
<p><strong>Action:</strong> Read the <a target="_blank" href="https://blog.prototypr.io/microcopy-101-how-to-write-for-successful-products-2b18ca63c429">basics of microcopy</a>, first. Then continue with <a target="_blank" href="https://blog.prototypr.io/14-rules-of-ux-writing-6097cc3064ca">writing your copy based on these rules</a>.</p>
<h2 id="heading-go-back-to-strategy">Go back to strategy</h2>
<p>In the endless iteration spiral we call building a startup, at this step of the Design process, I suggest you take a step back and go back to your strategy. </p>
<p>Specifically, go back to your Purpose and Positioning and see whether what you are building actually fits them. Of course, you don't have to and shouldn't wait until this step. However, make sure you take a critical view of everything and see if you are still after the thing you set out to achieve.   </p>
<p>It is fine if there are changes. It would be useless if there were not any changes after so much testing and learning. </p>
<p>However, if the very essence of your purpose and positioning is changing then it's a strong sign that you need to rethink things thoroughly. Otherwise, you might find yourself constantly and mindlessly "pivoting" toward whichever direction might seem interesting at any given time. </p>
<p>This will derail you from the long-term vision that you need to strive for. If you don't have such a vision (which doesn't need to be groundbreaking or world changing) then it'll be very difficult to persist through the challenges in the short-term. </p>
<h1 id="heading-conclusion">Conclusion</h1>
<p>Like any other guide, this guide is incomplete, too. Trying to provide a complete guide is almost an oxymoron in itself. </p>
<p>The purpose of this guide, very similar to an architecture or a model, is to provide enough guidance so that it captures the essence of the reality in the simplest way possible. </p>
<p>It is up to you, the entrepreneurs, to figure things out where this guide falls short and creates uncertainty. That, coincidentally, is the ultimate skill entrepreneurs need to have: <strong>Figuring things out under extreme uncertainty.</strong> </p>
<p>So, I hope this guide will help you with removing some of the uncertainty you are dealing with and accelerate your journey for achieving your purpose. </p>
<p>Let me know what you think and how I might improve this guide. It's an early prototype of something bigger I'm working on. So meta, I know.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I Went from Hackathons to CTO of a 20 Person SaaS Company in 3 Years ]]>
                </title>
                <description>
                    <![CDATA[ By Yacine Mahdid In this article I will share the story of how I became CTO of a software as a service (SaaS) company. It all started about 3 years ago when I was going to hackathons for fun.  At the end of the article you can find some ]]>
                </description>
                <link>https://www.freecodecamp.org/news/from-hackathon-to-cto-in-3-years/</link>
                <guid isPermaLink="false">66d46171b3016bf139028d9a</guid>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ hackathons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Personal growth   ]]>
                    </category>
                
                    <category>
                        <![CDATA[ SaaS ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[  Startup Lessons ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 11 Feb 2021 19:30:01 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/601702fe0a2838549dcbc125.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Yacine Mahdid</p>
<p>In this article I will share the story of how I became CTO of a software as a service (SaaS) company. It all started about 3 years ago when I was going to hackathons for fun. </p>
<p>At the end of the article you can find some tips and advice I would give to aspiring entrepreneurs as well as some reading recommendations.</p>
<p>It was – and still – is a wild ride!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-8.png" alt="The GRAD4 team in 2020" width="600" height="400" loading="lazy">
<em>Our company team (we now have 8 more employees!)</em></p>
<p>Although I have a good knowledge of entrepreneurship, don't just take my advice at face value. Learn from books, from other entrepreneurs, and from your environment in order to triangulate how best to act in a given situation.</p>
<h2 id="heading-my-first-hackathon-which-i-lost">My First Hackathon – Which I Lost</h2>
<p>It might sound off, but I had no interest whatsoever in entrepreneurship or business 3 years ago. I was more of a researcher in spirit than an entrepreneur. </p>
<p>From studying <a target="_blank" href="https://onlinelibrary.wiley.com/doi/full/10.1111/jnc.14473">memory at the molecular level</a>, to <a target="_blank" href="https://www.frontiersin.org/articles/10.3389/fpsyg.2021.612681/full">helping schizophrenic patients learn better</a>, or <a target="_blank" href="https://pubmed.ncbi.nlm.nih.gov/33376599/">predicting consciousness recovery in patients with traumatic brain injuries</a>, my mind was deeply focused on the frontiers of science.</p>
<p>However, I had a deep passion for programming and for finding ways of building tools that didn't exist before. </p>
<p>Like the time I built a <a target="_blank" href="https://mjm.mcgill.ca/article/view/129">brain computer interface that was compatible with a Transcranial Direct Current Stimulation electroencephalographic headset</a> (that is, it stimulates the brain by giving shocks and lets you control a kind of ping pong game). I just love to build stuff.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/graphics.png" alt="A very simple brain computer interface with a white ball dropping down to a red or green tile" width="600" height="400" loading="lazy">
<em>Cutting edge graphic from my brain computer interface</em></p>
<p>So three years ago, my brother wanted to find a new job as a software developer. We figured out that we could attend hackathons to help him get noticed by recruiters. </p>
<p>It was my first hackathon so I was pretty excited to spend two days building something. Our team was composed of myself, my brother, his friend, and one more member (who didn't do a lot, but was still there).</p>
<p>It was two days of heavy coding, and at the end we came up with a pretty cool algorithm to pattern match people with jobs given some characteristics. </p>
<p>On top of that, I met nice people that, like me, love to build stuff. We ended up among the finalists and came in fourth during the final presentation. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/coding_away.jpg" alt="3 student working in a computer in a crowded space" width="600" height="400" loading="lazy">
<em>Here I am trying to figure out why the clustering is not working</em></p>
<h3 id="heading-what-i-learned-from-my-first-hackathon">What I learned From My First Hackathon</h3>
<p>It was a bit of a bummer not to win, but I realized something important then: except for the participants, no one really cared what I coded during these two days. </p>
<p>It was mostly the presentation of what we wanted to build that mattered. We should have spent a bit more time making a very compelling PowerPoint instead of focusing on the development of an algorithm!</p>
<p>It was a fun learning experience, but my brother didn't get a job out of it – so we were back at square 1.</p>
<h2 id="heading-my-second-hackathon-in-which-we-won-a-special-prize">My Second Hackathon – in Which We Won a Special Prize</h2>
<p>I was ready to take a small break from hackathons for a while. However, my brother decided to sign us up anyway. So his friend and I to go to another hackathon right after the first one. I would have refused as I had other stuff to do, but he had already paid the sign up fees.</p>
<p>This hackathon was a bit bigger than the previous one and there were still a bunch of recruiters there. We figure that this could be our second shot at getting him a job. </p>
<p>The theme of this hackathon was open data and environment. So we were in a good position to make something cool with my background in machine learning.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/hackqc.jpg" alt="People waiting in a room for a speech at HackQC" width="600" height="400" loading="lazy">
<em>A lot more people where present at HackQC which was nice!</em></p>
<p>Knowing that the presentation was everything, we decided to be a bit more strategic with this hackathon. We combed all the different prizes we could win and selected the one with seemingly the least competition. The project would deal with the prediction of combined sewage overflow. </p>
<p>We then split up our team of four (another friend of my brother's joined in) so that half of us were working on the coding and the other half on the presentation.</p>
<p>The name of our team was “Égout Quebec” which translates to Sewage Quebec (branding wasn’t our strength). Here is the excerpt from our <a target="_blank" href="https://devpost.com/software/debordementhackqc18">competition log on DevPost</a> in French:</p>
<blockquote>
<p>ÉGOUT QUEBEC permet de prédire le débordement des égouts et d’en avertir les amateurs d’activités aquatiques. Ainsi les personnes désirant aller faire des activités aquatiques pourrons éviter les zones polluées par les déversements d’eau usée. De plus, des conseils seront dispensés aux gens des différents quartier, de façon à réduire les risques de débordement.   </p>
<p>ÉGOUT QUEBEC utilise une technologie basée sur une intelligence artificielle. Celle-ci peut déterminer lorsque les égouts déborderont. Ses analyses et calculs sont basés sur des données disponibles sur le site de donnée Québec. Finalement, les différentes villes auront avantage à utiliser ÉGOUT QUEBEC.   </p>
<p>Grâce aux prédictions et aux analyses de la plateforme, il sera possible de concentrer les ressources de la ville aux endroits les plus problématique.</p>
</blockquote>
<p>All this basically translates to <em>“we found a way to solve the problem using a random forest + a bunch of data”</em>. </p>
<p>We actually ended up winning a $1000 prize, which was huge at that time! We even got a nice glass trophy in the shape of a water droplet. It was less challenging than the previous hackathon because we had a better plan for what we needed to do. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/winner.png" alt="Four logo of the project receiving a prize" width="600" height="400" loading="lazy">
<em>Here we are at the podium (still technically fourth place though).</em></p>
<h3 id="heading-what-i-learned-from-my-second-hackathon">What I learned From My Second Hackathon</h3>
<p>This hackathon made me realize that presentation was indeed important. But I also discovered that focusing on problems that people don't find interesting is a good way of increasing your chance of coming out on top!</p>
<p>Winning felt good and I was ready to take my share of the $1000 prize and call it a day...</p>
<h2 id="heading-my-third-and-last-hackathon-which-we-kinda-lost-again">My Third (and Last) Hackathon – Which We Kinda Lost Again</h2>
<p>However, the $1000 prize came with an automatic fast-track to the semi-final of yet another hackathon! This one had higher stakes with a $25,000 prize. </p>
<p>We met up at a coffee shop to figure out if we wanted to split up the money or to use it in order to take our project to the next level.</p>
<p>After looking at the other participants' projects and the rules of the competition, we decided that we actually had a good shot to at least get to the finals. This would unlock some more funding which we could use at will and would give us a nice trip in the summer to a lake in Ontario.</p>
<p>This hackathon wasn't like the others in the sense that it ran for the whole year. It was more of a take-home hackathon, which was great for me since I didn't have to do that insane two-day time crunch routine over a weekend.</p>
<p>We changed our name to EGC Labs and managed to get a website together to advertise our sewer overflow prediction solution (which was working surprisingly well). We then went to the semi-finals competition in Ontario, and to our amazement we moved on to the final!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-16.png" alt="People learning they moved to the semi-final of Aquahacking" width="600" height="400" loading="lazy">
<em>Here we are as finalists! I didn't go all the way to Ontario for the semi-finals, though.</em></p>
<p>This was great! We had a very good shot at winning more than a small stipend, and maybe starting a business out of this thing. To help us bootstrap ourselves, Aquahacking generously gave us $2000 and École de technologie supérieure (ÉTS) gave us $1000 for travel expanses.</p>
<p>However, we still didn't have any customers for our solution, which was a bit problematic. </p>
<p>We tried to contact a bunch of cities in Quebec in order to see if they would be interested in our sewage overflow application. We had some pretty advanced discussions with a few cities, however their process was so slow that we got very near to the finals without any concrete validation. </p>
<p>The final was a 5 minute presentation in front of a big audience with some investors present.</p>
<p>Things got a bit more tricky when we got closer and closer to the presentation date. The rest of my team started to become less and less responsive. I ended up not being able to reach my brother's friend who had joined at the HackQC competition. </p>
<p>This quickly followed by my brother losing all interest in the competition and focusing on other stuff. We were left with myself and my brother's other friend (Félix) who joined in the very beginning. </p>
<p>He was also starting to slip out of the picture because nothing seemed to be moving forward, as I was the only one left coding. I wasn't very interested in that project either, however one thing I hate is half-backed projects (even more when they are public).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-17.png" alt="The scene at Aquahacking with Felix presenting and Yacine doing nothing" width="600" height="400" loading="lazy">
<em>Our faces were plastered everywhere</em></p>
<p>I felt that it would have been a waste to stop so close to a conclusion. So I took it upon myself to jump start the project by coding the app's user interface, getting some branding going, and creating our business cards for the event. </p>
<p>As things started to pick up Félix started to become more and more involved (which was a blessing because he was the one pitching!).</p>
<p>We were still finalizing the PowerPoint the night before the presentation in the hotel room. After all this hard work we had something pretty solid (by my standards at the time, anyway). We've ended up winning fourth place in the competition:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-9.png" alt="Yacine and Felix receiving the fourth prize at Aquahacking" width="600" height="400" loading="lazy">
<em>Us receiving the 4th place trophy (again) with no money whatsoever associated with it haha</em></p>
<p>We went from a team of 4 to 2 people and were able to get that far. However, it was exhausting since I had to do so many different things that were not in my core zone of competency. </p>
<h3 id="heading-what-i-learned-from-my-last-hackathon">What I learned From My Last Hackathon</h3>
<p>I learned two very important lessons during that adventure: </p>
<ul>
<li>Having motivated teammates is the most important asset in any endeavor. If we had everyone pulling their weight we would have had more chance to win!</li>
<li>For a startup, having clients is the ultimate measure of success. We did everything right, except making sure that we had paying customers. In the end this is what kept us at 4th place.</li>
</ul>
<p>We won a big $0 in that part of the competition, and once again I thought that was it. I had coded some cool Flask applications, went to the final of a big hackathon, and learned some valuable lessons. Until I realized...</p>
<h2 id="heading-how-i-learned-about-entrepreneurship-at-an-incubator">How I Learned About Entrepreneurship at An Incubator</h2>
<p>Being part of the finalists of Aquahacking automatically gets you a spot in one of the provincial incubators for startups, which happened to be <a target="_blank" href="https://centech.co/">Centech</a> for us in Québec.</p>
<p>I didn't really know what an incubator was (except in a biological sense), so I wasn't particularly excited. We had to make a pitch for our "startup" to the incubator panels even though we had a reserved spot. I let Félix do it without me, as I had other stuff to focus on.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-18.png" alt="The inside of the Centech incubator" width="600" height="400" loading="lazy">
<em>Centech is inside an old planetarium so it has that funky circular shape. It's a pretty cool place.</em></p>
<p>At first I didn't go too often to the entrepreneurial classes and I was starting to think that this whole hackathon-thing was becoming a huge time-sink. However, I stuck to it because Félix was very motivated by the whole experience.</p>
<p>So I decided to give it a serious shot. I started attending the entrepreneurial classes (which were amazing), I did the homework, and I tried really hard to make our sewage company work. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/lotofpeople.jpg" alt="A lot of people in the stairs of Centech" width="600" height="400" loading="lazy">
<em>Lots of entrepreneurs in our 2018 cohort, try to find me!</em></p>
<p>Frankly speaking, it was amazing. It was genuinely fun to try and make something novel. And being mentored by people that had built incredible products that helped millions of people was incredible. </p>
<p>The class that I was in was also very motivating, as we had people from all backgrounds and oddly enough most of them were graduate students, like I was! </p>
<p>I really got the bug for entrepreneurship. It was like doing research, except I could directly see the results of my experiments in a matter of days. It was like combining the pleasure of discovery I had while doing an experiment with the freedom of programming for a side project.</p>
<p>However, after reading the books and learning the material, I realized that we'd done everything upside-down for our budding startup. We had built the technology before even validating that there was a sustainable business out of it (silly us!).</p>
<p>We were ready for our very first pivot, which in entrepreneurial jargon means tweaking your business in a significant way in order to not crash and burn.</p>
<h2 id="heading-how-we-made-our-first-pivot-after-learning-that-our-startup-idea-was-doomed">How We Made Our First Pivot After Learning that Our Startup Idea Was Doomed</h2>
<p>Our combined sewage overflow predictor was working great. However, no one was willing to spend money on it. </p>
<p>We were targeting cities in order for them to be able to proactively do something about the overflow of raw sewage into their rivers (which, by the way, is a worse and more frequent problem than you think). But these cities had such a long cycle to sell to that we would never be able to grow this business.</p>
<p>One thing that we realized during this project was that the majority of the data that was available for the competitions were in a very bad shape. It took us many hours of cleaning and we had to develop some very custom toolsets in order to make the cleaning efficient.</p>
<p>We had also talked to a few of the judges at Aquahacking and what they were most interested in was the portion of our business that related to data cleaning.</p>
<p>So that was it! We would become a data cleaning company. For about three weeks we were frenetically searching for customers, making plans on how to make this type of business work, and coding outlier detection algorithms.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-299.png" alt="Image" width="600" height="400" loading="lazy">
<em>This would have been us inside the datasets for the rest of our lives: Photo by [Unsplash](https://unsplash.com/@mkjr</em>?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit"&gt;mkjr</em> / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit)</em></p>
<p>However, after meeting with our mentors at Centech, we realized that what we were building was a service company. Almost no data is similar, especially when it comes from different sources. </p>
<p>The amount of domain expertise we would have to gain in order to be efficient in one industry would not necessarily transfer easily to another industry. There was a lot of manual work involved in this and all our ideas for making it more automated were failing.</p>
<p>Now, there is nothing wrong with making a service company. It's a great type of company if you are very interested in your industry. But we did some amount of introspection and we realized that we weren't really passionate about data cleaning. </p>
<p>We were passionate about automating work and improving efficiency through technology. Building a data cleaning company where most of the work would be manual and not very efficient wasn't very exciting for us. </p>
<p>We were ready to make our second pivot, which would be our largest so far.</p>
<h2 id="heading-how-we-made-our-second-pivot">How We Made Our Second Pivot</h2>
<p>During the Centech program we had met two other entrepreneurs that had a problem that was complementary to ours. They had a lot of validation from potential clients whose problem could be solved by technology. However, they didn't have the technical skills to make the technology required to power their business.</p>
<p>I had helped them out a couple of times in order to get them started with building their web application since I'd already done something similar for EGC Labs. </p>
<p>Helping out other entrepreneurs without expecting something in return is very common in this type of environment. The more I helped them, the more we realized that we could get way more done if we were a team of 4 instead of two teams of 2.</p>
<p>We went for lunch to discuss what a potential "merger" of our two ideas would look like. After discussing for a week, we decided to ditch the EGC Labs project completely, as it had the smallest chance of success. Instead we would join forces with their idea, which was called GRAD4.</p>
<p>That was the second pivot for Félix and me. It meant completely dropping a project that was leading nowhere and joining another one that we were much more excited about.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/pitching.jpg" alt="the CEO of the company GRAD4 presenting at some pitch competition" width="600" height="400" loading="lazy">
<em>Félix pitching our new company instead of the data cleaning one</em></p>
<p>During the next weeks, we were absolutely crushing it. We did everything right. We officially incorporated our company. We made a few plans as to what the actual application would need in terms of functionality so it would deliver value to our potential customers. However, we didn't wait for me to complete it to start selling it!</p>
<p>The other two co-founders were already on the road talking to people who'd showed interested. They were gathering checks for a 1 year subscription to our platform, which didn't exist yet. The $500 yearly subscription would start when we launched the product and we were very upfront that we were in the process of building it. </p>
<p>Getting people interested in your project is one thing, but getting paying customers before building a SaaS app is the holy grail of business validation. By doing so we were able to get about 15 checks that would help finance the development of the product. </p>
<p>We also won a $1500 elevator pitch competition around the same time because Félix was very focused on practicing his pitch.</p>
<p>All of these small wins compounded during the program and we ended winning a $15,000 prize at the end of the incubator called the Unicorn prize. </p>
<p>This was great, but more importantly we secured a spot in the next stage of the incubator which was the Propulsion program. This would secure us an office and some additional perks that would help our company succeed.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/office_1.jpg" alt="The first office of the company GRAD4 in a basement" width="600" height="400" loading="lazy">
<em>Cozy office in the basement of Centech. It was nice, but there was lots of noise because of pipes. You can see a wild cofounder working through the night.</em></p>
<h3 id="heading-what-i-learned-from-my-first-startup-incubator">What I Learned From My First Startup Incubator</h3>
<p>During that part of our young company's adventure I learned a few important lessons:</p>
<ul>
<li>Clinging onto an idea because it was yours even though all analysis tells you it's a bad one is usually a bad idea.</li>
<li>A larger founding team is more productive than a smaller one. It also allows for cheaper labor as no one is getting paid at the start.</li>
<li>Asking customers to pay for an in-progress idea is not as difficult as you may think. If the pain is big enough for the customers, they are usually very supportive of having someone fix that mess. Even if the probability of success is low.</li>
<li>The technology part of the business is not that important.</li>
</ul>
<h3 id="heading-we-have-money-now-what">We Have Money, Now What?</h3>
<p>We now had gathered a fair amount of money and we had multiple options in front of us:</p>
<ul>
<li>Either we keep the money and pay ourselves.</li>
<li>We keep the money and don't use it in case we fail to make the app and we need to reimburse people.</li>
<li>We use the money to hire people to speed up the development.</li>
</ul>
<p>The first idea was wasteful, and it would decrease the probability that our company would succeed. The second option would just let our funds sit idle. So we decided to go for the third option.</p>
<h2 id="heading-how-we-scaled-our-startup-past-the-founding-team">How We Scaled Our Startup Past the Founding Team</h2>
<p>During that summer of 2019, we made our first two official hires to help me with the development of the platform. They were software engineering interns from the ÉTS (École de Technologie Supérieure). One intern would be focused on the backend side while the other would be focused on the frontend side.</p>
<p>Our product was a simple CRUD application that would allow buyers who needed metal parts manufactured and suppliers of metal parts to find each other. </p>
<p>It was basically a sort of marketplace where buyers would create what is called a <em>request for quote</em> and the suppliers would create a <em>quote</em> to say how much they could build the part for. Pretty simple!</p>
<p>The technology we choose to use was the following:</p>
<ul>
<li>Django + Django REST API for the backend.</li>
<li>React + Redux for the frontend.</li>
<li>Bootstrap for the styling.</li>
<li>Heroku to host both applications.</li>
<li>GitHub for remote source control.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-19.png" alt="A picture of a development stack feature Django and React" width="600" height="400" loading="lazy">
<em>This was our setup at first. Credit: https://blog.usejournal.com/react-on-django-getting-started-f30de8d23504</em></p>
<p>Choosing the technology was up to me as the CTO, and I honestly decided to go with what I thought would be better in the long run. I was already familiar with Flask, however I knew a bit of Django too. Seeing that a lot of the functionalities I needed were already pre-built into apps made me lean toward it.</p>
<p>I chose React on the frontend side because I had played around with it 6 months prior and found that it was such an easier way to build applications than the traditional way I was used to.</p>
<p>However, in retrospect I think I would have greatly simplified the stack. I would have only used Flask for the following reasons:</p>
<ul>
<li>I was more familiar with Flask than with Django.</li>
<li>We didn't need to have a separate frontend, as the application we needed to build was very simple. Simple templates would have been enough for a first proof of concept.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-20.png" alt="Flask Logo and Title" width="600" height="400" loading="lazy">
<em>Just this would have been more than enough</em></p>
<p>However, we went with this tech and we learned a great deal in the process.</p>
<h3 id="heading-what-i-learned-during-my-first-months-as-cto">What I Learned During My First Months as CTO</h3>
<p>One lesson I learned from this first foray into making an application customers would actually use is that overthinking scalability is oftentimes useless. </p>
<p>Working with what you are already comfortable with and delivering something as soon as possible is much more useful as you learn more rapidly. This is actually what is most important in a startup. </p>
<p>The more learning you can do (about the business, what customers want, how to talk to them) the more probable it is that the next thing you try will work.</p>
<p>After a few iterations, we were finally ready to launch our closed beta with the customers that had already paid for our service.</p>
<h2 id="heading-how-we-did-our-first-product-launch-closed-beta">How We Did Our First Product Launch (Closed Beta)</h2>
<p>We were able to make the first version of the application at the end of the summer of 2019 and launched it for our users (1 month later than we promised). It wasn't pretty and it was barely working. </p>
<p>We had to babysit our users throughout the whole process and the buyer section of the application wasn't usable. We had to do the work manually for all our buyers while the suppliers were able to create quotes. </p>
<p>What was great, though, was that we continued to be able to get checks from people who were interested which helped fuel development. We made a few mistakes on the hiring side, though. We hired a friend of one of the founders who, although experienced, was a jerk to the other more junior developers. </p>
<p>This was the first firing I had to do, and I'm glad I did it. Creating an enjoyable work environment is much more important than technical prowess, because at the end no one wants to work in a bad environment for long. </p>
<p>Having people stick around for the long run in a startup environment is crucial for the company's success. I believe it is one of the reasons our startup is still alive. </p>
<p>As development was chugging along we realized that we had to structure the company a bit more than what we were doing. Thanks to being next to so many startups and successful companies at Centech, we could learn from each other. </p>
<p>During that year, we focused on getting financing going (this is a super important part of business and should be prioritized). We also focused on getting some sort of marketing going, making actual designs that made sense instead of winging it, and making sure our team was staffed by full-time people instead of only interns.</p>
<p>We also moved from the basement of Centech to an office space with windows on the second floor which was actually pretty nice! We maxed out the capacity pretty quickly, though, and the founders had to start working in the dining area of the building so that the employees had more room.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/lotofpeopleagain.jpg" alt="A very very crowded office with the GRAD4 team" width="600" height="400" loading="lazy">
<em>This was way too crowded in retrospect, but at least the view was nice</em></p>
<h3 id="heading-what-i-learned-from-my-first-launch">What I Learned From My First Launch</h3>
<p>I learned a great many lessons after our first launch:</p>
<p><strong>Don't do an official launch.</strong> It's useless. We put so much pressure upon ourselves to impress the paying customer with a pompous launch, and we were afraid that they would be mad at us if we didn't deliver.   </p>
<p>The truth is they didn't really care. When we sent an apology email saying that we had to delay the launch no one complained. I'm pretty sure they were actually amazed that we were able to get something up and running so quickly.</p>
<p><strong>Even if you have paying customers for your SaaS application, prioritize doing manual work over building an application</strong>. In retrospect, I would have made a simple form where the buyer could upload a Zip file containing the request for a quote which would be sent to the founders' email address.   </p>
<p>We would then send out this request manually to the manufacturers we knew would be interested in this type of work. That would have delivered value way faster to our users and released the pressure on development.   </p>
<p>It would also have validated a lot of hypothesis we had that would have accelerated the development work.</p>
<p><strong>Stay focused on very few things and make sure that this focus is explicitly written down somewhere.</strong> At some point I was building a blockchain-powered smart request for quote because it was hyped up by one of the co-founders who knew someone working with blockchain technology. That was a solid waste of time and I'm glad I killed that project soon after.</p>
<p>We were starting to pick up steam and we finally had something that we could show the world. It still wasn't pretty, however customers saw the value in what we were building and we knew better what was creating value and what was not. </p>
<p>We were ready to open our beta to increase the amount of users in our application!</p>
<h2 id="heading-how-we-opened-up-our-product-to-more-users">How We Opened Up Our Product to More Users</h2>
<p>After tweaking the platform using feedback from our early users, we now had a better understanding of what exactly we needed to build. We were now ready to increase the amount of people using our platform and start to increase the output of the sales (which the founders did).</p>
<p>This put more pressure on our application and we started to experience downtime. We knew that we had to improve the way we were building this product if we wanted to scale to more users. </p>
<p>We asked an experienced software architect, now part of the team full time (thanks <a target="_blank" href="https://www.linkedin.com/in/karimbesbes/">Karim</a>!), to help us out. This really gave us a solid direction to follow. Here is what we changed:</p>
<ul>
<li>We moved to AWS to have more control over the cloud environment.</li>
<li>We moved to Gitlab to have an easier-to-use CI/CD environment.</li>
<li>We added automated testing to our application.</li>
<li>We started to migrate toward Material-UI instead of Bootstrap.</li>
</ul>
<p>After improving the way we worked, we now had a fully working CI/CD setup and a more robust application that was rigorously tested. The amount of downtime we experienced was drastically reduced and developers were more confident about the changes they were making. It was a more enjoyable development experience, too.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-21.png" alt="Gitlab CI CD pipeline" width="600" height="400" loading="lazy">
<em>Gitlab is a very enjoyable work environment and reduces a lot of the complexities with lots of tooling. Credit: https://about.gitlab.com/</em></p>
<h3 id="heading-what-i-learned-from-my-first-open-beta">What I Learned From My First Open Beta</h3>
<p>During that period, I learned that the minimal viable product (MVP) phase of the product is necessary. But when transitioning out of it you shouldn't hesitate to ask for expert help.</p>
<p>We now had sales giving us more clients (which were still a bit difficult to get, but coming along at a constant pace) and the application provided more value than before.</p>
<p>We were ready to ask for our first real investment!</p>
<h2 id="heading-how-we-got-our-first-real-investment">How We Got Our First Real Investment</h2>
<p>We applied for a funding from <em><a target="_blank" href="https://blog.frontrow.ventures/">Front Row Ventures</a></em> which is a venture capital fund entirely managed by students and which only invests in student-led startups across Canada. </p>
<p>We met with the people from Front Row, and explained what we were doing and where we were going with all of this.</p>
<p>We ended up having to do a 25 minute pitch in front of a full panel of students who were asking solid questions about the business and the technology. </p>
<p>This was great because we knew that if we got the funding we would not only have the cash, but also new connections that could be there to answer questions and make strategic introductions for us.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-22.png" alt="The team of 20 people from Front Row Venture" width="600" height="400" loading="lazy">
<em>It was great, some of these people went to the same university as I did!</em></p>
<p>Well, <a target="_blank" href="https://blog.frontrow.ventures/behind-the-deal-grad4-4f0e92b2a547">we ended up getting the funding and the people at Front Row were very helpful in many aspects of the company</a>! </p>
<h3 id="heading-what-i-learned-from-getting-our-first-funding">What I Learned From Getting Our First Funding</h3>
<p>This was another important lesson I learned during that time: when choosing a funding partner, it's not only about the funding. It's also about how much help they can provide. </p>
<p>Front Row ended up opening many more doors for us and ensured that their investment had all the possible tools to succeed.</p>
<h2 id="heading-what-our-day-to-day-routine-looked-like">What Our Day to Day Routine Looked Like</h2>
<p>Everything was going pretty well for us on the business side. However, the pace we were following was a bit worrisome. We were an archetypal startup where employees would come at the office from 9 to 5 and where the founders worked 80 hours a week. </p>
<p>Meeting on the weekends at the office to plan stuff out and clear up more tasks was routine. </p>
<p>I wasn't too happy with this because this type of work isn't sustainable in the long run – and I started to see signs of burn out in the others. We also weren't very structured, the documentation was poor, and we had almost no processes clearly mapped. </p>
<p>It was at that time that I started to read more about how to structure a company properly in order to maximize our chances of success (see readings at the end).</p>
<p>Then, out of nowhere, we started to hear about the possibility of a pandemic hitting our Canadian shores...</p>
<h2 id="heading-how-we-reorganized-when-covid-19-hit">How We Reorganized When COVID-19 Hit</h2>
<p>Some employees were very afraid of the virus and of getting sick. There were no cases in Canada yet, but some of the employees had family abroad in areas more advanced in the pandemic's course. </p>
<p>We started to think about what we could do and we realized that we didn't absolutely need to have people come in the office to do their work. All of the work could be done remotely just fine – it was just the culture that we'd set up that required people to show up from 9 to 5 every day of the week. </p>
<p>This type of schedule was directly taken from what we were all familiar with, but we realized that we didn't have to do like all the other companies we'd worked for. </p>
<p>We decided that we would allow everyone that wasn't comfortable going into the office to stay home. I personally decided to not show up to the office and most of our employees followed suit.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-300.png" alt="Image" width="600" height="400" loading="lazy">
_As long as people had a the tools they needed, they didn't need to go into the office: Photo by [Unsplash](https://unsplash.com/@xps?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;XPS / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm<em>campaign=api-credit)</em></p>
<p>This was great because we soon realized that a lot of the shortcomings of our company's structure were hidden by the fact that all employees were available in the office every day. Everyone was always trying to setup a Zoom meeting at random hours or calling at any time of the day to ask for operational tasks status. </p>
<p>We also realized that people had a hard time finding where all the information was, and many different people asked the same thing many times.</p>
<p>I decided to read a bit more about how to structure remote work efficiently so we read the <a target="_blank" href="https://about.gitlab.com/resources/ebook-remote-playbook/">remote playbook from Gitlab</a> and implemented some changes:</p>
<ul>
<li>We removed the silos between the different teams by making all communication public and via written messages.</li>
<li>We organized the documentation so that people would put their files in a shared drive instead of sending them on the instant messaging app.</li>
<li>We instated a Kanban methodology for all departments, not just the people working on the technology since tasks weren't properly tracked.</li>
<li>We reduced synchronous meetings by only scheduling those that were necessary and by having the results of the meetings communicated in one form or another.</li>
</ul>
<p>This helped a lot! However, it took time before it really took hold. People were still having private messaging discussions when everyone could benefit from what was said. Synchronous meetings were still the default for a lot of people to share information. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/Executives.png" alt="The executive team of the company GRAD4" width="600" height="400" loading="lazy">
<em>Here are the co-founders trying to keep 2m distance in our first pandemic meetup (and photo shoot)</em></p>
<p>But it got better. By putting a lot of effort into making remote-work work, we were drastically improving our company's productivity to a level way above that pre-pandemic. </p>
<p>In a sense it was helpful that we were forced to experience remote work (as we were in full lockdown for a while) because it gave us the necessary buy-in from people that were skeptical that this was possible. </p>
<p>There was no other choice but to go all-in to remote work, otherwise the company would've just ground to a halt. We had employees to pay, so waiting the pandemic out wasn't an option.</p>
<p>In the business sense, we were very fortunate as our platform was useful for the manufacturing industry which couldn't do business in person anymore. </p>
<p>Some startups that we knew of weren't so lucky and their whole business was now impossible to operate within a very short time frame. Most of them had to close shop or do some radical pivot.</p>
<h3 id="heading-what-i-learned-from-pivoting-to-a-remote-company-structure">What I Learned From Pivoting to a Remote Company Structure</h3>
<p>The first few months of the pandemic taught me some very important lessons:</p>
<p><strong>Starting a startup is very, very, very risky</strong>. If you had started a ridesharing startup in 2019 and things were going fantastic for you, you would still have had to stop that business once the pandemic hit in 2020.   </p>
<p>No matter how prepared you are, there are always risks and unforeseen events happening on a daily basis.</p>
<p><strong>Working on the company is more valuable than working for the company as a founder</strong>. What I mean by that is spending time structuring the company and making adjustments to how people work in order to increase productivity is invaluable.   </p>
<p>You can't expect employees to do that on top of doing their regular work. It's up to the founders to set up a structure that make sense and to always be improving it.</p>
<p><strong>Remote work will improve your team's productivity compared to in person work (when possible) only if you take the time to make it work</strong>. Trying to reproduce an in-office way of working remotely will lead to an obvious decrease in productivity. Drastic changes needs to be made in order for this type of work to be useful and it requires a leap of faith.</p>
<p>We were still growing during that time as we were hiring more people to sustain our rapid pace. We also made a major pivot in how we were generating revenue by ditching our subscription-based model to a transaction fee model. This allowed our sales team to rapidly increase the amount of companies we enrolled in our application.</p>
<p>Our first version of the application started to show signs of not being optimally adapted given all the new information we'd collected from our customers. So we were working on revamping it with an improved design and user experience with a dedicated UI/UX team.</p>
<h2 id="heading-the-improved-version-of-the-application">The Improved Version of the Application</h2>
<p>We launched the revamped version of our app (this time without a hard deadline) and the reception was great. This is when I started to feel like we actually launched a real product and not a MVP to validate a need.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/platform.gif" alt="A screen with a 3D part moving in the GRAD4 Application" width="600" height="400" loading="lazy">
<em>You could now see the part directly on the platform (we've used <a target="_blank" href="https://xeogl.org/">xeogl</a> for that)!</em></p>
<p>The sales of our product increased dramatically as the user interface was great and the experience made sense to prospective users. We went on to do some more major refactoring and clearing up technical debt. </p>
<p>We knew that the added load on our platform meant that we needed to have something cleaner to work with. This was important as technical debt will always creep up and you can't just always build features.</p>
<p>We were slowly emerging from the bootstrapping phase of the company to more serious territory and it felt great. We made some more hires in the customer care and the marketing side. We improved month after month how the company operated. </p>
<p>Around that time, we decided to implement two systems that would improve our productivity:</p>
<p><strong>Objective and Key Result system:</strong> This really switched our whole mindset from working long hours to working on objective attainment. By having concrete goals that would improve how the company was doing, it allowed everyone to focus on what really mattered.   </p>
<p>It also allowed us to stop tracking when people were working or when they were taking vacations. As long as the objectives were worked on, it didn't really matter what the employees' workflows were (as long as they were not overworking).</p>
<p><strong>EOS System from Traction:</strong> This system was a very good foundational system to ensure that everyone stayed aligned. It really improved how our meetings were structured and laid the foundations for the vision of the company.   </p>
<p>I used to scoff at the thought of having a vision or core values. But after reading the book and implementing it, I cannot understand how we got as far as we got without one.   </p>
<p>This aligned everyone to a level that we didn't think possible and allowed us founders to make better decisions for the company.</p>
<p>It now felt that we were really running at a solid pace. Every month we had major improvements or good news in the company. The whole startup thing felt easier and was more enjoyable. </p>
<h3 id="heading-what-i-learned-from-my-second-product-launch">What I Learned From My Second Product Launch</h3>
<p>I learned another good set of lessons during the time of the launch:</p>
<p><strong>Your job as a founder is to "elevate and delegate".</strong> At a certain point, if you are still working on the minutiae of the work you are wasting resources. </p>
<p>It is usually way more cost effective to hire someone else that is more competent than you to do the operational work and to move on to another position that doesn't have staffing.   </p>
<p>By de-risking and laying the groundwork for a section of the company that is weak you are ensuring that it's worthwhile to hire someone and that this person has something to start with. This is priceless.</p>
<p><strong>No one can work 80 hours a week on different job types effectively.</strong> We realized this when we were looking at what the weakest points of the company were. It was always the spot where someone that had 3 different hats was working because there wasn't enough time to do quality work.   </p>
<p>If you are working on 3 different positions as a founder and you work 80 hours per week, it is the equivalent of working as a tired part time worker. The documentation will be poor, the process will be non-existent, and mistakes will start to show up.   </p>
<p>As soon as we saw someone work more than 40h a week it was a big red flag that we needed to distribute the load onto someone else.</p>
<p><strong>Part-time and volunteer workers are usually a waste of time.</strong> Once we were picking up more speed, we found ourselves constantly waiting for the part-time worker or the volunteer to finish their part of the work. This was holding us back so we made it a policy to not hire part time workers again.   </p>
<p>It's different for interns though, as they have a well contained work arrangement. For instance, we currently have 3 interns working on various machine learning projects as part of their PhD. This is perfect because the work that is given to them is well balanced and we know what to expect. </p>
<p>Around the time of the new platform release, we started our first accelerator programs.</p>
<h2 id="heading-the-next-ai-and-ecofuel-accelerators">The NEXT AI and EcoFuel Accelerators</h2>
<p>I didn't really know what an accelerator was at that time. However by being in two I quickly understood the difference between an accelerator and an incubator. </p>
<p>An accelerator's job is to give tools to an already up and running startup to accelerate their growth. On the other hand, an incubator is where startups usually begin.</p>
<p>One thing that is very useful in accelerators is that they provide startups they select with funding. By doing the NEXTAI and EcoFuel accelerators we were able to get $100,000 in total funding!</p>
<p>It was way more fast-paced than the incubator we'd been in. We had virtual classes with incredible entrepreneurs and got technical classes with researchers in machine learning such as Yoshua Bengio. </p>
<p>We also got to meet other amazing tech entrepreneurs living similar challenges in trying to get a startup to scale during a pandemic.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/nextai.jpeg" alt="The CEO and CTO of the Company GRAD4 at NEXT AI Demo Day" width="600" height="400" loading="lazy">
<em>Here we are keeping the 2m distance for a photo shoot.</em></p>
<p>It's at that time that we officially founded the more "research-y" side of the company that dealt with making AI models and working on the data we collected. We staffed that section of the company with PhD students and graduate master's students (and me!). </p>
<p>It's also at that time that we decided to raise our seed round of venture capital (VC) funding. We made this decision because we knew that we had something great, however we were in the type of business where we needed to scale fast to deliver the most value to our customers. </p>
<p>The more people use the platform, the more valuable it is for the people using it. Therefore, getting funding to crank up the sales and marketing is a must. We put our CEO on that full time as it is indeed a full-time job.</p>
<p>Around the time when NEXT AI was ending, we had one of our first major financial drawbacks that would forever change the way we saw failure in our company. </p>
<p>We thought that, just like at Centech, we were in a very good position to get the financing that comes at the very end of the program. However, we were in the finalists but not in the top 3 winner startup.</p>
<p>This was a major blow as we thought we were very solid during the whole program. </p>
<p>After gathering more information about why we weren't shortlisted, we realized that there was a major communication gap between what the organizers of the program thought we were doing and what we were doing. </p>
<p>They didn't realize how advanced our product was and were not aware of all the cool AI modules we were building to complement our offering.</p>
<h3 id="heading-what-i-learned-from-our-first-startup-accelerator">What I Learned From Our First Startup Accelerator</h3>
<p>This is where we realized a very, very important lesson:</p>
<p><strong>Other people's perception of your startup is as (if not more) important than what you are actually doing.</strong> We couldn't blame the program organizer for having the wrong perception about our company when they weren't even aware of most of what was happening with our company in the first place. </p>
<p>There was so much cool stuff happening everyday, but the number of things we publicly showed was thin in comparison.   </p>
<p>This was problematic and could seriously handicap ourselves in the future. This is when I made the decision to celebrate the wins of the company publicly.   </p>
<p>Every release of the product, I would publicly acknowledge my team's work on our social media. If we were passing major sales milestones, I would make a statement out of that. A major advance in the AI research of the company would be public within the week that it happened.  </p>
<p>I used to hate posting on social media as it felt like I was bragging, but it was one of the most important change we've made so far. By celebrating our wins publicly, we've increased by a lot the likelihood of good opportunities coming our way. This is now a vital part of the company that we leverage every day.</p>
<p>With our new understanding of how to best promote the company and improve our probability of success, we applied to two other bigger accelerators (Creative Destruction Lab and MaRS) and got accepted!</p>
<h2 id="heading-the-current-state-of-the-company">The Current State of the Company</h2>
<p>This last week of February was the best week the company has had, by far. User activity is way up and the amount of people involved in our project hasn't stopped growing. We are also in the final stretch of closing our financing round, which will allow us to accelerate our growth by a large margin. </p>
<p>However, it's not like it's all good and there is nothing to do now. One of the curses of starting to learn about a topic and making improvements in the way you work is realizing how much there is still to improve. </p>
<p>My company-improvement list on Trello never gets any shorter. Every time I finish a book, I have twenty new improvement ideas and every time I talk to a mentor, I have a dozen more. Even when I finish the implementation of one improvement, I have three more that spawn.</p>
<p>It's very comforting, though, to know that all of the work you put to improve yourself and your startup pays off. Also, realizing that you have created a company that can provide for other human beings is amazing. </p>
<p>I've made a lot of efforts to shed our old prototypical startup way of thinking. This means the following:</p>
<h3 id="heading-there-are-unlimited-vacations-for-all-employees">There Are Unlimited Vacations for All Employees</h3>
<p>This basically means that we don't track anyone's time off. The only time I'm talking to an employee regarding vacation is when I feel they don't take enough time off.</p>
<h3 id="heading-there-are-no-working-hours">There Are No Working Hours.</h3>
<p>If an employee wants to work early morning or late evening, I don't really care (because I do too). As long as the objectives are reasonably met, there is nothing worthwhile to track. </p>
<h3 id="heading-there-is-no-bragging-about-the-amount-of-work-someone-piles-up-allowed">There is No Bragging about the Amount of Work Someone Piles Up Allowed.</h3>
<p>It doesn't matter. Only objectives matter. If someone is working an unusual amount of hours, we flag that to the human relations department and we initiate a proposal to find more personnel.</p>
<h3 id="heading-we-invest-in-our-employees">We Invest in Our Employees</h3>
<p>We invest in them by buying books, courses, conference tickets, certifications or finding them mentors. Learning is a crucial part of the company's culture and it is heavily promoted. It's also very great for me because I can buy all the books I want on Amazon!</p>
<p>In short, I'm trying to build a company which I would have enjoyed working for. This is one of the guiding principles behind the choices I've made along the way and it really created something that I'm proud of.</p>
<h2 id="heading-my-advice-to-aspiring-saas-entrepreneurs">My Advice to Aspiring SaaS Entrepreneurs</h2>
<p>So that's how I ended up becoming the CTO of my company that has 20+ employees, all from doing random hackathons. It's been a wild ride and still is, but I would not trade this for any other job.</p>
<p>I want to conclude this section with a list of advice and tips for tech entrepreneurs (SaaS in particular) that I've learned along the way. I broke it down into subsections for convenience.</p>
<h2 id="heading-general-product-advice">General Product Advice</h2>
<h3 id="heading-your-product-is-way-less-important-than-you-think">Your Product is Way Less Important Than You Think</h3>
<p>The value the customer can get from your product is what matters. If you can deliver the same amount of value to your customer in a simpler way than having a full blown application, do it. </p>
<p>You will learn faster and you will be able to create more value for your customers in return. At some point though, the only way to keep increasing the value you can deliver is to have a good application. At that point you should have a very good idea about what is important to put in it.</p>
<h3 id="heading-validate-the-need-for-the-product-before-thinking-about-a-solution">Validate the Need for the Product Before Thinking About a Solution</h3>
<p>Spending time and effort on an application that your customers don't care about is the biggest waste of time you can have. </p>
<p>Validate with them every step of the way to see whether or not what you are doing is useful. Even at the expense of development time. </p>
<h3 id="heading-the-tech-stack-you-choose-is-less-important-than-you-think">The Tech Stack you Choose is Less Important Than you Think</h3>
<p>The most important concern is if you have enough knowledge to build something with the tech you choose, and if you can safely hire people to work with it. </p>
<p>Spending time finding the most optimal stack to work with is oftentimes pointless.</p>
<h3 id="heading-do-not-overcomplicate-your-application-at-first">Do not Overcomplicate Your Application at First</h3>
<p>Start with a good old monolith and gradually refactor it when needed. The monolith architecture will work like a charm for longer than you think! </p>
<h3 id="heading-put-the-minimum-amount-of-features-in-your-app-to-generate-the-maximum-amount-of-values-for-your-customers">Put the Minimum Amount of Features in Your App to Generate the Maximum Amount of Values for Your Customers</h3>
<p>The fewer features you have, the less maintenance, fewer bugs, and less technical debt you will accumulate. If a feature is not used by your users, kill it and scrub it from your code base.</p>
<h3 id="heading-talk-to-your-customers">Talk to Your Customers</h3>
<p>Spend as much time as possible with them and really learn from them. The knowledge you will gain will be a major competitive edge and will allow you to always deliver value to them!</p>
<h3 id="heading-at-some-point-cicd-and-a-good-suite-of-tests-is-a-lifesaver">At Some Point CI/CD and a Good Suite of Tests is a Lifesaver.</h3>
<p>Not having to fiddle around with deployment and not having to worry as much that you introduced a regression in your code is liberating. </p>
<p>It allows you to become more productive and have a better understanding of the whole code base when you have to read test errors.</p>
<h3 id="heading-monitoring-is-super-important-and-should-be-implemented-as-soon-as-possible">Monitoring is Super Important and Should be Implemented as Soon as Possible</h3>
<p>Being able to know what is being used, what is the state of the application, and if there are potential problems is a must. </p>
<p>Not having monitoring tools is like driving in a forest road at night with your sunglasses on. It's a bit weird and generally not a safe way to get wherever you want to go.</p>
<h3 id="heading-do-not-outsource-your-core-competency">DO NOT OUTSOURCE YOUR CORE COMPETENCY.</h3>
<p>This advice is in all caps because I'm yelling it. If the core of your business is making a web app, make sure that you have everything you need in-house to make a web app. </p>
<p>Relying on outsourcing firms that don't have direct access to your customers or your reality is a sure way to mess the whole thing up. It's therefore extra important that you define clearly what is your core competency in order to not outsource it.</p>
<h2 id="heading-artificial-intelligence-advice">Artificial Intelligence Advice</h2>
<h3 id="heading-ai-is-great-but-delivering-value-to-your-customers-is-better">AI is Great, but Delivering Value to Your Customers is Better</h3>
<p>If you don't need AI to deliver value to your customers, don't put AI in what you give them. It will slow you down big time. However, if you validated that you indeed need some sort of AI to provide value to your customers, make that a top priority for your company.</p>
<h3 id="heading-ensure-that-you-are-collecting-the-right-data-for-your-ai">Ensure That You are Collecting the Right Data for Your AI</h3>
<p>This is especially important if you are working with partnering organizations as they often have no idea what is good data for a given problem. You need to figure out if the data is great for the problem you are tackling before getting more of it.</p>
<h3 id="heading-start-with-a-linear-regression-and-work-your-way-to-that-deep-neural-network-with-thousands-of-layers">Start With a Linear Regression and Work Your Way to That Deep Neural Network with Thousands of Layers</h3>
<p>Even if you have tasks for which you have enough data to attempt larger models, start with the simple ones. It will allow for rapid feedback on your data and will help you secure some baseline performance that can be used as benchmarks for the larger models.</p>
<h3 id="heading-iteratively-improve-your-ai-system-and-dont-wait-until-everything-is-perfect-to-launch">Iteratively Improve your AI system and Don't Wait Until Everything is Perfect to Launch.</h3>
<p>It's fine to label an AI system as Beta and start experimenting at a larger scale with users. This applies to any product you build, but I feel like this is worth mentioning again in the AI context as it is often forgotten.</p>
<h2 id="heading-company-advice">Company Advice</h2>
<h3 id="heading-join-an-incubator">Join an Incubator</h3>
<p>The amount of coaching you will get – even from the judges before being accepted – is very important. They've seen thousands of startup ideas and they will be able to give you some very valuable advice. </p>
<p>Incubators are oftentimes paid by the government for every startup that they get in their program, which means it's a win-win situation for everyone.</p>
<h3 id="heading-join-an-accelerator-after-joining-an-incubator">Join an Accelerator After Joining an Incubator</h3>
<p>This gives you additional resources and allows you to get very good coaching on very specialized parts of your business (like machine learning or financing). It is also a very good way to network!</p>
<h3 id="heading-setup-your-core-values-and-your-vision-for-your-company">Setup Your Core Values and Your Vision for Your Company</h3>
<p>Having a vision is like a superpower. As soon as someone throws in that blockchain idea for the nth time you can throw it right back by saying that it doesn't fit the vision. </p>
<p>If someone has a rotten attitude you can easily show your core values publicly and correct course. The hiring and firing is much easier when all of this is setup and understood by the whole company.</p>
<h3 id="heading-document-your-companys-processes-as-soon-as-possible">Document Your Company's Processes as Soon as Possible</h3>
<p>You will be surprised by how much processes you have even at an early stage. You will also be surprised by how little everyone is aware of it (including yourself!). </p>
<p>By documenting these processes you will be in very good shape to start improving and refining them to increase everyone productivity.</p>
<h3 id="heading-you-most-likely-dont-need-an-office">You Most Likely Don't Need an Office</h3>
<p>If you are building a SaaS product, your stuff will most likely live on the cloud and your offerings will be purely software-based. Learn about how to setup a remote work environment efficiently and save on the office cost early on!</p>
<h3 id="heading-meetings-are-less-important-than-you-think">Meetings are Less Important Than You Think</h3>
<p>Face to face synchronous meetings are not that useful. I've found that most of the time, just having a Google document that says what problem you want to fix in the meeting and distributing it to people you want to meet with is 99% of the job. </p>
<p>You will get a few comments on what to change, 3-4 asynchronous back-and-forth discussions, and <em>voilà</em>! Another problem fixed.</p>
<h3 id="heading-meetings-are-sometimes-necessary">Meetings are Sometimes Necessary</h3>
<p>No meetings whatsoever are not possible, though (I'm a hardcore asynchronous guy and even I need to admit that). If after sending that document you have 30 comments and you get to a stalemate kind of situation, it's usually time to ring the meeting bell and address the point of contention synchronously. </p>
<p>Most of the time, it's a matter of miscommunication. Having this synchronous back and forth allows the issue(s) to be resolved more efficiently.</p>
<h3 id="heading-make-most-stuff-in-your-company-public-to-all-employees">Make Most Stuff in Your Company Public to All Employees</h3>
<p>If something that is work related doesn't have to be private to a specific set of people, it should be public. By having the opportunity to jump in someone else's operational discussion, you can provide much needed feedback that will save lots of time. </p>
<p>Also, by having this whole bank of general knowledge available to everyone, you ensure that people are all aware about what is going on in the other departments.</p>
<h3 id="heading-make-sure-that-the-private-stuff-stays-private">Make Sure that the Private Stuff Stays Private</h3>
<p>This goes both for security-related sensitive material and for private employee matters. If an employee tells you something personal, do not break that trust.</p>
<h3 id="heading-continuously-improve-your-companys-structure">Continuously Improve Your Company's Structure</h3>
<p>A company is an ever-growing organism. The structure that is best for today won't necessarily be the best in a month's time. It needs to be continuously tweaked and improved in order to maximize the work that the people working on it can output.</p>
<h3 id="heading-beware-of-working-with-large-entities-like-cities-multinationals-or-governments">Beware of Working with Large Entities Like Cities, Multinationals, or Governments</h3>
<p>These are slow and could end up suffocating your company. They will book meetings upon meetings to move the project forward by inches. Even if they pay you a lot, the cycle of learning you can do with them is so long that you will not have improved by much. </p>
<p>Working with smaller entities allows for more direct feedback. And if you can gather enough of them you can have a much more robust business. Resting on a thousand small pillars is more stable than resting on two huge ones.</p>
<h2 id="heading-employee-advice">Employee Advice:</h2>
<h3 id="heading-dont-hire-jerks-just-because-of-their-technical-skills">Don't Hire Jerks Just Because of their Technical Skills</h3>
<p>It's a big no-no. If you think about it this way, a person will stifle the productivity of everyone by souring the cultural soup. </p>
<p>If people are dreading going to work because of that one person, you will end up with more problems than what this person can fix with their code.</p>
<h3 id="heading-cultural-fit-is-not-an-option">Cultural Fit is not an Option</h3>
<p>Clearly check if the person has the technical abilities that you are looking for. However, check just as rigorously if the person as the right personality for your company. </p>
<p>Having someone clash with the company or not upholding one of your core values will do more harm than good.</p>
<h3 id="heading-team-fit-is-not-an-option">Team Fit is not an Option</h3>
<p>Make the teams an integral part of the hiring process. You will be surprised by how picky the team is and how rigorous they are in the hiring process. </p>
<p>It happened quite often that the person we were interviewing passed the technical interview and the cultural one, but didn't pass the team interview. </p>
<p>The rationale for rejecting a participant from the team was always valid and we couldn't believe we didn't catch it earlier in the process.</p>
<h3 id="heading-neurodiversity-increases-productivity">Neurodiversity Increases Productivity</h3>
<p>You have to resist the urge to hire people that think exactly like you if you want to have a truly productive company. </p>
<p>By having people from different backgrounds, you will increase the chance of finding creative ways out of problems and you will reduce your blind spots by a lot. </p>
<h3 id="heading-dont-try-to-fit-a-good-profile-in-the-company-find-a-good-profile-for-a-need">Don't Try to Fit a Good Profile in the Company, Find a Good Profile for a Need</h3>
<p>Always start by assessing what is your most urgent need and then find the best person to fill that position. By starting the other way, you will bloat your company with people that don't truly create value.</p>
<h3 id="heading-you-will-have-to-fire-people-and-its-for-the-best">You Will Have to Fire People and it's for the Best</h3>
<p>I've had to let a few people in the company go, and every time it was better for all parties. However, do it with respect. If you did all the work to bring someone on your ship, you should do all the work to bring someone out of it. </p>
<p>This means ensuring that this person understands why it's not a fit, that you gave enough warning signs, and making sure that this person has the support they need once they are moving away from the company.</p>
<h3 id="heading-make-sure-that-your-employees-are-genuinely-happy">Make Sure That Your Employees are Genuinely Happy</h3>
<p>If someone doesn't feel good, talk to them and help them out. Wish them a happy birthday. Say thank you when they do something great. Coach them when they want to grow. Debug them when they make a mistake. </p>
<p>Having happy employees is one of your most valuable currencies as a startup and what makes working in one such a great experience.</p>
<h2 id="heading-personal-advice">Personal Advice:</h2>
<h3 id="heading-make-sure-that-the-founders-or-executives-dont-kill-each-other-and-the-company">Make Sure that the Founders or Executives don't Kill Each Other – and the Company</h3>
<p>What do you get when you have a toxic startup culture of working insane work hours coupled with financial stress and customer problems? A good recipe for company failure. </p>
<p>Make sure to always reserve at least one hour per week where you don't talk about the company, but just check on each other and try to mend personal issues in the open.</p>
<h3 id="heading-repeat-after-me-its-a-marathon-not-a-sprint">Repeat After me: It's 👏 a 👏 Marathon 👏 not 👏 a 👏 Sprint</h3>
<p>Insane working conditions cannot last. It's not <strong>if</strong> you will burn out, it's <strong>when</strong>. </p>
<p>If you cannot envision keeping the pace of work you currently have for the rest of your life, change it before it's too late. </p>
<p>I've seen too many startups crumble suddenly because of people thinking they can sustain having no time off forever. </p>
<h3 id="heading-leave-room-for-your-personal-growth">Leave Room for Your Personal Growth</h3>
<p>Learn about that one topic that is completely left field for your startup and enjoy it. Go ahead and network with people for your own benefit, it's okay. The more you grow as a person the higher the potential growth for your company.</p>
<h3 id="heading-leave-room-to-just-chill-out">Leave Room to Just Chill Out</h3>
<p>Even if you enjoy working on your startup don't neglect the other aspects of your life. </p>
<p>It's fine to have other friends outside of work and it's fine to just unplug for a while. If you can't do that you have serious issue to fix in your company.</p>
<h3 id="heading-have-fun">Have Fun</h3>
<p>It's genuinely fun to build a company from the ground up. Enjoy the time working on that nasty bug that put the whole EC2 instance down. Enjoy your time calling this one customer that has nothing good to say about what you do. </p>
<p>Enjoy all of the little problems that will pave the way of your company. Because a startup can only do two thing: <strong>Die</strong>, in which case you will look back at those days with fond memory. <strong>Grow</strong>, in which case it will start to become something bigger than you and gain a personality of its own!</p>
<h2 id="heading-useful-saas-entrepreneurship-reading">Useful (SaaS) Entrepreneurship Reading</h2>
<h3 id="heading-the-lean-startup-how-todays-entrepreneurs-use-continuous-innovation-to-create-radically-successful-businesses">The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses:</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-48.png" alt="The Lean Startup by Eric Ries" width="600" height="400" loading="lazy"></p>
<p>This book is a very simple read and taught me that cycling through hypothesis/learning is way more important than doing the most perfect thing right off the bat. </p>
<p>As a technical person that <strong>loves</strong> technology, I couldn’t understand why the tech was not at the forefront of every business discussion. </p>
<p>This book, with the clear example of bold tests that were done with real users, showed me exactly why a focus on building a product before understanding what the users will think of the product is a bad idea.</p>
<h3 id="heading-traction-get-a-grip-on-your-business">Traction: Get a Grip on Your Business</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-37.png" alt="Traction by Gino Wickman" width="600" height="400" loading="lazy"></p>
<p>This book helped me make sense of how to structure our company once it has scaled past the founders. I’m at something like the sixth read cover to cover. </p>
<p>There is a lot of useful information and practical guidelines to use in order to really get a solid structure that make sense for the next growth phase. </p>
<p>It also helped create a sense of calm when thinking about the future because it increases your awareness of what will come in the future.</p>
<h3 id="heading-measure-what-matters-how-google-bono-and-the-gates-foundation-rock-the-world-with-okrs">Measure What Matters: How Google, Bono, and the Gates Foundation Rock the World with OKRs</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-38.png" alt="Measure What Matter by John Doerr" width="600" height="400" loading="lazy"></p>
<p>I read this book before reading Traction, however there are a lot of similarities between the OKR goal structure and the Rock goal structure from Traction. The basic idea is that you have limited time to work on goals/projects, so work on the most impactful ones and ditch the rest. </p>
<p>The idea of simply not thinking about the low priority objectives really creates a sense of space in your head. Knowing exactly what to focus on and having the liberty to think about how to get there also helped create an ultra-collaborative structure.  </p>
<p>I use the OKR system in my personal life too. It really helps me reassure myself that I’m on the right path and allow me to say no to opportunities that pop up throughout year that are not aligned with my objectives.</p>
<h3 id="heading-peopleware-productive-projects-and-teams">Peopleware: Productive Projects and Teams</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-39.png" alt="Peopleware by Tom DeMarco &amp; Timothy Lister" width="600" height="400" loading="lazy"></p>
<p>This was a very enjoyable read. It talks about a facet of software engineering that is often not taken into consideration, which is the people factor. I absolutely love the straight to the point organic writing style that the authors use. </p>
<p>Lots of examples are given and there is a significant supplementation of statistics along their argumentation that really help gauge what non conventional changes to implement.</p>
<h3 id="heading-drive-the-surprising-truth-about-what-motivates-us">DRIVE: The surprising truth about what motivates us</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-40.png" alt="Drive by Daniel H. Pink" width="600" height="400" loading="lazy"></p>
<p>Drive is very closely related to Peopleware in the subject it addresses. Both of them help in figuring out how to create a work environment that is purposeful and that drive people to give their fullest. </p>
<p>I’ve learned a great deal about how much “carrot and stick” kind of reward/punishment comes into play in the traditional workplace and how it's not the optimal way to increase motivation. </p>
<p>It also allowed me to understand how I can push myself to accomplish my goals in a purposeful manner without having to bribe and trick myself.</p>
<h3 id="heading-effective-devops-building-a-culture-of-collaboration-affinity-and-tooling-at-scale">Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-41.png" alt="Effective DevOps by Jennifer Davis &amp; Ryn Daniels" width="600" height="400" loading="lazy"></p>
<p>This book is an extensive introduction to DevOps culture and is a good handbook to keep to consult when you're unsure about a certain aspect or situation. </p>
<p>It was the book that introduced me in more depth to that way of thinking and got me to really understand it more than on the surface level. It had some very neat examples of how all of the DevOps concepts tie up in the real world.  </p>
<p>However, it’s quite a lengthy book. It is meant to be consulted in a non-linear fashion. I recommend keeping a copy at hand if you manage a technological team to get some ideas about what to do in a given situation.</p>
<h3 id="heading-the-phoenix-project-a-novel-about-it-devops-and-helping-your-business-win">The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-42.png" alt="The Phoenix Project by Gene Kim, Kevin Behr and George Spafford" width="600" height="400" loading="lazy"></p>
<p>I read the Phoenix Project a while after having read Effective DevOps. Effective DevOps gave me a deeper understanding of the movement, but it’s the Phoenix Project that really made everything “click”. </p>
<p>It’s a novel, but explained in such an organic way that it could have been a biography. I read the whole thing in 2 days over the summer as I was very engaged with the protagonist's struggle with inefficient process and “impossible” goals to meet. </p>
<p>After reading it I felt way more confident that the changes I was making to my organization were the right ones.  </p>
<p>If I had one book to give to a non-tech manager to make them understand how to make a tech department fail and how to make it thrive, it would be this one.</p>
<h3 id="heading-designing-data-intensive-applications">Designing Data-Intensive Applications</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-43.png" alt="Designing Data-Intensive Applications by Martin Kleppmann" width="600" height="400" loading="lazy"></p>
<p>This book was so densely packed with information gained from working with very difficult problems that you probably need to re-read it from time to time while you also work on difficult problems. </p>
<p>I’ve learned a lot, both in the inner design of the behemoth of the internet and how much these behemoths were built by facing a constant stream of problems. </p>
<p>The sheer amount of tradeoffs, learning, and ambiguity that takes place in systems at huge scale was staggering. It helped me prepare and better react when I hit various problems in my tiny (in comparison) systems I’d been building.  </p>
<p>Likewise, this is the kind of book that should be read periodically while building something that is in the process of scaling.</p>
<h3 id="heading-forge-your-future-with-open-source-build-your-skills-build-your-network-build-the-future-of-technology">Forge Your Future with Open Source: Build Your Skills. Build Your Network. Build the Future of Technology</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-44.png" alt="Forge Your Future with Open Source by VM Brasseur" width="600" height="400" loading="lazy"></p>
<p>This book is one that really helped me better structure our remote company so we could hit our business objectives and help our employees feel productive and happy. </p>
<p>I drew a lot of inspiration from how open source projects were structured and made quite a lot of changes in that sense. It also helped me understand and appreciate a bit more about how open source projects work.</p>
<h3 id="heading-principles-by-ray-dalio">Principles by Ray Dalio</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-46.png" alt="Principles by Ray Dalio" width="600" height="400" loading="lazy"></p>
<p>This is an incredible book with an insane amount of tips from a successful entrepreneur in the financial sector. </p>
<p>The amount of useful content in there is staggering and will require multiple reads in order to extract it all. If you are looking for new ideas to make your organization more efficient, better at problem solving, or stimulate growth, it's a must!</p>
<h3 id="heading-delivering-happiness-a-path-to-profits-passion-and-purpose">Delivering Happiness: A Path to Profits, Passion, and Purpose</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/image-47.png" alt="Deliverin Happiness by Tony Hsieh" width="600" height="400" loading="lazy"></p>
<p>A very beautiful book by the late CEO of Zappos. It's a humble book filled with good learning and takeaways by Tony Hsieh in his entrepreneurial journey. </p>
<p>The most important part here is the focus on making sure that the culture was right, as he had two main company successes in his career: One with LinkExchange that had no focus on the culture and another one with Zappos which was heavily invested in it. </p>
<p>The latter is arguably the stronger business.</p>
<h2 id="heading-reaching-out">Reaching Out</h2>
<p>If you are interested in learning more about my company, you can check our <a target="_blank" href="https://grad4.com/en/">website</a>. If you have questions feel free to add me on <a target="_blank" href="https://www.linkedin.com/in/yacine-mahdid-809425163/">LinkedIn</a> or <a target="_blank" href="https://twitter.com/CodeThisCodeTh1">Twitter</a> to chat :) </p>
<p>I hope this was helpful!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I Accidentally Built an API Business ]]>
                </title>
                <description>
                    <![CDATA[ By Wenbin Fang In this article, I’ll share my journey of building an API business, the technology behind it, and how to build your own API business in the future. First, a little bit about the business I've built: Listen Notes is a podcast search eng... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-i-accidentally-built-an-api-business/</link>
                <guid isPermaLink="false">66d461734bc8f441cb6df835</guid>
                
                    <category>
                        <![CDATA[ api ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ SaaS ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 09 Dec 2020 22:02:15 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/12/3c36ff70b8ab4d25aa85bfa567007087.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Wenbin Fang</p>
<p>In this article, I’ll share my journey of building an API business, the technology behind it, and how to build your own API business in the future.</p>
<p>First, a little bit about the business I've built: <a target="_blank" href="https://www.listennotes.com/">Listen Notes</a> is a podcast search engine that allows people to search <a target="_blank" href="https://www.listennotes.com/podcast-stats/">nearly two million podcasts and more than 89 million episodes</a> by people or topics. We also provide a <a target="_blank" href="https://www.listennotes.com/api/">podcast API</a> for developers to use, which is called Listen API. It has become a core part of our business.</p>
<h2 id="heading-an-accidental-api-business"><strong>An accidental API business</strong></h2>
<p>I left my previous failed startup in September 2017. After a few days of tinkering, I picked up one of my fledgling side projects to polish the UI a bit. </p>
<p>That side project was <a target="_blank" href="https://www.listennotes.com/">Listen Notes</a>, a podcast search engine website, which was just a single page React JS app running on three $10/month DigitalOcean droplets.</p>
<p>Little did I know a few years ago that my small, neglected side project would turn into the helpful business it has blossomed into.</p>
<p><img src="https://production.listennotes.com/web/image/37454d6afb7b458ca58ae4e5873ddbbd.png" alt="Image" width="800" height="663" loading="lazy">
<em>An early version of Listen Notes</em></p>
<p>I continued to work on Listen Notes full-time and incorporated Listen Notes as a Delaware C-Corp in October 2017. One of my goals was to experience as many facets of business as possible, rather than just writing code behind the scenes.</p>
<p>My initial plan was as follows: (Don’t laugh at me!)</p>
<ul>
<li>Build a podcast search engine website and make some money from advertising, just like Google. Simple!</li>
<li>If this Listen Notes thing doesn’t work in two or three months, then I’ll run out of cash, and I’ll go into credit card debt to keep going for one more month or so. If it still doesn’t work, then I’ll have to find a full-time job. Although Jeff Bezos’ parents invested $300,000 in early Amazon and Mark Zuckerberg’s parents loaned $100,000 to early Facebook, not every family is able to casually toss six figures of cash at web projects.</li>
</ul>
<p>Then something happened.</p>
<p>On November 20, 2017, I got an email from the developer of a new podcast app, who asked if Listen Notes provided an API. He wanted to be able to search episodes in his app, but he didn’t want to build the entire backend. </p>
<p>I asked a few questions (for example, how would the endpoints look, what data fields did he need, how much was he willing to pay…). I got his answers. Everything was in an email thread within a couple days.</p>
<p>On November 30, 2017, I quickly implemented three endpoints (<em>GET /search, GET /podcasts/{id}, and GET /episodes/{id}</em>), which were basically three <a target="_blank" href="https://docs.djangoproject.com/en/3.1/topics/http/views/">Django views</a>. </p>
<p>I Googled “API gateway” or something like that and found a service called <a target="_blank" href="https://konghq.com/blog/mashape-has-a-new-homepage/">Mashape</a>, which was an API marketplace that handled payment, user management, and API documentation. </p>
<p>So I put my three endpoints on Mashape and created two plans there: FREE and PRO. I emailed the developer back to tell him the API was ready to use.</p>
<p><img src="https://production.listennotes.com/web/image/125d913b8ad14bbd99fbc7c1cfe49e04.png" alt="Image" width="1600" height="1194" loading="lazy">
<em>The email thread that prompted me to build Listen API</em></p>
<p>Then nothing happened. The podcast app developer didn’t use our API and instead phased out their project.</p>
<p>Eventually, I moved on to primarily focus on the development of listennotes.com. The API was basically in self-driving mode on the open web. Anyone who happened to discover our API could sign up, without talking to any human beings.</p>
<p>On January 14, 2018, I got my first paying user. A few more paying users arrived that same year.</p>
<p><img src="https://production.listennotes.com/web/image/1cf8ad68f0c345318c9c64b3f370764b.png" alt="Image" width="1558" height="1244" loading="lazy">
<em>The email notification I received for my first paying user</em></p>
<p>Wait, what is RapidAPI? Well, Mashape was acquired by a startup named RapidAPI. They didn’t rebrand Mashape to RapidAPI completely until mid-2018. Startups typically don’t do things in a clean and methodical way, which is totally understandable.</p>
<p>Then something happened.</p>
<p>There was an outage on the RapidAPI end on November 29, 2018. </p>
<p><img src="https://production.listennotes.com/web/image/4d1a713f41dd465b9e57fa4e34be4208.png" alt="Image" width="1600" height="517" loading="lazy">
<em>The email I sent to people in RapidAPI when the outage happened</em></p>
<p>RapidAPI had performed a big backend upgrade around that time. As an engineer, I totally understand that outages happen, especially when making huge changes in the backend. But I felt helpless because their customer support didn’t reply to my email. Phone call didn't work, as expected.</p>
<p>Usually their customer support was very responsive. Perhaps it was the holiday season and people were on vacation. </p>
<p>So I used hunter.io to find work emails of individual RapidAPI employees, the CEO, as well as the CTO. The issue was finally resolved, many hours later. In other words, our API was completely unusable during those down hours. I felt very sorry for our paying users.</p>
<p>Then around mid-February 2019, RapidAPI had billing problems and failed to pay us a few thousand bucks. Our paying users paid RapidAPI first. RapidAPI took a 20% cut. Then they paid the remaining 80% (minus PayPal fees) to us. </p>
<p>After several back-and-forth emails and phone calls, we finally got our payment. It’s understandable. Again, startups make mistakes.</p>
<p>In late February 2019, I decided to build our own RapidAPI replacement, for a few reasons:</p>
<ul>
<li>Our API revenue became nontrivial. The 20% cut from RapidAPI was a bit too much for us.</li>
<li>We wanted API requests to hit our own servers directly, thus lowering latency for our users.</li>
<li>I didn’t want to feel helpless when RapidAPI had outages. Overall they did a good job running the service. But I wanted to control my own destiny.</li>
<li>I wanted to contact my API users directly. Using RapidAPI, API providers like me didn’t have access to our users’ email addresses. It’s understandable. It’s like the “Uber for X” companies that don’t want workers and customers to bypass them and strike deals under the table. Marketplaces don’t want users to skip the middleman’s commission fees.</li>
</ul>
<p>In addition, I vowed to do two things really well for our new API system:</p>
<ul>
<li>We must provide great customer service to our paying users.</li>
<li>We will give customers a very stable &amp; reliable backend service.</li>
</ul>
<p>After 30 days of hard work, <a target="_blank" href="https://www.listennotes.com/blog/listen-api-v2-simple-pricing-same-endpoints-39/">we launched Listen API v2</a> on March 27, 2019. The legacy API hosted on RapidAPI became Listen API v1, a version we won’t add new features to but don’t want to shut down because some apps are still using it as of December 2020!</p>
<p>We continue to improve our new Listen API v2 by adding new endpoints, new data fields, improving operational efficiency, as well as spiffing up the user dashboard and our internal tools.</p>
<p>Things are picking up speed gradually. I’ve been happy since then.</p>
<p>So, that’s the journey of Listen API so far.</p>
<p><em>Note: Although we decided to move on from RapidAPI, I still think it’s a great service. Startups all make mistakes in the early stage. They fix things and continue to improve their service, which is great!</em></p>
<h2 id="heading-the-technology-behind-listen-api"><strong>The technology behind Listen API</strong></h2>
<p>Developers can use our API to search podcasts and fetch detailed podcast-episode metadata. To make this whole thing work, we need to make sure a few core components are in place.</p>
<p><img src="https://production.listennotes.com/academy/image/3c36ff70b8ab4d25aa85bfa567007087.png" alt="Image" width="1285" height="644" loading="lazy">
<em>Listen API's main components and the technologies used</em></p>
<h3 id="heading-datastore-and-search-engine"><strong>Datastore and search engine</strong></h3>
<p>This is a shared component with our website. Therefore, I didn’t need to change anything in the datastore and search engine when building our API infrastructure.</p>
<p>We use Postgres as our main data store (for example, for podcast metadata, user accounts, and so on), and Elasticsearch as the search engine.</p>
<p>I wrote an old blog post with the <a target="_blank" href="https://www.listennotes.com/blog/the-boring-technology-behind-a-one-person-23/">details of the entire tech stack</a>.</p>
<h3 id="heading-internal-tools-and-processes"><strong>Internal tools and processes</strong></h3>
<p>If you’ve worked at any web companies, you probably know what I’m referring to here.</p>
<p>It’s rare for an Internet business to be 100% automatic. A company always needs to build tons of internal tools and set up manual processes to keep the service functional. That’s why companies like <a target="_blank" href="https://www.bloomberg.com/news/articles/2020-10-20/retool-nears-1-billion-valuation-with-funding-from-sequoia">Retool have such a high valuation</a> nowadays.</p>
<p>Companies are investing big money in internal tools that are invisible to end users:</p>
<p><img src="https://production.listennotes.com/web/image/e448df5503934491b251a2a85b815686.png" alt="Image" width="1418" height="724" loading="lazy">
<em>Percentage of team's time spent on internal tools. Credits: <a target="_blank" href="https://retool.com/blog/state-of-internal-tools-2020/">Retool</a></em></p>
<p>To start our API business, we needed to build (at least) two types of internal tools:</p>
<ul>
<li><strong>For data operations</strong>: We needed the ability to keep the podcast metadata up-to-date, fix corrupted metadata, plus review and approve any changes made by users.<br>Additionally, we required a framework that handled new, rare edge cases of corrupted podcast data along the way. To some degree, building a software product means handling tons of edge cases for a very long period of time (like, years), rather than launching new features every day.</li>
<li><strong>For user operations</strong>: We required the ability to suspend a bad user’s account, as well as immediately look up all information related to a specific user who contacted us for a specific issue.<br>Plus, we had to be able to quickly evaluate if “it’s our fault” (server-side errors) or “it’s their fault” (client-side errors) when users complained.</li>
</ul>
<p>Internal tools are used by employees inside the company. Some of those tools are fully automated, such as cron jobs that perform scheduled tasks. But many tools should be used manually by human employees, for example when inputting a user’s ID number and clicking a button.</p>
<p>Most of our internal tools have ugly web UIs, with default <a target="_blank" href="https://getbootstrap.com/">Bootstrap</a> styling :) </p>
<p><img src="https://production.listennotes.com/web/image/f5c69dcc39a041bdbb230bcc25b3a36c.png" alt="Image" width="1044" height="700" loading="lazy">
<em>A portion of our internal tool’s UI that allows us to suspend an API user’s account.</em></p>
<p>Fortunately, our API shares many internal tools with the website. So we didn’t need to build too many new things here.</p>
<h3 id="heading-the-analytics-and-billing-system"><strong>The analytics and billing system</strong></h3>
<p>The pricing model of an API is typically usage-based. Check out some real world examples:</p>
<ul>
<li><a target="_blank" href="https://www.twilio.com/pricing">https://www.twilio.com/pricing</a></li>
<li><a target="_blank" href="https://sendgrid.com/pricing/">https://sendgrid.com/pricing/</a></li>
<li><a target="_blank" href="https://cloud.google.com/maps-platform/pricing/">https://cloud.google.com/maps-platform/pricing/</a></li>
<li><a target="_blank" href="https://www.microsoft.com/en-us/bing/apis/pricing">https://www.microsoft.com/en-us/bing/apis/pricing</a></li>
</ul>
<p>It’s a must to track how many requests a user uses in real-time. We use Redis to keep track of such stats and periodically dump into Postgres for persistent storage.</p>
<p>What happens if our Redis has an outage? We might temporarily lose some tracking stats. In this case, we have an internal tool to sync stats from raw Nginx logs.</p>
<p>We have to change billing plans without affecting existing users. For example, if we raise prices, existing users should still enjoy the benefit of the old plans. If it’s not done right, it’s easy to have inconsistent states across the board, and angry users getting charged the wrong billing plan!</p>
<p>Payment failures, a very common occurrence, must be handled gracefully. We can’t just suspend users right away. We need to be able to notify ourselves that “this user failed to pay” and notify the user that “you failed to pay.” </p>
<p>After a few retries, we suspend users manually — well, we could’ve automated this last step. But we don’t suspend users often nowadays, so it’s okay to do so manually. There’s no need to make everything perfect (at least for now).</p>
<p>We have a dashboard (God’s view) to see how many requests each individual user uses in the current billing cycle. And we are able to review raw logs for each user from a web UI, without manually pulling log files from S3.</p>
<p>Stripe and PayPal (via Braintree) are our payment processors. Most of our international users use PayPal.</p>
<p>Finally, putting all of these factors together, we can calculate the actual amount of money that a user should pay us in real-time, based on their usage. We run async tasks via <a target="_blank" href="https://docs.celeryproject.org/en/stable/getting-started/introduction.html">Celery</a> to charge due bills.</p>
<p>What happens if a user unsubscribes in the middle of a billing cycle? We charge them prorated rates, based on time and usage. Users don’t need to pay a full month’s fee in those instances.</p>
<h3 id="heading-api-servers"><strong>API Servers</strong></h3>
<p>We run Django apps to serve API requests. Each endpoint is a simple Django view. A Django middleware verifies if a request is legit, then generates a log or rejects the request right away.</p>
<p>We cache response data per API key + unique URL in Redis. In general, <a target="_blank" href="https://www.listennotesstatus.com/">our API performance is pretty good</a>.</p>
<p>We use Nginx as a load balancer and provision multiple API servers. It’s straightforward to do rolling deployment here, with a bunch of sanity checks to ensure the API is functioning. </p>
<p>Generally speaking, the easy and robust deployment process increases my confidence to make incremental code changes often and to deploy frequently.</p>
<p>An API endpoint is RESTful and returns a JSON response, pretty standard nowadays.</p>
<h3 id="heading-user-dashboard-and-api-docs"><strong>User Dashboard and API Docs</strong></h3>
<p>Each API user can access a <a target="_blank" href="https://www.listennotes.com/api/dashboard/">dashboard</a> on our website to learn the amount of requests they’ve used in the current billing cycle and view recent raw logs. They can also update payment methods, create or reset new API keys, set up webhooks, and add coworkers to the same API account.</p>
<p><img src="https://production.listennotes.com/web/image/77749e815d7741a4a66980282870e25f.png" alt="Image" width="1600" height="1266" loading="lazy">
<em>Listen API's user dashboard</em></p>
<p><a target="_blank" href="https://www.listennotes.com/api/docs/">API Docs</a> is probably the most important UI for an API business. Therefore, many API companies employ a whole team of full-time engineers to build and maintain “merely” the API Docs page(s).</p>
<p>An API Docs page is not simply a full page of English words. It must show code snippets for different programming languages. </p>
<p>Users have to be able to run your code example directly from the page. You are required to design a repeatable process (no matter if it's automatic or manual) to keep the documentation in sync with your code. There are plenty of nuances.</p>
<p>We spent a lot of time and energy building and iterating multiple versions of <a target="_blank" href="https://www.listennotes.com/api/docs/">our API Docs page</a>. Following is the end result:</p>
<p><img src="https://production.listennotes.com/web/image/0170ea52dec748038632db1bd3444812.png" alt="Image" width="1600" height="1145" loading="lazy">
<em><a target="_blank" href="https://www.listennotes.com/api/docs/">Listen API Docs Page</a></em></p>
<p>Initially, we tried a few open source solutions for the API documentation. It’s quite time-consuming to understand an open source project well enough to customize it. Ultimately, we decided that it would be faster to build the page from scratch rather than customizing an open source solution built by others.</p>
<p>Our API Docs page is basically a React JS single page app.</p>
<p>We codify all endpoints, response data schema, and example response in an <a target="_blank" href="https://listen-api.listennotes.com/api/v2/openapi.yaml">OpenAPI spec</a>. The React JS app of the API Docs page reads from our OpenAPI spec directly.</p>
<p>The side effect of using OpenAPI is that we can easily integrate with tools like <a target="_blank" href="https://www.postman.com/">Postman</a>, because <a target="_blank" href="https://en.wikipedia.org/wiki/OpenAPI_Specification">OpenAPI</a> is a (relatively) widely adopted standard for API documentation nowadays.</p>
<h2 id="heading-why-listen-api-works"><strong>Why Listen API works</strong></h2>
<p>Listen API has been a nice business for me so far.</p>
<p>But don’t expect me to share revenue numbers publicly :)</p>
<p>Some companies are doing this <a target="_blank" href="https://www.google.com/search?q=open+startup">open startup</a> thing, sharing every single business metric to the public, which is great.</p>
<p>But we shouldn’t blame the majority of companies (including my small company Listen Notes, Inc.) who don’t want to share business metrics publicly.</p>
<p>Not everyone is comfortable being naked in public, literally or figuratively.</p>
<p>Similarly, there’s lots of business advice (or cliches) that you don’t have to follow.</p>
<ul>
<li>You don’t have to find a cofounder - having a horrible cofounder is way worse than not having one.</li>
<li>You don't have to reveal your revenue to public or do any "open startup" thing. No pressure. Don't feel guilty if you are not doing what other cool kids are doing. You run your own company. You make your own decisions.</li>
<li>You don’t have to do XYZ that a Twitter VC philosopher urges you to do in a fortune-cookie-like tweet.</li>
<li>You don't have to be 100% bootstrap nor 100% VC-backed. Many things are not completely one way or the other. Usually, there's middle ground.</li>
<li>...and the list goes on.</li>
</ul>
<p>The bottom line is, not one is absolutely wrong or absolutely correct. Each individual's vision/knowledge is limited. Each person's preferences might be very different.</p>
<p>An API business may be too obscure to most people in the world, but I like my API business very much. People from big companies (like Apple, Amazon, or Microsoft) may examine my business and deem it “cute”. But I would consider it a success for me personally. </p>
<p>And success is relative. The key is to bring happiness to customers (by saving them time and money and helping them solve problems), myself (a professional achievement), and my family (by keeping the fridge full).</p>
<p>So why does the Listen API work?</p>
<h3 id="heading-demand-and-mvp"><strong>Demand and MVP</strong></h3>
<p>I didn’t build a solution to find problems. It was the problem (a podcast app that wanted to add search functionality) that found us—and we built a very simple solution at first.</p>
<p>We didn’t spend months launching the API. We spent a couple of hours. It costs at least $100 per hour to hire a not-so-bad engineer in San Francisco, so the cost of launching this API MVP was approximately $200. Even if it were $2,000, I'd still think it was worthwhile.</p>
<p>Two reasons why we were able to launch an MVP quickly:</p>
<ul>
<li>The heavy lifting part of building a podcast database, search engine, and data operations tool was already done, because of our podcast search engine website.</li>
<li>Mashape / RapidAPI existed to provide a plug-and-play solution for us to manage users and create paid plans without writing code on our end.</li>
</ul>
<p>However, in hindsight, it’s actually very common for a commercial search engine to license their tech (via API or other ways). Some examples:</p>
<ul>
<li>Yahoo Search was powered by Google circa 2000, and is powered by Bing today.</li>
<li>In the early days, Baidu's only business model was to put a web search on some Chinese portal sites</li>
<li>Today, Bing provides <a target="_blank" href="https://www.microsoft.com/en-us/bing/apis/bing-web-search-api">a bunch of search APIs</a>.</li>
</ul>
<p>By launching an MVP fast, we were able to get feedback early, especially after getting the first paying user only a month or so after launch.</p>
<h3 id="heading-good-documentation"><strong>Good documentation</strong></h3>
<p>User feedback proves that our <a target="_blank" href="https://www.listennotes.com/api/docs/">API Docs page</a> plays an important role in customers' decisions to use our API. There must be a reason for API companies to employ a whole team of engineers “only” to maintain their documentation pages.</p>
<p>Great documentation builds trust.</p>
<h3 id="heading-stable-backend-service"><strong>Stable backend service</strong></h3>
<p>Stability is the essential base of an API business’ <a target="_blank" href="https://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs">Maslow’s hierarchy of needs</a>. If an API is not stable at all (for example, it has frequent outages or runs very very slowly), it can't be used.</p>
<p>However, it’s boring to perform work to improve backend stability. Most tasks to stabilize backend services are preventive, including extensive monitoring and alerting, the process to deploy code with confidence, end-to-end regression tests, and so on.</p>
<p>No news is good news.</p>
<p>No outages are great news.</p>
<p>We use Statuspage.io to hook up our Datadog metrics to build a status page: listennotesstatus.com.  </p>
<p><img src="https://production.listennotes.com/web/image/8928e10cdf454a25b7b2c13ff513fbfe.png" alt="Image" width="1600" height="1382" loading="lazy">
<em><a target="_blank" href="https://www.listennotesstatus.com/">System status page of Listen Notes</a></em></p>
<p>Here’s hoping that the status page will convince our prospective users to try out our API :)</p>
<h3 id="heading-excellent-customer-service"><strong>Excellent customer service</strong></h3>
<p>We are all customers of someone else’s products and services. We have all been frustrated with poor customer service at some point in our lives. It’s obvious that great customer service goes a long way — <a target="_blank" href="https://en.wikipedia.org/wiki/Tony_Hsieh">RIP, Tony</a>.</p>
<p>Many people are likely not aware that <a target="_blank" href="https://aws.amazon.com/premiumsupport/pricing/">you have to pay AWS big money to access better customer service</a>!</p>
<p>Our customers don’t only pay us for using our API, an online service. They also pay for being able to get high-quality customer assistance from real human beings. In our case, it’s me, the person who built this thing.</p>
<p>I use <a target="_blank" href="https://superhuman.com/">Superhuman</a> to process emails promptly and efficiently. And I’ve got a ton of prewritten email templates to handle the most popular customer support tickets. Oftentimes I can reply to an email within 5 seconds, using CMD + K to select an email template.</p>
<h3 id="heading-invest-in-internal-tools-and-processes"><strong>Invest in internal tools and processes</strong></h3>
<p>For knowledge work, it’s possible that one single person (or a tiny team) can create 10x, 100x, or even 1,000x more value than a big team.</p>
<p>Let’s look at an extreme example: book publishing. It’s (almost) impossible to hire 10,000 good writers to collaborate on one book together and hope it’s “better” cohesively than Harry Potter, written by a single author.</p>
<p>JK Rowling, a single person, created way more value (in terms of measurable dollar amount and unmeasurable happiness, good times) than most companies with hundreds of employees in the world.</p>
<p>Eventually, the software business would grow in a similar way.</p>
<p><a target="_blank" href="https://www.dailymail.co.uk/news/article-2127343/Facebook-buys-Instagram-13-employees-share-100m-CEO-Kevin-Systrom-set-make-400m.html">We already witnessed the 13-employee Instagram get acquired for $1B in 2012</a>. When will we see a $1B+ software/internet company with 5 or fewer employees achieve the same feat?</p>
<p>Great internal tools and processes provide leverage to enable a tiny team to be super-efficient. This is easy to understand. We human beings already built a lot of tools to greatly extend our physical/mental limits, for example bikes and cars (versus walking), computers (versus manual calculation), and so on.</p>
<p>Given that it’s (almost) impossible to 100% automate an Internet business, we have to improve the efficiency of manual operations. It’s a great investment to increase human operators’ productivity.</p>
<h2 id="heading-tidbits-of-running-listen-api-as-a-business">Tidbits of running Listen API as a business</h2>
<p>Here are some things I didn’t know before…</p>
<h3 id="heading-anyone-can-sign-up-gt-submit-your-application-first"><strong>Anyone can sign up =&gt; Submit your application first</strong></h3>
<p>A few years ago, I noticed that certain APIs required me to submit an application first, describing my use case, before giving me an API key.</p>
<p>I didn’t understand the rationale back then.</p>
<p>After running my own API business, now I understand.</p>
<p>The Internet is huge. The world is gargantuan. There are good people and bad people. If the API you provide is useful, some folks will try to abuse your API.</p>
<p>That’s what happened when we initially allowed anyone to create an API account. We were seeing users creating dozens of accounts in order to get around the free quota limit.</p>
<p>Today, we require people to submit an application first. We get a notification via Slack. Then we use our internal tool to review and approve or reject the application. The applicant receives an automatic email. On our end, it’s two or three clicks to finish all these operations.</p>
<p>To assist our review process, we use a bunch of heuristics:</p>
<p>Did this user previously create multiple accounts?</p>
<p>Is this IP address a well-known spammer discoverable via stopforumspam.com? (hint: there's an API for that)</p>
<p>And so on…</p>
<p>Again, we are seeing new edge cases from time to time. Yet we are also learning how to handle those unique cases.</p>
<h3 id="heading-ideal-customers-and-interesting-customers"><strong>Ideal customers and interesting customers</strong></h3>
<p>Our best customers are mostly startup founders who have been in business for quite some time. </p>
<p>They can make decisions on their own. They understand the value we provide. They have the power to finalize purchase decisions. And they are competent enough to read our documentation autonomously and ask very few questions — or they don’t even talk to us at all.</p>
<p>On the other hand, people from well-funded VC-backed startups or huge companies (some of the biggest companies in the world) oftentimes ask for a discount or free trial, which we don’t have. Why? I don’t have a good answer here.</p>
<p>Of course, there are always exceptions.</p>
<h3 id="heading-dev-shops-and-coding-bootcamps"><strong>Dev shops and coding bootcamps</strong></h3>
<p>Many of our users hire freelancers or dev shops overseas to build apps and websites.</p>
<p>Generally speaking, developers from dev shops are not as good as in-house developers. Although not 100% true, the chance is quite high.</p>
<p>In essence, a bunch of my customer support replies are to teach Computer Science 101 . Sometimes they sent code snippets in PHP (or a language that I don’t know) to ask us to debug it via email.</p>
<p>I understand that some of those developers from dev shops are fresh out of coding bootcamps (or the dev shop itself is a coding bootcamp). Most of the time I will Google for them and send them a StackOverflow link or something like that. But occasionally, if I was in a bad mood, I would not reply to the “help me debug my PHP code” emails from FREE users who don’t pay us.</p>
<p>Also, quite a few coding bootcamps use our API to teach students how to write code, which is great. In real-world web projects, you can’t avoid using third-party REST APIs. Teaching new programmers how to talk to a REST API is necessary.</p>
<h3 id="heading-api-is-a-slow-business"><strong>API is a slow business</strong></h3>
<p>Usually it’ll take a user a few months to start paying us.</p>
<p>They need to add a big product feature or even build an entire app first. Then they need to do some marketing and get some traction. Finally, they pay, or they give up and shut down the app.</p>
<p>We definitely should think about how to help our users build product features fast.</p>
<p><a target="_blank" href="https://stripe.com/">Stripe</a> is doing a great job in this area. They built a lot of nice UI components that developers can directly use without writing tons of code, like <a target="_blank" href="https://stripe.com/payments/checkout">Checkout</a>.</p>
<h3 id="heading-api-is-a-stable-business"><strong>API is a stable business</strong></h3>
<p>Our churn rate is quite low. People spend many months building an app using our API, so it’s unlikely that they’ll switch to something else overnight.</p>
<p>I’m happy with that fact.</p>
<p>Meanwhile, I’m also very bullish on all the other API businesses out there, like Stripe, Plaid, and Twilio. (This isn’t investment advice, but look at the stock <a target="_blank" href="https://finance.yahoo.com/quote/TWLO/?guccounter=1&amp;guce_referrer=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8&amp;guce_referrer_sig=AQAAAD_FoGY9a1EMiBkUZnYb_ByV8xNHfzcUKtujgYNthliWl55I0UWnIhIDivMvPxpFu5Fzuuyn1fh9lCU4p3tRZmjFFIJIxEKdx4Jlnp5U1Bb_HD4AZRMH3pri07JrBsKu6LqPk4M1ruR5QQefUPmS0Mg9-3R54fpr7AzYBnutkxbK">TWLO</a>.)</p>
<h3 id="heading-start-with-whales-then-diversify"><strong>Start with whales, then diversify</strong></h3>
<p>At the early stage, there might be a few user “whales” who account for a big portion or even most of the revenue.</p>
<p>Don’t panic.</p>
<p>Having revenue is still better than not having revenue at all.</p>
<p>We are not in a position to be picky at the early stage. We can diversify along the way.</p>
<p>I like reading <a target="_blank" href="http://www.investopedia.com/terms/s/sec-form-s-1.asp">S-1</a>s.</p>
<p>It’s not uncommon to see some SaaS or API companies with a few whales when they went public. If they lost one or two such whales, their revenue would drop 10%, or even 20%+ immediately! Well, they are already a public company. No need to worry about them. They know what to do next.</p>
<h3 id="heading-pricing-is-a-work-in-progress"><strong>Pricing is a work-in-progress</strong></h3>
<p>We are always experimenting with new pricing. Similar to building software projects in general, pricing is always a work in progress.</p>
<p>We allow old users to stick to the lower pricing they obtained when they signed up. Any future price changes won’t affect existing paying users. </p>
<p>I know that select pricing experts would warn me that I leave money on the table by this practice. But I feel thankful for customers who stand by us for so long. I want them to enjoy the low pricing as a benefit.</p>
<p>By the way, <a target="_blank" href="https://www.profitwell.com/">ProfitWell</a> has great resources regarding pricing.</p>
<h3 id="heading-haters-irrelevant-critiques"><strong>Haters / irrelevant critiques</strong></h3>
<p>You may have seen this theory: <a target="_blank" href="https://www.google.com/search?q=When+you+have+haters%2C+you%27re+doing+something+right">When you have haters, you’re doing something right</a>.</p>
<p>There’s a similar quote from <a target="_blank" href="https://en.wikipedia.org/wiki/Zeng_Guofan">Zeng Guofan</a> (one of the most important military leaders and politicians in the 19th century China):</p>
<p>不招人妒者皆庸才. “If no one envies you, then you are incompetent.”</p>
<p>Side note: You can find Zeng Guofan’s wisdom inside many airport bookstores in China. He would have been a great Twitter user and beat those Twitter VC philosophers if he were born in our time - it's hard to beat a historical Chinese figure in the game of fortune cookie :)</p>
<p>If your project is visible on the Internet and gets a bit of traction, some people will hate you for no particular reason.</p>
<p>Once you offer a paid service, you’ll never provide a price that is low enough to make everyone in the world happy. No, $1.00 USD is not cheap at all in many places in the world. People who are not your target users will complain about your pricing.</p>
<p>From my experience, it’s safe to ignore most critics, advice-givers, and suggestions from non-users. Sometimes people try to compare two things with similar names. </p>
<p>For example, if you search “podcast API” on Google, you’ll find a few other APIs with “podcast API” in their names. However, if you spend a few minutes skimming the documentation, you’ll find obvious differences. It’s like comparing two people with the same first name and family name who are two completely different individuals after all.</p>
<p>The only critiques or suggestions I care about are mostly from our users. I can see their API usage. I know they are expressing meaningful facts. So I listen to them.</p>
<h2 id="heading-so-are-you-interested-building-an-api-business"><strong>So are you interested building an API business?</strong></h2>
<p>Nowadays, the “passion economy” or “creator economy” is hot.</p>
<p>Who are creators? Writers, podcasters, streamers…</p>
<p>Don’t forget that software developers are also creators!</p>
<p>If you already run a website or have some interesting data, you may start an API business as well.</p>
<p>Thanks for reading this long article :) Let me know what you think: wenbin@listennotes.com. And you can <a target="_blank" href="https://www.listennotes.com/blog/how-i-accidentally-built-an-api-business-46/">read more of my posts on my blog</a><em>.</em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ From Self-taught Developer to Mobile Game Entrepreneur – An Interview with Joey Torbett ]]>
                </title>
                <description>
                    <![CDATA[ By Braedon Gough I can remember the first time I went over to Joey's house. His room was an absolute disaster as any 11 year old's room is. I made his parent's laugh after they apologized for the mess, "it's no problem," I said, "it's easier to see a... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/interview-with-a-self-taught-developer-turned-mobile-game-entrepreneur/</link>
                <guid isPermaLink="false">66d45dd9bc9760a197a1034f</guid>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Game Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Mobile Game Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 12 May 2020 15:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/05/hero.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Braedon Gough</p>
<p>I can remember the first time I went over to Joey's house. His room was an absolute disaster as any 11 year old's room is. I made his parent's laugh after they apologized for the mess, "it's no problem," I said, "it's easier to see all of the stuff he has!"</p>
<p>It wasn't until after high school that we completely deviated from one another.  I went off to business school, while he pursued photography, having been rejected by all post-secondary institutions he applied to. </p>
<p>I would have never guessed that six years later we would be on the exact same path, – both <a target="_blank" href="https://www.freecodecamp.org/news/how-i-went-from-sales-to-frontend-developer-in-16-months/">self-taught developers</a>, but on different tracks.</p>
<p>I remember when Joey first told me about the games he was building in Unity. We spent countless hours playing Minecraft when we were younger, so I assumed it was something in that realm. </p>
<p>I was soon going on a study abroad and certainly wasn't paying much attention to his new hobby. It never occurred to me this would blossom into anything greater.</p>
<p>He's gone from sharing his projects on Instagram, to co-founding a company in Finland, and completely starting from scratch on his newest venture, <a target="_blank" href="https://www.instagram.com/9centgames/">9 Cent Games</a>.</p>
<p>I want to share his story here.</p>
<h2 id="heading-why-did-you-start-teaching-yourself-game-development">Why did you start teaching yourself game development?</h2>
<p>I had been dabbling in Photoshop and After Effects for about a year prior. I messed up my ankle up skateboarding and had a lot of free time. My work with Photoshop led me into 3D artwork. </p>
<p>I started thinking, what can I do with these 3D models? I can't make animations. It's too much work. I think you need a team for that. So I was like, maybe I can code these models.</p>
<p>I started trying to learn with these Unity tutorials. I actually gave up a few times before it really clicked in my head. Slowly, I started accumulating knowledge, just releasing simple games, asking questions on Reddit. The community on Instagram was also very, very motivating. And then it just turned into what it is now, six years later or something. I think I started in 2014.</p>
<p>Unity has a whole bunch of tutorials on YouTube. There was a <a target="_blank" href="https://www.youtube.com/watch?v=kX0hnOS1QQQ&amp;list=PLX2vGYjWbI0RibPF7vixmr4x8ONJX-mNd">space shooter</a> and then a <a target="_blank" href="https://www.youtube.com/watch?v=W_fAidYRGzs">roller ball thing</a>. I made a little ball game called <a target="_blank" href="https://www.youtube.com/watch?v=Jk4sO4m4uGI">Tiles</a> based on their rollerball tutorial. That was the first game that I made.</p>
<h2 id="heading-why-did-you-quit">Why did you quit?</h2>
<p>Oh, I honestly just didn't understand it. I had a hard time really grasping even the most basic concepts of programming. For loops, if-statements, that kind of stuff. I was using the update loop in Unity to write like a hundred if-statements as opposed to just using one for loop to do basic stuff. I had no understanding at all.</p>
<p>Something kept dragging me back. I made a platformer, then a little shooter and then I built a game called Aldo, which was an action RPG that had six quests and a few different worlds. I kept trying to expand my games and the thought of reaching just a little further was exciting.</p>
<p>And then you realize you have huge gaps in your knowledge and you don't know how to plan these projects. So you kind of have to step back. Go smaller.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/96751992_233851337888133_8515543434855972864_n.png" alt="Image" width="600" height="400" loading="lazy">
<em>Thumbnails of the early games</em></p>
<h2 id="heading-how-did-you-get-better-at-planning-projects">How did you get better at planning projects?</h2>
<p>Honestly, studying games, looking at YouTube videos of game design breakdowns, and seeing how these games are built and the ideas behind them.</p>
<p>I would pick any element that I could find, replicate it and then try to make it my own in some little way. Or just straight-up, copy something and just see if I can programmatically replicate a cool mechanic.</p>
<p>It was all literally like hacking it together. I could show you some of the code that I wrote from way back and you would laugh.</p>
<h2 id="heading-you-shared-everything-you-did-on-instagram-why-what-was-that-like">You shared everything you did on Instagram. Why? What was that like?</h2>
<p>Instagram was and is the number one thing for me. That's kind of how it all started as well. There is a big development community there. Specifically a game development community. Everyone shares their artwork, comments on ideas; people are generally pretty supportive.</p>
<p>It was very motivating. Posting kept me active and pushed me forward because it's so solo. You can feel lonely at times. You have to really be self-motivated, get up in the morning on your own for no other reason than your passion for coding. </p>
<p>Instagram is sort of a way to stay accountable and a way to build motivation because the reach that you get, as well as the community, are real.</p>
<p>I still use the same hashtags today to stay in touch with the community like <a target="_blank" href="https://www.instagram.com/explore/tags/gamedev/">#gamedev</a>, <a target="_blank" href="https://www.instagram.com/explore/tags/indiegamedev/">#indiegamedev</a>, <a target="_blank" href="https://www.instagram.com/explore/tags/madewithunity/">#madewithunity</a>, <a target="_blank" href="https://www.instagram.com/explore/tags/unity3d/">#unity3d</a>.</p>
<h2 id="heading-instagram-actually-lead-to-you-co-founding-a-company-right">Instagram actually lead to you co-founding a company, right?</h2>
<p>Yeah, I met my future business partner on Instagram. I was posting my artwork and he started with liking some photos. My partner really liked some of the weapon designs that I was doing. He eventually DM'ed me and we started exchanging ideas.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/Screenshot-2020-05-10-at-19.49.03.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>We traded ideas for a long time before I eventually bought a plane ticket from Toronto to properly meet him in Finland. It was a bit surreal. There's a massive community in Helsinki. Studios like <a target="_blank" href="https://www.rovio.com/">Rovio</a> and <a target="_blank" href="https://supercell.com/en/">Supercell</a> are based there. Finland is home to some crazy game companies.</p>
<p>I was starting to run before I could even walk. Soon we had our company, <a target="_blank" href="https://www.actionreaction.games/">Action Reaction Games</a>, and had begun planning our first game, Battle Blobs.</p>
<p>We just started developing the game. I had never built a multiplayer game before, so that was a bit of a hurdle. We tried all these different back end tools, all kind of worked, but kind of didn't. Every day had a new challenge. I learned about 80 percent of everything that I know now during this time.</p>
<h2 id="heading-how-did-you-find-other-like-minded-people-to-start-working-on-the-project-with-you">How did you find other like-minded people to start working on the project with you?</h2>
<p>My partner led a lot of that because he was the networking guy. I was more on the technical side of it all in those days. He led the force on that. As I said, the community in Helsinki is huge!</p>
<p>I think he had two engineers that he was working with to build a prototype before I joined. The fit wasn't right, so they ended up leaving. Eventually, we found an artist to work with. And then another really, really technical guy from there. All of these people he knew from his network.</p>
<h2 id="heading-at-what-point-did-it-become-more-serious">At what point did it become more serious?</h2>
<p>Around April 2018. We were just closing the funding round and that's when things really started gearing up. It was incredibly strenuous leading up to that point.</p>
<p>It's a lot of meetings. It's a lot of pitches. It's a lot of meeting people for no reason that barely even respond to you, even though they seem very excited in the initial meetings. I wasn't there for many of them, but I was there for enough of them. I was there for the key ones that actually landed the investment rounds. So that was cool.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/office.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Our co-working space</em></p>
<p>It is a complete grind. It's a grind of just hardcore networking and just figuring out who's really going to give you money, who actually believes in you and why am I here?</p>
<p>Finland's just such a hub. Money moves kind of slow there, but in a sense, it also kind of doesn't. There are tons of angel investors and venture capitalists in Helsinki focused exclusively on game investment. I don't want to name drop or anything, but we had some really cool people involved in Battle Blobs on the financial side early on.</p>
<p>We ended up raising about 100k euros and then the Finnish government had a program where they essentially doubled that.</p>
<h2 id="heading-how-did-things-change-after-the-investment">How did things change after the investment?</h2>
<p>Scheduling everything, tight deadlines, and way more meetings. We had very specific goals and needed to move much faster. The pace was much different. It was definitely an ego boost.</p>
<p>There was more testing, playing, trying to get the team to coordinate better, which was a big struggle. We weren't always on the same page. It's tough. You knew in your heart that someone was really backing you. You kind of felt a huge sense of responsibility on that.</p>
<p>I was the only one that was remote, unfortunately. Everyone else was in the office every day working on it. I would come to Finland as much as I could and be there working hands-on, but I was the only one that was remote.</p>
<p>It's a little bit intimidating, especially when things start to get a little bit uncertain. You know, as things evolve and develop.</p>
<h2 id="heading-what-was-the-biggest-success-of-battle-blobs">What was the biggest success of Battle Blobs?</h2>
<p>Definitely the technology we built, the software and literally just getting the game to launch. We did a really successful launch. We had fifty thousand downloads. We had no monetization mechanics, unfortunately. That was a huge oversight by us.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/launch-party.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Battle Blobs launch party</em></p>
<p>A lot of it was pretty organic. We did pay a company to help us with our marketing. I don't think they really helped too much. But then somehow China got a hold of it and it spiked.</p>
<p>It was really weird. It spiked around 15000 downloads over the course of two weeks, just randomly. We were not marketing in China at all. We were only marketing in the UK at the time. We were advised that was the best place. I question that now, but it seems that the marketing and the way our app looked right had some appeal there.</p>
<h2 id="heading-when-did-you-start-to-feel-like-things-werent-going-in-the-right-direction">When did you start to feel like things weren't going in the right direction?</h2>
<p>We were planning for a second investment round post-launch. Our main goal was to generate retention, generate engagement and basically just generate a high-quality product. We pushed hard to get that second funding round. We did everything we could, even pivoting the entire game into something more simple.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/prototype.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>An early prototype of gameplay</em></p>
<p>When that timeline starts to run down and you notice the cash flow is going down and the next thing you know, we're dropping off salaries because we want to survive a little bit longer. That's when things get pretty sketchy and you get to get a bit concerned about the whole thing of it and then you start to really question yourself.</p>
<p>I found I was questioning my entire viability as a co-founder. Even if we landed the funding round, could I even run this thing the way it needed to be run? I had virtually no experience running a company. It was a lot of self-doubt and strong emotions.</p>
<p>Being remote sucked when it was starting to crumble. It was hard to even work. I was sitting at my computer doing nothing because I had nothing to do. There was nothing to do. And we're just kind of waiting, hoping we're gonna land a funding round.</p>
<p>In mid-August [2019], my partner basically said, look, maybe do some damage control and find a job. If you need or do whatever you need to do. That was pretty much it.</p>
<p>I took a couple of weeks just totally off. I played Minecraft for two straight weeks; it was like therapy.</p>
<h2 id="heading-what-happened-to-the-company-and-everything-that-was-built">What happened to the company and everything that was built?</h2>
<p>It still exists. I think it's technically still under the ownership of Action-Reaction Games. I haven't really talked to these guys in a little while, but last I heard they were trying to license it out. I haven't heard anything about that. I'm assuming it hasn't happened yet.</p>
<p>The technology we built was really solid. It is a full-on multiplayer video game backend. You can build any type of multiplayer game within the framework we built. It's very powerful.</p>
<p>To be honest, it was also very cumbersome. It can get a little bit too much and maybe we overdid it on the tech. That's really one of the biggest things - maybe we overdid it on the tech. That's where a lot of our money went, where it did not need to go. To the engineers trying to over-engineer stuff.</p>
<h2 id="heading-what-were-some-of-the-biggest-mistakes-that-you-made">What were some of the biggest mistakes that you made?</h2>
<p>There were moments of panic where I made quick decisions that I should've just took a step back, took a breath and thought about it more. My panic caused others to panic, which was a formula for disaster.</p>
<p>I didn't personally feel confident. I didn't have the coding experience. Our CTO was really scaling up the tech and as he was scaling it up, I was falling behind because I wasn't able to keep up.</p>
<p>I didn't have the knowledge. I probably still don't to be honest; it was very, very advanced. So I think that was another hurdle. I was trying to fill shoes that I couldn't really fill. I probably could've put myself in a better role within the company that would have been more productive, more successful.</p>
<p>I was the producer, so I had a good role, I was keeping busy. I was managing all the releases. I was making sure builds were stable. I was doing quality assurance as much as I could, even though that was a challenge on its own.</p>
<p>The quality assurance and the testing process that we had was not good. It was hard to get the team to test for some reason. We just never wanted to play the game.</p>
<p>I was always saying guys, we have to test this. We need to test this. And, you know, we would test out 2v2 or 1v1 and yeah, okay, it works functionally. The program works, but does the game work? The game is built around 3v3. We need to play this 3v3. Guys, this is releasing soon. We need to play this 3v3.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/4v4-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>2v2 testing</em></p>
<p>We never spent time making sure the game was actually fun. Like, literally sit down with a room full of people and play this thing to death until we know what we need to do. We never did that. I still don't do that with my current projects. That's another problem that I'm still facing but I'm working on that.</p>
<p>The biggest mistake that we made was when we landed our initial investment. We took a million dollar valuation on our pre-seed round.</p>
<p>If you have a million-dollar valuation on your pre-seed round and in reality, you're only worth one hundred thousand dollars. You take that money that you've got at that million-dollar valuation in order to grow into a million-dollar valuation.</p>
<p>When you do that, you have your original investors thinking they bought a million-dollar company and then your next investors actually get a million-dollar company and then your original investors get screwed or you're screwing the next investors because they're getting a worse deal than your previous investors got.</p>
<p>It creates this dynamic of an impossible to raise funding round. If we had taken a real valuation from the beginning, we probably would've landed that second round. There was real value in the end but not when we took our initial valuation.</p>
<h2 id="heading-if-you-could-start-all-over-again-what-would-you-do-differently">If you could start all over again, what would you do differently?</h2>
<p>Focus on the programming fundamentals. I would spend more time understanding software design concepts and how to scale software because you're going to build software that you can't move at a certain point because you're just not building it properly.</p>
<p>Eventually you'll have thousands of lines of code that's just gridlocked because it's so crap. You literally have to scrap it. I've done that. I've done that multiple times and it sucks.</p>
<p>If I just had better fundamentals at the beginning, we might have had a whole year head start.</p>
<p>I use the <a target="_blank" href="https://en.wikipedia.org/wiki/SOLID">SOLID design principles</a> and other similar concepts now. I think that helps a lot. You don't have to keep rewriting stuff just to get one piece of functionality working. You also encountered way less bugs and way less problems along the way.</p>
<h2 id="heading-after-your-two-week-break-what-was-a-turning-point-for-starting-something-new">After your two-week break, what was a turning point for starting something new?</h2>
<p>I would think about it all the time. In the back of my head, while running Action Reaction Games, I always looked at these micro game companies, like <a target="_blank" href="https://www.voodoo.io/">Voodoo</a> or <a target="_blank" href="https://popcore.com/">POPCORE</a>. These are super huge companies that literally make the simplest games ever.  They are always top charting.</p>
<p>Once I took a break and I thought, ok, I could maybe try and release a game. It slowly started happening. I had this vision of a whole framework to help reduce the cost of game development. One day I woke up and thought, it's time to start.</p>
<p>There was also an emotional hurdle. I almost felt guilty, as if I was cheating on Action React Games by doing my own thing, which is a weird feeling. It felt like divorce. It was crazy.</p>
<p>It started with just seeing how fast I can get a game out. I got a game out from day one in 20 days called emoji tap. That was pretty cool. Then I re-skinned it into the Halloween version about 14 days later. So I technically launched two games within the first two months, which felt great.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/05/Screenshot-2020-05-10-at-20.27.26.png" alt="Image" width="600" height="400" loading="lazy">
<em>Emoji tap</em></p>
<p>I think I really learned the importance of goals, deadlines and scheduling from building Battle Blobs. I also learned a lot of my programming fundamentals building a bigger project. The pace of my learning has definitely slowed, but I'm really enjoying my work right now.</p>
<h2 id="heading-what-is-keeping-you-busy-these-days">What is keeping you busy these days?</h2>
<p>My new project is officially called 9 Cent Games. I'm really focused on building out the framework, so I can quickly and easily make new games. It handles in-app purchases, ads, products and pretty much everything that you could need for a minimum-viable-product. </p>
<p>From there, I plan on creating games and then having the games help grow the framework. When the framework grows, the games also grow by inheritance.</p>
<p>I want to make sure all games built using our framework have a solid foundation for success. I want to enable developers to build quickly while also reducing the cost of development. That's the idea.</p>
<p>It is very mobile-focused. Everything regarding iOS and Android deployment is completely handled. It's all cross-platform. This is probably already done but it's mainly a good exercise for me to build my skills as I'm trying to do this.</p>
<p>I just released my new game, Germs: Virus Smash! on Android. It's never coming to iOS because Apple said no. They don't want to release any virus games during the quarantine.</p>
<p>I'm pivoting it into Quirks. It's a subatomic particle game. It'll be the exact same game as Germs basically, but it'll have a different skin instead.</p>
<hr>
<p>If you want to follow Joey's journey further, you can find him on Instagram, <a target="_blank" href="https://www.instagram.com/9centgames/">@9centgames</a> or <a target="_blank" href="https://www.instagram.com/joe_torbett/">@joe_torbett</a>. You can also download all of his latest releases on <a target="_blank" href="https://linktr.ee/9centgames">Android and iOS</a>!</p>
<p>Don't be a stranger! Feel free to write if you have any questions, <a target="_blank" href="mailto:braedongough@gmail.com">email me your favourite book recommendations,</a> <a target="_blank" href="https://www.linkedin.com/in/braedon-gough-ba92a048/">connect with me on Linkedin</a> or <a target="_blank" href="https://twitter.com/bbbraedddon">follow me on twitter</a>!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I Won my First Ever Hackathon – 2 Wild Days of Research, Design, and Coding ]]>
                </title>
                <description>
                    <![CDATA[ By Moshe Siegel I had no coding or engineering background. I studied biology in college, with no clue about what to do with my degree.  My first jobs were making cold calls in sales, but I made almost no money and was miserable with my work. After fa... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-i-won-the-hackathon/</link>
                <guid isPermaLink="false">66d46040787a2a3b05af43e6</guid>
                
                    <category>
                        <![CDATA[ business ]]>
                    </category>
                
                    <category>
                        <![CDATA[ consulting ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ hackathon ]]>
                    </category>
                
                    <category>
                        <![CDATA[ sales ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sun, 23 Feb 2020 13:00:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9c6f740569d1a4ca3226.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Moshe Siegel</p>
<p>I had no coding or engineering background. I studied biology in college, with no clue about what to do with my degree. </p>
<p>My first jobs were making cold calls in sales, but I made almost no money and was miserable with my work.</p>
<p>After failing at a few different sales gigs, I gave up and found a job preparing vegetables at a restaurant — not exactly the plant life I was expecting to work with after college.</p>
<p>I needed new prospects, and I was ready to find anything better. All it took was a strong work ethic, a willingness to learn, and a few key resources to get me onto a whole new career path.</p>
<p>This also got me involved in a coding competition that took me <em>way</em> outside my comfort zone.</p>
<p>While working at my restaurant job, I started hearing stories about people who taught themselves how to code and managed to develop that into careers. Willing to try something new, I started taking online courses with freeCodeCamp during my off-time from work. </p>
<p>Hours here and there turned into a full-time commitment. I left my job and followed freeCodeCamp’s curriculum, aggressively studying full-stack JavaScript as my new full-time job. </p>
<p>I spent a year and a half focusing on learning coding, and it paid off, too. I was accepted into a long-term contract as an entry-level coder at a New York City fashion company, which was generating over $2 billion a year in sales.</p>
<p>Learning was my top priority. Even in this new position, I continued to practice during my off-hours, this time focusing on best practices for my specific job responsibilities, which involved writing automated tests using the NodeJS version of Selenium. </p>
<p>I spent 10-15 hours per week doing Selenium tutorials, which helped me get my work done faster and gave me leeway to learn from my colleagues during work hours. I maximized in-between work times, talking to co-workers in the elevator or while walking to my desk. I learned what others did and what their responsibilities were for our company. </p>
<p>It didn’t matter if they were in the same role as I was. I spoke to my engineering supervisors and to people in our business units so I could better understand the structure of our company, find out how others had made progress in their own positions, and see if I could find some big problem that I’d be able to solve.</p>
<p>Around my third week of work, while talking to my senior director of engineering, I noticed a number of awards by his desk. He told me were from his past wins at our company’s annual Hackathon. </p>
<p>“Wow,” I said, “You've won a lot of awards.” </p>
<p>He responded, “Thanks. You should participate in the next Hackathon. It will be in a few months.” </p>
<p>I was still relatively new to coding and had never participated in a Hackathon, so after a day of mulling it over, I went back to his desk.</p>
<p>"Hey, I've seen a few other people with Hackathon awards,” I said, “but no one has nearly as many awards as you have. Plus, most of your awards say first place. How do you win so often?" </p>
<p>He told me, “I focus on projects that make an impact. For instance, for one of the Hackathons I built a prototype that would let our customers order off our website and pick it up in our stores. The judges realized this would be a big hit with our customers and would greatly increase revenue.” </p>
<p>When I asked him how to find a project that would make an impact, he explained that, during his time at our company, he’d gone ahead and learned all of the many different subsystems that powered our eCommerce business. </p>
<p>“Knowing the whole system makes it easier to see where the opportunities are," he said. "In fact, my broad understanding of our entire platform is what differentiates me and has allowed me to reach my current position.”</p>
<h2 id="heading-finding-a-project">Finding a Project</h2>
<p>I realized that the Hackathon would be the ultimate test of my abilities: could I take the strategies of hard work, learning from my co-workers, and my intense study of coding to the next level?</p>
<p>After years of feeling like I had been wasting my potential, I’d finally found a way to prove my worth. This wouldn’t just be about showing off, because I would need to find a project that was actually of use to the company. </p>
<p>I didn’t have a lot of time on my side, and my tech skills were relatively basic compared to the highly skilled senior level engineers I’d be competing against. </p>
<p>Even though I felt out of my league, I had the secret sauce for a solution in my back pocket: lessons I’d learned from Neil Rackham’s sales strategies book <em>SPIN Selling</em>, which gave me the four-step model for finding problems in large enterprises.</p>
<h3 id="heading-step-1-learn-how-something-works">Step 1: Learn how something works.</h3>
<p>Since I was advised to learn the inner workings of our eCommerce business, I started talking to employees in our planning department, conveniently located between my desk and the lunchroom (and between my desk and the bathrooms). They were responsible for deciding how much merchandise to buy and at what prices they would be sold. </p>
<p>I’d leave my desk and take a moment to ask questions like how they chose how much inventory to purchase in advance, how they set their prices, and if retail and eCommerce had different rules for pricing. Through my questions, I learned how planners introduced new clothing lines and calculated what to sell them at.</p>
<h3 id="heading-step-2-ask-questions-to-find-a-problem">Step 2: Ask questions to find a problem.</h3>
<p>Once I’d gotten a sense of how planning worked, I started looking for issues that might come up. Once they set an amount for inventory, does the company ever purchase the wrong amount? Do prices ever get set incorrectly? </p>
<p>I was trying to find the sort of mistakes or frustrations that I’d be able to solve.</p>
<h3 id="heading-step-3-ask-questions-to-explore-the-problems-implications">Step 3: Ask questions to explore the problem’s implications.</h3>
<p>After several days of asking questions, I learned about pricing issues, where prices would be set and appear incorrectly on our website. How did this problem come about and what were the implications? </p>
<p>I asked how often pricing errors would occur and what kind of further issues they might cause.</p>
<h3 id="heading-step-4-ask-questions-to-explore-the-value-of-solving-the-problem">Step 4: Ask questions to explore the value of solving the problem.</h3>
<p>If there were an automated computer script that found all the incorrectly priced eCommerce items, how helpful would that be? </p>
<p>I asked the planners questions that would help me figure out what sort of value I could offer them. If I was going to fix something at our company’s Hackathon, I wanted to make sure it had a noticeable impact.</p>
<p>After my conversations, I found that pricing mistakes would be a worthwhile project to work on. Each of our three or four assistant planners were spending 30 minutes per week manually checking for pricing errors. An automated system would save that time — an estimated 100 hours per year that would no longer be wasted.</p>
<p>Even though I had already been told about the Hackathon, there was no official date yet. I had a solvable problem in my back pocket, and, while I didn’t know for sure that I had the coding skills, I was fairly confident in my chances. Until the announcement came, I’d focus on my work. But whenever it arrived, I’d be ready to get started.</p>
<h2 id="heading-confirming-with-the-planners">Confirming with the Planners</h2>
<p>Two weeks later, I had an email in my inbox. The Hackathon event would be in one month, going for two days straight, which included a presentation on day 2, a Friday.</p>
<p>Project ideas would be judged on four criteria: originality of the idea, impact on the business, completeness of the prototype, and strength of the pitch. There were so many unknowns and it was impossible to predict whether one month would be enough time to prepare.</p>
<p>I went over to the planners and confirmed that the issue was still present — checking online pricing sales was still being done manually. </p>
<p>I was happy to learn that our company had a dedicated eCommerce merchandiser, who was responsible for reporting all incorrect website prices and resolving them. She would be able to give me far more information and could confirm whether or not it was an issue worth the effort of fixing. </p>
<p>I was unhappy to learn that she was on vacation, and I’d have to wait a week to speak to her. The clock was ticking, and I was stuck until then.</p>
<p>With three weeks until the Hackathon and our eCommerce merchandiser back in the office, I was able to start exploring the problem in more detail. She confirmed the issues I had heard about and said that building something that could automatically scan the website and find incorrect prices would be a big help. </p>
<p>In further conversations with the planners, I learned how pricing was uploaded to the website: planners would copy and paste a list of prices from an Excel spreadsheet to SAP, a software that does many things such as managing inventory for retailers. SAP would then push the prices to our eCommerce website. </p>
<p>I realized that the Excel prices could be compared to the website prices to find any issues. I would build a simple website that would let planners upload Excel pricing lists. </p>
<p>A script would then read the Excel pricing lists and compare them in real-time to our website prices. Any and all discrepancies would then be batched into a list and sent to our planners for review.</p>
<p>Excited that I had a way to solve the problem, I began explaining the project idea to other developers in our organization, asking if anyone wanted to join my team. However, I made it a strict requirement that any potential teammates would have to first speak to our planners in person and hear the problem from their perspective. </p>
<p>As part of the SPIN system, I needed teammates who were willing to understand the process and the problem before we could fully design the solution. Unfortunately, I failed to recruit any other software engineers to my project, but other engineers gave me valuable advice on how to code out my project and what technologies to learn. </p>
<p>I was on my own, but I was excited, feeling confident in my solution.</p>
<h2 id="heading-needing-to-pivot">Needing to Pivot</h2>
<p>Two weeks before from the Hackathon, I revisited one of the assistant planners and explained my idea for an automated script that would compare Excel and website prices and report discrepancies. She quickly informed me that my idea would be useless, since the Excel prices and website prices would always be identical. </p>
<p>The assistant planner continued to explain that the original Excel pricing lists were generated by a tool that took in product manufacturing costs, delivery costs, and other relevant factors, and then spit out Excel pricing lists, which our planners would then upload to the SAP software powering our website. </p>
<p>If the planners accidentally entered incorrect manufacturing costs or delivery costs into the pricing tool, then the price would similarly be wrong on the Excel lists. </p>
<p>“So you're saying there is no master list that is guaranteed to always contain all the correct prices?” I asked. </p>
<p>“Exactly,” the assistant planner said.</p>
<p>It was the opposite of what I needed to hear. There went weeks of planning, thinking, discussing, and waiting — gone. </p>
<p>I was two weeks out from a Hackathon where my lack of experience was already holding me back, and I had nothing. There weren’t enough days to do this all over again. </p>
<p>I had to rethink my process.</p>
<p>Since timing was tight, I couldn’t do all the research and work I had tried the first time around. Instead, I would let the planners come up with the project requirements for me. </p>
<p>I came back to the planning department, this time with a different question: “Imagine you had a robotic script that could automatically grab numbers from anywhere, such as an Excel spreadsheet, a database, or a website, and automatically subtract, add, or compare the data. What problem could be solved with the help of such a script?” </p>
<p>After the assistant planner I was speaking to thought about it for a few minutes, she told me it would be useful for checking sales prices. She explained that our website ran weekly mass sales every Wednesday. The sales would be listed on our homepage and would use text such as “25% Off All Men's Jackets” or “15% Off All Women's Dresses.” </p>
<p>Every Wednesday morning, our 3-4 assistant planners would spend 30 minutes to manually click through our website and confirm the correct discounts were applied. If the planners found any incorrect sales prices, they would send them over to our eCommerce merchandiser. </p>
<p>Only IT was able to change live sales prices. To keep things simpler for IT, our eCommerce merchandiser might wait and send a list to IT in batches.</p>
<p>That meant that even once an incorrectly priced item was found — unless it was an emergency — the pricing wouldn't get fixed immediately. </p>
<p>I had a problem, and the solution wasn’t far off from what I’d originally planned: an automated script that could report all incorrectly discounted items would save time by reducing the amount of work involved for our planners, for our eCommerce merchandiser, and for IT, and it would make for a better customer experience by reducing the amount of incorrect sales prices and doing so quickly. </p>
<p>I’d only need a master list of all ongoing sales that could be compared to website prices, but the planners told me that no such “100% accurate” master list existed, at least not on paper.</p>
<p>“But a fully correct pricing list exists in our heads,” they said, “because we know our products through and through. That’s why we can click through our website and spot incorrect pricing.”</p>
<p>After thinking about it for a few moments, I asked, “What if you didn’t have to click through our website? What if you could get all our live website prices in a neat list just by clicking a button?” </p>
<p>“That would dramatically speed up our price checking,” they said. </p>
<p>We came up with a plan: I would build a simple website that would allow planners to upload dozens of item names and immediately receive an easy-to-read list of those items’ live website prices and sales discounts.</p>
<p>The idea was concrete and doable. It had an impact — conserved manpower, faster QA, and improved customer experience — and I was confident in my own ability to build it (even if I didn’t yet know exactly how). </p>
<p>I went back to my desk and typed up a document explaining the business requirements of what I planned to build, how it would be helpful, and the Hackathon date when I would build it. </p>
<p>I went back to the planners and had one of the planning managers and the eCommerce merchandiser read my document. There was no time to backpedal again. </p>
<p>They gave me the confirmation. The idea was set, and with a week left, it was time to figure out how I was going to make this a functioning, usable reality.</p>
<p>I went to the engineers at my company more advanced than I was (of which there were plenty) and asked, “How would you code a script that automatically returned the website prices for items we sell?” </p>
<p>After speaking to several engineers, I learned that our website product pages got their prices by querying our internal eCommerce database, which in turn got its pricing info from SAP. This was a Redis database that had its own neatly written documentation showing exactly how to request any pricing info from it. </p>
<p>I found the engineer who had built the database and learned that I could retrieve the website prices and sale prices of a whole list of items using just a single database call.</p>
<p>Even though my plan was coming together, I was still very aware of how much work I had ahead of me. I tried to recruit other engineers, but didn’t find much interest, especially when I told them about my expectation for them to speak to the planners. </p>
<p>With no engineering teammates, I spent every moment I could after work studying the material on my own, experimenting with making database calls and studying how to write JavaScript code to read Excel spreadsheets.</p>
<h2 id="heading-expanding-to-our-main-brand">Expanding to our Main Brand</h2>
<p>The day before the Hackathon, out of curiosity, I asked our planners how they knew what inventory options to sell. They responded that our company’s merchandising department was responsible for those decisions, so I went to speak to our merchandisers. </p>
<p>During our conversation, they mentioned in passing something about their counterparts in our main brand.</p>
<p>“Our main brand?” I asked. “Aren't <em>you guys</em> our main brand?”</p>
<p>“No,” they said. “The merchandising and planning for this floor is dedicated to our smaller brand, which is 15% of our total revenue. Upstairs is our flagship apparel brand.”</p>
<p>This couldn’t be happening. I knew we had several brands at our company, but the day before the Hackathon, I was finding out that my project was being built for the smallest brand in our organization. </p>
<p>With a weaker background in coding, no other engineers on my team, and the need to do something big to impress the judges, I wasn’t looking too great. </p>
<p>I walked upstairs and started asking around where I could find the planning department for our main brand. I needed to speak to them if my project was going to have a big enough impact.</p>
<p>There seemed to be at least 20-40 planners in our main brand. Who would I speak to? </p>
<p>I needed to find a planner who would understand what I had in mind, but also have the knowledge base and the creative thinking to find the areas I was missing. </p>
<p>What if the larger brand used a different system? I needed somebody dependable, and I didn’t have the time to spread out over a few weeks. </p>
<p>With the Hackathon a day away, I took a shortcut.</p>
<p>Planning had an open office space environment, which meant people were at cubicles with no walls. I began talking about my Hackathon idea to one of the planners in our main brand. </p>
<p>As I spoke, I raised my voice and began walking up and down the aisle, looking around at other planners as I did so. This allowed me to get the potential attention of up to eight planners at once. </p>
<p>One of the planners showed a ton of interest and asked a lot of questions. He was specifically interested in our Redis database and whether other information besides pricing could be found. </p>
<p>I showed him our database documentation and we quickly went through it all. </p>
<p>He mentioned that there was other information besides pricing that could be useful, such as whether the items were listed on our website, and what categories they belonged to. He then introduced me to eCommerce merchandisers from our main brand, who agreed that what I was building had potential beyond just pricing.</p>
<p>There wasn’t enough time for me to make any drastic expansions to my coding requirements, but we agreed that I could build my project in a way that was flexible enough for it to be used by planners from either our smaller brand or our main brand. </p>
<p>Hearing about my project’s value and viability from co-workers who were really enthusiastic about it was just the push I needed. </p>
<p>I had the confidence, the resources, the research, and, hopefully, the ability. Even if I didn’t, there would be no avoiding it — the Hackathon was starting the next morning, and it wasn’t going to wait for anything.</p>
<h2 id="heading-finding-a-teammate">Finding a Teammate</h2>
<p>The Hackathon was a two-day affair, over the course of a Thursday and Friday. </p>
<p>When I looked at the calendar for the date, I realized that I had a family commitment on Friday afternoon that I wouldn’t be able to avoid. The presentation and judging would both be on Friday, which meant that I absolutely <em>had to</em> find a teammate who would be able to present, or the project would be dead before I’d even written a line of code. </p>
<p>I approached the planners from our company’s smaller brand who I’d been in conversation with for several weeks already. I asked if any of them would be able to present our project to the judges. None seemed enthusiastic. A few told me they had meetings on Friday while others said they were nervous about public speaking.</p>
<p>Needing a teammate, I went straight to Oliver, the planner from our main brand who had such an active interest in my project. He was a popular guy with a kind face. His hair was greying, though he was in his mid-20s, and he had surprisingly made it to the role of senior planner within just four years out of college, when most took five to eight years to get to that point. He had a lot of awards at his desk, and plenty of snacks, too.</p>
<p>Oliver immediately agreed to present the project and said he was excited to do so. </p>
<p>We went downstairs to the Hackathon’s dedicated meeting space and we signed up as a team. We needed a name for our project so we called it PriceSeeker. </p>
<p>There were nine other teams competing, most of which were comprised of senior engineers. Some project managers and UX designers were also part of a few teams. With the exception of my planning teammate, everyone else competing belonged to our eCommerce department.</p>
<h2 id="heading-simplifying-the-design">Simplifying the Design</h2>
<p>I had my plan in mind going into the Hackathon: I’d build a simple website that would let users upload Excel lists of items. </p>
<p>My website would parse the Excel spreadsheet, retrieve the list of items, and request their prices from our Redis database. It would then return to the planners a new Excel spreadsheet containing items and their prices. </p>
<p>With this, instead of manually clicking through our website to check item prices, they’d be able to immediately see all relevant website prices at the click of a button. It would make price-checking a whole lot easier and more convenient.</p>
<p>We had two days to work on our project and then present it to the judges, who were high ranking leaders within our eCommerce department. My senior director of engineering — who had introduced me to the Hackathon in the first place and taught me about making an impact — was one of the judges. He was also available throughout the Hackathon to answer any coding questions. </p>
<p>Excited to begin, I sat down at my computer. </p>
<p>I soon got up from my computer, because I had very quickly hit a wall: I didn’t have enough coding knowledge to figure out how to set up a basic HTML website that could easily read from an uploaded Excel sheet. </p>
<p>I approached my senior director of engineering for advice, and he suggested I simplify my design and just make a form with a text area. Users would copy items from Excel into the form and submit it. </p>
<p>Upon submission, the pricing would be requested from our database. The pricing would then be returned in a simple HTML table, which users could copy into Excel if they wanted. </p>
<p>No longer needing to write code to read Excel documents simplified things a lot.</p>
<h2 id="heading-building-priceseeker">Building PriceSeeker</h2>
<p>Even with the help, it was still an intense day of near-constant coding. </p>
<p>I took some breaks to check in with our planners and get approval on the design. I grabbed plenty of snacks from Oliver’s desk. I also spoke with other engineers whenever I needed help or got stuck on the code.</p>
<p>I wasn’t alone, and I was grateful for the help, but it was my responsibility to keep pushing through the difficulties and put in the physical and mental effort of writing out all the code. </p>
<p>I was extremely aware of my disadvantage in the competition, but I was happy to find that by the end of the first day, I had managed to get a decent prototype working. It returned information for small lists of four or fewer items, but for larger lists it returned nothing at all. </p>
<p>The day was ending and I didn’t have the time to investigate or troubleshoot, so I uploaded PriceSeeker onto Github Pages, emailed the website address to several planners, and went home. Hopefully, a good night’s sleep and some time for responses would help me along my way.</p>
<p>When I got back to work on the second day, I found an email waiting for me from Oliver — he wasn’t able to get PriceSeeker working, but he helpfully sent me several screenshots showing what he’d tried. </p>
<p>Seeing the screenshots, I immediately realized that I hadn’t properly explained how to copy and paste items into the form. I emailed Oliver back a screenshot showing him how to do so, and he emailed me back two minutes later, showing me that it was working.</p>
<p>After taking some time to get into the proper headspace, I went to Oliver’s desk. There were several other planners around his desk and on his screen was PriceSeeker, which they were discussing.</p>
<p>Oliver had sent the website address to all the other planners on his team. The planners were discussing how amazing it would be to further explore collaboration between planning and engineering. I was excited by the enthusiasm, and especially by the possibility of opening new doors with this collaboration. </p>
<p>This especially excited Oliver, since he loved the idea of breaking through the barriers that siloed departments and closed them off from each other. Maybe we could create further opportunities for finding problems and impactful solutions by encouraging communication between departments.</p>
<p>Since I knew I wasn’t going to be around for the presentation, I spoke to Oliver, and we went over his five minute pitch. He started by displaying our working PriceSeeker website and showing it in action. He copied and pasted items into the form, submitted it, and explained why it was so useful to be able to get the prices instantly. </p>
<p>His demo went on to explain how “the sky's the limit,” with examples of other data that would be useful to receive. He explained the business impact of how our automation website would reduce manual effort and lead to an improved customer experience. </p>
<p>He concluded that though PriceSeeker currently only returned pricing, there was a lot more that was possible. It was amazing hearing him speak about the website's possibilities. He focused entirely on business terms like “reduced manual effort” and “increased annual sales,” and given that he was a planner himself, Oliver was able to talk about our project with far more accuracy than I ever could have.</p>
<p>When he finished his presentation, I asked questions to both learn more about our project's value and to give him additional practice at explaining its potential impact: “How much manual effort could be reduced?” </p>
<p>“How would automating the checking of our website data improve your abilities to order the right amount of inventory?” </p>
<p>“In addition to planning, what other teams or departments would benefit from automated checking of website data?” </p>
<p>“Why?”</p>
<p>I knew to ask these questions because I learned this question-asking technique from the book <em>Spin Selling</em>. <em>Spin Selling</em> acknowledges that sellers sometimes cannot present directly to buyers and need to rely on intermediaries to pass on the messages. The book advises coaching your intermediaries by asking them questions that get them to explain the product's benefits in their own words. </p>
<p>That’s exactly what I did, asking lots of questions that got Oliver to further explain all the many ways our project could add value.</p>
<p>About an hour before the judging would begin, I had to leave. I was sorry that I wouldn’t be able to be there for our presentation, but I was comforted to know that we were in good hands. </p>
<p>I wished my teammate good luck and asked a coworker to text me if my project placed in the top three.</p>
<h2 id="heading-the-results-are-in">The Results Are In</h2>
<p>After leaving, I sat on a train for two hours. On the way, I mentally prepared for what would happen once the contest was over. </p>
<p>I'd gotten the feeling that we were the only team that had extensively started planning even before the Hackathon was officially announced. I'd also gotten the impression that we were the only team who had prepared our presentation to focus exclusively on a business impact. </p>
<p>I had some confidence because of this, but I was still nervous because there were so many uncontrollable things that could prevent us from reaching the top three places or even winning the Hackathon.</p>
<p>I kept imagining all the things that could go wrong without me being able to do anything. Maybe it would turn out we’d done something wrong and we’d get disqualified somehow. Maybe Oliver wouldn't be able to present. Maybe another team would deliver a superb presentation that rocked the house. </p>
<p>While sitting on the train, I realized that planning to win the Hackathon was not something useful, as it wasn’t something I could control. I decided that — regardless of the results — I would continue working on my project and implement it in a way that would lead to an increase of $20,000-80,000 in profits. </p>
<p>I chose those numbers rather arbitrarily, but it felt like something achievable. To reach my goal, I knew there was still a lot of work that would have to be done after the Hackathon was over.</p>
<p>I got off the train and made it to my family event. Part of me was still somewhere else, but I knew there was nothing I could do now. I didn’t look at my phone for a bit, which is why it took some time before I saw the text. The results were in. My team had won.</p>
<p>For a brief moment, I was shocked, relieved, happy. I’d reached this point after so much work, so much waiting and struggling, and it looked like it was finally paying off. </p>
<p>Victory didn’t last long, because now I was overthinking all the negative possibilities again. To pull off this win, I’d done a lot of things at work I’d never expressly gotten permission to do. </p>
<p>I'd given the link to our database's documentation to planners who quite clearly were not members of our eCommerce department. I'd hosted our Hackathon project in my own personal GitHub rather than in our company's code repository. I'd been constantly sneaking off during lunch breaks and at the end of the day to talk to the planners, which meant my coworkers could argue that I was neglecting my regular workload. </p>
<p>Even more than all of this, I was worried about the social repercussions. I was extremely far from any level of seniority in my engineering department, so what kind of reception would I get for besting the more senior engineers?</p>
<h2 id="heading-after-the-hackathon">After the Hackathon</h2>
<p>I made it to work after the weekend, concerned for the worst, only to find that no one seemed to care much. </p>
<p>When I returned, a bunch of people gave me high-fives and wished me congratulations. But my regular day-to-day workload stayed the same as it was before the Hackathon. I was told by upper engineering management that there wasn't enough engineering leeway to let me or any other engineer be given official permission to work on PriceSeeker. </p>
<p>Our heads of planning said they were in the midst of a major restructuring and said they wouldn't be able to devote time to my project for at least several months. I was frustrated to find that, while I was receiving positive feedback from coworkers, all my efforts amounted to a neat side project I could be proud of, but wouldn’t be able to actually do anything with.</p>
<p>I had a lot of work to catch up on now that the Hackathon was over, so I went back to focusing solely on my workload, with 5-15 hours per week after work spent studying Selenium best practices. It took me about a month or two working on my skills to get to the point where I was finishing my workload in enough time to have a few hours during the day to spare here and there. </p>
<p>PriceSeeker was almost done and there was just a bit more coding that had to be done to fix all the bugs. I felt I needed maybe a day or two more, but without official permission, it would have to be my own project to secretly complete on my own. </p>
<p>None of my coworkers knew I was spending time on PriceSeeker, nor did they care, since I was getting my regular work done and submitted on time.</p>
<p>After some considerable effort and tinkering, I managed to solve all of PriceSeeker’s bugs. </p>
<p>Excitedly, I headed to the planners from our minor brand to show them the working model. They told me they didn’t need it anymore. I couldn’t believe it. I was so shocked that I could barely even ask what was wrong. </p>
<p>As I found out, the issue of incorrect pricing had been a temporary one caused by a recent change in how pricing would be displayed. At some point after the Hackathon, the pricing displays had been updated in a way that would let planners find any incorrect pricing a lot quicker. </p>
<p>In hindsight, I should have realized this during the lead-up to the Hackathon, but I must have been so enthusiastic about my plan that I hadn’t properly investigated all areas where it could go wrong. Regardless of why I’d missed it, this meant that PriceSeeker had been effectively useless for quite some time.</p>
<p>Oliver told me that PriceSeeker as it was would likewise be useless for our main brand. However, he told me that there <em>was</em> an issue where items on our website would occasionally “fall off.” This meant that certain items and colors that were in our inventory would accidentally get removed from our eCommerce store. </p>
<p>This happened rarely, but the planners wouldn't know about it until reviewing weekly eCommerce sales reports, noticing some items had zero sales, and then checking if they were on our website. At that point, they would mark the products to be returned to our website. </p>
<p>Once again, this was more manual work and less productivity than was optimal, and Oliver advised that it would be very useful if PriceSeeker could be modified to let them know whether or not an item was on our website.</p>
<p>After going through our database documentation, I realized it would be a very simple matter to query our database to see if an item was listed on our website or not, so I quickly updated PriceSeeker to also include that check. </p>
<p>Oliver told me that our eCommerce merchandisers were the ones who were responsible for quality checks of website inventory and they would benefit most from this new feature within PriceSeeker. I approached the eCommerce merchandisers for each of our brands and found that they were very happy with what I showed them. </p>
<p>They copied and pasted hundreds of items into it at once and quickly verified that PriceSeeker was properly reporting all items that were unlisted on our eCommerce store. And just like that, they began using it several times per week.</p>
<p>Over the next several weeks, I continued to talk to planners and merchandisers, trying to find other areas where PriceSeeker could be useful. </p>
<p>I learned that our planning department had recently set up a data science team. The team was responsible for building automated scripts and dashboards to help our planners make better decisions. Reporting unlisted eCommerce inventory had actually been on their to-do list. </p>
<p>I enjoyed speaking with the data science team and exchanging ideas, but with no official sanction to work on PriceSeeker or anything else, our conversations were mostly theoretical. Still, I was happy to know that my project had accomplished something and was finally seeing the light of day.</p>
<p>It wasn’t long afterward when I got an email from my consulting company’s human resources department. They wanted to schedule a meeting. </p>
<p>I went in to talk to them and was told there were going to be layoffs. Several consultants would not have their contracts renewed. I was one of them. I had three weeks’ notice before my contract ended. </p>
<p>I knew that the fashion brand had been facing a decline in sales and firing a consultant was easier than getting rid of a full-time employee. Nonetheless I was still quite surprised that I would be among those let go.</p>
<p>In my last few weeks, I tidied up my regular work and gave some extra attention to PriceSeeker. I wanted to see if I could quantify the financial impact it had made, but the value of detecting accidentally unlisted inventory would not be easy to quantify. </p>
<p>When I went to our eCommerce merchandisers, they told me its impact would be impossible to measure. There were so many complicating factors involved, such as how many unlisted items would be detected, what brand they were from, the popularity of those items, and how much inventory remained. </p>
<p>Oliver summed it up, “though we can’t give a monetary value to PriceSeeker, we are certain it has a positive impact on our bottom line.”</p>
<p>With my contract ended, I was left looking back at around seven months in a company where I’d had some amazing adventures, most exciting of which was our Hackathon. </p>
<p>After our Hackathon was over, many of my colleagues told me that I won because I “focused on a business impact.” Though they meant it as a compliment, I always felt hollow when I heard that being given as the sole reason. </p>
<p>Personally, I credit my win to actively preparing even before the Hackathon was officially announced. By doing so, I was able to continuously get the feedback I needed to improve my proposal so that it eventually had a legitimate business impact.</p>
<p>I couldn’t have done it without the help of others. So much of the work felt like it was up to me, like I had to be the one to push and discover and self-teach and work. </p>
<p>The truth is, I wasn’t alone. The ones who offered passion and enthusiasm — my senior directing of engineering and my teammate, Oliver — were the ones who pushed me to be part of a competition I wouldn’t have ever gone near two years earlier. </p>
<p>I’m still learning. I’m still trying new things. I’m still hoping I’ll find more of that collaboration that enabled me to create something helpful for my company and meaningful to my own journey.</p>
<p>Thinking back, it’s still hard for me to believe that someone like me, who had struggled so hard to land a career, would be able to enter the corporate world and turn their life around. </p>
<p>For me, the Hackathon was a second chance. And I made the most of it.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I did NOT code a collaborative writing app ]]>
                </title>
                <description>
                    <![CDATA[ By Eric Burel Twaikura, haikus but funnier As easy as ABC: some stranger on the Internet starts a 120 characters story, some stranger on the Internet finishes it. And that makes a Twaiku (tweet + haiku). Twaikus can be funny, serious, artistic, it’s ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-i-did-not-code-a-collaborative-writing-app/</link>
                <guid isPermaLink="false">66d45e3f4a7504b7409c3382</guid>
                
                    <category>
                        <![CDATA[ bubble ]]>
                    </category>
                
                    <category>
                        <![CDATA[ code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ lean startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ web ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 18 Feb 2020 17:19:33 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/02/code-free-1200-2.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Eric Burel</p>
<h2 id="heading-twaikura-haikus-but-funnier">Twaikura, haikus but funnier</h2>
<p>As easy as ABC: some stranger on the Internet starts a 120 characters story, some stranger on the Internet finishes it. And that makes a Twaiku (tweet + haiku). Twaikus can be funny, serious, artistic, it’s up to you. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/logo_256.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/twaiku.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>So, as a developer, implementing something like that shouldn't be hard, right? Yes, but no. Here is the story of how it took me multiple years to create Twaikura and how you could do the same in a matter of hours.</p>
<h2 id="heading-back-to-twentyparts-and-why-it-never-came-to-existence">Back to TwentyParts and why it never came to existence</h2>
<p>TwentyParts was my first “entrepreneurial concept” back in 2015. As you may guess, the idea is to write a story in 20 parts, with each part written by a different author. </p>
<p>I was a CS student at the time and it took me 2 months to release a first draft. The result was disastrous. I didn’t even know about the concept of a “framework”, picture the code. The concept was too complex, the interface unusable.</p>
<p>I did not give up. A few months later, in 2016, I came up with a simplified version of TwentyParts, HiKoo.  I limited the length of a story to 3 tweets. And instead of rushing to development, I created mocks using a marvelous tool named MarvelApp.</p>
<p>Now I had a great UI and all, but no working code. One more app that never came to existence.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/hikoo.png" alt="Image" width="600" height="400" loading="lazy">
<em>Looks good, doesn't work</em></p>
<p>Fast forward to now. I’ve graduated. I’ve built my consulting company, LBKE. I’ve developed complex SaaS platforms for multiple clients. And I've kept this question running in my head:</p>
<blockquote>
<p>What prevents me from recreating TwentyParts, now I am fast and skilled and over-confident?</p>
</blockquote>
<p>After all, it would only take a full work week nowadays. Yet there’s a problem: I am not a student anymore. With one spare hour here and there, a “full work week“ can span over a few months. Too slow.</p>
<h2 id="heading-how-to-code-fast-dont">How to code fast: don’t.</h2>
<p>I’ve explored thoroughly the realms of fast web development. You may have read my previous articles on freeCodeCamp about <a target="_blank" href="https://www.freecodecamp.org/news/how-i-built-an-app-with-vulcan-js-in-four-days-6368814077b1/">Vulcan, a framework based on Meteor that makes me very productive.</a></p>
<p>Those researches all lead me to the same conclusion: the best code is the code you don’t write. </p>
<p>There are a lot of ways NOT to write code, even for a developer. Scaffolding, declarative programming, using snippets, or using an ORM are all methods to circumvent writing code. Using open source is another great example. Some may even think that developers are a bit lazy – but aren't they?</p>
<p>Yet minimal skills in web development are still necessary. That means careful thinking, lots of doc reading, debugging and so on. In the end, the time needed to create a fully functional app can only be reduced this much.</p>
<p>You know what? Using a massive framework to speed up developments feels like cheating sometimes. What if I did not have those skills? What if I was not a developer? I would have no other choice than embracing the “no-code way”. And that’s what I’ve done.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/code-free-1200.png" alt="Image" width="600" height="400" loading="lazy">
<em>Relax, Code will be on vacation for the remainder of this article</em></p>
<h2 id="heading-sparkling-innovations-for-web-non-developers">Sparkling innovations for web non-developers</h2>
<p>No-code solutions have been pretty bad in the past. Limited, difficult to extend, proprietary, expensive, the list is long. But some recent tools are starting to be worthy enough.</p>
<p>I will focus specifically on Bubble. Its plugin system coupled with its data management features makes it the most complete solution on the market currently. Here are a few key features and how I used them to build Twaikura.</p>
<h3 id="heading-the-ui-editor">The UI editor</h3>
<p>Bubble proposes a WYSIWYG editor (What You See Is What You Get) to create the app user interface. You put your blocks of content wherever you want, and configure their content.</p>
<p>It’s grid-based so you can have pixel perfect alignment. It handles responsiveness. So you should be able to create designs as complex as you wish.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/ui-bubble.png" alt="Image" width="600" height="400" loading="lazy">
<em>Building Twaikura's interface using the WYSIWYG editor.</em></p>
<p>But I’ll be honest, I am not the hugest fan. More precisely, I am not very good with it. It’s very different both from writing HTML/CSS and from using web-based design tools like Figma, so there is a learning curve.</p>
<p>I ended up sticking myself to an old school Windows 98-ish style. With a little bit of imagination you could even believe it has some “V a p o r w a v e” aesthetic.</p>
<h3 id="heading-thinking-in-workflows">Thinking in workflows</h3>
<p>The most impressive feature of Bubble to me is its “Workflows”. It lets you describe complex process in a visual language. It can mix data management (validating and storing a Twaiku, sending an email) and user experience (resetting a form, refreshing the page) transparently. You don’t need to mentally split the workflow between frontend and backend as you would do in a traditional web app.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/workflows.png" alt="Image" width="600" height="400" loading="lazy">
<em>Twaiku creation workflow</em></p>
<p>This example workflow is triggered when the user wants to submit the second part of a Twaiku. It will create a "Twaiku End" in the database, link it with a "Twaiku Begin", and reset the form. I could also display a success message, send a mail to a moderator and so on. Visualizing the full workflow in a single timeline is very intuitive.</p>
<h3 id="heading-complete-data-management">Complete data management</h3>
<p>Bubbles comes with a relational database and complete filtering features. That means you can easily create both forms and list of data. For example, the “Read latest Twaikus” block will load all valid Twaikus.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/02/twaikus-list.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Plugins can help secure your content. For example, there is a ReCaptcha plugin to add CAPTCHAs to your form in a matter of minutes. This is important as security is usually left behind in the prototyping steps. Malevolent bots and hackers don't care that you are a "lean startup-er", and they won't miss an opportunity to spam or hack your website.</p>
<h2 id="heading-a-few-hours-of-work-for-an-app-that-works">A few hours of work for an app that works</h2>
<p>I won’t describe all features of Bubble, because it has a lot more. The conclusion is that it's been powerful enough to write an app like Twaikura. Instead of writing tons of crappy code that will end up in a dumpster, instead of creating a visual prototype as lively as Frankenstein’s Creature, I just created something that works.</p>
<p>Is my website great? Honestly, not yet. Does it do the job? Hell yes. I had fun creating it, it cost me no more than a few hours, and I am able to test the concept in the most direct possible way. The longest part was writing this article.</p>
<p>I especially recommend no-code tools for people who want to learn web development. Taking a lot of time to produce simple features can feel frustrating at first. Using a no-code tool alongside traditional programming is a way to keep having fun. It's instructive too, because, even if you don't write code, you still have to think like a developer: designing conditional workflows, structuring a database, validating forms... That's a win-win.</p>
<p>I won't become a no-code evangelist, but Bubble is a great addition to my tool belt. And it could be great addition to yours too!</p>
<p>Thanks for the read. If you liked this article, come try a Bubble app by creating your first Twaiku on <a target="_blank" href="http://twaikura.com">twaikura.com</a>!</p>
<p><a href="https://twitter.com/lbke_fr">
<img src="https://www.freecodecamp.org/news/content/images/2019/10/Medium-follow-2019.png" alt="LBKE banner twitter" width="600" height="400" loading="lazy">
</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is Quincy Larson's Net Worth? ]]>
                </title>
                <description>
                    <![CDATA[ People ask me how much I get paid all the time. It comes up on podcast interviews, Quora questions, and face-to-face discussions. And people search this question a lot, too. It's one of the top autocomplete options when you google my name. So for eve... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/quincy-larson-net-worth/</link>
                <guid isPermaLink="false">66b8d55bf583f6362a68ce1e</guid>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ freeCodeCamp.org ]]>
                    </category>
                
                    <category>
                        <![CDATA[ nonprofit ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Quincy Larson ]]>
                </dc:creator>
                <pubDate>Tue, 03 Dec 2019 07:08:21 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/12/Googlexyz-2.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>People ask me how much I get paid all the time. It comes up on podcast interviews, Quora questions, and face-to-face discussions.</p>
<p>And people search this question a lot, too. It's one of the top autocomplete options when you google my name.</p>
<p>So for everyone who's interested in my relationship with money, I've got good news.</p>
<p>I work full time at freeCodeCamp.org – a 501(c)(3) public charity. And since I'm on the board of directors, it means my compensation is public.</p>
<p>freeCodeCamp has earned GuideStar's Platinum Seal of Transparency for 2 years in a row. You can go there and browse our nonprofit's full 990 tax returns over there.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/ossia/status/1197978972493164551"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>But in case you're in a hurry, I'll save you some effort.</p>
<p>I made $60,000 last year.</p>
<p>That's less than I did in 2010 when I was working as a teacher.</p>
<p>And that's after several years of not accepting any compensation at all from freeCodeCamp.</p>
<p>What's more, I put around $150,000 of my own meager savings into freeCodeCamp over its first 3 years of life.</p>
<h1 id="heading-quincy-how-did-you-have-150000-saved-up-in-the-first-place-if-you-were-just-working-as-a-teacher">Quincy - How did you have $150,000 saved up in the first place if you were just working as a teacher?</h1>
<p>This is usually the second question people ask me. $150,000 is a lot of savings for a 30-something American to have on hand.</p>
<p>The answer is that my wife Jade and I are compulsive savers.</p>
<p>We worked for more than a decade and squirreled away as much as possible.</p>
<p>We also lived in China for much of that time, where the cost of living was much lower than in the US.</p>
<p>We managed to stay debt free by renting small suburban apartments, cooking our own meals, and studying at inexpensive public universities.</p>
<p>Our hobbies were either free or cash-flow positive.</p>
<p>For example, I would spend my weekends buying old arcade machines and video game systems on Craigslist, then selling them on eBay.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/KpRxksw2jOg" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p>We were saving up to afford a downpayment on a house in the San Francisco Bay Area – the most expensive housing market in the US.</p>
<p>When freeCodeCamp.org started to take off – and millions of people started to use it – we decided to abandon those dreams of owning a home in San Francisco.</p>
<p>Instead, I put that downpayment money toward paying for servers and getting help with freeCodeCamp's growing curriculum.</p>
<h1 id="heading-how-did-you-stay-afloat-for-years-with-negative-income">How did you stay afloat for years with negative income?</h1>
<p>Jade and I did two critical things to make this work:</p>
<ol>
<li><strong>Jade kept working full-time</strong> in accounting at a software company. Her benefits saved us $10,000s per year in health insurance costs – which are just a fact of life for people here in the US.</li>
<li><strong>We left San Francisco.</strong> After our daughter was born, we moved back to my home town of Oklahoma City – one of the least expensive places you can live in the US.</li>
</ol>
<p>We did what we could so that the freeCodeCamp community could continue to grow and thrive.</p>
<p>But this is not one of those "anything is possible" inspirational stories. Jade and I came from backgrounds of relative privilege. Both of Jade's parents went to college – which was rare in China at the time. And my father went to college, too.</p>
<p>The stars lined up for us. This made our many sacrifices non-fatal.</p>
<p>For most people, quitting your job to start a nonprofit would be a path to financial ruin. But since we had both worked for nearly a decade, we had the savings and the health insurance to see it through.</p>
<p>One thing's for sure, though. If my daughter had been born one year earlier, freeCodeCamp wouldn't exist. I would have had give up my dreams of running an education NGO and instead go get a job to support our family.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/12/main-qimg-9a2361bf28370e1aa02eceaa6ce260d1.jpeg" alt="Image" width="600" height="400" loading="lazy">
<em>Baby Jocelyn checking in</em></p>
<p>But as fate would have it, Baby Jocelyn was born after freeCodeCamp had already been online for 11 months. And in that 11 months, Jade had seen how many lives it was touching.</p>
<p>I was able to convince her that one day this would be a viable nonprofit, with enough donations coming in that we could keep it going.</p>
<h1 id="heading-where-we-go-from-here">Where we go from here</h1>
<p>freeCodeCamp is now one of the biggest programming sites on the internet. We have 1,500,000 YouTube subscribers. Our forum is now second only to Stack Overflow itself as a place to get programming help.</p>
<p>And <a target="_blank" href="https://www.freecodecamp.org/news/the-future-of-freecodecamp-5-year-anniversary/">we are only 5 years into our mission</a>.</p>
<p>The good news is that this year we are now "break even" – meaning I haven't had to plow any more of my personal savings into freeCodeCamp. We are finally able to cover the cost of servers and payroll.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/12/1_KB8Vq0dpx8hXJeWVaa6bWA.jpeg" alt="Image" width="600" height="400" loading="lazy">
<em>January 2018 - with Baby Quentin in one hand and freeCodeCamp's IRS Determination Letter of our tax-exempt charity status in the other.</em></p>
<p>But freeCodeCamp's budget is still comically small. To put our 2019 budget of $373,000 into perspective: I know individual developers in Silicon Valley who earn more money than that each year.</p>
<p>And we're trying to use that tiny sum to run a global nonprofit organization, and one of the world's biggest websites.</p>
<p>We can do so much more once we have a bigger budget to work with.</p>
<p>And I say this as someone who has personally spent $150,000 of his hard-earned teacher savings to help get this community off the ground.</p>
<p>If you've read this far, you clearly care about the freeCodeCamp community. So <a target="_blank" href="https://www.freecodecamp.org/donate">donate to freeCodeCamp</a>. You'll be able to deduct it from your taxes and everything.</p>
<p>You can <a target="_blank" href="https://www.freecodecamp.org/donate">make a one-time year end gift here</a>.</p>
<p>Or better yet – if you want to help us increase our monthly budget – you can <a target="_blank" href="https://www.freecodecamp.org/donate">make a monthly gift here</a>.</p>
<p>With more resources, we can help more people around the world. We can create more free programming courses for you and everyone else. And we can expand our curriculum faster.</p>
<p>Thanks for caring about the freeCodeCamp community – even if you just clicked through to see if I was secretly a millionaire. (I'm not. With my home mortgage, I'm not sure my net worth is even a positive number ?). </p>
<p>Have a fun, blessed holiday season with your friends and family.</p>
<p>I'll be right here, working to make freeCodeCamp an even better learning resource for you, your kids, and your grandkids.</p>
<p>There is so much more work to be done.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How Ruben Harris Used the Power of Stories to Break Into Startups ]]>
                </title>
                <description>
                    <![CDATA[ In this week's episode of the freeCodeCamp podcast, I interview Ruben Harris. Ruben runs Career Karma, a social network for people interested in attending coding bootcamp. He also hosts the Breaking into Startups Podcast. Ruben just finished Y Combin... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-ruben-harris-used-the-power-of-stories-to-break-into-startups-podcast/</link>
                <guid isPermaLink="false">66b8d3ca8cd1c2aa053d4976</guid>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ podcast ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Quincy Larson ]]>
                </dc:creator>
                <pubDate>Mon, 30 Sep 2019 07:04:49 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/09/54204732_130744494725588_25369589837234553_n.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this week's episode of the freeCodeCamp podcast, I interview Ruben Harris.</p>
<p>Ruben runs Career Karma, a social network for people interested in attending coding bootcamp. He also hosts the Breaking into Startups Podcast.</p>
<p>Ruben just finished Y Combinator, a startup accelerator, where he and his team raised their first round of venture capital funding.</p>
<p>Ruben grew up in Atlanta and worked in finance. He met his future co-founders - Ukrainian-born brothers Artur and Timur Meyster - years ago. The three of them agreed to spread out, get jobs in different industries, then later regroup to build a startup together.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/career-karma.jpeg" alt="Image" width="600" height="400" loading="lazy">
<em>Ruben and his co-founders Artur and Timur on stage at an event.</em></p>
<p>In this interview, Ruben shares his insights on coding bootcamps. He also shares what he learned going through Y Combinator. And he talks about his close bond with his co-founders.</p>
<h1 id="heading-communication-and-the-power-of-stories">Communication and the power of stories</h1>
<p>Ruben attributes much of his success to his skill at telling stories - a skill he still works to refine every day.</p>
<blockquote>
<p>"It's easy to think that the way you're going to rise is through your skills technically. But the way that you rise is actually through your non-technical skills and understanding how to communicate and be creative and manage your perception - which is also your story."</p>
</blockquote>
<p>Ruben failed to get into Y Combinator the first time he applied. He attributes this failure to challenges he faced when communicating what <a target="_blank" href="https://careerkarma.com">Career Karma</a> did and the value it could provide people.</p>
<p>He and his team had the coding chops. They knew a lot about higher education. They understood the role coding bootcamps played in the labor market. But they had trouble conveying all that.</p>
<p>Ruben pinpointed communication as the thing that was holding him back. He said the team made a decision to "recognize that we may not have everything figured out. And investing time in figuring it out will pay dividends later."</p>
<p>His hard work did indeed pay off. Career Karma got into Y Combinator, secured investors, and have been growing since.</p>
<h1 id="heading-breaking-into-startups">Breaking into Startups</h1>
<p>Before Career Karma, Ruben, Artur, and Timur created a tech career podcast called <a target="_blank" href="https://breakingintostartups.com/">Breaking Into Startups</a>.</p>
<p>Ruben says was inspired to start this podcast after moving to San Francisco and getting a job in tech. He realized how bad most of the advice out there was for people who were looking to do the same.</p>
<blockquote>
<p>"The advice that was given to me was if you want to break into tech, just move to the west coast, this magical place. You'll figure it all out. But for most people that's toxic advice. Most people will go through a psychological breakdown trying to make that transition happen. And the industry will chew them up."</p>
</blockquote>
<p>He wanted Breaking Into Startups to give people a more realistic glimpse into what career change was like.</p>
<blockquote>
<p>"We wanted to start documenting those stories on the podcast because the tech media wasn't really covering a lot of those stories. We realized for us to understand the shifts, it was important to talk with other people that were like us, who figured out how to get into these companies. So that's why we started featuring stories from people who were older or younger, from different sexes and religions, veterans. And we created a podcast around that became a source of truth and tactical advice that didn't really exist anywhere else."</p>
</blockquote>
<p>After having recorded more than 100 episodes over a span of 3 years, Ruben summarizes the commonalities between many of his guests:</p>
<blockquote>
<p>"At the end of the day, nobody has it all figured out. And similarly, when you're in a coding bootcamp or you're trying to learn a new skillset, you get imposter syndrome. But what actually eliminates impostor syndrome is realizing that everybody's lost."</p>
</blockquote>
<p>He continues:</p>
<blockquote>
<p>"If you feel comfortable, that's your body telling you that you're ready to push harder. You're not growing. Challenges give you growth. And growth is life."</p>
</blockquote>
<h1 id="heading-vocational-training-as-a-path-to-a-better-career-for-millions-of-americans">Vocational Training as a Path to A Better Career For Millions of Americans</h1>
<p>Ruben - himself a university graduate - is a champion of vocational education.</p>
<p>Pointing out that more than 7,000 Americans drop out of high school every day, Ruben says:</p>
<blockquote>
<p>"The only way to level up is through education. And I think that form of education is going to be a bootcamp that's run on its own, a bootcamp that's run by a college. I actually think that the big future is going to be employer-as-payer model. And you can see that with Adobe doing Adobe Digital Academy, you can see that with Microsoft, you can see that with Cognizant. With all kinds of things like that."</p>
</blockquote>
<p>He continues:</p>
<blockquote>
<p>"And the reason I think that is in the US alone, over $1 trillion is spent on post-secondary education. A lot of that training and education comes from corporate America. Companies are going to realize that they have to build talent in addition to buying talent. They spend so much money on university recruiting and events that have a very low return-on-investment. I think that apprenticeships are at the same stage that bootcamps were in 5 years ago, and they're going to become more and more en vogue."</p>
</blockquote>
<h2 id="heading-listen-to-the-full-interview">Listen to the full interview</h2>
<p>These are just some of the insights Ruben shared during my interview with him.</p>
<p>We also talked about his life growing up in Atlanta and the role of his parents and his faith.</p>
<p>I've learned a lot from Ruben over the three years I've known him, and I think you'll learn a lot from him to.</p>
<p>This interview is a 75 minute listen in your favorite podcast player app - just search for "freecodecamp" and you should find it.</p>
<p>If you have an Amazon Echo, you can just say "Alexa - play the freeCodeCamp podcast."</p>
<p>Or you can <a target="_blank" href="http://podcast.freecodecamp.org/ep-80-how-ruben-harris-used-the-power-of-stories-to-break-into-startups">listen to it right here in your browser</a>.</p>
<h3 id="heading-other-helpful-links">Other helpful links</h3>
<p>You can listen to Ruben interview me back in 2017 on <a target="_blank" href="https://breakingintostartups.com/quincy-free-code-camp/">this episode of Breaking into Startups</a> (50 minute listen).</p>
<p>During the podcast, Ruben also mentioned an <a target="_blank" href="https://breakingintostartups.com/76-gary-vaynerchuk-ceo-vaynermedia/">interview he did with Gary Vaynerchuk</a> (45 minute listen).</p>
<p>Ruben mentioned <a target="_blank" href="https://careerkarma.com/blog/letter-to-newbies-learning-to-code/">this article by his co-founder Artur Meyster</a>, about his life after completing a coding bootcamp.</p>
<p>Finally, you can <a target="_blank" href="https://twitter.com/rubenharris">follow Ruben on Twitter</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
