DevTools Developer Profile
Samuel Cavazos
@samuel
Chief Data Scientist
Repos
15
Stars
0
Followers
0
Forks
0
Python
2
Jupyter Notebook
2
HTML
1
Rust
1
JavaScript
1
MDX
1
Feed
Public blog posts and quick posts from @samuel.
Activity
9
Followers
1
Languages
6
Alshival, unleashed in your cloud environment, on your infrastructure, or on your raspberry pi.
DevTools is a tool for devs, but it is also a social media platform built to do the things they wish they could do on social media. Like mermaid diagrams.
flowchart TB
classDef event fill:#fff3cd,stroke:#856404,color:#4a3b00,stroke-width:1px;
classDef proc fill:#d1ecf1,stroke:#0c5460,color:#0c5460,stroke-width:1px;
classDef db fill:#e2e3e5,stroke:#383d41,color:#212529,stroke-width:1px;
classDef decision fill:#f8d7da,stroke:#721c24,color:#721c24,stroke-width:1px;
classDef ext fill:#d4edda,stroke:#155724,color:#155724,stroke-width:1px;
A["Stripe Event Received"]:::event --> B["Verify signature and parse event"]:::proc
B --> C{"Valid webhook?"}:::decision
C -- "No" --> Z1["HTTP 400"]:::event
C -- "Yes" --> D["Extract event type, IDs, payload"]:::proc
D --> E{"Event type"}:::decision
E -- "checkout.session.completed or async_payment_succeeded" --> F1["Resolve profile by client_reference_id/customer/email"]:::proc
E -- "customer.subscription.created or updated" --> F2["Resolve profile by stripe_customer_id"]:::proc
E -- "customer.subscription.deleted" --> F3["Mark subscription ended"]:::proc
E -- "Other" --> Z2["Ignore and HTTP 200"]:::event
F1 --> G1["Capture was_subscribed snapshot"]:::proc
F2 --> G2["Capture was_subscribed snapshot"]:::proc
G1 --> H1["Update stripe_customer_id, subscription_id, status, period_end"]:::proc
G2 --> H2["Update subscription_id, status, period_end"]:::proc
H1 --> I1[("auth_profile")]:::db
H2 --> I1
F3 --> I2["Update status deleted/canceled and clear period_end"]:::proc
I2 --> I1
H1 --> J1{"now_subscribed and not was_subscribed?"}:::decision
H2 --> J2{"now_subscribed and not was_subscribed?"}:::decision
J1 -- "No" --> R1["No staff alert dispatch"]:::proc
J2 -- "No" --> R1
J1 -- "Yes" --> K["Dispatch new DevTools subscriber staff alerts"]:::proc
J2 -- "Yes" --> K
K --> L["Select active staff and superusers"]:::proc
L --> M[("auth_user and profile")]:::db
L --> N["Load each staff member account_settings"]:::proc
N --> O[("client_resources/user-ID/resources.db")]:::db
N --> P{"Any channel enabled: app, sms, email?"}:::decision
P -- "No" --> Q1["Skip recipient"]:::proc
P -- "Yes" --> Q2["Build app/sms/email payload"]:::proc
Q2 --> APP{"App enabled?"}:::decision
Q2 --> SMS{"SMS enabled?"}:::decision
Q2 --> EMAIL{"Email enabled?"}:::decision
APP -- "Yes" --> APP1["Create in-app notification"]:::proc
APP1 --> O
APP -- "No" --> APP0["Skip app"]:::proc
SMS -- "Yes" --> SMS1{"Phone verified and present?"}:::decision
SMS1 -- "No" --> SMS0["Record sms_phone_missing_or_unverified"]:::proc
SMS1 -- "Yes" --> SMS2["Send SMS via Twilio helper"]:::ext
SMS2 --> SMS3{"SMS success?"}:::decision
SMS3 -- "Yes" --> SMS4["Persist outbound message in conversation log"]:::proc
SMS4 --> O
SMS3 -- "No" --> SMS5["Record sms_send_failed"]:::proc
SMS -- "No" --> SMS6["Skip sms"]:::proc
EMAIL -- "Yes" --> EM1{"Staff email available?"}:::decision
EM1 -- "No" --> EM0["Record email_missing"]:::proc
EM1 -- "Yes" --> EM2["Send email via send_email"]:::ext
EM2 --> EM3{"Email success?"}:::decision
EM3 -- "Yes" --> EM4["Mark email delivered"]:::proc
EM3 -- "No" --> EM5["Record email_send_failed"]:::proc
EMAIL -- "No" --> EM6["Skip email"]:::proc
APP1 --> CX
APP0 --> CX
SMS0 --> CX
SMS4 --> CX
SMS5 --> CX
SMS6 --> CX
EM0 --> CX
EM4 --> CX
EM5 --> CX
EM6 --> CX
CX["record_context_event: new_devtools_subscriber_alert_dispatched"]:::proc --> O
subgraph Settings["Account Settings Update Flow"]
S1["User submits notification settings form"]:::event --> S2{"Is staff or superuser?"}:::decision
S2 -- "No" --> S3["Force staff-only alert toggles false"]:::proc
S2 -- "Yes" --> S4["Accept submitted values"]:::proc
S3 --> S5["Persist account_settings"]:::proc
S4 --> S5
S5 --> O
S5 --> S6["record_context_event: notification_preferences_updated"]:::proc
S6 --> O
end
R1 --> Z3["HTTP 200"]:::event
Q1 --> Z3
CX --> Z3
Z2 --> Z3
A practical deep dive into DevTools: resource monitoring, Python SDK logging, team sharing, and what is coming next with Alshival.
Alshival.Ai is launching a staff blog platform. Our own substack, if you will. This is a test blog post. Test test test test test test test test test test test test!!!!!
Our HIPAA Business Associate Agreement with OpenAI is live, unlocking GPT-powered copilots that meet hospital-grade safeguards.
November marked the first stop in Alshival.Ai's monthly Skatepark BBQ series, where we bring food, music, and data nerdery to a different Texas skatepark every month.
We’re excited to welcome Rafael, a 4.0 CS student at UTRGV with a biology background, as the newest intern on the Data Team.
Repos
15
Stars
0
Followers
0
Following
2
Jupyter Notebook
0
About
Public profile details only. Resource activity stays inside DevTools.
Permalink
https://alshival.dev/profile/samuel/