SpeedBump has just helped 1k people quit #doomscrolling! Slowly getting there :)
Posts by Mario
Just got intervewed LIVE on FOX KTVU's morning show about my app against #doomscrolling! 😱
Don't let my smile fool you – it was nerve-wracking. Having worked for Lyft, appearing on Bay Area TV was a huge deal for me.
Watch SpeedBump's section here: www.ktvu.com/video/1631122
MSN just featured my app against doomscrolling, SpeedBump! 🔥📈 Ironic that I now spend hours marketing an app designed to get people OFF their phones. From personal struggle to dancing cats & 'screen time police', read how my journey became a solution: www.msn.com/en-us/news/t...
My app to fight phone addiction just left 'Early Access' on Google Play. The irony? I need YOU to open your phone and leave a review: speedbumpapp.com/en/blog/play...
Built an app to reduce screen time, then became a social media addict to market it 🤦♂️
The irony of making TikToks to promote an app that fights TikTok addiction...
With no budget & zero followers, I'm learning app marketing the hard way: speedbumpapp.com/en/blog/mobi...
For April's Fools, the screen time app Opal jokes about being bought by Meta. Is this something that could actually happen? speedbumpapp.com/en/blog/opal...
After learning so much about #screentime and #socialmedia, I have the urge to share the knowledge!
Read >40 actionable tips here on how to limit your usage: speedbumpapp.com/en/blog/soci... #productivity
The #German language broke my website... Did you know that Germans have 18 variations for "speed bump"? Well, I didn't.
speedbumpapp.com/en/blog/germ...
I'm using Bodenschwellen as per Claude's recommendation. But a German friend told me that's not used in German at all. So I'm open to suggestions :)
A screenshot of a landing page with: Do you know speed bumps? Annoying, but they sure slow you down. Meet the speed bump for addictive apps. [Play Store button] [App Store button]
The same picture as before in German. The translation for "speed bump" is so long that it goes beyond the screen size. Kennst du Geschwindigkeitsbegrenzung? Nervig, aber sie bremsen dich definitiv aus. Entdecke die Bodenschwelle für Sucht-Apps.
I wanted to use "speed bump" as a metaphor in my landing page. But in 🇩🇪 #German 🇩🇪, that word is "Geschwindigkeitsbegrenzung". Lol.
My first #app idea bombed, but the feedback was priceless. Read more about my #entrepreneur journey with #screentime apps here: speedbumpapp.com/blog/v1/
This month was a fun one in my #entrepreneurship journey. Help me understand if I'm on the right track by taking the survey!
speedbumpapp.com/blog/launch/
Hey all! Now that I'm on Bluesky, I've posted my previous articles here. Not sure what platform I'll end up using more, but I like the vibe here so far :)
Subtyping and variance in #Rust is a concept that works in the background, making your life easier without you knowing about it. That is, until it starts making your life harder instead, like I share in this article. Let's raise awareness!
nullderef.com/blog/rust-va...
Ever feel like your #phone controls you? What if there was a phone that minimized how much you used it? I have more questions than answers, but I hope my research helps: nullderef.com/blog/phone-i...
#tech #addiction #digitalwellness #eink #dumbphone
#Rust supports #async programming, which doesn't mix well with sync code (because of function coloring). But what if your library has clients with both use-cases? Can you support both async and sync? Join me in this crazy journey to learn how I did it in RSpotify.
nullderef.com/blog/rust-as...
If you liked "A Plugin System in #Rust", check out this talk I gave at TremorCon22. It takes a different perspective of the pros and cons of the language, especially around plugins :)
nullderef.com/blog/tremorc...
"A Plugin System in #Rust" ends with a bunch of benchmarking in this article. This lays out the path for the future, and summarizes a bit the journey. Thank you everyone for the comments!
nullderef.com/blog/plugin-...
Enough research! In the fifth article of "A Plugin System in #Rust", I start the production implementation for Tremor (part of @linuxfoundation.org). Turning its types into the C ABI for stability isn't an easy task, but we have a lot of options!
nullderef.com/blog/plugin-...
The fourth article in "A Plugin System in #Rust" shares libraries to leverage in our implementation. We'll end up with abi_stable, which takes a bit to understand but offers so much functionality!
nullderef.com/blog/plugin-...
Redesigning a web API client written in #Rust for #Spotify taught me a lot! Here I share the robust architecture, how to keep it easy to use, and other cool tricks. RSpotify has 33% less lines to maintain after lots of new features!
nullderef.com/blog/web-api...
The third article of "A Plugin System in #Rust" dives deeper into dynamic loading (and a quick look at #eBPF). It explains how to deal with versioning, loading plugins, handling state, and error handling. At the end, I also share a working prototype.
nullderef.com/blog/plugin-...
In the second article of "A Plugin System in #Rust", I create prototypes using #WebAssembly and dynamic loading. We'll end up going with the latter, for which I also share some tools and resources.
nullderef.com/blog/plugin-...
#Rust makes conditional compilation very easy through Cargo "features". But don't get obsessed over them! An `if` statement might be simpler and perform just as well.
nullderef.com/blog/rust-fe...
As part of my series "A Plugin System in #Rust", this article looks into technologies that could be used. This includes #WebAssembly, dynamic loading, #IPC, or or scripting languages like #Lua.
nullderef.com/blog/plugin-...
Optional parameters are a commonly requested feature that #Rust doesn't have. What alternatives do we have? Here's my analysis.
nullderef.com/blog/rust-pa...
Companies break promises all the time. A self-guaranteeing promise does not require you to trust anyone. You can verify a self-guaranteeing promise yourself. File over app is a self-guaranteeing promise. If files are in your control, in an open format, you can use those files in another app at any time. Not an export. The exact same files. It’s good practice to test this with any self-proclaimed file-over-app app you use. Terms and policies are not self-guaranteeing. A company may promise the privacy of your data, but those policies can change at any time. Changes can retroactively affect data you have spent years putting into the tool. Examples: Google, Zoom, Dropbox, Tumblr, Slack, Adobe, Figma. A self-guaranteeing promise about privacy gives you proof that the tool cannot access your data in the first place.
Encoding values into a governance structure is not self-guaranteeing. Given enough motivation, the corporate structure can be reversed. The structure is not in your hands. Example: OpenAI. Open source alone is not self-guaranteeing. Even open source apps can rely on data that is stuck in databases or in proprietary formats that are difficult to switch away from. Open source is not a reliable safeguard against the biases of venture capital. Examples: Omnivore, Skiff. When you choose to use a tool, the future of that tool is always ambiguous. On a long enough timeline the substrate changes. Your needs change, the underlying operating system changes, the company goes out of business or gets acquired, better options come along. It is possible to accept the ambiguousness of a tool’s future if you choose tools that make self-guaranteeing promises.
Companies break promises all the time. A self-guaranteeing promise does not require you to trust anyone.
Full essay:
stephango.com/self-guarantee