<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: mleonhard</title><link>https://news.ycombinator.com/user?id=mleonhard</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 18:23:32 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mleonhard" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mleonhard in "Grafeo – A fast, lean, embeddable graph database built in Rust"]]></title><description><![CDATA[
<p>> Inexplicably, major advances in this area 15-20 years ago under the auspices of government programs never bled into the academic literature even though it materially improved the situation.<p>Would you please share some more info about this?  Were the advances implemented in software and never written up and published?  What are the names of the government programs?</p>
]]></description><pubDate>Sun, 22 Mar 2026 09:11:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47475749</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=47475749</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47475749</guid></item><item><title><![CDATA[New comment by mleonhard in "See how many words you have written in Hacker News comments"]]></title><description><![CDATA[
<p>s/Prolificacy/Verbosity/</p>
]]></description><pubDate>Tue, 03 Feb 2026 04:42:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46866607</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=46866607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46866607</guid></item><item><title><![CDATA[New comment by mleonhard in "Show HN: I trained a 9M speech model to fix my Mandarin tones"]]></title><description><![CDATA[
<p>Over-exaggeration also works well when learning to play stringed instruments like cello.</p>
]]></description><pubDate>Sat, 31 Jan 2026 06:58:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46834171</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=46834171</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46834171</guid></item><item><title><![CDATA[Taming the CI Monster: How I Slashed Our Monorepo Build Times by over 66%]]></title><description><![CDATA[
<p>Article URL: <a href="https://kmaliszewski9.github.io/ci/2025/02/22/sbt-monorepo.html">https://kmaliszewski9.github.io/ci/2025/02/22/sbt-monorepo.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46215178">https://news.ycombinator.com/item?id=46215178</a></p>
<p>Points: 3</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 10 Dec 2025 07:44:42 +0000</pubDate><link>https://kmaliszewski9.github.io/ci/2025/02/22/sbt-monorepo.html</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=46215178</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46215178</guid></item><item><title><![CDATA[New comment by mleonhard in "PS5 now costs less than 64GB of DDR5 memory. RAM jumps to $600 due to shortage"]]></title><description><![CDATA[
<p>Is any datacenter's water use significant compared to other industrial installations?  According to that article, all datacenters in North Holland use 550 Ml/yr.  North Holland has 2.95M residents [0], who use 129 l/person-day [1], 47 Kl/person-year, 139,000 Ml/year for the whole region.  So the data centers use an estimated 0.4% of the region's water.  Data centers use about 3% of the Netherlands' electricity.<p>Why do you think this is a lot of water?  What are the alternatives to pulling from the local water utility and are those alternatives preferable?<p>[0] <a href="https://en.wikipedia.org/wiki/North_Holland" rel="nofollow">https://en.wikipedia.org/wiki/North_Holland</a><p>[1] <a href="https://en.wikipedia.org/wiki/Water_supply_and_sanitation_in_the_Netherlands" rel="nofollow">https://en.wikipedia.org/wiki/Water_supply_and_sanitation_in...</a><p>[2] <a href="https://www.dutchdatacenters.nl/en/statistics-2/" rel="nofollow">https://www.dutchdatacenters.nl/en/statistics-2/</a></p>
]]></description><pubDate>Wed, 26 Nov 2025 05:09:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46054382</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=46054382</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46054382</guid></item><item><title><![CDATA[New comment by mleonhard in "Futurelock: A subtle risk in async Rust"]]></title><description><![CDATA[
<p>> // Start a background task that takes the lock and holds it for a few seconds.<p>Holding a lock while waiting for IO can destroy a system's performance.  With async Rust, we can prevent this by making the MutexGuard !Send, so it cannot be held across an await.  Specifically, because it is !Send, it cannot be stored in the Future [2], so it must be dropped immediately, freeing the lock.  This also prevents Futurelock deadlock.<p>This is how I wrote safina::sync::Mutex [0].  I did try to make it Send, like Tokio's MutexGuard, but stopped when I realized that it would become very complicated or require unsafe.<p>> You could imagine an unfair Mutex that always woke up all waiters and let them race to grab the lock again. That would not suffer from risk of futurelock, but it would have the thundering herd problem plus all the liveness issues associated with unfair synchronization primitives.<p>Thundering herd is when clients overload servers.  This simple Mutex has O(n^2) runtime: every task must acquire and release the mutex, which adds all waiting tasks to the scheduler queue.  In practice, scheduling a task is very fast (~600ns).  As long as polling the lock-mutex-future is fast and you have <500 waiting tasks, then the O(n^2) runtime is fine.<p>Performance is hard to predict.  I wrote Safina using the simplest possible implementations and assumed they would be slow.  Then I wrote some micro-benchmarks and found that some parts (like the async Mutex) actually outperform Tokio's complicated versions [1].  I spent days coding optimizations that did not improve performance (work stealing) or even reduced performance (thread affinity).  Now I'm hesitant to believe assumptions and predictions about performance, even if they are based on profiling data.<p>[0] <a href="https://docs.rs/safina/latest/safina/sync/struct.MutexGuard.html" rel="nofollow">https://docs.rs/safina/latest/safina/sync/struct.MutexGuard....</a><p>[1] <a href="https://docs.rs/safina/latest/safina/index.html#benchmark" rel="nofollow">https://docs.rs/safina/latest/safina/index.html#benchmark</a><p>[2] Multi-threaded async executors require futures to be Send.</p>
]]></description><pubDate>Sat, 01 Nov 2025 04:14:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45779198</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45779198</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45779198</guid></item><item><title><![CDATA[New comment by mleonhard in "AI-generated 'poverty porn' fake images being used by aid agencies"]]></title><description><![CDATA[
<p>I spent some years working for a large NGO (Opportunity International) and living with people who work for NGOs.<p>NGOs must constantly raise money to fund their operations.  The money that an NGO spends on fund-raising & administration is called "overhead".  The percentage of annual revenue spent on overhead is the overhead percentage.  Most NGOs publish this metric.<p>When a big donor stops contributing, the NGO must cut pay or lay off people and cut projects.  I've never heard of an NGO "succumbing to excessive staff costs" like a startup running out of money.  Financial mismanagement does occasionally happen and boards do replace CEOs.  Board members are mostly donors, so they tend to donate more to help the NGO recover from mismanagement, instead of walking away.<p>NGOs pay less than other organizations, so they mostly attract workers who care about the NGO's mission.  These are people with intrinsic motivation to make the NGO succeed in its mission.  Financial incentives are a small part of their motivations.  For example, my supervisor at Opportunity International refused several raises.<p>> So they go around addressing individual problems, taking sad pictures, and avoid addressing systemic problems.<p>Work on individual problems is valuable.  For example, the Carter Center has prevented many millions of people from going blind from onchocerciasis and trachoma [0].<p>The Carter Center is not directly addressing the systemic problems of poverty and ineffective government health programs.  That would take different expertise and different kinds of donors.<p>The world is extremely complicated and interconnected.  The Carter Center's work preventing blindness directly supports worker productivity in many poor countries.  Productivity helps economic growth and reduces poverty.  And with more resources, government health programs run better.<p>Being effective in charity work requires humility and diligence to understand what can be done now, with the available resources.  And then it requires tenacity to work in dangerous and backward places.  It's an extremely hard job.  People burn out.  And we are all better off because of the work they do.<p>When we ignore the value of work on individual problems, because it doesn't address systemic problems, we practice binary thinking [1].  It's good to avoid binary thinking.<p>[0] <a href="https://en.wikipedia.org/wiki/Carter_Center#Implementing_disease_control_and_treatment_measures" rel="nofollow">https://en.wikipedia.org/wiki/Carter_Center#Implementing_dis...</a><p>[1] <a href="https://en.wikipedia.org/wiki/Splitting_(psychology)" rel="nofollow">https://en.wikipedia.org/wiki/Splitting_(psychology)</a></p>
]]></description><pubDate>Tue, 21 Oct 2025 01:09:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45651378</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45651378</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45651378</guid></item><item><title><![CDATA[New comment by mleonhard in "Migrating from AWS to Hetzner"]]></title><description><![CDATA[
<p>When I used AWS startup credits in 2019, the AWS console made it very difficult to estimate the bill after the credits ran out.  I lost a lot of trust in AWS.  Also, there were buried mines in the APIs, like the risk of bad logging running up a $70,000/day bill with CloudWatch Logs.<p>If I could go back and do it again, I would rent a single machine and deploy with ssh (git pull & docker-compose up) and backup to my laptop.</p>
]]></description><pubDate>Sat, 18 Oct 2025 20:47:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45630239</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45630239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45630239</guid></item><item><title><![CDATA[New comment by mleonhard in "Cancellations in async Rust"]]></title><description><![CDATA[
<p>I think that async in Rust has a significant devex/velocity cost.  Unfortunately, nearly all of the effort in Rust libraries has gone into async code, so the async libraries have outpaced the threaded libraries.<p>There was only one threaded web server, <a href="https://lib.rs/crates/rouille" rel="nofollow">https://lib.rs/crates/rouille</a> .  It has 1.1M lines of code (including deps).  Its hello-world example reaches only 26Krps on my machine (Apple M4 Pro).  It also has a bug that makes it problematic to use in production: <a href="https://github.com/tiny-http/tiny-http/issues/221" rel="nofollow">https://github.com/tiny-http/tiny-http/issues/221</a> .<p>I wrote <a href="https://lib.rs/crates/servlin" rel="nofollow">https://lib.rs/crates/servlin</a> threaded web server.  It uses async internally.  It has 221K lines of code.  Its hello-world example reaches 102Krps on my machine.<p><a href="https://lib.rs/crates/ehttpd" rel="nofollow">https://lib.rs/crates/ehttpd</a> is another one but it has no tests and it seems abandoned.  It does an impressive 113Krps without async, using only 8K lines of code.<p>For comparison, the popular Axum async web server has 4.3M lines of code and its hello-world example reaches 190Krps on my machine.<p>The popular threaded Postgres client uses Tokio internally and has 1M lines of code: <a href="http://lib.rs/postgres" rel="nofollow">http://lib.rs/postgres</a> .<p>Recently a threaded Postgres client was released.  It has 500K lines of code: <a href="https://lib.rs/crates/postgres_sync" rel="nofollow">https://lib.rs/crates/postgres_sync</a> .<p>There was no ergonomic way to signal cancellation to threads, so I wrote one: <a href="https://crates.io/crates/permit" rel="nofollow">https://crates.io/crates/permit</a> .<p>Rust's threaded libraries are starting to catch up to the async libraries!<p>---<p>I measured lines of code with `rm -rf deps.filtered && cargo vendor-filterer --platform=aarch64-apple-darwin --exclude-crate-path='*#tests' deps.filtered && tokei deps.filtered`.<p>I ran web servers with `cargo run --release --example hello-world` and measured throughput with `rewrk -c 1000 -d 10s -h <a href="http://127.0.0.1:3000/" rel="nofollow">http://127.0.0.1:3000/</a>`.</p>
]]></description><pubDate>Sun, 05 Oct 2025 07:22:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45479558</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45479558</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45479558</guid></item><item><title><![CDATA[New comment by mleonhard in "As many as 2M Cisco devices affected by actively exploited 0-day"]]></title><description><![CDATA[
<p>I think Cisco SNMP vulnerabilities have been appearing for 20 years or more.  I wish someone would add a fuzzer to their release testing script.</p>
]]></description><pubDate>Thu, 25 Sep 2025 21:23:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=45379305</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45379305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45379305</guid></item><item><title><![CDATA[New comment by mleonhard in "Some interesting stuff I found on IX LANs"]]></title><description><![CDATA[
<p>I took an "Architecting on AWS" class and half of the content was how to replicate complicated physical networking architectures on AWS's software-defined network: layers of VPCs, VPC peering, gateways, NATs, and impossible-to-debug firewall rules.  AWS knows their customers tho.  Without this, a lot of network engineers would block migrations from on-prem to AWS.</p>
]]></description><pubDate>Thu, 25 Sep 2025 21:13:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=45379155</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45379155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45379155</guid></item><item><title><![CDATA[New comment by mleonhard in "Mesh: I tried Htmx, then ditched it"]]></title><description><![CDATA[
<p>How does one handle errors with MESH?<p>To handle errors in HTMX, I like to use config from [0] to swap responses into error dialogs and `hx-on-htmx-send-error` [1] and `hx-on-htmx-response-error` [2] to show the dialogs.  For some components, I also use an `on-htmx-error` attribute handler:<p><pre><code>    // https://htmx.org/events/
    document.body.addEventListener('htmx:error', function (event: any) {
        const elt = event.detail.elt as HTMLElement
        const handlerString = elt.getAttribute('on-htmx-error')
        console.log('htmx:error evt.detail.elt.id=' + elt.getAttribute('id') + ' handler=' + handlerString)
        if (handlerString) {
            eval(handlerString)
        }
    });
</code></pre>
This gives very good UX on network and server errors.<p>[0]: <a href="https://htmx.org/quirks/#by-default-4xx-5xx-responses-do-not-swap" rel="nofollow">https://htmx.org/quirks/#by-default-4xx-5xx-responses-do-not...</a><p>[1]: <a href="https://htmx.org/events/#htmx:sendError" rel="nofollow">https://htmx.org/events/#htmx:sendError</a><p>[2]: <a href="https://htmx.org/events/#htmx:responseError" rel="nofollow">https://htmx.org/events/#htmx:responseError</a></p>
]]></description><pubDate>Wed, 24 Sep 2025 02:08:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45355475</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45355475</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45355475</guid></item><item><title><![CDATA[New comment by mleonhard in "Mesh: I tried Htmx, then ditched it"]]></title><description><![CDATA[
<p>Yes.  With HTMX, one can put a page definition and its endpoints in one file.  It has high cohesion.<p>There's no integration with routers, state stores, or rpc handlers.  There are no DTOs shared between the frontend and backend.  It has low coupling.<p>High cohesion and low coupling bring benefits in engineering productivity.</p>
]]></description><pubDate>Wed, 24 Sep 2025 01:17:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=45355068</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45355068</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45355068</guid></item><item><title><![CDATA[New comment by mleonhard in "PureVPN IPv6 Leak"]]></title><description><![CDATA[
<p>VPN providers do not have reputations for making secure or reliable software.<p>Here's a good privacy proxy (VPN) setup: Set up a second wifi router, enable the "Internet kill switch", and connect it with Wireguard to a reputable VPN service.  I recommend GL.iNet routers and Mullvad.<p>With this setup, one can move individual devices between the privacy wifi and identity-broadcasting wifi.</p>
]]></description><pubDate>Thu, 18 Sep 2025 16:46:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45291892</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45291892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45291892</guid></item><item><title><![CDATA[New comment by mleonhard in "I bought the cheapest EV, a used Nissan Leaf"]]></title><description><![CDATA[
<p>According to IIHS insurance loss data,
<a href="https://www.iihs.org/research-areas/auto-insurance/insurance-losses-by-make-and-model" rel="nofollow">https://www.iihs.org/research-areas/auto-insurance/insurance...</a> , here's the chance of being injured while riding in one of these cars (and filing an insurance claim) relative to the average US vehicle:<p><pre><code>    - Nissan Leaf -15% (Select "Small" & "4-door Cars" on the page)
    - Chevy Bolt -34%
    - Subaru Crosstrek -28% ("Station wagons" & "Small")
    - Tesla Model 3 +26% ("Luxury cars" & "Midsize")
</code></pre>
So the choice of Nissan Leaf was OK from a safety perspective, but the Chevy Bolt is better.  The Tesla is much worse.</p>
]]></description><pubDate>Sat, 06 Sep 2025 01:21:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45145693</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45145693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45145693</guid></item><item><title><![CDATA[New comment by mleonhard in "A computer upgrade shut down BART"]]></title><description><![CDATA[
<p>BART is a government organization and all California government employee pay is public.  You can see that BART has about 40 software engineers and they earn about 70% of the market rate:<p><a href="https://transparentcalifornia.com/salaries/search/?q=computer+systems+eng&y=2022" rel="nofollow">https://transparentcalifornia.com/salaries/search/?q=compute...</a><p><a href="https://transparentcalifornia.com/salaries/search/?q=computer+systems+engineer&y=2022" rel="nofollow">https://transparentcalifornia.com/salaries/search/?q=compute...</a><p>It seems to me that they are over-worked & under-paid and are doing a good job given the circumstances.<p>NIMBYs have blocked BART in Silicon Valley.  BART doesn't reach Menlo Park, Palo Alto, Stanford, Mountain View, Sunnyvale, Los Altos, Santa Clara, or Cupertino.  A few years ago, it finally reached San Jose.<p>A separate train (CalTrain) goes from SF through Silicon Valley.  Last year they switched to electric trains which are faster and run more frequently.  The SF CalTrain station is inconvenient (20-mins walk from downtown, under a highway), but they are working to extend CalTrain to the central SF station: <a href="https://en.wikipedia.org/wiki/Salesforce_Transit_Center#Future_rail_service" rel="nofollow">https://en.wikipedia.org/wiki/Salesforce_Transit_Center#Futu...</a> .<p>So Silicon Valley transit is getting better, slowly.</p>
]]></description><pubDate>Fri, 05 Sep 2025 23:41:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45145018</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45145018</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45145018</guid></item><item><title><![CDATA[New comment by mleonhard in "Ask HN: Who wants to be hired? (September 2025)"]]></title><description><![CDATA[
<p><p><pre><code>    Location: San Francisco, CA
    Remote: Yes
    Willing to relocate: Yes
    Technologies: Rust, TypeScript, Golang, Java, Ruby, Python, Postgres, htmx, GitHub Actions, CircleCI, AWS, ECS, Kubernetes, Datadog, Sentry, React, HTML/CSS, Linux, Snowflake, and many others.
    Résumé/CV: https://joblin.app/profile/409373959
    Email: michael206@gmail.com
</code></pre>
I'm a generalist software engineer with strong opinions on how to build and maintain software while balancing quality, speed, and cost.  I've worked at FAANG and startups.  I'm a fan of design docs, lunch&learns, clarity, and deleting code.  I care a lot about doing a good job and making things meet user needs.  I also love unblocking teammates & other teams.<p>I've published a lot of code online, mostly Rust libraries, with good tests.  I like working in the office, feeling camaraderie with my teammates.</p>
]]></description><pubDate>Wed, 03 Sep 2025 03:43:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45112068</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45112068</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45112068</guid></item><item><title><![CDATA[New comment by mleonhard in "Cognitive load is what matters"]]></title><description><![CDATA[
<p>> There is no “simplifying force” acting on the code base other than deliberate choices that you make. Simplifying takes effort, and people are too often in a hurry.<p>There is a simplifying force: the engineers on the project who care about long-term productivity.  Work to simplify the code is rarely tracked or rewarded, which is a problem across our industry.  Most codebases I've worked in had some large low-hanging-fruit for increasing team productivity, but it's hard to show the impact of that work so it never gets done.<p>We need an objective metric of codebase cognitive complexity.  Then folks can take credit for making the number go down.</p>
]]></description><pubDate>Sun, 31 Aug 2025 16:04:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=45084198</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45084198</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45084198</guid></item><item><title><![CDATA[Thermal facial image analyses predict age and metabolic diseases]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.cell.com/cell-metabolism/fulltext/S1550-4131(24)00188-8">https://www.cell.com/cell-metabolism/fulltext/S1550-4131(24)00188-8</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45080435">https://news.ycombinator.com/item?id=45080435</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 31 Aug 2025 04:43:33 +0000</pubDate><link>https://www.cell.com/cell-metabolism/fulltext/S1550-4131(24)00188-8</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=45080435</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45080435</guid></item><item><title><![CDATA[New comment by mleonhard in "Fundamental Flaw of Hustle Culture"]]></title><description><![CDATA[
<p>If the leaders of these companies actually cared about worker productivity, they would grab the low-hanging fruit and give their employees workspaces where they can concentrate, not crowded open-plan offices surrounded by meeting rooms.</p>
]]></description><pubDate>Sat, 16 Aug 2025 03:35:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=44919893</link><dc:creator>mleonhard</dc:creator><comments>https://news.ycombinator.com/item?id=44919893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44919893</guid></item></channel></rss>