Sign in

Nathan Marz

@nathanmarz.bsky.social
212 followers 16 following 64 posts

Founder of Red Planet Labs. On a mission to dramatically improve programmer productivity and software quality by reducing the complexity of software development.

PostsRepliesMedia
Nathan Marz @nathanmarz.bsky.social · 18/06/2025
New post: "Make Worse Software, Slower" This is not satire. I argue for: – Rejecting functional programming – Using ORMs to perfectly hide impedance mismatches – Skipping event sourcing – Other proven best practices blog.redplanetlabs.com/2025/06/17/m...
blog.redplanetlabs.com
Make Worse Software, Slower
Everyone’s always hyping some shiny new tool that promises to make better software, faster. But in practice, change introduces risk. Why chase the unknown when we have decades of battle-tested tech…
000
Nathan Marz @nathanmarz.bsky.social · 17/06/2025
I still see this argument sometimes in the Clojure community: 1. Specter is great at manipulating deeply nested data 2. You shouldn't nest data very deep to begin with 3. Therefore, Specter is useless Do you see the multiple flaws in the logic?
010
Nathan Marz @nathanmarz.bsky.social · 12/06/2025
This talk begins with homoiconicity as a simple idea with huge impact ("opens up a new dimension of programming") that most programmers initially perceive as useless or harmful. It then explores four more simple ideas with that same dynamic that greatly simplify software dev.
010
Nathan Marz @nathanmarz.bsky.social · 11/06/2025
Wow, there are a lot of gems in Alan Perlis's "Epigrams on Programming" from 1982
100
Nathan Marz @nathanmarz.bsky.social · 09/06/2025
Here's the video of my keynote "Simple ideas with huge impact from Clojure and Rama" from reClojure two weeks ago. The ideas only take a few seconds to express, but they will seriously challenge how you perceive programming. www.youtube.com/watch?v=25lJ...
youtube.com
Simple ideas with huge impact from Clojure and Rama (by Nathan Marz)
YouTube video by London Clojurians
050
Nathan Marz @nathanmarz.bsky.social · 24/05/2025
Arrived in London and looking forward to hanging out with the Clojure community here at reClojure!
030
Nathan Marz @nathanmarz.bsky.social · 21/05/2025
Had a fun time showing my embarrassing editor setup and talking about Rama on the Apropos podcast www.youtube.com/watch?v=h8cd...
youtube.com
Nathan Marz guests on Apropos Clojure 2025-05-20
YouTube video by apropos clojure
010
Nathan Marz @nathanmarz.bsky.social · 02/05/2025
This is such a great sci-fi story
000
Nathan Marz @nathanmarz.bsky.social · 29/04/2025
Published "Next-level backends with Rama: personalized content moderation in 60 LOC" This is a detailed line by line tutorial on using Rama for both Clojure and Java to implement a high-performance mute/unmute feature on a social network. blog.redplanetlabs.com/2025/04/29/n...
blog.redplanetlabs.com
Implementing a Mute Feature with Rama: A Step-by-Step Guide
Explore how to implement a mute feature in a social network using Rama, simplifying backend development with minimal code.
010
Nathan Marz @nathanmarz.bsky.social · 23/04/2025
What I love most about this case study is how Rama enabled G+D Netcetera to greatly expand the market of their product. This is similar to what we saw in the Multiply case study: the mindset changes from "what does our tooling allow us to do?" to "what's our dream product?".
000
Nathan Marz @nathanmarz.bsky.social · 22/04/2025
Very excited to publish this case study! What Rama did for this product is incredible: "How G+D Netcetera used Rama to 100x the performance of a product used by millions of people" blog.redplanetlabs.com/2025/04/22/h...
blog.redplanetlabs.com
How G+D Netcetera used Rama to 100x the performance of a product used by millions of people
“Rama enabled us to improve the performance of two critical metrics for Forward Publishing by over 100x, and it reduced our AWS hosting costs by 55%. It sounds like a cliché, but learning Rama most…
020
Nathan Marz @nathanmarz.bsky.social · 18/04/2025
Since I'm so used to Clojure, what drives me nuts about writing Java code is the crazy number of parens you have to type
070
Nathan Marz @nathanmarz.bsky.social · 17/04/2025
If you post anything about dynamic typing being superior to static typing, you'll soon find out from the incensed comments that many people don't know the difference between dynamic typing and weak typing and will fight you to the death over it.
000
Nathan Marz @nathanmarz.bsky.social · 16/04/2025
The Rama case study we're publishing next week is a doozy. This customer operates a product used by millions of people, and Rama: - Improved the performance of their application on two critical metrics by over 100x - Reduced their AWS hosting costs by 55%
020
Nathan Marz @nathanmarz.bsky.social · 16/04/2025
New post: "Next-level backends with Rama: fault-tolerant timed notifications in 25 LOC". This is a detailed tutorial showing how to manage future work in an application. Examples on this site are features like scheduled posts or poll expirations. blog.redplanetlabs.com/2025/04/16/n...
blog.redplanetlabs.com
Next-level backends with Rama: fault-tolerant timed notifications in 25 LOC
This is part of a series of posts exploring programming with Rama, ranging from interactive consumer apps, high-scale analytics, background processing, recommendation engines, and much more. This t…
010
Nathan Marz @nathanmarz.bsky.social · 14/04/2025
1/ Rama is uniquely able to build an entire backend at scale with diverse computation and storage needs. Some have misunderstood this to mean using Rama means you need to replace all existing infrastructure. That would be crazy.
140
Nathan Marz @nathanmarz.bsky.social · 08/04/2025
Published "Next-level backends with Rama: recommendation engine in 80 LOC" This is a detailed line by line tutorial on using Rama for both Clojure and Java. As with all Rama apps, the example in the post is scalable, fault-tolerant, and ACID compliant. blog.redplanetlabs.com/2025/04/08/n...
blog.redplanetlabs.com
Next-level backends with Rama: recommendation engine in 80 LOC
This is part of a series of posts exploring programming with Rama, ranging from interactive consumer apps, high-scale analytics, background processing, recommendation engines, and much more. This t…
041
Nathan Marz @nathanmarz.bsky.social · 04/04/2025
This post is a demonstration of why colocation is superior to locking/transactions for atomicity
000
Nathan Marz @nathanmarz.bsky.social · 01/04/2025
New post: "Massively scalable collaborative text editor backend with Rama in 120 LOC" blog.redplanetlabs.com/2025/04/01/m...
010
Nathan Marz @nathanmarz.bsky.social · 27/03/2025
The way this does parallel graph traversals by recurring a loop multiple times per iteration while also jumping around the cluster is really cool. It's only a couple lines of code but exemplifies what I mean when I talk about Rama making "where" and "what" composable.
010
Nathan Marz @nathanmarz.bsky.social · 26/03/2025
Published "Next-level backends with Rama: storing and traversing graphs in 60 LOC". This is a detailed line by line tutorial on using Rama for both Clojure and Java. As with all Rama apps, the example in the post is scalable, fault-tolerant, and ACID compliant. blog.redplanetlabs.com/2025/03/26/n...
blog.redplanetlabs.com
Next-level backends with Rama: storing and traversing graphs in 60 LOC
This is the first of a series of posts exploring programming with Rama, ranging from interactive consumer apps, high-scale analytics, background processing, recommendation engines, and much more. T…
263
Nathan Marz @nathanmarz.bsky.social · 24/03/2025
Looking forward to speaking at reClojure in London on May 26th!
041
Nathan Marz @nathanmarz.bsky.social · 21/03/2025
This is a reminder that writing state in global variables is a horrible thing to do, and databases are just global variables by a different name.
001
Nathan Marz @nathanmarz.bsky.social · 20/03/2025
Now that the free version of Rama is out, you can directly test our claims of how much it improves backend development! I've found with our early users it takes a week or two to get through the initial learning curve.
000
Nathan Marz @nathanmarz.bsky.social · 19/03/2025
Starting a new blog series next week called "Next-level backends with Rama" where each post is a detailed tutorial of using Rama for a specific use case, with all code in both Java and Clojure. The first post will be about storing and traversing graphs.
021
Nathan Marz @nathanmarz.bsky.social · 19/03/2025
Also launched a major revamp for the Red Planet Labs website yesterday, with a lot more information on Rama and resources for learning redplanetlabs.com
redplanetlabs.com
Red Planet Labs
Red Planet Labs
000
Nathan Marz @nathanmarz.bsky.social · 18/03/2025
Rama, the 100x developer platform, is now free for production use! You can download Rama from our website. The free version can run clusters up to two nodes, which is enough to comfortably run small/medium scale applications. More details in the blog post. blog.redplanetlabs.com/2025/03/18/r...
blog.redplanetlabs.com
Rama, the 100x developer platform, is now free for production use
I’m excited today to announce we’re ending our private beta and making Rama free for production use! You can download Rama here. Rama is a platform for developing any backend at any scale that unif…
070
Nathan Marz @nathanmarz.bsky.social · 17/03/2025
One day until we release the free version of Rama, along with a fresh new website and enhanced docs!
020
Nathan Marz @nathanmarz.bsky.social · 14/03/2025
1/ Being a source of truth and being an indexed store that answers queries are fundamentally in conflict. It's impossible for one datastore to do both of these well.
110
Nathan Marz @nathanmarz.bsky.social · 13/03/2025
Sign up to our mailing list to be notified as soon as we release the free version of Rama on March 18th redplanetlabs.us13.list-manage.com/subscribe?u=...
redplanetlabs.us13.list-manage.com
Red Planet Labs, Inc.
Red Planet Labs, Inc. Email Forms
000
Nathan Marz @nathanmarz.bsky.social · 11/03/2025
Looking forward to releasing the free version of Rama one week from today!
000
Nathan Marz @nathanmarz.bsky.social · 11/03/2025
Published another Rama user case study: "How AfterHour built an ultra-scalable chat service in one month with Rama" blog.redplanetlabs.com/2025/03/11/h...
blog.redplanetlabs.com
How AfterHour built an ultra-scalable chat service in one month with Rama
"I built my first chat system in 1999 on the IRC protocol, cofounded a startup for companies to self-host chat rooms, and have built real time multiplayer games. I am intimately familiar with …
010
Nathan Marz @nathanmarz.bsky.social · 05/03/2025
Good tips on learning Rama from an experienced Rama user
010
Nathan Marz @nathanmarz.bsky.social · 04/03/2025
Published the first Rama user case study! "How Multiply went from Datomic to XTDB to Rama" blog.redplanetlabs.com/2025/03/04/h...
blog.redplanetlabs.com
How Multiply went from Datomic to XTDB to Rama
“With databases, the conversation always started with ‘what are we able to do?’. I rarely find myself asking what Rama is able to support, and rather ‘how?’. The requirements of the application dic…
020
Nathan Marz @nathanmarz.bsky.social · 25/02/2025
Rama will be free to use in three weeks on March 18th! Leading up to that, we'll be publishing our first two case studies detailing how Rama has dramatically improved the capability and development speed of our users.
040
Nathan Marz @nathanmarz.bsky.social · 11/02/2025
I'll be keynoting reClojure in London on May 26th reclojure.org
reclojure.org
reClojure 2025
041
Nathan Marz @nathanmarz.bsky.social · 03/02/2025
In this talk I show how Rama's huge productivity gains come from enabling composability for backend development for both computation and storage www.youtube.com/watch?v=X__j...
youtube.com
Rama: the 100x programming platform with functional programming at its core - Nathan Marz #FnConf 25
YouTube video by ConfEngine
130
Nathan Marz @nathanmarz.bsky.social · 31/01/2025
1/ Released awesome backups feature for Rama today: - Takes a few seconds to configure - Backs up all state to an external store (e.g. S3) - Each backup run is incremental, only transferring new state since the last backup
110
Nathan Marz @nathanmarz.bsky.social · 28/01/2025
I accidentally divulged the secrets of how we used Clojure to build Rama in this podcast. Please don't listen. www.youtube.com/watch?v=Exkz...
youtube.com
Clojure in product. Would you do it again? Episode 7. Nathan Marz, Red Planet Labs
YouTube video by Freshcode
131
Nathan Marz @nathanmarz.bsky.social · 20/01/2025
Looking forward to talking about Rama and its functional programming roots on Friday
030
Nathan Marz @nathanmarz.bsky.social · 07/01/2025
This is Claude's reaction to my most recent blog post. Couldn't have said it better myself.
000
Nathan Marz @nathanmarz.bsky.social · 20/12/2024
We released a new feature to Rama today I'm really excited about called "yielding select". The "API" for it is just a single option to an existing method, but underneath that option is an incredible amount of power that took months to implement. Summary: 🧵
redplanetlabs.com
PStates :: Red Planet Labs Documentation
100
Nathan Marz @nathanmarz.bsky.social · 16/12/2024
The older I get, the more amazed I am that John McCarthy invented Lisp in 1958 when the popular programming languages were Algol, Fortran, and Cobol. 66 years later and it's still mind-blowing to the vast majority of the industry.
030
Nathan Marz @nathanmarz.bsky.social · 11/12/2024
A traditional architecture of reading/writing to one or more databases from an app server is just stream processing with really bad fault-tolerance and tons of race conditions. If writing to multiple databases, it's nearly certain they will become inconsistent with each other.
010
Nathan Marz @nathanmarz.bsky.social · 09/12/2024
My briefest summary of what makes Rama powerful: it makes all the computation and storage for a backend composable, which eliminates impedance mismatches and creates massive leverage.
020
Nathan Marz @nathanmarz.bsky.social · 06/12/2024
Wielding randomness effectively in tests is by far the best defense against race conditions
010
Nathan Marz @nathanmarz.bsky.social · 03/12/2024
I've encountered this only a handful of times, but there should be a name for a bug which, when fixed, reveals an even worse bug it was coincidentally suppressing. I propose "Pandora's bug".
010
Nathan Marz @nathanmarz.bsky.social · 02/12/2024
It feels like half the work of supporting users of your software is helping with unrelated things, like OS configuration, using AWS/Azure, making build scripts, and so on.
020
Nathan Marz @nathanmarz.bsky.social · 21/11/2024
I've noticed many functional and performance issues with @bsky.app. If only there was a fully-featured open-source implementation in a tiny amount of code that solves the challenges of running a Twitter-like service at scale with an unbalanced social graph. github.com/redplanetlab...
github.com
GitHub - redplanetlabs/twitter-scale-mastodon: Twitter-scale Mastodon implementation in 100x less code than Twitter wrote to build the equivalent
Twitter-scale Mastodon implementation in 100x less code than Twitter wrote to build the equivalent - redplanetlabs/twitter-scale-mastodon
120
Nathan Marz @nathanmarz.bsky.social · 20/11/2024
If you focus too much on preventing weak programmers from writing bad code, you're also going to prevent strong programmers from writing great code.
130