<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: aaronmu</title><link>https://news.ycombinator.com/user?id=aaronmu</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 00:44:27 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=aaronmu" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by aaronmu in "Why F#?"]]></title><description><![CDATA[
<p>Just start. Use whatever style you are used to. Use controllers. Adapt your style as F# pulls you deeper inside the pit of success. You'll struggle the first couple of features, but you'll reach a sweet spot between your current style and functions relatively fast.</p>
]]></description><pubDate>Wed, 02 Apr 2025 21:15:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=43561705</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=43561705</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43561705</guid></item><item><title><![CDATA[New comment by aaronmu in "Why F#?"]]></title><description><![CDATA[
<p>I've been using F# professionally for the past seven years across different contexts. First in a small software shop and now while bootstrapping a SaaS company. Some observations:<p>* It’s easier to attract smart developers to an F# project than to a [mainstream language] project. This was one of my driving beliefs when I introduced F# seven years ago. <a href="https://www.paulgraham.com/pypar.html" rel="nofollow">https://www.paulgraham.com/pypar.html</a>. This is probably just as true for languages like Elixir, Clojure, ... But F# is what we went with.<p>Small Software Shop Context<p>* We operated in a small market where customers eventually dictated our tech stack (.NET & React). In that market, F# was a major advantage—it allowed junior developers to build apps that "just worked" with minimal regressions. Even with mediocre code quality, I felt confident that we could refactor safely at any time.<p>* I constantly had to justify F# to clients, which was exhausting. We always delivered decent results, so it worked out, but my partners were never as confident in defending F#.<p>Bootstrapping a SaaS Company<p>* F# has been invaluable for shipping features quickly and taking shortcuts when needed.<p>* Three years in, our codebase is large and contains its fair share of messy parts. But we can still develop new features at high speed with minimal regressions. Refactoring is relatively safe and straightforward.<p>* Compilation speed is the Achilles’ heel. If you don’t monitor it, the compiler slows down to the point where it impacts productivity. Earlier this year, waiting over a minute for feedback after a small change became unbearable. A lot of our "clean-up" work focuses on optimizing compilation times. We're still learning, but we’re optimistic that we can restructure the project to significantly improve build performance.<p>EDIT: maybe one more point. I see a lot of C# vs F# popping up here. Yes, C# has all the features that F# has. But do not underestimate how well designed F# is. It is an extremely simple language to learn compared to C#. There is a very limited amount of keywords to learn. And they compose extremely well. If you learned F# 7 years ago, took a break, and came back today, you'd simply write the same boring code that you would have written 7 years ago. And along the way you'd find out that some things have gotten a bit nicer over time.</p>
]]></description><pubDate>Tue, 01 Apr 2025 14:02:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=43546919</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=43546919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43546919</guid></item><item><title><![CDATA[New comment by aaronmu in "A 10x Faster TypeScript"]]></title><description><![CDATA[
<p>For the small price of 10x slower tooling.<p>I’ve been using F# full-time for 6 years now. And compiler/tooling gets painfully slow fast.<p>Still wouldn’t trade it for anything else though.</p>
]]></description><pubDate>Tue, 11 Mar 2025 17:16:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=43334785</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=43334785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43334785</guid></item><item><title><![CDATA[New comment by aaronmu in "How to listen to database changes using Postgres triggers in elixir"]]></title><description><![CDATA[
<p>Very interesting project, thanks for linking. Was thinking about building something like Oban.Peer a while ago. We're not using Elixir. Might use Oban as an example :-)</p>
]]></description><pubDate>Thu, 15 Jun 2023 19:05:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=36345071</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=36345071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36345071</guid></item><item><title><![CDATA[New comment by aaronmu in "How to listen to database changes using Postgres triggers in elixir"]]></title><description><![CDATA[
<p>This is all fun and games but how do you catch-up after a disconnect? Why choose this over logical replication?</p>
]]></description><pubDate>Wed, 14 Jun 2023 13:56:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=36326020</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=36326020</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36326020</guid></item><item><title><![CDATA[New comment by aaronmu in "Why F# evangelism isn't working (2015)"]]></title><description><![CDATA[
<p>> F# is still a great language, but the main fact hasn't changed: C# isn't bad enough for F# to thrive.<p>C# will always be more popular because it easier to learn. Why? Because it looks familiar to most developers. Why would you learn this unfamiliar thing called F# if C# is right there and you basically already know it? On top of that, C# almost has feature parity with F#.<p>However, F# is a simpler language than C#. That is a fact. It has less concepts that you need to learn. I've found that onboarding someone in an F# codebase takes a lot less time compared to onboarding someone in a typescript,C#,... codebase. A lot less time. I've found that new people can start contributing after a single introduction. The things they build often just work.<p>I think that an F# code base costs a lot less money to maintain over longer periods of time. Can't prove it but I think that the difference is huge.</p>
]]></description><pubDate>Thu, 01 Jun 2023 10:26:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=36149347</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=36149347</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36149347</guid></item><item><title><![CDATA[New comment by aaronmu in "JWT vs. Opaque Tokens"]]></title><description><![CDATA[
<p>What's the difference between an opaque token and a cookie that has a single session identifier in it? 'y know - the way we did it in the 90's.</p>
]]></description><pubDate>Thu, 29 Sep 2022 11:11:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=33018939</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=33018939</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33018939</guid></item><item><title><![CDATA[New comment by aaronmu in "React PDF Viewer"]]></title><description><![CDATA[
<p>Implementing pdf.js is a lot of work. $199 for a decent implementation would be a steal.</p>
]]></description><pubDate>Mon, 22 Aug 2022 08:10:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=32548660</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=32548660</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32548660</guid></item><item><title><![CDATA[New comment by aaronmu in "Down the mechanical keyboard rabbit hole"]]></title><description><![CDATA[
<p>I've been using a Planck for the past couple of months but after seeing your post I'll have to get a "Let's Tango". Why oh why did I have to see this. I was satisfied.</p>
]]></description><pubDate>Fri, 18 Mar 2022 16:01:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=30723903</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=30723903</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30723903</guid></item><item><title><![CDATA[New comment by aaronmu in "Flutter is better than React Native in all the ways that don’t matter"]]></title><description><![CDATA[
<p>It's a lot easier to catch a fish in a small pond if you're the only one fishing. Was a lot easier to hire a competent F# developer than it was to hire a competent C# developer.<p>No one ever got fired for buying IBM. Technology that is unknown to the buyer is significantly harder to sell. You will lose sales because of your exotic technology choice. If you told me this 4 years ago, I'd have argued that the implementation details don't matter but it turns out that they do.</p>
]]></description><pubDate>Wed, 16 Mar 2022 16:55:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=30701226</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=30701226</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30701226</guid></item><item><title><![CDATA[New comment by aaronmu in "Optimizing Postgres text search with trigrams"]]></title><description><![CDATA[
<p>Learned a bunch, thanks!</p>
]]></description><pubDate>Wed, 23 Feb 2022 10:09:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=30439582</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=30439582</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30439582</guid></item><item><title><![CDATA[New comment by aaronmu in "Snowboarding for Geeks: An Ultimate Guide (2018)"]]></title><description><![CDATA[
<p>I see a lot of snowboarders get into an identity crisis as they get older. Should I still snowboard if I'm not sending jumps and jibs all the time? Yes. Yes you absolutely should.<p>The truth is that there is just no feeling like laying down a sick carve on a snowboard. Nothing compares.</p>
]]></description><pubDate>Tue, 22 Feb 2022 16:02:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=30429519</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=30429519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30429519</guid></item><item><title><![CDATA[New comment by aaronmu in "Inline Assembly in F#"]]></title><description><![CDATA[
<p>It runs on Windows, Linux, and macOS.<p><a href="https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet" rel="nofollow">https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotn...</a></p>
]]></description><pubDate>Mon, 07 Feb 2022 11:43:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=30243456</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=30243456</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30243456</guid></item><item><title><![CDATA[New comment by aaronmu in "Ask HN: Have you worked on F# web apps in production?"]]></title><description><![CDATA[
<p>I've been using F#, Giraffe, Fable.React/Feliz, and Fable.Remoting in production for the past four years. Fable enabled us to grow and maintain a stable team of people that work both server- and client-side. You can join our team without any prior javascript experience and we'll have you productive in days.<p>It does not and cannot take away the complexity of writing an SPA in React. If you want to write a high quality SPA in React using Fable, you'll still need React, webpack, ... expertise in the team.<p>I know that in theory we all write perfect apps and have test suites with 100% coverage that do not hinder us as we change the codebase. Reality is much different though. You are behind on a deadline, your spouse and kids are home with COVID, and the junior has made 20 changes that should've been in prod last week but aren't because you haven't had the chance to review them. This is where F# shines. Merge the shit code to prod (after maybe some manual testing :P). You will be able to refactor it later with relatively high confidence.<p>The interest on technical debt in F# is so much lower compared to any other language I've used in prod (C#, Typescript, Javascript, and PHP).</p>
]]></description><pubDate>Mon, 20 Dec 2021 14:07:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=29625063</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=29625063</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29625063</guid></item><item><title><![CDATA[New comment by aaronmu in "Fable 3: F# to JavaScript compiler"]]></title><description><![CDATA[
<p>Using F# on Ubuntu for two years, it’s lovely!</p>
]]></description><pubDate>Sat, 05 Dec 2020 16:37:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=25315790</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=25315790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25315790</guid></item><item><title><![CDATA[New comment by aaronmu in "Learning Haskell is no harder than learning any other programming language"]]></title><description><![CDATA[
<p>The company I work for defaults to F# when choosing tech for a specific project.<p>We defaulted to PHP and C# in the past.<p>We have quite some experience training people who just graduated and even people with backgrounds outside of tech.<p>Training someone from zero to autonomously writing production code is a lot easier in F# compared to PHP and C#.<p>We educate people in Elm and Haskell and switch over to F# when they’re ready to try building the first real thing end to end.</p>
]]></description><pubDate>Sun, 06 Oct 2019 10:48:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=21171177</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=21171177</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21171177</guid></item><item><title><![CDATA[New comment by aaronmu in "Dell Unveils Updated XPS 13 with Intel’s 10th Gen Core CPUs and 4K Panel"]]></title><description><![CDATA[
<p>The swelling is a battery issue. Myself and two other colleagues experienced the problem and had it fixed.</p>
]]></description><pubDate>Wed, 21 Aug 2019 19:03:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=20760437</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=20760437</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20760437</guid></item><item><title><![CDATA[New comment by aaronmu in "Ask HN: Go-to web stack today?"]]></title><description><![CDATA[
<p>I totally agree with you! I've used react and redux in almost every project last year, but that doesn't mean the entire web app was written using react and redux. 50 ~80% was plain old static content rendered on the server.<p>A dynamic client side UI is more expensive to build compared to static html rendered on the server. Our software usually aims to solve a business problem for as little money as possible so we only build these dynamic ui's when they're absolutely required.</p>
]]></description><pubDate>Sat, 05 Jan 2019 12:00:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=18831230</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=18831230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18831230</guid></item><item><title><![CDATA[New comment by aaronmu in "Ask HN: Go-to web stack today?"]]></title><description><![CDATA[
<p>I am well aware of server side rendering but you still need to send all that javascript to the client, whether it ran on the server or not. Wouldn't exactly call this a "little bit of js" on top :p</p>
]]></description><pubDate>Sat, 05 Jan 2019 11:51:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=18831207</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=18831207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18831207</guid></item><item><title><![CDATA[New comment by aaronmu in "Ask HN: Go-to web stack today?"]]></title><description><![CDATA[
<p>I'm amazed at how many people use a client side framework, am I the only one who prefers good old server side rendered static html with maybe a little bit of javascript on top?<p>When I need a more dynamic page, I create a react app specifically for this one page.<p>Whenever I need to write JS these days, I go for either TypeScript or F# using Fable (an F# to javascript compiler).</p>
]]></description><pubDate>Sat, 05 Jan 2019 10:12:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=18830885</link><dc:creator>aaronmu</dc:creator><comments>https://news.ycombinator.com/item?id=18830885</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18830885</guid></item></channel></rss>