Skip to content
Ayush Raj

Ayush Raj

  • ayushraj.dev/portfolio
  • software development
  • www.youtube.com/c/AyushRaj1024
  • Contact Me
  • Sending Transactional Email from a Go App with Gmail and OAuth2: A Practical Framework

    Apr 4, 2026

    ·

    software development
    Sending Transactional Email from a Go App with Gmail and OAuth2: A Practical Framework
  • Making Heavy Analytics Reports Feel Fast: Viewport-Based Loading Without Breaking Your API

    When a “report” page fires twenty-plus API calls on load, users wait on a blank screen or a single spinner. When those calls must stay sequential (rate limits, OAuth quotas, or backend constraints), you cannot simply parallelize everything. You can still give fast feedback and progressive content by loading only what the user can see—and queuing the rest… Read ⇢

    Making Heavy Analytics Reports Feel Fast: Viewport-Based Loading Without Breaking Your API
  • A Local-First Development Workflow When Your Host Doesn’t Play Nice with IDEs

    How to develop safely on shared hosting that supports FTP/SSH but blocks direct IDE connections If you’ve ever worked on a client project hosted on shared hosting—the kind that offers FTP and SSH access but doesn’t allow your IDE to connect directly to the server—you know the frustration. You can’t… Read ⇢

    A Local-First Development Workflow When Your Host Doesn’t Play Nice with IDEs
  • Designing Consistent Metrics Across Summary and Detail Views in Enterprise Web Apps

    One of the most insidious bugs in enterprise dashboards is not a crash, not a null pointer, and not a failed query. It is a number that is simply wrong — and worse, wrong in a way that looks plausible. You build a summary table that shows a user has 1… Read ⇢

    Designing Consistent Metrics Across Summary and Detail Views in Enterprise Web Apps
  • TypedQuery and Auto-Boxing: Why Your JPA Query Throws “Long is incompatible with Integer”

    If you’ve spent any time with JPA and Hibernate, you’ve probably run into this cryptic runtime exception at least once: The frustrating part? Your code compiles perfectly. Your entity’s id field is declared as Integer. Everything looks right. And yet, at runtime, Hibernate blows up. Here’s exactly why this happens and how to… Read ⇢

    TypedQuery and Auto-Boxing: Why Your JPA Query Throws “Long is incompatible with Integer”
  • The savings you make when you get your software made by a developer

    There are a lot of software products out there that companies are offering that are sold as SAAS (Software as a service) and they get to charge you monthly (in 2025 the global SAAS industry made $295 billion to $300 billion). We have many examples of this (The Adobe Suite,… Read ⇢

    The savings you make when you get your software made by a developer
  • Building a Dynamic sitemap.xml for a Static Website on Firebase (REST API–Driven)

    A sitemap is one of those things that looks simple until you ship a static build. If your site is deployed as static files (for example, a static-exported Next.js app), you get great performance and cheap hosting—but you lose the ability to generate server-side content at request time. That becomes… Read ⇢

    Building a Dynamic sitemap.xml for a Static Website on Firebase (REST API–Driven)
  • How To Fix SSL Timeout and Rate-Limit Errors in CyberPanel (acme.sh + ZeroSSL → Let’s Encrypt)

    When running a web server on CyberPanel (which uses acme.sh under the hood), SSL certificates are usually issued automatically. But one morning, I found my SSL renewals timing out — the logs showed connections to acme.zerossl.com. Eventually, they started throwing 429 rate-limit errors from Let’s Encrypt after I switched CAs.… Read ⇢

    How To Fix SSL Timeout and Rate-Limit Errors in CyberPanel (acme.sh + ZeroSSL → Let’s Encrypt)
  • Data-Driven Link Verification with Playwright (Python) + pytest

    When you refactor menus, migrate content, or run a large SEO cleanup, you often need to prove that specific anchor texts on specific pages now point to the new target URLs. Doing that by hand is slow and error-prone. This article shows a clean, repeatable way to automate it using:… Read ⇢

    Data-Driven Link Verification with Playwright (Python) + pytest
  • How To Remove Garbage Named Malware Files from Linux Servers

    Normally when our wordpress sites used to get malwares and hacks I just went into the Cyberpanel file manager and deleted the malwares. Sometimes the malware files were pretty creative and their permissions got set to something that cannot be written to and in those cases I had to SSH… Read ⇢

    How To Remove Garbage Named Malware Files from Linux Servers
1 2 3 … 13
Next

Ayush Raj

  • Twitter
  • Instagram
  • Subscribe Subscribed
    • Ayush Raj
    • Join 33 other subscribers
    • Already have a WordPress.com account? Log in now.
    • Ayush Raj
    • Subscribe Subscribed
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar