<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: pypt</title><link>https://news.ycombinator.com/user?id=pypt</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 27 Apr 2026 08:29:30 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=pypt" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by pypt in "Thoughts and feelings around Claude Design"]]></title><description><![CDATA[
<p>Sure, the blog post is AI generated (I'm not a native English speaker, our bunch is often shy about our English language skills), yet the research I've done there is manual.<p>I found it interesting that (contrary to the popular opinion) there wasn't some magic, e.g. a novel model, happening with Claude Design, especially magic enough that Figma wouldn't be able to replicate if they felt like it.<p>Also, apparently human (not artificial) neurons were behind that huge prompt, very well aware of the limitations of the model, cheating here and there to make Design's outputs more impressive, making it "create a (design) plan" beforehand, i.e. all the stuff that we the common laymen could do ourselves with the same tools.</p>
]]></description><pubDate>Sun, 19 Apr 2026 07:14:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47822390</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=47822390</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47822390</guid></item><item><title><![CDATA[New comment by pypt in "Thoughts and feelings around Claude Design"]]></title><description><![CDATA[
<p>Claude Design is just a big opinionated prompt: <a href="https://www.lobsterpack.com/blog/claude-design-trenchcoat/" rel="nofollow">https://www.lobsterpack.com/blog/claude-design-trenchcoat/</a>. Among other things, it knows it isn't that great at drawing SVGs, so it won't try unless you force it to. For a logo, try drawing it with vanilla Claude Code as if it was a separate project: ask a "design agency" to ask you questions, answer them, then make a detailed brief of what you want to draw, then make it output an exact plan of what and where will it draw, lastly ask the chatbot to do the actual drawing using sub-agents for drawing individual components. Also add a "render it to a raster and make sure it looks right" step as well.</p>
]]></description><pubDate>Sat, 18 Apr 2026 21:52:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47819831</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=47819831</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47819831</guid></item><item><title><![CDATA[Am I German or Autistic?]]></title><description><![CDATA[
<p>Article URL: <a href="https://german.millermanschool.com/">https://german.millermanschool.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47686777">https://news.ycombinator.com/item?id=47686777</a></p>
<p>Points: 3</p>
<p># Comments: 2</p>
]]></description><pubDate>Wed, 08 Apr 2026 07:46:13 +0000</pubDate><link>https://german.millermanschool.com/</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=47686777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47686777</guid></item><item><title><![CDATA[New comment by pypt in "I am definitely missing the pre-AI writing era"]]></title><description><![CDATA[
<p>Yeah, now it's "Here's what nobody else talks about" and "Here's the kicker" all day long.</p>
]]></description><pubDate>Mon, 30 Mar 2026 07:33:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47571489</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=47571489</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47571489</guid></item><item><title><![CDATA[What software engineering got wrong for decades, you're about to repeat with AI]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.lobsterpack.com/blog/software-engineering-lessons-ai-tools/">https://www.lobsterpack.com/blog/software-engineering-lessons-ai-tools/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47567572">https://news.ycombinator.com/item?id=47567572</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 29 Mar 2026 21:33:08 +0000</pubDate><link>https://www.lobsterpack.com/blog/software-engineering-lessons-ai-tools/</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=47567572</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47567572</guid></item><item><title><![CDATA[New comment by pypt in "Ask HN: Who wants to be hired? (March 2026)"]]></title><description><![CDATA[
<p>Location: Lithuania (EU, UTC+2)<p>Remote: Yes (12+ years remote experience)<p>Willing to relocate: No<p>Technologies: Python, TypeScript/JavaScript, AWS (S3/EC2 Cost Optimization), PostgreSQL (Citus/sharding), C/C++, Temporal.io, Rust.<p>Résumé/Web: <a href="https://valiukas.dev/resume-linas-valiukas.pdf" rel="nofollow">https://valiukas.dev/resume-linas-valiukas.pdf</a><p>Email: linas@valiukas.dev<p>I am a Lead/Staff Backend Engineer with 15+ years of experience. I specialize in reducing cloud costs, scaling large databases, and debugging systems at the syscall level.<p>Highlights:<p>* Saved $500k/year at Automattic: reduced S3 storage costs by 75% for a 2 PB dataset.<p>* 26x Performance Increase: Architected a bespoke binary protocol for WordPress restores, eliminating the #1 product churn reason.<p>* Scale: Managed a 30 TB+ PostgreSQL cluster (Citus) and NLP pipelines for MIT/Harvard for 10 years.<p>* Recent Build: Solo-founded <a href="https://aero.zip" rel="nofollow">https://aero.zip</a> - a privacy-first file transfer service with E2E encryption and OPAQUE authentication.<p>I debug GnuPG with strace, migrate petabytes without downtime, and replace brittle Cron jobs with robust workflow systems. Looking for complex backend challenges.</p>
]]></description><pubDate>Tue, 03 Mar 2026 09:33:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47230201</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=47230201</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47230201</guid></item><item><title><![CDATA[New comment by pypt in "Ask HN: What are you working on? (February 2026)"]]></title><description><![CDATA[
<p>GDPR-safe, privacy oriented WeTransfer alternative - <a href="https://aero.zip" rel="nofollow">https://aero.zip</a></p>
]]></description><pubDate>Tue, 10 Feb 2026 08:16:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46956747</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=46956747</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46956747</guid></item><item><title><![CDATA[New comment by pypt in "Ask HN: Who wants to be hired? (February 2026)"]]></title><description><![CDATA[
<p>Location: Lithuania (EU, UTC+2)<p>Remote: Yes (12+ years remote experience)<p>Willing to relocate: No<p>Technologies: Python, TypeScript/JavaScript, AWS (S3/EC2 Cost Optimization), PostgreSQL (Citus/sharding), C/C++, Temporal.io, Rust.<p>Résumé/Web: <a href="https://valiukas.dev/resume-linas-valiukas.pdf" rel="nofollow">https://valiukas.dev/resume-linas-valiukas.pdf</a><p>Email: linas@valiukas.dev<p>I am a Lead/Staff Backend Engineer with 15+ years of experience. I specialize in reducing cloud costs, scaling large databases, and debugging systems at the syscall level.<p>Highlights:<p>* Saved $500k/year at Automattic: reduced S3 storage costs by 75% for a 2 PB dataset.<p>* 26x Performance Increase: Architected a bespoke binary protocol for WordPress restores, eliminating the #1 product churn reason.<p>* Scale: Managed a 30 TB+ PostgreSQL cluster (Citus) and NLP pipelines for MIT/Harvard for 10 years.<p>* Recent Build: Solo-founded <a href="https://aero.zip" rel="nofollow">https://aero.zip</a> - a privacy-first file transfer service with E2E encryption and OPAQUE authentication.<p>I debug GnuPG with strace, migrate petabytes without downtime, and replace brittle Cron jobs with robust workflow systems. Looking for complex backend challenges.</p>
]]></description><pubDate>Tue, 03 Feb 2026 14:03:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=46871103</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=46871103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46871103</guid></item><item><title><![CDATA[New comment by pypt in "Ask HN: Share your personal website"]]></title><description><![CDATA[
<p><a href="https://valiukas.dev" rel="nofollow">https://valiukas.dev</a></p>
]]></description><pubDate>Wed, 14 Jan 2026 22:50:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46625040</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=46625040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46625040</guid></item><item><title><![CDATA[New comment by pypt in "Ask HN: What are you working on? (January 2026)"]]></title><description><![CDATA[
<p>I'm working on <a href="https://aero.zip" rel="nofollow">https://aero.zip</a>, a file transfer service designed to handle massive workflows (like raw video or huge project directories) directly in the browser without the usual speed caps or browser crashes.<p>The goal was to build something as fast as a native app but with the convenience of a web link. Some of the technical bits:<p>* Instant Streaming: Recipients can start downloading a file the moment the first chunk leaves the sender's computer. No waiting for the full upload to finish.<p>* Bespoke Chunking Protocol: To handle "unlimited" file counts (tested into the millions), we group small files into larger chunks and split massive files down, so many small files and a few large files can get transferred at similar speeds.<p>* Auto-Resume: Both uploads and downloads automatically resume from the exact byte where they left off, even if you switch networks or close/reopen your laptop.<p>* E2EE via Web Crypto API: Everything is AES-GCM-256 encrypted. The secret key stays in the URL fragment (after the #), so it never gets sent to our servers.<p>* Zero-Knowledge Auth: We use the OPAQUE protocol for logins, meaning we can authenticate users and store their encrypted Data Encryption Keys (DEKs) without ever seeing their password or having the ability to decrypt their files.<p>* Passkey + PRF: We support the WebAuthn PRF extension. If your passkey supports it (like iCloud Keychain or YubiKeys), you can decrypt your account's metadata without the password.<p>* On-the-fly Zipping: When a recipient selects multiple files, the browser decrypts and zips them locally in real-time as they stream from our server.<p>* Performance: Optimized to saturate gigabit connections (up to 250 MB/s) by maintaining persistent streams and minimizing protocol overhead.<p>Everything is hosted in Germany (EU) for GDPR compliance. I'd love to hear any feedback on the streaming architecture or the OPAQUE implementation!</p>
]]></description><pubDate>Mon, 12 Jan 2026 16:23:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=46590604</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=46590604</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46590604</guid></item><item><title><![CDATA[Serving bots some holiday cheer in my /.env]]></title><description><![CDATA[
<p>Article URL: <a href="https://aero.zip/.env">https://aero.zip/.env</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46290720">https://news.ycombinator.com/item?id=46290720</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 16 Dec 2025 16:39:49 +0000</pubDate><link>https://aero.zip/.env</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=46290720</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46290720</guid></item><item><title><![CDATA[New comment by pypt in "Ask HN: What Are You Working On? (December 2025)"]]></title><description><![CDATA[
<p>From what I understand, croc is P2P, i.e. both computers have to be on for the transfer to happen (the "relay" that they mention only helps negotiate the connection between two peers). With aero.zip, you upload your files to a server, and the recipient can download it whenever - either real-time while you're still uploading them (imitating the P2P/croc model), or at a later date. This is a more universal approach IMHO.<p>Also, aero.zip is a webapp, i.e. there's nothing to install, and you don't even need to sign up to send small files. Meanwhile, croc is a CLI utility which will be hard to use by mom-and-pop users.</p>
]]></description><pubDate>Mon, 15 Dec 2025 06:09:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=46270993</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=46270993</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46270993</guid></item><item><title><![CDATA[New comment by pypt in "Ask HN: What Are You Working On? (December 2025)"]]></title><description><![CDATA[
<p>I'm building <a href="https://aero.zip" rel="nofollow">https://aero.zip</a>, an E2E encrypted, resumable file transfer tool (think WeTransfer but encrypted and not P2P). I just posted it to Show HN:<p><a href="https://news.ycombinator.com/item?id=46262540">https://news.ycombinator.com/item?id=46262540</a><p>A few technical details I enjoyed working on:<p>* Streaming ZIP: To allow downloading multiple files as a single archive without buffering, I implemented a custom streaming ZIP64 archiver. A Service Worker intercepts the request, fetches encrypted chunks, decrypts them, and constructs the ZIP stream on the fly in the browser.<p>* OPAQUE auth: I used the OPAQUE protocol (via serenity-kit) for the password-authenticated key exchange. It ensures the server never learns the password and protects weak passwords against offline attacks if the DB leaks.<p>* Passkey PRF auth: If your passkey provider supports PRF (like iCloud Keychain or Windows Hello), the app derives the data encryption key directly from the passkey, allowing a login flow that doesn't require entering a master password.</p>
]]></description><pubDate>Mon, 15 Dec 2025 03:01:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46269963</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=46269963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46269963</guid></item><item><title><![CDATA[New comment by pypt in "Show HN: aero.zip - E2EE resumable file transfer, not P2P, 100 GB, OPAQUE auth"]]></title><description><![CDATA[
<p>Hey KomoD, thanks for trying it out!<p>> I uploaded a file and now I can't download it because the download endpoint is a 404.<p>Weird, looking at the logs it appears that the service worker didn't manage to register in your browser. Are you using some aggressive adblock by any chance?<p>I have to resort to registering a service worker and using it for downloads to make the decryption + download as a ZIP work for very large streams. The registered SW then gets added as an iframe, and that iframe triggers the download. In your case, it's as if the SW didn't manage to register so the added iframe led to nowhere.<p>> Except there is, it's 2GB or 100GB, you said it yourself.<p>Fair point - my phrasing was poor there. I meant that the <i>architecture</i> has no technical limits (unlike browser-based encryption which often crashes RAM on large files), whereas the 2GB/100GB are just business quotas to keep the lights on.<p>The architectural difference is actually why I built this. Standard E2EE services often choke on thousands of small files (because they attempt to upload everything with individual HTTP PUTs to S3) or struggle with massive single files (due to memory limits). By streaming encrypted chunks via WebSockets, aero.zip's setup handles 10k 1KB files or one 10GB file with roughly the same performance.</p>
]]></description><pubDate>Sun, 14 Dec 2025 17:17:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46264749</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=46264749</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46264749</guid></item><item><title><![CDATA[Show HN: aero.zip - E2EE resumable file transfer, not P2P, 100 GB, OPAQUE auth]]></title><description><![CDATA[
<p>Hey HN! I'm Linas, and here's my take on XKCD 949.<p>I've created a file sending/sharing website (think WeTransfer) which I believe is unique in several ways:<p>* End-to-end encrypted
* Recipients can start their download anytime, i.e. it's not P2P WebRTC-based thing like FilePizza
* (Effectively) no limit on the size of the uploaded data, i.e. it will encrypt/decrypt 100 GB just fine
* (Effectively) no limit the number of files that get sent
* Real-time transfers, i.e. recipients can start downloading their files even before you finish uploading them
* Resumable uploads/downloads
* ZIP downloads - creates ZIPs on the fly in the browser from decrypted data
* Full passkey auth, i.e. can derive data encryption key from a passkey with PRF
* Fast - 10 Gbps link, plus due to the chunking design, uploading 1024 files of 1 KB or a single 1 MB file take about the same amount of time
* No nasty trackers<p>Also, it has a dark mode!<p>The upload process joins small files together, splits large files apart, builds ~1 MB chunks from the data, encrypts each chunk with AES-256-GCM (each with its own unique IV), and streams it out via a WebSockets channel; the download process does pretty much the same thing in reverse.<p>Server-side, incoming uploads get written into a bespoke binary format (something like Protobuf) supporting random access. This enables upload/download resume, selective download of one or more files, and real-time downloads.<p>When downloading, the website sets up a service worker and adds its URL as an iframe (a known hack to force the browser to download something produced by JavaScript). Said service worker fetches the data, decrypts it, and then creates an uncompressed ZIP archive on the fly; for that purpose, I've implemented a whole new streaming ZIP64 archiver (which I'm considering open-sourcing at some point).<p>I'm using OPAQUE for authentication (though serenity-kit/opaque and Facebook's opaque-ke), as this seemed to be a good way to prevent me from being able to learn anyone's "hunter2" (passwords are used for encrypting the DEK which in turn encrypts uploads' "secret keys" for authenticated users). Also, OPAQUE would prevent weak passwords from getting cracked in case of a security mess-up on my end.<p>The website is able to authenticate the user fully using just the passkey. If the passkey provider has support for PRF, the website won't have to ask the user for their master password as it will then be able to decrypt the DEK using the PRF; otherwise, passkeys serve as a way to do 2FA. If you'd like to try it out, use iCloud Keychain (on macOS / iOS), Windows Hello, or Android for storing a passkey.<p>The frontend uses Svelte 5. I'm no frontend magician like some here, but I think at least I managed to keep it fast and simple.<p>I figured that if our messages are now E2E-encrypted by default, and even which news articles I'm reading on my news website are protected by TLS, then the users of file sending services should enjoy some privacy too - at this point E2EE should be just basic privacy hygiene.<p>The whole project took <i>way</i> longer than I'd like to admit, mostly because I got nerd-sniped by a bunch of premature optimization, and also had to fake my way into learning how to do modern frontend.<p>There's a 2 GB free limit for free transfers, also a Premium subscription option with a 100 GB limit. I want this to exist for the long term, but I have to make the finances work. If you find it useful, I'd love your support! If there's interest from HN, happy to share a promo code for a free trial (no CC required).<p>Feedback welcome!<p>(Please excuse the grammatical mistakes if any, I'm not a native English speaker, and I didn't want to feed this to an LLM to make it look like AI slop.)</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46262540">https://news.ycombinator.com/item?id=46262540</a></p>
<p>Points: 5</p>
<p># Comments: 2</p>
]]></description><pubDate>Sun, 14 Dec 2025 12:17:37 +0000</pubDate><link>https://aero.zip</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=46262540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46262540</guid></item><item><title><![CDATA[By the way, the list of SSL/TLS certificates (including subdomains) is public]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.com/@linasvaliukas/by-the-way-the-list-of-ssl-tls-certificates-issued-to-you-including-subdomains-is-public-5537ef1f11f5">https://medium.com/@linasvaliukas/by-the-way-the-list-of-ssl-tls-certificates-issued-to-you-including-subdomains-is-public-5537ef1f11f5</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=20881624">https://news.ycombinator.com/item?id=20881624</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 04 Sep 2019 21:29:20 +0000</pubDate><link>https://medium.com/@linasvaliukas/by-the-way-the-list-of-ssl-tls-certificates-issued-to-you-including-subdomains-is-public-5537ef1f11f5</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=20881624</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20881624</guid></item><item><title><![CDATA[Fervor, a simple multiplatform application autoupdater inspired by Sparkle]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/pypt/fervor">https://github.com/pypt/fervor</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=4056490">https://news.ycombinator.com/item?id=4056490</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 02 Jun 2012 00:16:12 +0000</pubDate><link>https://github.com/pypt/fervor</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=4056490</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=4056490</guid></item><item><title><![CDATA[19 y/o schoolboy gets his weather balloon 2 km higher than the MIT team]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.glory.lt/in_english.php">http://www.glory.lt/in_english.php</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=3557763">https://news.ycombinator.com/item?id=3557763</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 06 Feb 2012 15:47:42 +0000</pubDate><link>http://www.glory.lt/in_english.php</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=3557763</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=3557763</guid></item><item><title><![CDATA[Is J2ME dead?]]></title><description><![CDATA[
<p>Hi, HN,<p>do you see any possible market for Java Mobile Edition (J2ME) apps as of today?<p>I mean, everyone's talking iPhone apps, Android apps... But all I can think of is that there are 50%+ Java-supporting phones in any given market. Could there be any business in it?</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=1789715">https://news.ycombinator.com/item?id=1789715</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 14 Oct 2010 03:28:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=1789715</link><dc:creator>pypt</dc:creator><comments>https://news.ycombinator.com/item?id=1789715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=1789715</guid></item></channel></rss>