Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions scripts/sync-sched/schedule-2025.json
Original file line number Diff line number Diff line change
Expand Up @@ -1054,6 +1054,52 @@
"end_time": "14:15:00",
"event_subtype": "Documentation"
},
{
"event_key": "929645",
"active": "Y",
"pinned": "N",
"name": "Streamlining Data Collection and Entity Management for Amazon's Buyer Abuse Prevention Team - Adam Cervantes, Amazon",
"event_start": "2025-09-08 13:45",
"event_end": "2025-09-08 14:15",
"event_type": "GraphQL in Production",
"description": "The Buyer Abuse Prevention team is responsible for preventing returns abuse on Amazon.com. We do this by leveraging multiple streams of data to help make accurate decisions that minimize friction to our good customers. Enrichment of entities, for example, orders, is often distributed across multiple APIs, which makes collecting and organizing large sets of data inefficient and inflexible.\n\nTo simplify development, we built a GraphQL API to consolidate the collection and storage of data that allowed us to break the dependency on API results and design our storage around entities in a way that was optimal for our business. Chaining API calls now only takes place within a single API without need for code replication. Swapping out the underlying API for specific fields no longer requires code refactoring as the shape of the entity remained the same. The schema is well-connected which allows for different entry points but ultimately arrives at the same data without needing to reinvent the wheel.\n\nWe can now focus on developing a schema and set of entities that match our business needs, without risk of major refactoring when a dependent API changes.",
"goers": "0",
"seats": "0",
"invite_only": "N",
"venue": "Studio - 5th Floor",
"audience": "Beginner",
"id": "2f80d25265c00f9c5133f80cdcc71618",
"venue_id": "2152809",
"speakers": [
{
"username": "adam427",
"id": "3141026",
"name": "Adam Cervantes",
"company": "Amazon",
"custom_order": 0
}
],
"event_start_year": "2025",
"event_start_month": "September",
"event_start_month_short": "Sep",
"event_start_day": "8",
"event_start_weekday": "Monday",
"event_start_weekday_short": "Mon",
"event_start_time": "13:45",
"event_end_year": "2025",
"event_end_month": "September",
"event_end_month_short": "Sep",
"event_end_day": "8",
"event_end_weekday": "Monday",
"event_end_weekday_short": "Mon",
"event_end_time": "14:15",
"start_date": "2025-09-08",
"start_time": "13:45:00",
"start_time_ts": 1757331900,
"end_date": "2025-09-08",
"end_time": "14:15:00",
"event_subtype": "Case studies"
},
{
"event_key": "882751",
"active": "Y",
Expand Down
80 changes: 50 additions & 30 deletions scripts/sync-sched/speakers.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202312971
},
{
"username": "adam.sayah",
Expand All @@ -108,6 +108,21 @@
],
"~syncedDetailsAt": 1749497543087
},
{
"username": "adam427",
"company": "Amazon",
"position": "Software Development Engineer",
"name": "Adam Cervantes",
"about": "Adam is currently a software development engineer at Amazon's Buyer Abuse Prevention team. For the last 4 years, Adam has been helping prevent returns abuse on Amazon.com. One of his projects was to consolidate the data the team needs into a single, cohesive, GraphQL API.",
"location": "",
"url": "",
"avatar": "//avatars.sched.co/b/ad/3141026/avatar.jpg.320x320px.jpg?90d",
"socialurls": [],
"_years": [
2025
],
"~syncedDetailsAt": 1756202302380
},
{
"username": "aditi_rajawat",
"company": "Intuit",
Expand Down Expand Up @@ -192,7 +207,7 @@
2023,
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202312971
},
{
"username": "alex_reilly.7ldur4l",
Expand Down Expand Up @@ -330,7 +345,7 @@
2024,
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202312971
},
{
"username": "andrei.bocan",
Expand All @@ -346,7 +361,7 @@
2024,
2025
],
"~syncedDetailsAt": 1755532095188
"~syncedDetailsAt": 1756202312971
},
{
"username": "andrew.doyle1",
Expand Down Expand Up @@ -508,7 +523,7 @@
2023,
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202312971
},
{
"username": "arkenflame",
Expand Down Expand Up @@ -1186,7 +1201,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202302380
},
{
"username": "gabrielschulhof",
Expand Down Expand Up @@ -1308,7 +1323,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202302380
},
{
"username": "hello2358",
Expand Down Expand Up @@ -1384,11 +1399,16 @@
"location": "Lviv",
"url": "https://apis.guru",
"avatar": "//avatars.sched.co/d/6f/23096422/avatar.jpg.320x320px.jpg?958",
"socialurls": [],
"socialurls": [
{
"service": "LinkedIn",
"url": "https://www.linkedin.com/in/igoncharov/"
}
],
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202302380
},
{
"username": "jamie855",
Expand Down Expand Up @@ -1442,7 +1462,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202302380
},
{
"username": "jared_cheney.7rad60v",
Expand Down Expand Up @@ -1587,7 +1607,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202302380
},
{
"username": "jesperrasmussen",
Expand Down Expand Up @@ -1646,7 +1666,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202302381
},
{
"username": "jordaneldredge",
Expand Down Expand Up @@ -1685,7 +1705,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202302381
},
{
"username": "juancarlosjr97",
Expand Down Expand Up @@ -1754,7 +1774,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202312970
},
{
"username": "keerthan.ekbote",
Expand Down Expand Up @@ -2007,7 +2027,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202302381
},
{
"username": "lyonwj1",
Expand Down Expand Up @@ -2071,7 +2091,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202302381
},
{
"username": "mansi.mittal",
Expand All @@ -2086,7 +2106,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202309111
},
{
"username": "marco.reni",
Expand Down Expand Up @@ -2181,7 +2201,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202309111
},
{
"username": "marybriskin",
Expand Down Expand Up @@ -2362,7 +2382,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202309111
},
{
"username": "michael.bleigh",
Expand Down Expand Up @@ -2401,7 +2421,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202309111
},
{
"username": "omribruchim",
Expand Down Expand Up @@ -2614,7 +2634,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202309111
},
{
"username": "rickbijkerk54",
Expand All @@ -2629,7 +2649,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202309111
},
{
"username": "robert.balicki",
Expand Down Expand Up @@ -2708,7 +2728,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202309111
},
{
"username": "saihajpreet.singh",
Expand Down Expand Up @@ -2747,7 +2767,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202309111
},
{
"username": "sanvertarmur",
Expand All @@ -2762,7 +2782,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202309111
},
{
"username": "sasanders26",
Expand Down Expand Up @@ -3028,7 +3048,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202309111
},
{
"username": "suresh_muthu",
Expand Down Expand Up @@ -3135,7 +3155,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202312970
},
{
"username": "tim.hall.engr",
Expand Down Expand Up @@ -3174,7 +3194,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202312970
},
{
"username": "tristan119",
Expand Down Expand Up @@ -3299,7 +3319,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202312970
},
{
"username": "vmjohnson999",
Expand Down Expand Up @@ -3350,7 +3370,7 @@
"_years": [
2025
],
"~syncedDetailsAt": 1755532095187
"~syncedDetailsAt": 1756202312970
},
{
"username": "yaacovcr",
Expand Down
12 changes: 7 additions & 5 deletions src/app/conf/2025/schedule/_components/schedule-session-card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ export function ScheduleSessionCard({
// eslint-disable-next-line tailwindcss/no-contradicting-classname
className={clsx(
"[--bg:hsl(var(--color-neu-0))] [&:has(>a:hover)]:[--bg:hsl(var(--color-neu-0)/.9)] dark:[&:has(>a:hover)]:[--bg:hsl(var(--color-neu-0)/.8)]",
"group relative size-full p-4 font-normal no-underline ring-neu-400 focus-visible:z-[1] dark:ring-neu-100 [&:has(>a:hover)]:ring-1",
"group relative size-full p-4 font-normal no-underline ring-neu-400 @container focus-visible:z-[1] dark:ring-neu-100 [&:has(>a:hover)]:ring-1",
blockTimeFraction < 1 && "[--bg:hsl(var(--color-neu-0)/50)]",
)}
style={
Expand Down Expand Up @@ -133,12 +133,12 @@ export function ScheduleSessionCard({
)}
<span className="mt-4 flex items-center gap-2 xl:mt-6">
<span className="typography-body-xs flex items-center gap-0.5">
<PinIcon className="size-4 text-pri-base" />
<PinIcon className="size-4 text-pri-base [@container(width<240px)]:hidden" />
{session.venue}
</span>
{blockTimeFraction < 1 && (
<span className="typography-body-xs flex items-center gap-0.5">
<ClockIcon className="size-4 text-pri-base" />
<ClockIcon className="size-4 text-pri-base [@container(width<240px)]:hidden" />
{Math.round(
(new Date(session.event_end).getTime() -
new Date(session.event_start).getTime()) /
Expand All @@ -151,7 +151,7 @@ export function ScheduleSessionCard({
eventTitle={eventTitle}
session={session}
speakers={session.speakers || []}
className="ml-auto"
className="ml-auto [&_[data-text]]:hidden @[300px]:[&_[data-text]]:inline"
/>
</span>
</span>
Expand Down Expand Up @@ -204,7 +204,9 @@ function AddToCalendarLink({
)}
>
<CalendarIcon className="size-4 shrink-0 text-pri-base" />
<span className="typography-body-xs">Add to calendar</span>
<span data-text className="typography-body-xs">
Add to calendar
</span>
</MenuButton>
</div>
<Transition
Expand Down
Loading