<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: vswaroop04</title><link>https://news.ycombinator.com/user?id=vswaroop04</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 26 Jun 2026 02:05:04 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=vswaroop04" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by vswaroop04 in "Ask HN: Who wants to be hired? (May 2026)"]]></title><description><![CDATA[
<p>Location: Hyderabad, India
Remote: Yes — fully remote for the past 2 years (worked with UK and German companies)
Open to relocation: Yes<p>Technologies: Python, Django, Go, TypeScript, Node.js, PostgreSQL, Redis, ClickHouse, Kubernetes, AWS, React, Next.js, OpenAI and Anthropic SDKs, agentic pipelines, Claude Code (daily use)<p>Résumé/CV: <a href="https://drive.google.com/file/d/1ZzOfQsGETIePu0VKf1G1aFFcXqjUWHNL/view?usp=sharing" rel="nofollow">https://drive.google.com/file/d/1ZzOfQsGETIePu0VKf1G1aFFcXqj...</a>
GitHub: <a href="https://github.com/vswaroop04" rel="nofollow">https://github.com/vswaroop04</a><p>Email: [vswaroop04@gmail.com](mailto:vswaroop04@gmail.com)</p>
]]></description><pubDate>Thu, 07 May 2026 11:13:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48048009</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=48048009</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48048009</guid></item><item><title><![CDATA[What Changed My Mind About Dependency Injection in TypeScript]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.vswaroop04.com/writing/di-repository-adapter">https://www.vswaroop04.com/writing/di-repository-adapter</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48047679">https://news.ycombinator.com/item?id=48047679</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 07 May 2026 10:25:43 +0000</pubDate><link>https://www.vswaroop04.com/writing/di-repository-adapter</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=48047679</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48047679</guid></item><item><title><![CDATA[New comment by vswaroop04 in "Tell HN: Fiverr left customer files public and searchable"]]></title><description><![CDATA[
<p>Obvious! They dont care about freelancers</p>
]]></description><pubDate>Wed, 15 Apr 2026 12:39:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47778209</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=47778209</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47778209</guid></item><item><title><![CDATA[New comment by vswaroop04 in "Show HN: boringBar – a taskbar-style dock replacement for macOS"]]></title><description><![CDATA[
<p>Subscription ? Big No</p>
]]></description><pubDate>Sun, 12 Apr 2026 19:04:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47743178</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=47743178</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47743178</guid></item><item><title><![CDATA[New comment by vswaroop04 in "When Do We Become Adults, Really?"]]></title><description><![CDATA[
<p>When you grow your wisdom teeth</p>
]]></description><pubDate>Sun, 29 Mar 2026 09:14:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47561557</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=47561557</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47561557</guid></item><item><title><![CDATA[New comment by vswaroop04 in "We replaced traditional ORM migrations with a DAG and stopped breaking prod"]]></title><description><![CDATA[
<p>Right now, Migrion doesn’t do anything special here it prints which migration is running and blocks until the database finishes.<p>For example, if you’re adding an index on a 10TB table, you’d just see:<p>Applying abc123: add index...<p>…and it will hang there until the database completes the operation.<p>That said, this is mostly a database-level concern, not something a migration tool can fully abstract away.<p>If you’re working with large tables, you’d typically want to use:<p>CREATE INDEX CONCURRENTLY (Postgres)<p>regardless of which migration tool you’re using.<p>Migratex generates the SQL, but you can edit it before applying.
So in practice, you’d replace:<p>CREATE INDEX ...<p>with:<p>CREATE INDEX CONCURRENTLY ...<p>in your up.sql.<p>That said, there are a few things we could improve here:<p>Show elapsed time per migration<p>Add a --dry-run flag to preview what would run<p>Add a --statement-timeout option<p>These are now on the roadmap.</p>
]]></description><pubDate>Sun, 22 Mar 2026 17:00:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47479561</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=47479561</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47479561</guid></item><item><title><![CDATA[New comment by vswaroop04 in "We replaced traditional ORM migrations with a DAG and stopped breaking prod"]]></title><description><![CDATA[
<p>If you have worked with any Object Relational Mapping tool like Drizzle, Prisma, TypeORM, Django, Rails you have probably come across this problem:<p>Two developers are working on branches and they both create a migration file named 004.<p>One of them renames their file to 005 then you merge the changes deploy them and hope that everything works out fine.<p>Sometimes it does work.. Sometimes a column just disappears because the migration files were run in the wrong order.<p>We had to deal with this problem many times, including a few times when we had to stay up late at night to fix things that we decided to think of a new way to handle migrations.<p>Most Object Relational Mapping tools use an numbered system for migrations. This system works fine when one developer is working on a project but it does not work well when there are multiple branches. You end up having to coordinate the migrations dealing with conflicts or worse you have to deal with issues that only show up when the project is live.<p>Rolling back changes is another problem. Writing rollback scripts is hard and people often skip this step or get it wrong especially when multiple changes are involved.<p>That is why we built Migratex.<p>Of using a numbered list migrations in Migratex form a directed acyclic graph, which is similar to how Git models commits.<p>Each migration file declares what it depends on so multiple branches can create migration files without any conflicts.<p>When you merge changes:<p>* If two migration files truly conflict, for example if they try to change the column to different types Migratex flags the problem.<p>* If the migration files are independent for example if they change tables or columns they merge cleanly.<p>You do not have to rename any files. You do not have to coordinate with anyone. You do not have to worry about deployments because of ordering issues.<p>Migratex also generates SQL code automatically:<p>* You update your Object Relational Mapping schema.<p>* You run the migratex generate command.<p>* It compares the schema to the database and generates the migration SQL code.<p>Migratex also generates rollback scripts alongside the migration scripts to make rollbacks safer.<p>The goal of Migratex is simple:<p>Make schema changes safe in an environment with developers, without relying on manual ordering or fragile rollbacks.</p>
]]></description><pubDate>Sun, 22 Mar 2026 16:31:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47479216</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=47479216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47479216</guid></item><item><title><![CDATA[We replaced traditional ORM migrations with a DAG and stopped breaking prod]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/Vswaroop04/migrion">https://github.com/Vswaroop04/migrion</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47479215">https://news.ycombinator.com/item?id=47479215</a></p>
<p>Points: 5</p>
<p># Comments: 2</p>
]]></description><pubDate>Sun, 22 Mar 2026 16:31:29 +0000</pubDate><link>https://github.com/Vswaroop04/migrion</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=47479215</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47479215</guid></item><item><title><![CDATA[New comment by vswaroop04 in "I put my whole life into a single database"]]></title><description><![CDATA[
<p>owning your data is powerful</p>
]]></description><pubDate>Wed, 11 Mar 2026 17:30:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47338556</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=47338556</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47338556</guid></item><item><title><![CDATA[New comment by vswaroop04 in "Show HN: Link-guardian – Rust tool to detect dead links in docs and READMEs"]]></title><description><![CDATA[
<p>I built link-guardian, a Rust command-line tool that scans websites and GitHub repositories to detect broken and redirected links.<p>It parses HTML and Markdown (including READMEs), checks links concurrently using async networking, and outputs both human-readable and JSON reports. It’s designed to work well in CI pipelines by returning a non-zero exit code when broken links are found.<p>Motivation: I often found outdated/broken links in docs and READMEs and existing tools were either slow, language-runtime dependent, or not GitHub-aware. Rust made it possible to ship a single fast static binary.<p>Repo: <a href="https://github.com/Vswaroop04/link-guardian" rel="nofollow">https://github.com/Vswaroop04/link-guardian</a><p>I’d really appreciate feedback, bug reports, or ideas for missing features. If you try it, let me know what breaks or what you’d like next</p>
]]></description><pubDate>Sun, 04 Jan 2026 17:25:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46490083</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=46490083</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46490083</guid></item><item><title><![CDATA[Show HN: Link-guardian – Rust tool to detect dead links in docs and READMEs]]></title><description><![CDATA[
<p>I built link-guardian, a Rust command-line tool that scans websites and GitHub repositories to detect broken and redirected links.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46490080">https://news.ycombinator.com/item?id=46490080</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Sun, 04 Jan 2026 17:25:42 +0000</pubDate><link>https://github.com/Vswaroop04/link-guardian</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=46490080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46490080</guid></item><item><title><![CDATA[New comment by vswaroop04 in "Git Quick – fast Git workflows with AI-powered commit messages"]]></title><description><![CDATA[
<p>Git Quick is a modern CLI tool that speeds up repetitive Git commands with smart defaults and AI-powered commit messages. It combines git add, commit, and push into a single command while generating meaningful commit messages from your code changes.<p>Key Features:<p>- Single command workflow: Just run 'gq' to stage, commit with AI-generated message, and push
- AI-powered commits: Uses Ollama (local, free), OpenAI, or Anthropic to generate contextual commit messages from diffs
- Works immediately: Smart fallback mode requires no setup - AI is optional
- Commit history visualization: 'gq story' shows compact, colorized commit summaries grouped by date, author, or type
- Time tracking: Built-in development time tracking per branch with detailed reports
- Branch sync: 'gq sync' safely updates all local branches with conflict detection
- Cross-platform: Available via pip (Python 3.8+) and npm<p>The tool is designed for developers who want to maintain good commit hygiene without the friction of writing messages manually. It runs Ollama locally by default for privacy, or you can use cloud AI providers.<p>Installation is simple:
- pip install git-quick
- npm install -g git-quick-cli<p>First run automatically guides you through AI setup, or you can skip it entirely and use the smart fallback mode.<p>The project is MIT licensed and actively maintained. If you find it useful, please give it a star on GitHub!<p>Repository: <a href="https://github.com/vswaroop04/git-quick" rel="nofollow">https://github.com/vswaroop04/git-quick</a></p>
]]></description><pubDate>Wed, 12 Nov 2025 11:00:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=45898692</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=45898692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45898692</guid></item><item><title><![CDATA[Git Quick – fast Git workflows with AI-powered commit messages]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.com/@vswaroop04/git-quick-lightning-fast-git-workflows-with-ai-powered-commit-messages-988088e89cf6">https://medium.com/@vswaroop04/git-quick-lightning-fast-git-workflows-with-ai-powered-commit-messages-988088e89cf6</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45898691">https://news.ycombinator.com/item?id=45898691</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 12 Nov 2025 11:00:46 +0000</pubDate><link>https://medium.com/@vswaroop04/git-quick-lightning-fast-git-workflows-with-ai-powered-commit-messages-988088e89cf6</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=45898691</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45898691</guid></item><item><title><![CDATA[New comment by vswaroop04 in "My fan worked fine, so I gave it WiFi"]]></title><description><![CDATA[
<p>I love these things toying with home assist</p>
]]></description><pubDate>Wed, 12 Nov 2025 10:17:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45898439</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=45898439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45898439</guid></item><item><title><![CDATA[New comment by vswaroop04 in ".NET 10"]]></title><description><![CDATA[
<p>I hope .NET will become more popular</p>
]]></description><pubDate>Wed, 12 Nov 2025 10:15:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=45898432</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=45898432</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45898432</guid></item><item><title><![CDATA[New comment by vswaroop04 in "SoftBank sells its entire stake in Nvidia"]]></title><description><![CDATA[
<p>It’s difficult to imagine them generating enough profit to support their current valuations.</p>
]]></description><pubDate>Tue, 11 Nov 2025 19:14:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45891489</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=45891489</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45891489</guid></item><item><title><![CDATA[New comment by vswaroop04 in "Bitbucket Is Offline"]]></title><description><![CDATA[
<p>Yeah Even I experienced it but not for long ig</p>
]]></description><pubDate>Tue, 11 Nov 2025 19:12:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=45891464</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=45891464</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45891464</guid></item><item><title><![CDATA[New comment by vswaroop04 in "Pikaday: A friendly guide to front-end date pickers"]]></title><description><![CDATA[
<p>Does it have options like multiple date pickups, pickups for a particular month only, and a yearly pickup?</p>
]]></description><pubDate>Tue, 11 Nov 2025 18:56:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=45891301</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=45891301</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45891301</guid></item><item><title><![CDATA[New comment by vswaroop04 in "iPhone Pocket"]]></title><description><![CDATA[
<p>XD Who even buy these things</p>
]]></description><pubDate>Tue, 11 Nov 2025 18:42:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45891134</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=45891134</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45891134</guid></item><item><title><![CDATA[New comment by vswaroop04 in "Why aren't smart people happier?"]]></title><description><![CDATA[
<p>The more you think, the more you can see how many things can go wrong</p>
]]></description><pubDate>Thu, 06 Nov 2025 07:46:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45832570</link><dc:creator>vswaroop04</dc:creator><comments>https://news.ycombinator.com/item?id=45832570</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45832570</guid></item></channel></rss>