Sign in

Nicki

@nickidee.bsky.social
16 followers 209 following 20 posts

Former cook, now dev. Passionate about tinkering and working with Elixir/Phoenix.

PostsRepliesMedia
Reposted by Nicki
Andrew Lilley Brinker @alilleybrinker.com · 31/08/2026
Hey @1password.bsky.social, time to change course.
alilleybrinker.com
1Password Supports the Ethnic Cleansing of Europe — Andrew Lilley Brinker
1Password has committed $300,000 to Omarchy. This is unacceptable and must be rescinded.
551523623
Nicki @nickidee.bsky.social · 23/07/2026
Everything is a macro :P Even def. github.com/elixir-lang/...
github.com
elixir/lib/elixir/lib/kernel.ex at v1.20.2 · elixir-lang/elixir
Simple from zero to scale. Contribute to elixir-lang/elixir development by creating an account on GitHub.
110
Nicki @nickidee.bsky.social · 21/06/2026
Eine Schar von Irren fährt seit Stunden um 2 Uhr morgens hupend durch die Innenstadt und die Polizei stellt einen Taxifahrer, weil ihnen "die Lichtanlage aufgefallen" ist. Top, danke. #wm26 #polizei
000
Reposted by Nicki
Elixir Ruhr @elixir-ruhr.dev · 26/02/2026
Next meetup scheduled: On March 26, 6.30pm in Bochum, @nickidee.bsky.social from @9elements.com will talk about building sports app backends with #elixirlang - what it takes to handle hundreds of thousands of fans hitting the same app at kickoff. See you there! www.meetup.com/elixir-ruhr-...
meetup.com
Third Elixir Ruhr Meetup: A perfect match, Thu, Mar 26, 2026, 6:30 PM | Meetup
We're excited to announce our third Elixir Ruhr Meetup. This time, we welcome Nick Duitz, Lead Elixir Developer at 9elements, who will talk about building high-performance
043
Reposted by Nicki
Daniel Hoelzgen @dhoelzgen.dev · 26/02/2026
Our team built the app backend for a major German sports club, and it was one of the most exciting projects to come out of @9elements.com. Can't wait to listen to @nickidee.bsky.social's talk to get some insight on how they handled scalability and performance.
121
Nicki @nickidee.bsky.social · 21/01/2026
To be fair, we warm pretty aggressively. I resolved this issue by using `Repo.stream` instead of `Repo.all`
010
Nicki @nickidee.bsky.social · 21/01/2026
Yesterday I decided to use the ets flag `compressed` to reduce memory usage on our nodes. I tested the impact locally and saw memory usage dropped to 1/2. What I didn't realize is that this introduced memory overhead when warming the cache, which killed our prod servers with OOM 😁 #elixirlang
130
Reposted by Nicki
molily @molily.de · 14/01/2026
Today we released the improved mobile app of the German #football club FC Schalke 04 #s04 for iOS and Android. My teammates and I have been working on it for ages and the launch went well! play.google.com/store/apps/d... – apps.apple.com/de/app/fc-sc...
play.google.com
FC Schalke 04 - Apps on Google Play
The official FC Schalke 04 e.V. app
1111
Nicki @nickidee.bsky.social · 27/10/2025
NVM I take it back they still exist in the DOM, I misinterpreted the docs.
000
Nicki @nickidee.bsky.social · 27/10/2025
I'll give you scroll position and viewport. But that regarding DOM elements, that's literally the first sentence in the docs: "It is often useful to limit the number of items in the UI" :D
100
Nicki @nickidee.bsky.social · 26/10/2025
Isn't that what limiting streams is for? hexdocs.pm/phoenix_live...
hexdocs.pm
Phoenix.LiveView — Phoenix LiveView v1.1.16
110
Nicki @nickidee.bsky.social · 01/10/2025
mix ecto.drop
110
Nicki @nickidee.bsky.social · 22/09/2025
Absolutely on your side if an avatar is all you need but for apps handling more than that, I like the boilerplate because it gives more clarity
000
Nicki @nickidee.bsky.social · 22/09/2025
The platform handles large galleries with large files ~20-200mb but there is a delay until the user is able to view their gallery, we use that delay to offload the image processing to lambda services to reduce overall cost and load on our application servers
100
Nicki @nickidee.bsky.social · 22/09/2025
But we have yet to see how this will perform in production but I am quite happy with everything and besides some tinkering it didn't require much time to implement. What part you find to be leaking?
100
Nicki @nickidee.bsky.social · 22/09/2025
Yes waffle is not as extensive as active storage. We use it together with 'Image' to calculate metadata while uploading is in progress. Additionally we use an embedded schema backed by a jsonb column to store metadata alongside with the image itself. So it's `embeds_one :image` and we are good.
100
Nicki @nickidee.bsky.social · 22/09/2025
You are correct, and my prior answer is a bit misleading. We needed an eager way of creating variants to have tighter control of when and how image creation happens. We ended up using undocumented functions of active storage's API some of which have been silently made private from rails 7 to 8.
100
Nicki @nickidee.bsky.social · 21/09/2025
Just to give an example of problems with active storage:variant creation jobs download your file from your storage every time you create a variant.If you want to create a lot of variants this is a huge overhead. Most of the time I felt like it's an over engineered avatar handler. Maybe skill issue🤷
110
Nicki @nickidee.bsky.social · 21/09/2025
I worked in a rails code base that handles a lot of attachments and I would have wished for something like waffle instead of the opinionated active storage. I do dislike some parts of waffle, but I really appreciate the loosely coupled approach which let's me handle things my way.
200
Nicki @nickidee.bsky.social · 14/07/2025
Ran into this couple of times. Now I am trying to always convert dt's to Unix timestamps before I do any kind of comparison or calculation on them.
100
Nicki @nickidee.bsky.social · 13/07/2025
It is quite easy to block your entire CPU with image processing, leaving the application in an unusable state. Moving the image processing to dedicated servers/functions makes a big difference, I promise :)
100
Nicki @nickidee.bsky.social · 13/07/2025
A while ago I struggled with this as well, even though I used rails. We had to scale the servers up to handle short bursts of huge amounts of processing jobs. We managed to save us a lot of struggle and costs by moving to lambda fns. With phx I probably would have done this with FLAME.
100
Nicki @nickidee.bsky.social · 01/06/2025
That's only true for dev credentials. The default for new projects depends on env variables to set your database connections. I don't see a benefit of using .pgpass really since you'd probably have more than just DB credentials in your project, thus using env variables would be more flexible.
110
Reposted by Nicki
Daniel Hoelzgen @dhoelzgen.dev · 17/05/2025
#ElixirConf 2025 was absolutely wonderful. First one since 2017, and the community is still just as great, lovely, and open. Tons of inspiring talks and conversations, can’t wait to try Ash AI! See you at the next one, hopefully not in another 7 years.
181
Reposted by Nicki
Daniel Hoelzgen @dhoelzgen.dev · 27/11/2024
Just did a short write-up on storing session data in a #LiveView application so that it survives page reloads and navigation events within the same live_session. 9elements.com/blog/robust-... #ElixirLang #ElixirPhoenix
9elements.com
Robust Session Storage in Phoenix Live View Sessions - 9elements
For an internal project called ‘ControlManiac’, which helps us with all the boring numbers juggling in our software studio, I had to add a global filter to the navigation bar, which lets me select the...
0123
Nicki @nickidee.bsky.social · 24/11/2024
That's not correct, since || would also "work" with false while coalesce requires x to be nil to return y.
110