Jubayer Shikder

130 posts

Jubayer Shikder

Jubayer Shikder

@jubayers_r

backend for vibe-coded products. TS / Node / Postgres / Stripe. not a guru, just seen things break.

Remote Katılım Eylül 2023
39 Takip Edilen26 Takipçiler
Sabitlenmiş Tweet
Jubayer Shikder
Jubayer Shikder@jubayers_r·
Rate limiting isn't about stopping attackers. Most of the time it's about stopping your most enthusiastic user from accidentally taking your database down by refreshing a page 200 times because it felt slow. Protect yourself from your best users too. #backend #startups #SaaS
English
0
0
0
4
Jubayer Shikder
Jubayer Shikder@jubayers_r·
Someone asked me today why their app "feels laggy" even though their frontend is fast and their DB queries are fast individually. Usually it's not one slow thing. It's 40 fast things happening one after another instead of at once. Death by a thousand round trips. #webdev #nodejs #backend
English
0
0
0
11
Jubayer Shikder retweetledi
JNS
JNS@_devJNS·
ZXX
15
109
1.1K
24.1K
Jubayer Shikder
Jubayer Shikder@jubayers_r·
@Sahil250199 Using bucketCounter % 100 makes bucketing stateful and dependent on request order. A user will flip buckets on subsequent hits. Calculate the hash deterministically: Math.abs(Objects.hash(userId, flagId)) % 100. That guarantees stateless consistency across rollouts.
English
0
0
0
3
Jubayer Shikder
Jubayer Shikder@jubayers_r·
@harshitabuilds @antonosika @amasad @MaorShlomo The agent broke it because it lacks context on state boundaries. Don't let it touch config files directly. Explicitly isolate your backend logic behind strict API contracts (JSON schemas) so client changes cannot structurally break the server.
English
1
0
0
18
Harshita Soni
Harshita Soni@harshitabuilds·
Day 6 (Extended) Vibe coding as a non-tech founder:Prompting is the only easy part btw ✅ Shipped a better product ❌ Broke the app 📚 Learnt config.js, manifest.json, localhost & frontend ↔ backend. Is this the normal learning curve? @antonosika @amasad @MaorShlomo
English
2
0
0
43
Jubayer Shikder
Jubayer Shikder@jubayers_r·
@DarayuthH Treat the redirect purely as UI decoration, and let the asynchronous checkout.session.completed webhook act as the single source of truth for fulfillment.
English
0
0
0
5
Jubayer Shikder
Jubayer Shikder@jubayers_r·
@DarayuthH Relying purely on the client redirecting to the success URL to confirm state is a major vulnerability anyway. If the user closes the tab before the redirect hits your route, your database never updates.
English
1
0
0
6
dhang
dhang@DarayuthH·
If ur Stripe localhost webhook isn't triggering, check ur success_url. I forgot to add session_id={CHECKOUT_SESSION_ID} and spent hours debugging. 😅 In my setup, without it, the webhook never triggered. 😆
English
2
0
3
68
Jubayer Shikder
Jubayer Shikder@jubayers_r·
@dulelicanin State transitions must explicitly validate the event timestamp or sequence ID against the current database record before committing.
English
1
0
1
4
Jubayer Shikder
Jubayer Shikder@jubayers_r·
@dulelicanin Standard state machines fail here because webhooks can arrive out of chronological order. If your backend processes an old invoice.payment_failed after a newer customer.subscription.updated (active), you lock out paying users.
English
1
0
1
13
Dusko Licanin
Dusko Licanin@dulelicanin·
A subscription looked like the simplest model in the app. A boolean, basically: are they paying or not. Then a past-due customer kept full access for two weeks, and a trialing one got locked out of the exact thing the trial was meant to sell. Same root cause. Stripe moves a subscription through eight distinct states, and I'd flattened all of them into one column my code checked in a dozen places. The rebuild had nothing to do with webhooks, which I already had. The real work was deciding, per feature, which of those states should grant access, then making the webhook the only writer of that status. No more guessing up in the UI layer. Full breakdown of the lifecycle here: duskolicanin.com/blog/saas-subs…
Dusko Licanin tweet media
English
2
0
0
53
Jubayer Shikder
Jubayer Shikder@jubayers_r·
@IvanBalias @dulelicanin It triggers fraud filters immediately. Card networks flag velocity and repeat declines on the same footprint. You need an exponential backoff strategy paired with explicit decline-code routing
English
2
0
1
24
Jubayer Shikder
Jubayer Shikder@jubayers_r·
First week on here properly. Quick context: I do backend. Not the fun part people show off — the part that decides whether your app survives its first real Tuesday. Spent today debugging a payment that charged a user twice because a retry didn't check if the first charge already went through. Five lines of code. Would've cost someone real money if it shipped. #buildinpublic #backend #webdev
English
0
0
0
27
Jubayer Shikder retweetledi
v. Jatin
v. Jatin@JatinTweets_·
Good Morning ☀️
English
7
257
2.7K
38.5K
sanidhya.rs
sanidhya.rs@sanidhya_eth·
Career Update : Joined @amazon as an SDE Intern in Bangalore.
sanidhya.rs tweet media
English
132
8
1.4K
59.4K
aditya
aditya@adxtyahq·
Thanks @getsupermoney for the ₹0.63 cashback on my ₹3.73L payment
aditya tweet media
English
248
32
1.4K
288.5K
Jubayer Shikder retweetledi
Words
Words@itswords_·
Words tweet media
ZXX
59
2.1K
8.3K
195.2K
Jubayer Shikder retweetledi
Dear Son.
Dear Son.@DearS_o_n·
Proof when you give it all, doors finally open. Bro, Neverrrrrrrrrrrrrrrrrrrr up.
English
30
272
1.9K
88.7K
Jubayer Shikder retweetledi
blue
blue@bluewmist·
what if i told you the path to greatness isn’t easy.
English
11
80
855
28.1K
Jubayer Shikder retweetledi
memexe
memexe@Hyperblaxe·
watching people of my age enjoying life while I'm still trying to fix my money and future.
English
1
636
3.8K
55.8K
Jubayer Shikder retweetledi
Alex Hormozi
Alex Hormozi@AlexHormozi·
In 100 years, everyone reading this will be dead. Their problems, worries, and opinions won't matter. Neither will yours. Think of it like a delayed universal blank slate - yours to paint as you see fit.
English
236
221
2.3K
56.7K