Sign in

Peter Solnica 🇺🇦 🇵🇱 🇪🇺

@solnic.dev
2.8K followers 450 following 1.5K posts

🛠️ Building @justcrosspost.app & @repobot.app 👨‍💻 Elixir/Ruby SDK dev at @sentry.io 💜 Creator of Elixir Drops 💦 ❤️ Creator of rom-rb and many dry-rb gems and former @Hanamirb.org core team member #ElixirLang #RubyLang #OpenSource #BuildInPublic

PostsRepliesMedia
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 19/09/2025
Been listening to Don Broco a lot lately and their "Uber" track has some pretty relevant lyrics. It crossed my mind that one of the biggest leaders in the Ruby community is basically a racist uber driver. 👇🏻
"Been a long night, I've been out
I've been dealing with the driver
Who's sorry for my lot
'Cause my country got us
Mixing our blood'
And it's boiling his blood and that's boiling my blood
He won't shut the fuck up
Tell you I don't give a fuck if the world turns brown
Tell you I don't give a fuck, you pull over right now
Tell me how the fuck you not afraid to say that kind of shit
Tell me how you feel safe"
110
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 12/09/2025
You'll never guess what I've been building lately 🙃 Best guess wins a cookie. I'm in love with #svelte. #opensource #comingsoon
A screenshot from my latest Open Source project (not released yet) showing language stats with TypeScript at 79.7% and Svelte 10.6%
5150
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 09/09/2025
📣 After a lot of work we've shipped Ruby & Rails SDKs with support for @sentry.io brand new Logs feature which is now out of beta! While you're waiting for Rails' "structured events" feature, you can start using Sentry *today* to get structured logging work OOTB! 🎉 #Ruby #Rails #OpenSource 👇🏻
A screenshot showing latest Sentry UI for the Logs feature, showing 3 log events expanded with details including extra attributes automatically included via Sentry Ruby & Rails SDKs.
181
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 12/08/2025
Syncing @ghost.org <=> @obsidian.md sounds like a good idea 🙃
Screenshot from Ghost Sync Obsidian plugin showing a post browser for syncing Ghost posts to local Obsidian files
060
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 12/08/2025
Moved back to @ghost.org since they are working on the open social web and decentralized publishing in general and I'm psyched about it! Got my site pages upgraded with the open source section showing some basic stats. It was fun to see how my OSS work went up and down, and it's now rising. 👇🏻
A screenshot from my site showing basic Open Source contribution stats, with 18486 commits in 212 repositories, over the course of 15+ years.
2100
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 31/07/2025
We lost a wonderful human being this week. I wish we did swap our talks back at RubyConf in Braga to troll the audience and see if they will realize you're not me, and I'm not you, like you wanted to. You were THE Piotr S. of the Ruby community, as we liked to joke. I'll be missing you Piotr.
image
5353
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 29/07/2025
🤦🏻🔨
230
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 24/07/2025
Seems like ActiveRecord doesn't care about nil comparisons 🤔
110
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 23/07/2025
It's the little stuff that matters - in Ecto you can't do `get_by(field: nil)` etc. - you must use an explicit Ecto.Query with `is_nil` expression. In Drops.Relation I made it automatically work because we have detailed schema information. It even validates if the query makes sense ✨
image
261
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 16/07/2025
Almost there with Drops.Relation (yep, it's gonna be under Drops umbrella because I didn't like EctoRelation namespace). Got dynamic schemas and corresponding structs working via `view` macro, this is one more concept taken from rom-rb. Notice that derived `active` users have custom fields ✨
140
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 09/07/2025
Ecto.Relation sneak preview 👀 ...it freaking works in my Phoenix app! 🎉 One line of code and you get so much functionality OOTB 🚀 Still in a PoC state but I will release it eventually! #ElixirLang
image
1180
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 07/07/2025
There we go - I rebuilt rom-rb in #ElixirLang on top of Ecto 🔥 I can't stress enough how powerful relation composition is and I hope I can make it fly in Elixir and there will be some adoption. I love Ecto and I just want to make it easier to work with it 💜 More news coming soon 🙃
5415
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 06/07/2025
ehehe getting somewhere with this. Igniter's cool btw, thank you
120
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 06/07/2025
Bringing some good rom-rb vibes to #ElixirLang - got Ecto schema inference working. They see me inferrin, they hatin (???) I'm gonna experiment with this a lot and try out various strategies, including keeping Ecto schemas in sync with explicitly defined fields too. Igniter could help here.
image
380
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 04/07/2025
Gonna have a "business logic framework" for my #ElixirLang folks ready soon. Some people will love it, some people will hate it. Here's a super basic example from my app. It looks innocent but it does a lot automatically and it's very flexible ✨ Thoughts?
image
4140
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 24/06/2025
Bringing more of my Ruby stuff to #ElixirLang via Drops lib - this time I'm finally adding support for inferring schemas from Ecto and a simple and conventional way of splitting your app into Command and Query operations. I've used this pattern a lot in the past, gonna see how it feels in Phoenix.
imageimage
0121
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 20/06/2025
Big step forward - @repobot.app now uses Oban for GitHub event processing based a very simple event system. Webhook controller stores events with payloads in the db and immediately schedules workers. Nothing fancy but it's progress! 🤓
image
1121
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 18/06/2025
I ported @repobot.app to Phoenix 1.8.0.rc-3 and Tailwind 4 with DaisyUI. Then I put together a semi-custom DaisyUI theme, updated a bunch of helpers and 💥 things work and I can easily style the whole app. Really cool stuff! #ElixirLang #BuildInPublic
imageimage
2211
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 17/06/2025
Sentry Elixir SDK 11.0.0 was just released with beta support for Tracing using #OpenTelemetry! 🎉 Please give it a go and report any issues you may find - this is early stage and feedback is much appreciated! #ElixirLang #Observability #Monitoring #DevOps 👇🏻
image
1306
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 14/06/2025
Good to be back 🔥
1140
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 14/06/2025
Ahh finally. Good morning ☀️😃 ⛰️🚵
2150
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 12/06/2025
Big weekend ahead. Hitting bike park tracks after a long post-accident break. It's time.
0100
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 11/06/2025
Good morning. I hope this will work 🙏🏻 #ADHD
image
0150
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 10/06/2025
Yrynbor 💀
130
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 10/06/2025
What have I done
060
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 10/06/2025
Look at this horror 🙈 W T F Apple 🤣 My eyes just bleed
240
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 10/06/2025
Also, NEW avatar day 🎉
image
4230
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 09/06/2025
Exception from my "no photos of my kids on socials". Me and my baby girl 🥰 She's 1yo and started walking yesterday. We clearly rock together 🙃
image
7330
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 28/05/2025
I had a broken test after a big refactoring in @repobot.app app and I didn't have time/energy to address it. I tried to use Cursor with all of the models to fix it and it failed. Then I switched to Augment with Claude Sonnet 3.7 and it didn't fix it either. I just tried Claude 4 and it fixed it 🤯
Screenshot from Augment VSCode extension with Claude 4 chat showing summary of a complex test fix process.
040
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 27/05/2025
Looks like my wrists are fixed. Can I do one-handed pushups again? Yes I can 😀🎉
190
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 21/05/2025
MOAH #git buttons on my #StreamDeck - this is so cool and actually useful 😁 There's a #VSCode extension that you can use to execute either built-in commands or terminal commands (arbitrary). The only caveat is that there's no mechanism for waiting until a command finishes (vscode limitation).
A photo of my StreamDeck with 4 git buttons configured: Commit, Push, Rebase and Publish.
270
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 19/05/2025
Both missions accomplished! 🎉 Brain's still buzzing after a fantastic #ElixirConfEU event last week. I enjoyed the talks and the talking. I didn't manage to chat to every person that I wanted to but that's OK. Huge thanks to the organizers, speakers and the amazing #ElixirLang community!
4210
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 15/05/2025
📣 Big release today! We've added support for Structured Logging, a new @sentry.io feature that's currently in beta, to the Ruby SDK! 🎉 There are also other improvements and bug fixes so please upgrade and let us know how it goes! github.com/getsentry/sentry-ruby/re…
A screenshot showing the new Structured Logging feature in Sentry using the Ruby SDK.
1140
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 12/05/2025
Tiny AI-based auto-completions that really save time and make me type less is something I learn to appreciate more and more. This time it's just a link to PR in a CHANGELOG but small things like that count as well. #ai #programming #aicodingassist
A screenshot from sentry-ruby changelog where a link to PR was correctly auto-completed using markdown formatting.
150
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 12/05/2025
My plan for this week is simple #ElixirLang
A screenshot from Sunsama app with This Week plan that shows "Get Logger stuff released" (in my #Sentry channel) and "Have fun at ElixirConf" (in my #Personal channel) objectives.
1290
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 08/05/2025
Gotta love UHK. It cares about my wellbeing 🤣
030
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 07/05/2025
Unfortunately it stopped working completely for me in getsentry/sentry-ruby 🥺
200
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 06/05/2025
I'm experimenting with automatic summaries of what I did on a given day and got a bunch of scripts now that can extract various info from local git repos and generate a markdown summary. I even got an abstraction for using different LLM backends. Here I used local DeepSeek. Cool stuff! ✨ #ai #git
A screenshot showing results of my script that generates a summary of my work based on a diff from a local git repo. It shows VS Code on the left with results and LM Studio running local DeepSeek model that was used to generate the summary.
150
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 06/05/2025
Who's actually using #Ruby LSP in #VSCode to run tests? I am trying it out today and its command to run all tests from current file seems to be running *each test scenario* in a separate process. This means that running all tests is dead slow. Am I doing something wrong?
A screenshot from test results in VS Code using Ruby LSP extension showing that running all tests from sentry_spec.rb file takes 49s instead of less than a second.
242
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 06/05/2025
Lately, I've been using LLMs more for code investigation than for code generation. Here's Augment in VS Code spitting out a code flow diagram instantly instead of me jumping between files and building a mental model in my head to understand what's going on. #ai #aicodeassist #vscode #augment
Screenshot from VS Code and Augment AI chat where I used a prompt "investigate how Scope#apply_to_event is called and give me a mermaid diagram representing the code flow" to quickly see code flow in Sentry Ruby SDK.
051
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 01/05/2025
Yeah I mean, I even created a special playlist to test out its robustness
010
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 29/04/2025
With the addition of jruby 10.0.0.0 to our testing matrix, sentry-ruby now runs... ...128 test jobs 🙃 Luckily, with cached bundles, it takes less than 5 minutes to run ⚡ #sentry #testing #ruby #jruby #github #ci
A screenshot showing sentry-ruby GitHub actions graph with tests.yml workflow.
060
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 17/04/2025
My daughter turned 1 year old today 🥰 She's just the best. I don't post pictures of my kids, so here's a random photo of our cat instead (she's super cute too after all).
image
2170
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 14/04/2025
Quick update on my new Apple Studio Display...the glass cracked in bottom-right corner. Just like that, by just standing on my desk. That's disappointing.
image
770
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 13/04/2025
I hope our cat will teach me how to chill like that. She's a professional.
A cat chilling in the morning sun
0100
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 09/04/2025
Once I had files imported from the template repository, any change I push to that repository is automatically reflected in the target repositories. I can manage common files in a single place and that saves quite some time! I set it up to push directly but it can also open PRs automatically 🎉
imageimage
110
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 09/04/2025
First I added solnic/cursor-rules GitHub repository to RepoBot and set it as the template repo with cursor rules imported as source files for synchronization. Here, I even can see a graph that visualizes how files are synced 👇🏻
image
200
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 07/04/2025
Switched to Apple Studio Display from a gigantic 40" curved Dell. It kept disconnecting from my MB all the time which required unplugging and waiting for a minute for the thing to reset. Studio Display is so tiny in comparison but it was a good trade-off. It's brighter and res is super sharp. 👇🏻
image
5160
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 06/04/2025
Finally managed to update @justcrosspost.app landing page with a new slogan and updated screenshots + added "and more" section summarizing other features 🙂 #buildinpublic #crossposting #crosspostingapp
Screenshot from the justcrosspost.app landing page showing the new slogan that says "The no fuss cross-posting app"
1122
Peter Solnica 🇺🇦 🇵🇱 🇪🇺 @solnic.dev · 04/04/2025
Plausible - $9/month, a nice Elixir-based, ethical user analytics. I got it hooked up just because I need to see where the traffic is coming from. It doesn't play any major role right now but it will soon once I step up my marketing game. 👇🏻
image
220