<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ali, The Product Alchemist]]></title><description><![CDATA[Software Engineer who loves to build impactful products.  I thrive on the journey of transforming innovative ideas into tangible, user-centric solutions that ma]]></description><link>https://blog.aliasad.me</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 08:47:42 GMT</lastBuildDate><atom:link href="https://blog.aliasad.me/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[What They Don’t Tell You About Finding Product-Market Fit]]></title><description><![CDATA[They told me I’d know product-market fit when I found it.

“You’ll feel the pull”, successful startup founders said

What they didn’t tell me? The pull comes from the wrong direction first.
I built videotoolkit.app as a clip finder. Simple premise: t...]]></description><link>https://blog.aliasad.me/what-they-dont-tell-you-about-finding-product-market-fit</link><guid isPermaLink="true">https://blog.aliasad.me/what-they-dont-tell-you-about-finding-product-market-fit</guid><category><![CDATA[startup]]></category><category><![CDATA[product market fit]]></category><category><![CDATA[Entrepreneurship]]></category><dc:creator><![CDATA[Ali Asad]]></dc:creator><pubDate>Fri, 25 Jul 2025 13:55:41 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1753451566510/20b62078-2247-414d-912c-fae8d79bf368.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>They told me I’d know product-market fit when I found it.</p>
<blockquote>
<p>“You’ll feel the pull”, successful startup founders said</p>
</blockquote>
<p>What they didn’t tell me? The pull comes from the wrong direction first.</p>
<p>I built <a target="_blank" href="https://videotoolkit.app/">videotoolkit.app</a> as a clip finder. Simple premise: type what you’re looking for — “subtle smirk during that heated argument” or “people celebrating on stage” — and find it instantly in hours of footage.</p>
<p>“Professional video editors will love this,” I thought. The ones drowning in 50+ hours of footage. The ones who bill $500/hour.</p>
<p>Instead, I got crickets from them. Then I stopped talking to the ICP, I thought I was building for. Instead, opened my doors to talk to any and every editor out there.</p>
<ul>
<li><p>Wedding videographers</p>
</li>
<li><p>YouTubers, Content Creators</p>
</li>
<li><p>Niche Gamers and whatnot.</p>
</li>
</ul>
<p>Not exactly the enterprise clients I could pitch to VCs.</p>
<h1 id="heading-the-pmf-fairy-tale-vs-reality"><strong>The PMF Fairy Tale vs Reality</strong></h1>
<p>Here’s the product-market fit story everyone sells:</p>
<ol>
<li><p>Find a painful problem</p>
</li>
<li><p>Build the perfect solution</p>
</li>
<li><p>Watch grateful customers throw money at you</p>
</li>
<li><p>Update your LinkedIn to “Founder | We’re Hiring”</p>
</li>
</ol>
<p>Here’s what actually happened:</p>
<ol>
<li><p>Found what I thought was a painful problem</p>
</li>
<li><p>Built a solution I’d personally use</p>
</li>
<li><p>Watched my “perfect customers” treat me like spam</p>
</li>
<li><p>Desperately DMed anyone who’d ever touched a video file</p>
</li>
</ol>
<p>That fourth step? That’s where the magic happened.</p>
<h1 id="heading-your-first-customers-will-confuse-you"><strong>Your First Customers Will Confuse You</strong></h1>
<p>A gaming YouTuber messaged me: “Can this find rage moments in my streams?”</p>
<p>My brain: “This is for professionals to increase productivity”</p>
<p>My bank account: “Say yes, idiot.”</p>
<p>He wasn’t looking for “establishing shot of city skyline.” He wanted “player throws controller” and “epic fail compilation” moments.</p>
<p>Same tool. Completely different universe.</p>
<p>Then came the course creator: “I have 40 hours of workshops. Can it find every time someone asks about pricing?”</p>
<p>The wedding videographer: “First dance reactions from different angles?”</p>
<p>The documentary filmmaker: “Anytime someone says ‘America’ with emotion?”</p>
<p>None of these were on my product roadmap. All of them were talking about real pain points.</p>
<h1 id="heading-the-myth-of-the-ideal-customer"><strong>The Myth of the “Ideal” Customer</strong></h1>
<p>You know what professional editors at production houses told me?</p>
<p>“Interesting.” “We’ll consider it for next quarter.” “Send me more information.”</p>
<p>And the reason is they have hired an assistant to that boring, mundane job, because they can throw money at problems like that.</p>
<p>And they have to get approvals to use a tool like this.</p>
<h1 id="heading-product-market-fit-is-just-pattern-recognition"><strong>Product-Market Fit Is Just Pattern Recognition</strong></h1>
<p>After three months of “wrong” customers, patterns emerged:</p>
<p><strong>They all had the same core problem:</strong> Too much footage, not enough time.</p>
<p><strong>But different triggers:</strong></p>
<ul>
<li><p>Vlogger: “I know there’s gold in this pile of footage”</p>
</li>
<li><p>Podcast Editor: “The guest revealed absolute gems in this 3 hour long podcast, can you help me create a teaser for this.”</p>
</li>
<li><p>Wedding videographers: “Need all the emotional moments for the highlight reel”</p>
</li>
</ul>
<p><strong>Same feature, different value:</strong></p>
<ul>
<li><p>Professionals wanted efficiency</p>
</li>
<li><p>Creators wanted discovery</p>
</li>
</ul>
<p>I didn’t know who I was selling to because I didn’t cast a wider net.</p>
<h1 id="heading-the-drift-is-the-strategy"><strong>The Drift Is the Strategy</strong></h1>
<p>Week 1: “Search your videos like ChatGPT”</p>
<p>Week 6: “Find any moment in your videos”</p>
<p>Week 10: “Never miss a viral clip again”</p>
<p>Week 16: “Rough Cut Assistant that turns raw footage to assembly”</p>
<p>Notice the drift? From professional tool to universal search.</p>
<p>Each iteration came from actual usage:</p>
<ul>
<li><p>Gamers searching “clutch play”</p>
</li>
<li><p>Podcasters finding “quotable moments”</p>
</li>
<li><p>Educators locating “student breakthrough”</p>
</li>
</ul>
<p>The product didn’t change. The positioning did.</p>
<h1 id="heading-what-pmf-actually-feels-like"><strong>What PMF Actually Feels Like</strong></h1>
<p>It’s not a hockey stick moment. It’s more like:</p>
<p>Someone pays without asking for a discount.</p>
<p>Then they tell someone else.</p>
<p>Support emails shift from “How do I…?” to “Can it also…?”</p>
<p>You stop explaining what it does. People just get it.</p>
<p>A random tweet about your tool gets 50 replies of “I need this.”</p>
<p>You realize you haven’t pitched anyone in weeks.</p>
<h1 id="heading-the-metrics-that-matter-and-the-ones-that-dont"><strong>The Metrics That Matter (And the Ones That Don’t)</strong></h1>
<p><strong>Vanity metrics I tracked:</strong></p>
<ul>
<li><p>Total users</p>
</li>
<li><p>Website visits</p>
</li>
<li><p>Feature adoption rates</p>
</li>
</ul>
<p><strong>Metrics that actually predicted PMF:</strong></p>
<ul>
<li><p>Time from signup to first export</p>
</li>
<li><p>Number of searches per session</p>
</li>
<li><p>“Holy shit this is magic” comments</p>
</li>
<li><p>Unsolicited Twitter mentions</p>
</li>
<li><p>Credit cards entered without free trial</p>
</li>
</ul>
<p>The last one? That’s when you know you’re onto something.</p>
<h1 id="heading-ecp-icp-the-journey-nobody-maps"><strong>ECP → ICP: The Journey Nobody Maps</strong></h1>
<p>Here’s what startup advice gets backwards:</p>
<p>They tell you to find your ICP first. Ideal Customer Profile. The perfect user who desperately needs your solution.</p>
<p>But you can’t find your ICP without first finding your ECP — Early Customer Profile.</p>
<p>And ECPs are messy.</p>
<p>My ECPs:</p>
<ul>
<li><p>Used the product “wrong”</p>
</li>
<li><p>Asked for features I’d never considered</p>
</li>
<li><p>Paid less than my target price</p>
</li>
</ul>
<p>But here’s the thing: ECPs teach you who your ICP actually is.</p>
<h1 id="heading-the-wide-net-strategy"><strong>The Wide Net Strategy</strong></h1>
<p>Most founders are terrified of the wide net.</p>
<p>“You’ll dilute your message!” “You’ll build the wrong features!” “You’ll attract bad customers!”</p>
<p>You know what’s worse than bad customers? No customers.</p>
<p>The wide net isn’t about being everything to everyone. It’s about learning who everyone actually is.</p>
<p>My net caught:</p>
<ul>
<li><p>Podcasters who taught me about what makes a “good trailer”</p>
</li>
<li><p>Wedding videographers who proved emotional moments matter more than technical cuts</p>
</li>
</ul>
<p>Each “wrong” customer refined my understanding of the right one.</p>
<hr />
<p>Currently building videotoolkit.app and learning that finding your ICP requires kissing a lot of ECP frogs first. What “wrong” customers taught you the most about your right ones?</p>
]]></content:encoded></item><item><title><![CDATA[Multi-Tenant Architecture: Whys, Whats & Hows]]></title><description><![CDATA[The statement "Data is the new currency" has become quite a cliché. However, it's not incorrect; companies strive to understand their customers better to serve them more effectively. Data is a company's most significant asset, and they establish proc...]]></description><link>https://blog.aliasad.me/benefits-of-multi-tenant-architecture-in-saas</link><guid isPermaLink="true">https://blog.aliasad.me/benefits-of-multi-tenant-architecture-in-saas</guid><category><![CDATA[SaaS]]></category><category><![CDATA[architecture]]></category><category><![CDATA[System Architecture]]></category><category><![CDATA[System Design]]></category><category><![CDATA[#multitenancy]]></category><category><![CDATA[scalability]]></category><dc:creator><![CDATA[Ali Asad]]></dc:creator><pubDate>Wed, 22 May 2024 11:09:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1712669571224/575c0eda-aec5-44ba-bc29-c3b10771e43a.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The statement "Data is the new currency" has become quite a cliché. However, it's not incorrect; companies strive to understand their customers better to serve them more effectively. Data is a company's most significant asset, and they establish processes to protect it. When a company uses a SaaS platform, they entrust their most prized possession to a third party. Any compromise to this data could pose a severe risk to their survival. Consequently, SaaS providers must adhere to stringent compliance and security protocols.</p>
<p>SaaS providers also need to be cost-efficient, and this is where the concept of multi-tenancy comes into play. Multitenancy allows for both security and cost efficiency by enabling the sharing of hardware resources among multiple clients, while ensuring the isolation and secure storage of each client's data.</p>
<p>Let's dive deeper into the types of multi-tenant architecture and their respective benefits.</p>
<h1 id="heading-what-is-multi-tenant-architecture">What is Multi-Tenant Architecture?</h1>
<p>Imagine an apartment building where each tenant has their own individual apartment. This apartment building represents a SaaS platform, and the tenants are the different companies using this platform.</p>
<p>In a traditional housing scenario, each family would need to build and maintain their own house, which is resource-intensive and costly. Similarly, without multi-tenant architecture, each company would need to create and manage their own separate infrastructure, leading to high costs and inefficiencies.</p>
<p>However, in our apartment building analogy, the building's structure (like the multi-tenant architecture) provides shared resources such as electricity, water, and security systems. Each apartment is secure and isolated, ensuring that what happens in one apartment doesn't affect the others.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1716118759366/98f906d2-88b7-402f-909c-e2de4e93557a.png" alt class="image--center mx-auto" /></p>
<p>This mirrors how multi-tenant architecture allows multiple companies to share the same hardware resources while keeping their data secure and isolated from each other.</p>
<p>Just as tenants trust the building management to maintain the shared resources and keep the building secure, companies trust SaaS providers to manage the infrastructure and ensure data security. By sharing resources efficiently, costs are reduced for everyone, while security and isolation are maintained.</p>
<h1 id="heading-how-to-implement-multi-tenant-architecture">How to Implement Multi-Tenant Architecture</h1>
<h2 id="heading-design-principles">Design Principles</h2>
<ul>
<li><h3 id="heading-data-isolation">Data Isolation</h3>
</li>
</ul>
<p>Data isolation ensures that each tenant's data is segregated from others. This can be achieved through different database strategies, which we'll discuss later. The goal is to prevent any tenant's data from being accessible to others, maintaining privacy and security.</p>
<ul>
<li><h3 id="heading-tenant-identification">Tenant Identification</h3>
</li>
</ul>
<p>Tenant identification involves uniquely identifying each tenant within the system. This is typically done using a tenant ID, which is passed along with every request. Ensuring accurate and efficient tenant identification is crucial for maintaining data integrity and security.</p>
<ul>
<li><h3 id="heading-resource-allocation">Resource Allocation</h3>
</li>
</ul>
<p>Resource allocation involves distributing system resources such as CPU, memory, and storage among tenants. One of the common problems is noisy neighbor. Where one tenant suffocates other tenants because it consumes disproportionate amount of resources.</p>
<p>This can be mitigated through the following techniques:</p>
<ul>
<li><p>Resources Isolation by containerizing tenants in their own VMs.</p>
</li>
<li><p>Applying rate limits, quotas and/or throttling utilization of resources.</p>
</li>
<li><p>Using QoS policies to ensure high priority tasks receive necessary resources under heavy load.</p>
</li>
<li><p>Monitoring and auto-scaling to allow load balancing.</p>
</li>
</ul>
<h2 id="heading-architectural-patterns">Architectural Patterns</h2>
<ul>
<li><h3 id="heading-shared-database-shared-schema">Shared Database, Shared Schema</h3>
</li>
</ul>
<p>In this pattern, all tenants share the same database and schema. Tenant data is distinguished by a tenant identifier column in each table. This approach is cost-effective and simple to implement, but may pose challenges in terms of performance and data isolation.</p>
<ul>
<li><h3 id="heading-shared-database-separate-schema">Shared Database, Separate Schema</h3>
</li>
</ul>
<p>Here, all tenants share the same database, but each tenant has its own schema. This offers better data isolation compared to the shared schema approach and can simplify data management. However, it can lead to higher complexity in managing the database and potentially increased costs.</p>
<ul>
<li><h3 id="heading-separate-database">Separate Database</h3>
</li>
</ul>
<p>Each tenant has its own database. This pattern provides the highest level of data isolation and security but at the cost of increased resource usage and management complexity. It's ideal for tenants with very different requirements or high security needs.</p>
<ul>
<li><h3 id="heading-hybrid-approach">Hybrid Approach</h3>
</li>
</ul>
<p>It is not very common approach, but is mostly used in microservices architectures. This approach was devised considering that not all resources and data require the same level of isolation and security. Therefore, some parts of the data can be housed in a single-tenant architecture, while other parts can be in a multi-tenant environment, creating a mixed-tenant architecture.</p>
<h2 id="heading-technology-stack">Technology Stack</h2>
<ul>
<li><h3 id="heading-database-technologies">Database Technologies</h3>
</li>
</ul>
<p>Choosing the right database technology is crucial. Relational databases like PostgreSQL and MySQL are popular for their robust support of schemas and complex queries. NoSQL databases like MongoDB can offer more flexibility for certain use cases.</p>
<ul>
<li><h3 id="heading-middleware">Middleware</h3>
</li>
</ul>
<p>Middleware components, such as API gateways and message brokers, play a vital role in handling tenant-specific routing and communication. They ensure requests are properly directed based on the tenant ID and can help in load balancing and rate limiting. These strategies are required mostly where every tenant has a separate database, otherwise middlewares are mostly placed at the application level.</p>
<ul>
<li><h3 id="heading-application-layer">Application Layer</h3>
</li>
</ul>
<p>The application layer must be designed to handle tenant-specific logic, ensuring that tenant IDs are correctly processed at every level. This layer could also be placed at middlewares usually provided by common backend frameworks like Nest.js, Express.js, Sprint Boot etc.</p>
<h2 id="heading-implementation-details">Implementation Details</h2>
<p>What is the best approach for you, you may ask. Well the answer is... <strong><em>It Depends</em></strong>. Like every other system design decision depends on your actual use case. Every approach has its own pros and cons, and you have to pick the approach that works for your system best.</p>
<p>I can only tell what I did, and I learned along the way.</p>
<h3 id="heading-use-case">Use Case</h3>
<p>Our system was an ERP for restaurants with potentially 10,000+ tenants. Few notable aspects which I considered for taking the decision are as follows:</p>
<ul>
<li><p>Tech stack: Nest.js, Postgres, TypeORM, AWS Cognito for Auth-n</p>
</li>
<li><p>Monorepo with monolith architecture of the system.</p>
</li>
<li><p>Tenants had mainly 2 types (with other subtypes) of users of their systems: Customers &amp; Employees</p>
</li>
<li><p>Being a startup, our company also had 2 major constraints: Limited Time and Limited Funding.</p>
</li>
</ul>
<p>So we had to keep it scalable and also make the refactor in the least amount of time, along with other team working on building features in the old architecture.</p>
<p>We went for shared database, separate schema approach. It provided us the route to refactor our code fastest and the fact that Postgres can support 300,000 schemas. So it means we can scale further down the lane.</p>
<p>We didn't go for shared database &amp; shared schema, because we wanted to ensure logical isolation of data. We also didn't want to be at the mercy of a developer's mistake. If a single 'where' condition is missed, the entire data isolation goes down the drain.</p>
<p>Separate databases were out of the question at this stage of the startup. We didn't have clients demanding utmost isolation, and our limited financial resources played a part in this decision.</p>
<h3 id="heading-implementations">Implementations</h3>
<p>There are a bunch of implementation details that I can't go into because of the NDA, but I found this article a good starting point for anyone who is trying to implement it. <a target="_blank" href="https://github.com/thomasvds/nestjs-multitenants">https://github.com/thomasvds/nestjs-multitenants</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1716118804076/5d96e271-866d-4271-b9e7-d0437b1daf44.png" alt class="image--center mx-auto" /></p>
<p>This is an earlier draft of what our request lifecycle looked.</p>
<h3 id="heading-lessons-learned">Lessons Learned</h3>
<p>I have to put it out there that TypeORM was not a wise decision to use in this project. It doesn't have much to do with multi-tenant architecture, but I want to stress on it. If you have a simple and basic project, be my guest, use it as you may like. But if you are building an ERP or enterprise solution, never go for ORMs. Build your own wrappers around the database connectors. Or you may even build wrappers around ORMs but do not use ORMs directly.</p>
<p>Another challenge in such architectures is performing database migrations. Since every single migration has to be run across all schemas. So in our case, the time required to run migrations was directly proportional to the number of our clients :/ So it could take hours before our system is ready to serve requests.</p>
<p>If I had to retake the decision of choosing our approach, I might go for Shared Database, Shared Schema approach with Row level security of Postgres. I have heard good things about it.</p>
<h1 id="heading-conclusion">Conclusion</h1>
<p>Multi-tenant architecture offers numerous benefits, from cost savings to scalability. There's no perfect architecture, there's no perfect size fits all. Its all a game of nuances, pieces of the puzzle that fit your needs. You try your best to make stuff work with the unique set of circumstances you are faced with.</p>
<p>Make sure to weigh the pros and cons carefully and make a decision with open minds. Keep studying and be open to new ideas, look what others are doing, try understanding their unique perspectives and keep evolving.</p>
]]></content:encoded></item><item><title><![CDATA[HTTP Requests vs WebSockets vs Server-Sent Events]]></title><description><![CDATA[We all crave apps that run Blazingly FAST even faster than a caffeinated cheetah. No one wants their Valorant frames doing the limbo, or waiting for messages as if they're delivered by snail mail. And who wants stale Figma designs? Not us!
So, today,...]]></description><link>https://blog.aliasad.me/http-requests-vs-websockets-vs-server-sent-events</link><guid isPermaLink="true">https://blog.aliasad.me/http-requests-vs-websockets-vs-server-sent-events</guid><category><![CDATA[Web Development]]></category><category><![CDATA[APIs]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[software development]]></category><category><![CDATA[backend]]></category><dc:creator><![CDATA[Ali Asad]]></dc:creator><pubDate>Sat, 23 Sep 2023 16:55:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1695480038472/36a644fe-72b1-4301-aee4-f70e9514b494.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We all crave apps that run Blazingly FAST even faster than a caffeinated cheetah. No one wants their Valorant frames doing the limbo, or waiting for messages as if they're delivered by snail mail. And who wants stale Figma designs? Not us!</p>
<p>So, today, we're spilling the beans on how to keep your digital world running like a Formula 1 racecar! 🏁</p>
<h1 id="heading-how-rest-apis-work">How REST APIs work</h1>
<p>Before we delve into the heart of the competition, let's understand how traditional REST APIs work. REST (Representational State Transfer) APIs rely on HTTP requests (GET, POST, PUT, DELETE) to exchange data between clients and servers. These requests are stateless, meaning that each request must contain all the information needed. While robust, REST has its limitations when it comes to real-time updates.</p>
<h1 id="heading-techniques-for-receiving-real-time-data"><strong>Techniques for Receiving Real-Time Data</strong></h1>
<p>There are a lot of communication protocols to send/receive data in realtime but we are gonna discuss relatively simpler ones today:</p>
<ol>
<li><p>Short Polling</p>
</li>
<li><p>Long Polling</p>
</li>
<li><p>WebSockets</p>
</li>
<li><p>Server-Sent Events (SSE)</p>
</li>
</ol>
<h2 id="heading-1-short-polling">1. Short Polling</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1695486034566/f8ad427e-3567-45e9-a13e-774c4cb6c005.png" alt class="image--center mx-auto" /></p>
<p>Short polling involves clients sending periodic HTTP requests to the server at fixed intervals, asking if there's new data. It's like a child repeatedly asking, "Are we there yet?" during a long car ride.</p>
<h3 id="heading-pros">Pros</h3>
<ul>
<li><p>Simple &amp; quick to implement</p>
</li>
<li><p>Best for Prototyping and building Proof of concepts</p>
</li>
</ul>
<h3 id="heading-cons">Cons</h3>
<ul>
<li><p>Generates frequent network traffic</p>
</li>
<li><p>Inefficient</p>
</li>
<li><p>Delays in data retrieval can make real-time feel more like "near-time."</p>
</li>
</ul>
<h3 id="heading-applications">Applications</h3>
<p>Short polling is ideal for applications where slight delays are acceptable, such as news feeds.</p>
<h2 id="heading-2-long-polling">2. Long Polling</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1695486132815/274b84ed-2a93-46d7-a30b-2281e4ee0195.png" alt class="image--center mx-auto" /></p>
<p>Long polling is a more intelligent approach. The client sends an HTTP request, but the server doesn't respond immediately. Instead, it holds the request open until new data is available or a connection timeout occurs.</p>
<p>In the above example, say the connection timeout is 30 seconds, if the server doesn't have data to send within this time, the connection will close. The client will have to send another request.</p>
<h3 id="heading-pros-1">Pros</h3>
<ul>
<li><p>Reduces the frequency of HTTP requests as compared to short polling.</p>
</li>
<li><p>Offers near-real-time updates without overwhelming the server.</p>
</li>
</ul>
<h3 id="heading-cons-1">Cons</h3>
<ul>
<li><p>Not as efficient as Websockets or SSE.</p>
</li>
<li><p>May result in frequent connection timeouts if not managed correctly.</p>
</li>
</ul>
<h3 id="heading-applications-1">Applications</h3>
<p>Long polling is great for applications that require low-latency updates, like chat apps and real-time notifications.</p>
<h2 id="heading-3-websockets">3. WebSockets</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1695487027942/bff994aa-d1d4-4e54-8a3f-ca856bf4a3fe.png" alt class="image--center mx-auto" /></p>
<p>WebSockets establish a persistent, full-duplex connection between the client and server, enabling bidirectional communication. It's like having a phone line where both parties can talk freely without repeatedly dialing.<br />If the connection breaks, the client has to implement a mechanism for reconnecting with the server.</p>
<h3 id="heading-pros-2">Pros</h3>
<ul>
<li><p>Low latency and true real-time capabilities.</p>
</li>
<li><p>Ideal for interactive applications, multiplayer games, and collaborative tools.</p>
</li>
</ul>
<h3 id="heading-cons-2">Cons</h3>
<ul>
<li><p>Requires more complex server-side implementation.</p>
</li>
<li><p>Firewalls or proxies can hinder WebSocket connections.</p>
</li>
</ul>
<h3 id="heading-applications-2">Applications</h3>
<p>WebSockets excel in applications requiring real-time interaction, such as online gaming, online collaboration tools and chat applications.</p>
<h2 id="heading-4-server-sent-events-sse">4. Server-Sent Events (SSE)</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1695487342083/e0a672c1-6d42-4111-9399-71572d6c82ac.png" alt class="image--center mx-auto" /></p>
<p>SSE is a unidirectional communication method where the server sends updates to the client over a single HTTP connection. If the connection breaks, the client has to implement a mechanism for reconnecting with the server.</p>
<h3 id="heading-pros-3">Pros</h3>
<ul>
<li><p>Lightweight and easy to implement.</p>
</li>
<li><p>Well-suited for applications where the server primarily pushes data to clients, like stock tickers and live scoreboards.</p>
</li>
</ul>
<h3 id="heading-cons-3">Cons</h3>
<ul>
<li><p>Limited to one-way communication from server to client.</p>
</li>
<li><p>Lacks the full-duplex capabilities of Websockets.</p>
</li>
</ul>
<h3 id="heading-applications-3">Applications</h3>
<p>SSE is ideal for scenarios where you only need server-to-client data updates, such as stock market tickers and live blog feeds.</p>
<h1 id="heading-the-verdict">The Verdict</h1>
<p>In this epic battle of real-time communication technologies, the right choice depends on your project's unique needs. Short polling, long polling, Websockets, and SSE each have their strengths and weaknesses, so choose wisely. Whether you want to stay updated on stock prices or host a real-time gaming event, there's a real-time communication solution ready for your needs. Make the right choice, and let your project's real-time journey begin!</p>
<p>Stay tuned for more in-depth and hands-on articles related to each one of these.</p>
]]></content:encoded></item><item><title><![CDATA[How to build a STARTUP with ZERO experience]]></title><description><![CDATA[The classic tale of every CS grad's dreams – we're talking about the kind of stories that make you feel like you're about to embark on a quest to discover the next legendary treasure, like the tech-savvy Indiana Jones! 🚀🌟
We've all been there, righ...]]></description><link>https://blog.aliasad.me/how-to-build-a-startup-with-zero-experience</link><guid isPermaLink="true">https://blog.aliasad.me/how-to-build-a-startup-with-zero-experience</guid><category><![CDATA[Startups]]></category><category><![CDATA[Entrepreneurship]]></category><category><![CDATA[solopreneur ]]></category><category><![CDATA[full stack]]></category><category><![CDATA[business]]></category><dc:creator><![CDATA[Ali Asad]]></dc:creator><pubDate>Sun, 17 Sep 2023 17:43:55 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1694965566632/bea57e30-e482-4fc0-9c92-b9d513861a78.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The classic tale of every CS grad's dreams – we're talking about the kind of stories that make you feel like you're about to embark on a quest to discover the next legendary treasure, like the tech-savvy Indiana Jones! 🚀🌟</p>
<p>We've all been there, right? Growing up, we've idolized tech entrepreneurs like Bill Gates, Mark Zuckerberg, and Steve Jobs, daydreaming about creating the next Facebook, Instagram, or Spotify. Well, folks, today, I'm here to spill the beans on my own epic adventure, a tale of how I conjured up my very first startup with ZERO experience, sprinkled with the invaluable lessons I picked up along the way. So, grab your digital map and your virtual fedora; it's time for a journey you won't soon forget! 💼🔍💡</p>
<h1 id="heading-ideation">Ideation</h1>
<p>During my Senior Year of University, we had a course in Entrepreneurship for which we had to build a real-life startup. It could be anything that could generate revenue. My classmates worked on a wide range of things like clothing e-commerce stores, online bakeries, and online marketplaces for a variety of things. For me, building e-commerce stores or an IT-based services business is boring because there's not much risk involved.</p>
<p>It was a golden opportunity for me to execute any of the ideas that I had been holding on to. I with 2 of my group mates, performed a feasibility analysis on all of our ideas and chose 3 of our best ideas. After a lot of research on those ideas, understanding the problems, marking out the solutions, figuring out all the distribution channels, exploring the potential markets, and so on. We finally came down to 1 idea that seemed the most feasible.</p>
<h1 id="heading-validation-phase">Validation Phase</h1>
<p>The early validation starts from your close circles, your friends, family, mentors, and subject matter experts. You don't get real validation from friends and family per se but you start thinking about that idea critically, and you find loopholes in your idea or ways you could enhance your idea. Basically, it's a litmus test, but if you have something like SpaceX in your mind, you might get ridiculed because your goal seems unachievable to regular people(aka your friends and family).</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1694376336990/00f2e527-18b2-4b40-89c3-9ee162f2bed6.jpeg" alt class="image--center mx-auto" /></p>
<p>So take this point with a grain of 🧂, although it made sense in our case but it may or may not make sense in your case.</p>
<p>During the very early stages, we had to do a lot of presentations, create pitch decks, a lot of public-speaking to the faculty and classmates. This helped me build confidence over time to not shy away from speaking in front of large audiences, and believe me I was so shy that if someone would ask me my name in public gatherings I would freeze (jk, exaggerated a bit too much😅 but you get my point). At this point, I knew what problem we were targeting, what we were building, why we were building, how are we solving that problem and what competitive advantage we had.</p>
<p>There's this thing called <strong>BMC</strong> (Business Model Canvas) which is a tool for <strong><em>visualizing a business model in a simple, structured manner</em></strong>. This method can lead to a better understanding of your market segments, value proposition, distribution channels, revenue streams etc. It gives you clarity of thought about your idea and helps you find any piece you are missing that could be leveraged or anything that can be a blocker for the whole business.</p>
<h2 id="heading-what-mistakes-do-people-often-make">What mistakes do people often make?</h2>
<p>Most people build a solution and then find a problem for which they are building the solution. That is quite a naive approach to building a startup. You gotta</p>
<ul>
<li><p><em>know</em> the <strong>problem</strong>,</p>
</li>
<li><p><em>feel</em> it in its <strong>depth</strong></p>
</li>
<li><p><em>understand</em> it better than <strong>most</strong> <strong>people</strong></p>
</li>
</ul>
<p>only then you can build a solution, that no one has been able to find and build before.</p>
<p>In cases where founders know what the problem is and what is their unique proposition, their employees don't know about it. It apparently doesn't cause any harm, but if you observe it critically you realize that this closes the feedback loop where employees can contribute to the solutions that you are building because they don't understand the core business value.</p>
<h2 id="heading-validation-with-target-market-segment">Validation With Target Market Segment</h2>
<p>With all that said, it is highly advisable to not start the development process until you have some paying customers for the said product/service. For that purpose, we tried selling the idea to a handful of clients, but there was no luck initially. The response was quite like a scene from Silicon Valley</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1694376117272/1aa41fcd-adb6-4af8-a777-d83ff3b7cbd3.jpeg" alt class="image--center mx-auto" /></p>
<p>The reason was we were so product-focused having the typical developer mindset, that we forgot to understand the perspective of our clients. So rather than selling the idea, we tried to sell the monetary benefit and user experience that they could achieve if we went ahead. So slowly we started to understand</p>
<ul>
<li><p>how the market works</p>
</li>
<li><p>what are the issues they are facing</p>
</li>
<li><p>which are the big players in the market</p>
</li>
<li><p>why they are surviving despite their flaws</p>
</li>
</ul>
<p>Once we figured out all that, we designed prototypes in Figma and pitched the final product with possibilities the business owners could achieve if they became our customers. As soon as we got validation from the actual target market, we went ahead with full throttle in developing the MVP.</p>
<h1 id="heading-minimum-viable-productmvp">Minimum Viable Product(MVP)</h1>
<p>An MVP represents the essential, bare-bones iteration of your products or services, enabling you to validate your concept in the real world with actual users. It's not about sacrificing quality; instead, it involves concentrating on the core features that address the primary issue your product intends to tackle.</p>
<h2 id="heading-minimum-lovable-product-mlp">Minimum Lovable Product (MLP)</h2>
<p>There's a fascinating concept known as MLP - the Minimum Loveable Product. It's not just about delivering the basics; it's about creating something that genuinely resonates with users and wins their affection. Personally, I find this idea quite appealing, but its applicability depends on your specific product/idea. For instance, if you're entering a market with many competitors, yet you offer a unique twist, the MLP approach can be a smart strategy to charm users. However, in cases where you're pioneering something entirely innovative, like ChatGPT when it first launched with no commercial competition, the MVP might be the way to go.</p>
<h2 id="heading-mvp-mindset">MVP Mindset</h2>
<p>Building an MVP can be quite a challenge for most Product people because you have to consider what <strong>The North Star Metric</strong> is for your customers. I have seen a lot of Product guys, even senior ones adding fluff to the MVP because it's very easy to get distracted. Building an MVP is a very crucial step to ship the most value-driving stuff first because of the following reasons:</p>
<ol>
<li><p>Resource Allocation Efficiency: Startups often operate on tight budgets and limited resources. Developing an MVP enables you to direct your resources where they matter most, reducing the risk of depleting your budget prematurely.</p>
</li>
<li><p>Rapid Market Entry: Time is crucial in the startup world. An MVP gets your product in the hands of users faster, allowing for quick testing and iteration. This swift feedback loop can be a game-changer.</p>
</li>
<li><p>Real-World Feedback: While you may believe you have the perfect product, reality often has different plans. An MVP helps you gather valuable input from actual users, assisting in refining your offering to align with the market's genuine needs.</p>
</li>
<li><p>Adaptation and Pivoting: The startup journey rarely follows a linear path. An MVP equips you to make necessary pivots when required.</p>
</li>
</ol>
<h2 id="heading-building-a-loyal-user-base">Building a Loyal User Base</h2>
<p>The main aim of an MVP is to build a loyal user base that will show us</p>
<ul>
<li><p>how to improve the product</p>
</li>
<li><p>what we are doing wrong</p>
</li>
<li><p>what features to kill</p>
</li>
<li><p>which features to double down on</p>
</li>
</ul>
<p>They basically give us the hidden nuggets of criticism that keep us focused on building the right thing and solving the right problems. So that's what we did, We built an MVP with the tech stack that would take the least time to build and eventually be scalable when the time is right. We threw an MVP out there with our early bird customers to use and also new customers whom we could attract with our bare-bones MVP.</p>
<h1 id="heading-investment">Investment</h1>
<p>Ah, behold the formidable hurdle that early founders often regard with a mix of anxiety and anticipation. You see, the investment landscape has become a bit like a rollercoaster – no longer the wild dollar downpour it once was. Since the economic crunch, things have taken a rather leisurely pace on the investment front, but don't lose heart, my friend. The VC path isn't the only trail in these woods.</p>
<p>Fundraising may not be a walk in the park, but if you have unwavering faith in your idea, God works in mysterious ways. Picture this: Opportunity casually strolls down the road, and when it spots your hard work and determination, it decides to saunter over and meet you halfway. 🌟🚶‍♂️</p>
<h2 id="heading-investment-choices-to-fuel-your-startup">Investment Choices to Fuel Your Startup ⛽</h2>
<p>Now, there are a few dependable ways to summon the funds you need</p>
<ol>
<li><p><strong>Bootstrapping - DIY Magic:</strong> Ever heard of bootstrapping? It's like starting a business with the savings you have, so make sure you have your expenses for at least a year or two saved up.</p>
</li>
<li><p><strong>Friends and Family - The Inner Circle:</strong> Picture this: your besties and favorite cousins pooling their money into your startup because they believe in your genius. Just remember to get everything in writing; you don't want Thanksgiving dinner to turn into a business strategy debate.</p>
</li>
<li><p><strong>Angel Investors - Business Guardian Angels:</strong> Angel investors are like the fairy godparents of the business world. They provide some capital in exchange for some equity. Plus, they've got a treasure of industry wisdom and connections in their back pocket.</p>
</li>
<li><p><strong>Venture Capital - The Big League:</strong> Think of venture capitalists as the high rollers of startup funding. They're looking for the next big thing and aren't shy about asking for a piece of your company's action. But hey, their deep pockets come with a playbook for success.</p>
</li>
<li><p><strong>Crowdfunding - The Power of the People:</strong> Platforms like Kickstarter and Indiegogo turn your startup dreams into a massive online party. People who love your idea chip in, and in return, they get front-row seats or even backstage passes to your startup journey.</p>
</li>
<li><p><strong>Accelerators and Incubators - Startup Boot Camp:</strong> Joining an accelerator or incubator program is like getting a golden ticket to Willy Wonka's chocolate factory, but for startups. They give you funding, mentorship, and, best of all, a chance to shine in front of potential investors on the big demo day.</p>
</li>
</ol>
<h2 id="heading-our-stars-aligned-perfectly">Our Stars Aligned Perfectly</h2>
<p>We hit the jackpot when it came to getting that sweet investment cash! No bootstrapping headaches, no VC begging. It could be pretty nerve wrecking to pitch your ideas to VCs, just to hear that they don't want to invest. Its a Shark Tank episode but irl</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1694972305328/21224ac8-df4d-4685-bb02-050042f028a4.jpeg" alt class="image--center mx-auto" /></p>
<p>We just tapped into our freelance connections, shared our fantastic idea, and our buddy couldn't resist jumping on board. Boom! He brought in the investment, and suddenly, we had a runway that would last us for a whopping 1.5 years! 🚀💰</p>
<h1 id="heading-pmfit">PMFit</h1>
<p>So what is PMFit? To understand what is Product Market Fit, let's start with Marc Andreesen's definition</p>
<blockquote>
<p>Being in a good market with a product that can satisfy that market.</p>
</blockquote>
<p>Basically when you have tapped in the right market, there is a need of the product you are selling and the customers are eager to buy the product/service. And the product is serving the purpose much better than the competitors.</p>
<h2 id="heading-product-market-fit-is-happening">Product-market fit is happening</h2>
<p>Customers are buying as fast as you provide products, expand services, and hire salespeople. Reporters are sending you emails because they hear the buzz. Investors want to know more about your solution. Life is good.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1694962990948/a57ea804-de4b-424e-910c-7cf2c1c0d674.gif" alt class="image--center mx-auto" /></p>
<h2 id="heading-product-market-fit-is-not-happening">Product-market fit is not happening</h2>
<p>Customers aren't getting the value they expected, so word of mouth is kinda <em>meh</em>. The sales cycles take too long and deals often end up not happening. Press and investors are as silent as dead. The growth numbers go a little bit up or a little bit down. <em>Knock knock, is anybody there?</em></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1694963592574/aae29f11-d267-495e-a637-09e1df00eb19.png" alt class="image--center mx-auto" /></p>
<h1 id="heading-gtm">GTM</h1>
<p>Once you have achieved PMFit, now, it's time to figure out the most effective approach for converting as many folks as you can from that potential market – in other words, crafting a top-notch go-to-market strategy. Your goal here is to lay out the game plan for marketing and sales channels, pricing strategies, and tactics to keep those customers coming back for more. 📈🎯<br />When executed with precision, your go-to-market strategy has the power to set you apart from your rivals, steering your startup toward a revenue-generating model that's not only repeatable but also scalable and highly profitable. 🚀💰</p>
<h1 id="heading-growth">Growth</h1>
<p>You've got the product-market fit, your go-to-market approach has been thoroughly vetted, and your financials are looking pretty darn good. Now, it's time to crank things up and fully embrace the exhilarating growth stage.</p>
<p>Your business is primed to transition from startup to scaleup, and there are a couple of savvy strategies to consider. You could set your sights on acquiring competitors or businesses that complement your own, and expand your company into new geographic territories.</p>
<p>But here's the kicker: this might be the moment to seek additional funding, not just from venture capital firms, but also from growth equity and private equity firms. They can provide the resources and expertise needed to fine-tune your startup for maturity, helping you dominate your competition and venture into fresh segments and global markets. 🚀💼💎</p>
<h1 id="heading-conclusion">Conclusion</h1>
<p>Startup ideas are a dime a dozen, all the fun and effort lies in its execution. There's a phrase among entrepreneurs:</p>
<blockquote>
<p>Be a cockroach.</p>
</blockquote>
<p>Being a cockroach means, not going the blitzscaling route with VC funding. VC funds comes with added pressure to scale and show the exponential growing revenue otherwise they pull the plug. So bootstrap and keep the team lean and your startup can't die unless you want it to. You can keep learning, iterating and pivoting until you reach the delicious PMFit.</p>
<p>All the fun lies in the process, just start the journey. Whether you're going for the punchy MVP or the charming Minimum Lovable Product (MLP), remember it's all about winning hearts and minds in the market. Whether you're pulling off bootstrapping magic, rallying your friends and family for a startup heist, or going all-in with venture capitalists and crowdfunding, the choice is yours. Every road has its twists and turns, and each can lead to a thrilling climax.</p>
<p>In the end, this entrepreneurial adventure is a testament to the wild spirit of innovation, showing that every hurdle is just another chance to showcase your perseverance. Armed with the wisdom of this adventure, aspiring entrepreneurs should gear up, take a leap, and chart their own course through the thrilling startup universe. 🚀💼🌟</p>
]]></content:encoded></item><item><title><![CDATA[Don't Think, Just Do]]></title><description><![CDATA[I've consistently wrestled with overthinking, which has frequently acted as a roadblock in my life. Following the guidance of Maverick, I've finally decided to embark on my blogging journey after months of endless contemplation and countless excuses ...]]></description><link>https://blog.aliasad.me/overcome-imposter-syndrome-overthinking</link><guid isPermaLink="true">https://blog.aliasad.me/overcome-imposter-syndrome-overthinking</guid><category><![CDATA[impostor syndrome]]></category><category><![CDATA[#overthinking]]></category><category><![CDATA[Self Improvement ]]></category><category><![CDATA[self-improvement ]]></category><category><![CDATA[Career]]></category><dc:creator><![CDATA[Ali Asad]]></dc:creator><pubDate>Sat, 09 Sep 2023 20:16:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1693766876855/5ee9fc6d-38f2-42c0-affd-87132a843100.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I've consistently wrestled with overthinking, which has frequently acted as a roadblock in my life. Following the guidance of Maverick, I've finally decided to embark on my blogging journey after months of endless contemplation and countless excuses not to put my thoughts into writing.</p>
<p>Today, I'm eager to share my personal journey: how I managed to overcome my imposter syndrome (at least temporarily 😅) and the humble beginnings of my adventure.</p>
<h3 id="heading-backstory">Backstory</h3>
<p>It all started before the summer of my Sophomore Year, shortly after completing a semester-long project where I developed an In-patient Department (IPD) management system using Flask. My project took significantly more time to develop compared to my peers' work. At the time, I found myself struggling to grasp key concepts such as:</p>
<ul>
<li><p>How HTTP requests and responses functioned.</p>
</li>
<li><p>The intricacies of authentication and authorization.</p>
</li>
<li><p>And let's not even mention my less-than-impressive CSS skills.</p>
</li>
</ul>
<p>I couldn't help but admire my classmates who seemed to breeze through their projects effortlessly. I viewed their projects and their creators with the same awe that people reserve for Gilfoyle from Silicon Valley.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1693765042682/d67343b3-4d18-45ae-88c0-6624634b7c6f.webp" alt="Gilfoyle from Silicon Valley" class="image--center mx-auto" /></p>
<p>As I delved deeper into the world of web frameworks, I quickly realized that my peers used a framework called <strong>Django</strong> which accelerated their development. So, I set my sights on mastering the Django framework during the upcoming summer break.</p>
<h3 id="heading-fomo-igniting-my-learning-journey">FOMO Igniting my Learning Journey</h3>
<p>During the following summers, alongside my other planned activities, I immersed myself in Django. I completed several courses and built various projects along the way.</p>
<p>One of the great resources worth mentioning is a course that taught me quite a lot <a target="_blank" href="https://www.udemy.com/course/django-python-advanced/">Build a Backend REST API with Python &amp; Django - Advanced</a> (not sponsored). It not only taught me about test-driven development (TDD), but also introduced me to Docker, containerization, and the intricacies of production environments.</p>
<h3 id="heading-my-first-break">My First Break</h3>
<blockquote>
<p>Luck is what happens when opportunity meets preparation - Seneca</p>
</blockquote>
<p>Fast forward a few months, one of my friends, who was working part-time as a Django Developer, found a new job and asked if anyone wanted to take his place. I seized the opportunity and secured my first job as a Django Developer.</p>
<p>In the initial weeks, I felt overwhelmed by the scope of the project and the fact that it was used by thousands of users daily. I didn't want to be the <em>junior dev who broke the production</em>. Whenever doubt crept in, one of my friends would remind me:</p>
<blockquote>
<p>Fake it till you make it</p>
</blockquote>
<p>That's precisely what I did for the next few months. My confidence grew as:</p>
<ul>
<li><p>I successfully deployed features to production, serving thousands of users.</p>
</li>
<li><p>My data migration scripts executed flawlessly, without disrupting production (my biggest fear at the time).</p>
</li>
<li><p>I played a role in onboarding significant clients for the company.</p>
</li>
</ul>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Reflecting on this journey, I find it quite intriguing. Many of you may be in a similar place to where I once was, battling imposter syndrome, wrestling with overthinking, and confronting various challenges. So, trust me when I say, "Don't think, just do". Keep grinding, one step at a time, and have faith in the process. You will reach your goals, and don't forget to savor every step of the journey.</p>
<p>As I continue down this exciting path of blogging, my goal is to inspire others facing similar challenges. If I can help even a single person out there, that's a victory for me.</p>
]]></content:encoded></item></channel></rss>