Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    S

    SoftwareMill Blog

    softwaremill.com · Company blog · on HN since 2013

    SoftwareMill's engineering team writes about Scala, Java, message queues, and distributed systems, with benchmarks and code examples.

    Visit blogHN submissions
    ProgrammingDistributed SystemsLanguages & Compilers
    What HN says

    HN links it for its message queue comparisons, Loom and Scala posts, and self-hosting write-ups, and one commenter calls the queue evaluation a great writeup.

    Stats for nerds
    55HN people shared it
    140linked in comments
    421story points
    Aug 2026last shared
    2019people per year2026

    Top posts on HN

    1. 1
      Hiring Developers in a Remote and Distributed Company
      1 person · 56 points · first shared 2014 · 37 comments on HN
    2. 2
      Akka vs. ZIO vs. Monix, part 2: communication
      1 person · 34 points · first shared 2018 · 2 comments on HN
    3. 3
      This month we've learned: fzf, Datadog and Teraform
      1 person · 14 points · first shared 2020 · Discussion on HN
    4. 4
      20 CEOs in one company
      1 person · 12 points · first shared 2013 · 11 comments on HN
    5. 5
      No managers in company – 3 ways of decision making
      1 person · 10 points · first shared 2017 · Discussion on HN
    6. 6
      Will Project Loom Obliterate Java Futures?
      3 people · 9 points · first shared 2020 · Discussion on HN
    7. 7
      Comparing Akka-Stream and Scalaz-Stream with Code Examples
      3 people · 8 points · first shared 2015 · Discussion on HN
    8. 8
      Access Control System with Raspberry Pi, RFiD and AWS Rekognition
      2 people · 8 points · first shared 2017 · Discussion on HN
    9. 9
      Stack Overflow’s mishap with self-reported data – tabs-vs-spaces debacle
      2 people · 8 points · first shared 2017 · Discussion on HN
    10. 10
      Event Sourcing on Blockchain with Ethereum, TypeScript and React
      1 person · 7 points · first shared 2017 · Discussion on HN

    What HN people wrote when they linked it

    • imadeamistakeAug 2021

      Cassandra won't try and load a partition into memory. It doesn't work that way. The only way you would get behavior like that is by setting "allow filtering" to on. Allow filtering is a dedicated keyword for "I know I shouldn't do this but I'm going to anyway". If you're trying to run those types of queries, use a different database. If someone is making you use a transactional database without joins for analytical load, get a different job because that's a nightmare.

      Also, your partitions should never get that large. If you're designing your tables in such away that the partitions grow unbounded, there's an issue. There are lots of ways to ensure that the cardinality of partitions grows as the dataset grows. And you actually control this behavior by managing the partitioning. It's really easy to grok the distribution of data in on disk if you think about how it's keyed.

      You've basically listed a bunch of examples of what happens when you don't use a wide columnar store correctly. If you're constantly fixing downed nodes, you're probably running the cluster on hardware from Goodwill.

      This is a pretty good list of what not to do with Cassandra, or any similar database.
      https://blog.softwaremill.com/7-mistakes-when-using-apache-cassandra-51d2cf6df519

    • thu2111Oct 2020

      Could you elaborate?

      It's a great writeup. But I'm personally curious about them hitting the limits of vertical scalability. They said they used the biggest node 'available to them' without clarifying how big that was.

      If the issue was RabbitMQ hitting resource limits then upgrading its hardware (or swapping it out for some other similarly featureful broker but which is faster) might have fixed some of the problems too, albeit not things like insufficient observability.

      I also wonder to what extent RabbitMQ suffers from being written in Erlang. Switching to a featureful broker with sharding and replication that isn't Kafka e.g. Artemis might have allowed them to avoid rewriting code to not use helpful features.

      This performance blog suggests RabbitMQ may top out at ~4000 messages/sec when making things durable, which isn't especially good performance:

      https://softwaremill.com/mqperf/

    • noelwelshAug 2026

      > Is java able to stackify most new Object calls and elide default initialization of object members these days?

      Escape analysis in OpenJDK will stack allocate values where it can show it is safe to do so. Project Valhalla is also reducing the memory footprint of objects.

      As for thread safety, that is more of a language concern than a runtime one. Amongst JVM languages Scala is leading here AFAIK. Its "capture checking"[1] provides thread safety (e.g. [2]) and actually covers escape analysis as well. On Scala Native (the native code backend for Scala) capture checking can be used for safe stack allocation and safe arena allocation.

      [1]: https://docs.scala-lang.org/scala3/reference/experimental/cc.html
      [2]: https://softwaremill.com/understanding-capture-checking-in-scala/

    • mrkeenJan 2024

      > Git sucks. Reason? It is entirely imperative.

      A git repository is a persistent data structure [1]. Operations are typically append-only, requiring --force flags to do any in-place mutation.

      > And, well, just like in C, there's no safety pillow - if you screw up a call, something simply goes pear-shaped.

      Git is the safety pillow. When you screw up your code, you restore it with git. Article doesn't mention the reflog, which is the second safety pillow hiding under the first.

      [1] https://softwaremill.com/persistent-data-structures-in-functional-programming/

    • AlexITCJan 2023

      It seems that you are mainly interested in how to build preview environments for your app, these posts describe an approach to get there:

      - https://softwaremill.com/preview-environment-for-code-reviews-part-1-concept/

      - https://softwaremill.com/preview-environment-for-code-reviews-part-2-ci-cd-pipelines-for-the-cloud/

      - https://softwaremill.com/preview-environment-for-code-reviews-part-3-reverse-proxy-configuration/

      While the examples use Gitlab, it shouldn't be very hard to port the same idea to a Bitbucket.

    • olivermrblDec 2022

      Yes indeed. Attaching below a couple of references from my exploration:

      Transactional outbox pattern:

      - https://microservices.io/patterns/data/transactional-outbox.html

      - https://softwaremill.com/microservices-101

      - https://brandur.org/job-drain

      A pattern similar to the one I mention using cache:

      - https://masstransit-project.com/articles/outbox.html

    Related

    Uber Engineering Blogeng.uber.com525 people

    Why Uber Engineering Switched from Postgres to MySQL

    Uber Engineering Blog
    Company · last shared 2025
    Inside Javainside.java66 people

    Strings Just Got Faster

    Inside Java
    Company · last shared 2026
    Chris Richardsonmicroservices.io58 people

    A pattern language for microservices

    Chris Richardson
    Personal · last shared 2026
    Better Programmingbetterprogramming.pub319 people

    Three programmers got fired, including me, due to a single app crash

    Better Programming
    Publication · last shared 2025
    Databricks Blogdatabricks.com298 people

    DBRX: A new open LLM

    Databricks Blog
    Company · last shared 2026
    Yammer Engineeringeng.yammer.com24 people

    Scala At Yammer (Official position on Scala)

    Yammer Engineering
    Company · last shared 2015
    The Pragmatic Engineernewsletter.pragmaticengineer.com292 people

    Inside the longest Atlassian outage

    The Pragmatic Engineer
    Personal · last shared 2026
    Artima Developerartima.com464 people

    Google Groups Data To Be Destroyed

    Artima Developer
    Publication · last shared 2026