The Journal
The notes I would have wanted at fifteen.
Long-form notes on shipping production systems, scaling SaaS, hiring engineers, AI integration, and the engineering decisions behind Yashveer Labs — written by founder Yashveer Singh.
Multi Factor Authentication: WebAuthn, TOTP, and Beyond
Multi factor authentication (MFA) requires users to provide two or more types of evidence before accessing an account: something they know (password), something they have (a device generating a code), and something they are (biometrics). TOTP (Time based One Time Passwords) is the most widely deployed second factor. WebAuthn is the modern standard that replaces TOTP with phishing resistant, hardware backed authentication. Passkeys implement WebAuthn for consumer friendly use. Each has different phishing resistance, implementation complexity, and user friction tradeoffs.
AI Integration and Vibe Coding RescueMulti Agent Systems for SaaS: A Practical Architecture
A multi agent system for SaaS is an architecture where an orchestrating agent breaks a complex task into sub tasks, dispatches them to specialized sub agents with appropriate context and tools, and synthesizes the results. The pattern is appropriate when a single LLM call cannot reliably complete a complex workflow, when different tasks require different model capabilities or context, or when parallelism can reduce total completion time. The challenge is coordination, error handling, and cost control.
SaaS Architecture and ScalingMonolith vs Microservices: Why Most Startups Get It Wrong
A monolith is a single deployable unit that contains all of a product's application logic. A microservices architecture splits that logic into independently deployable services that communicate over a network. The choice between them determines deployment complexity, operational overhead, and team scaling patterns. Startups default to microservices because they copy enterprise architecture without asking whether the reasons behind it apply to them, and fail because microservices introduce coordination overhead that makes small teams slower.
Web App and Frontend DevelopmentModal Patterns That Do Not Trap Users
A modal dialog interrupts the user's current workflow by overlaying a new UI layer that requires attention before the user can return to the underlying content. Well designed modals are used sparingly for high priority information or actions that require user focus. Poorly designed modals block access to the underlying content for reasons that do not warrant the interruption, fail to provide clear dismissal paths, and create accessibility failures by not managing keyboard focus correctly.
Performance OptimizationMobile Performance Profiling: A Founder's Reading Guide
Mobile performance profiling is the process of measuring how a mobile application uses CPU, memory, network, and battery resources during real usage scenarios. Profiling reveals where time is spent and which operations cause slowdowns visible to users. For founders, understanding profiling output means being able to evaluate whether engineers are solving the right performance problems and whether the investment in optimization is targeting what users actually experience.
Cross Platform and Mobile DevelopmentMobile Authentication: Biometrics, Magic Links, and the Death of Passwords
Mobile authentication has moved beyond passwords as the primary credential for consumer and B2B mobile applications. Biometric authentication (Face ID, Touch ID) provides a native credential using hardware backed security. Magic links send a single use login URL to a verified email address, eliminating the password entirely. Passkeys use public key cryptography with biometric verification to provide phishing resistant authentication without shared secrets. Each approach has different implementation requirements and different tradeoffs in security, friction, and fallback handling.
Cross Platform and Mobile DevelopmentMobile App Rewrites: When They Are Inevitable and When They Are a Mistake
A mobile app rewrite is the decision to replace an existing mobile application with a new one built from scratch, rather than incrementally improving the existing application. Rewrites are sometimes necessary: when the platform has changed fundamentally, when the app has accumulated technical debt that makes incremental improvement slower than rebuilding, or when the technology choice (WebView, outdated React Native version) can no longer meet performance requirements. They are frequently a mistake when the underlying problems are process issues, not code issues.
Software Costs and BudgetingMobile App Development Costs: Native, Cross Platform, and Hybrid Compared
Mobile app development cost depends on three variables: the approach (native iOS/Android, React Native, Flutter, or a web wrapper), the feature complexity, and where the developers are located. Native development produces the highest quality result but costs the most because it requires separate iOS and Android codebases. Cross platform approaches like React Native and Flutter share a codebase across both platforms and typically cost thirty to forty percent less for equivalent features.
Tech Debt and RefactoringMigrating From REST to GraphQL: A Strategic Read
Migrating from REST to GraphQL is the process of replacing HTTP endpoints that return fixed response shapes with a single GraphQL endpoint where clients specify exactly the data they need. The migration is appropriate when overfetching and underfetching are causing performance or development velocity problems, when the API serves multiple clients with different data requirements, or when the API surface has grown complex enough that REST versioning is creating maintenance overhead. It is not appropriate as a general modernization upgrade.
Tech Debt and RefactoringMigrating From Express to Fastify or NestJS or Beyond
Migrating from Express to a modern Node.js framework means replacing a minimal, unopinionated HTTP server with one that provides performance improvements, better TypeScript support, built in validation, and structured application architecture. Fastify offers a replacement that is close to a straight swap, with significantly better throughput and native TypeScript support. NestJS provides a full application framework with dependency injection, modules, and conventions that scale to large codebases. The migration cost depends on which framework you choose and how cleanly your Express application is structured.
Backend, APIs, and System DesignMessage Queues Compared: SQS, Kafka, RabbitMQ, Redis Streams
Message queues decouple the production of work from its consumption: a producer writes a message to the queue, and a consumer reads and processes it independently. The choice between SQS, Kafka, RabbitMQ, and Redis Streams determines the delivery semantics, retention behavior, throughput ceiling, and operational complexity of your async processing infrastructure. Each tool has a different performance profile and a different use case where it is the natural fit.
Performance OptimizationMemory Leaks in Long Lived Web Apps
A memory leak in a web application occurs when memory that is no longer needed is not released by the JavaScript runtime's garbage collector. In long lived single page applications, where users navigate between views without a full page reload, leaked memory accumulates over time, eventually causing the browser tab to slow down, become unresponsive, or crash. The most common sources are event listeners that are added without being removed, subscriptions that are not cleaned up on component unmount, and closures that hold references to large objects.
Software Costs and BudgetingMaintenance Budgets: What to Expect After Launch
A software maintenance budget covers the recurring cost of keeping a live product operational, current, and secure after the initial build is complete. This includes dependency updates, security patches, infrastructure costs, bug fixes, minor feature work to retain users, and the engineering time to handle production incidents. Most founders underestimate maintenance costs by a factor of two to three when planning their first product.
Comparisons and Vendor DecisionsLoom vs Tella vs Screen Studio for Founder Communication
Async video tools allow founders to communicate complex information with context, tone, and visual demonstration that text lacks, without requiring the synchronous coordination of a live meeting. Loom, Tella, and Screen Studio are the three tools most commonly used for founder communication in 2026, each with different strengths for sales demos, investor updates, team walkthroughs, and product documentation.
DevOps, Deployment, InfrastructureLogging Strategy for SaaS: Structured, Searchable, Useful
A logging strategy for SaaS is the combination of log format, log level conventions, contextual field standards, and log routing decisions that make application logs useful for debugging, monitoring, and audit purposes. The difference between a useful logging strategy and a useless one is whether an engineer can find the root cause of a production incident using only the logs within five minutes of opening the log viewer.
Security, Auth, and ComplianceLogging Customer Data: The Privacy Mistakes That Get You Sued
Customer data in application logs is a privacy liability that most engineering teams create accidentally rather than deliberately. Personally identifiable information logged for debugging purposes stays in log storage systems indefinitely, is accessible to everyone with log access, and creates data retention violations under GDPR, CCPA, and similar regulations. The fix is a logging hygiene policy enforced at the instrumentation level, not at the storage level.
Web App and Frontend DevelopmentLoading States, Skeletons, and Optimistic UI
Loading state design is the set of decisions about what users see while asynchronous operations are in progress. Spinner loading states block the UI until the operation completes. Skeleton screens show the layout structure before content arrives. Optimistic UI assumes success and shows the result before confirmation from the server, reverting if the server reports failure. Each pattern trades user perception of performance against implementation complexity and error handling requirements.
Comparisons and Vendor DecisionsLiveblocks vs PartyKit vs Custom for Real Time Features
Real time features in web applications require persistent connections, state synchronization, conflict resolution, and presence management. Liveblocks is a managed real time infrastructure platform with purpose built primitives for collaborative editing, comments, and notifications. PartyKit is a developer focused platform for building real time applications using WebSockets at the edge. Custom infrastructure using WebSockets or server sent events is the third option, requiring more engineering but providing complete control.
Comparisons and Vendor DecisionsLinear vs Shortcut vs GitHub Projects for Engineering Workflow
Linear, Shortcut, and GitHub Projects are the three most commonly adopted issue trackers for engineering teams that have moved away from Jira. All three aim to reduce the overhead of traditional project management while providing the visibility engineering leadership needs. They differ in how opinionated they are, how tightly they integrate with GitHub, and how well they scale to multiple teams with different workflows.
Comparisons and Vendor DecisionsLinear vs Jira: A 2026 Decision
Linear is a modern issue tracker built for speed: fast keyboard shortcuts, opinionated defaults, and a clean UI that requires minimal configuration. Jira is the dominant enterprise project management platform with deep customization, integrations with the Atlassian ecosystem, and the process overhead that comes with both. The right choice depends on team size, the need for custom workflows, and how much the engineering team values tool friction as a signal about process quality.
Business Automation and OpsLead Pipeline Automation: From Form to CRM Without Touching It
Lead pipeline automation is the set of integrations and workflows that move a lead from initial contact form submission through enrichment, scoring, CRM entry, assignment, and follow up sequence without requiring manual data entry at any step. When implemented correctly, it ensures every lead receives a timely, personalized initial response and lands in the CRM with the context the sales team needs to have an informed first conversation.
Performance OptimizationLazy Loading: The Patterns That Work and the Ones That Backfire
Lazy loading is the practice of deferring the loading of non critical resources until they are needed or near the viewport. For images, it means the browser does not fetch them until the user scrolls near them. For JavaScript modules, it means code is not downloaded until the feature that requires it is used. When applied correctly, lazy loading reduces initial page weight and improves time to interactive. When applied incorrectly, it delays the content users need immediately.
Performance OptimizationLargest Contentful Paint: The Metric That Changes Conversions
Largest Contentful Paint (LCP) measures the time from when the page starts loading to when the largest image or text block visible in the viewport is rendered. It is a Core Web Vital and a Google ranking signal. Good LCP is under 2.5 seconds. Poor LCP is above 4 seconds. LCP is the performance metric most closely correlated with user engagement and conversion rate because it captures how quickly the page feels usable.
Backend, APIs, and System DesignLambda Cold Starts: Why They Still Matter in 2026
A Lambda cold start is the latency added to a function invocation when AWS must provision a new execution environment because no warm environment is available. Cold starts add anywhere from 100 milliseconds for simple Node.js functions to several seconds for large Java or .NET functions with complex initialization. Despite significant improvements in the AWS Lambda runtime, cold starts remain a meaningful performance consideration for production workloads where latency matters.