02 / alex
Alex Valdez
Infrastructure engineer / Sphere (initial profile)
Infrastructure migrations, incident response, team coordination, and life outside work.
000001Mar 5, 202309:30 UTC-05:00at the 7th Avenue spot in Park Slope. same 7th-Ave block as the bagel place, opposite corner. cortado's fine, crossword open at the counter at the back, and yeah 4-letter for 'pulled' was DREW lol. pretty quiet.
at the 7th Avenue spot in Park Slope. same 7th-Ave block as the bagel place, opposite corner. cortado's fine, crossword open at the counter at the back, and yeah 4-letter for 'pulled' was DREW lol. pretty quiet.
000002Mar 5, 202320:00 UTC-05:00Devika's home, we're doing the Friday leftovers. Gonna do a quick read-through of the migration sequencing doc after. Keeping the evening wrap to the usual short 1-3 sentence status note; that pattern's been stable for me since Q4 2021.
Devika's home, we're doing the Friday leftovers. Gonna do a quick read-through of the migration sequencing doc after. Keeping the evening wrap to the usual short 1-3 sentence status note; that pattern's been stable for me since Q4 2021.
000003Mar 6, 202308:30 UTC-05:00ok so first monday back. migration spine is basically metrics-router this week -- config-loader cleanup first, then cut legacy-aggregator out of the path in pieces. I own the whole metrics pipeline anyway, all three services: metrics-router, ingest-edge, shard-keeper. Hema can pull me in if the order gets weird but leaning router -> edge -> keeper unless prod does something dumb
ok so first monday back. migration spine is basically metrics-router this week -- config-loader cleanup first, then cut legacy-aggregator out of the path in pieces. I own the whole metrics pipeline anyway, all three services: metrics-router, ingest-edge, shard-keeper. Hema can pull me in if the order gets weird but leaning router -> edge -> keeper unless prod does something dumb
000004Mar 6, 202309:30 UTC-05:00Move the standing infra sync Wednesday to Thursday for the migration sprint. Hema's call on Mar 6 -- keep Tuesday afternoon clear.
Move the standing infra sync Wednesday to Thursday for the migration sprint. Hema's call on Mar 6 -- keep Tuesday afternoon clear.
000005Mar 6, 202314:00 UTC-05:00thinking metrics-router cutover is gonna be 30% -> 60% -> 95% -> 100%, with a 48h soak at each step. put that in the cutover doc already -- early March decision so nobody "helpfully" compresses it later. 95 to 100 is the only part i don't totally trust yet bc legacy-aggregator has weird tail behavior when traffic mix shifts, but i still don't want a bigger jump.
thinking metrics-router cutover is gonna be 30% -> 60% -> 95% -> 100%, with a 48h soak at each step. put that in the cutover doc already -- early March decision so nobody "helpfully" compresses it later. 95 to 100 is the only part i don't totally trust yet bc legacy-aggregator has weird tail behavior when traffic mix shifts, but i still don't want a bigger jump.
000006Mar 6, 202318:30 UTC-05:00Day done. Went through Nadia's ingest-edge config-loader diff. Looks fine from here, no weirdness in the loader path or the env fallback stuff. I'll send the approval in the morning.
Day done. Went through Nadia's ingest-edge config-loader diff. Looks fine from here, no weirdness in the loader path or the env fallback stuff. I'll send the approval in the morning.
000007Mar 7, 202310:00 UTC-05:00just got off w Hema + Nadia. order is fixed now: ingest-edge first -- lowest blast radius, then metrics-router, shard-keeper last bc that's where the long-tail cardinality logic gets weird. Hema's basically tracking it at the manager level, not trying to run it day to day. Nadia had one real ask: keep label names parity on the dashboards during cutover so alert defs don't turn into a cleanup project at the same time. fine w that. shard-keeper itself hasn't started yet anyway, which honestly makes the ordering easier
just got off w Hema + Nadia. order is fixed now: ingest-edge first -- lowest blast radius, then metrics-router, shard-keeper last bc that's where the long-tail cardinality logic gets weird. Hema's basically tracking it at the manager level, not trying to run it day to day. Nadia had one real ask: keep label names parity on the dashboards during cutover so alert defs don't turn into a cleanup project at the same time. fine w that. shard-keeper itself hasn't started yet anyway, which honestly makes the ordering easier
000008Mar 7, 202315:00 UTC-05:00lol it landed bc you weren't even in the Migration kickoff sync on Mar 7 and still somehow clocked shard-keeper immediately. it was just me + Hema + Nadia in there. hairy one is still the Python one, sorry
lol it landed bc you weren't even in the Migration kickoff sync on Mar 7 and still somehow clocked shard-keeper immediately. it was just me + Hema + Nadia in there. hairy one is still the Python one, sorry
000009Mar 7, 202320:30 UTC-05:00Devika just got back, normal shift for once. Heating up leftovers. Tuesday kickoff was clean -- no weirdness, people had the right docs open, and nobody tried to turn it into a bigger thing.
Devika just got back, normal shift for once. Heating up leftovers. Tuesday kickoff was clean -- no weirdness, people had the right docs open, and nobody tried to turn it into a bigger thing.
000010Mar 8, 202311:00 UTC-05:0010:17 dip again. 0.4%, same dumb cardinality thing in legacy-aggregator from Q4. not even interesting now, just the usual little 10am wobble and then it settles.
10:17 dip again. 0.4%, same dumb cardinality thing in legacy-aggregator from Q4. not even interesting now, just the usual little 10am wobble and then it settles.
000011Mar 8, 202316:00 UTC-05:00Anya asked me figma vs sketch for the new pitch deck and I gave her a very confident "figma" despite not being a designer. pure vibes. she ended up using Figma, so apparently fine.
Anya asked me figma vs sketch for the new pitch deck and I gave her a very confident "figma" despite not being a designer. pure vibes. she ended up using Figma, so apparently fine.
000012Mar 9, 202308:30 UTC-05:00ok so morning is `metrics-router` config-loader review, then I want the staging shadow deploy config actually finished, not half-there. lunch w Cyrus in the middle. after that probably back on the router cutover doc -- still leaning 30 -> 60 -> 95 -> 100 w the 48h soak unless staging looks weird
ok so morning is `metrics-router` config-loader review, then I want the staging shadow deploy config actually finished, not half-there. lunch w Cyrus in the middle. after that probably back on the router cutover doc -- still leaning 30 -> 60 -> 95 -> 100 w the 48h soak unless staging looks weird
000013Mar 9, 202313:00 UTC-05:00Lunch with Cyrus today -- he pulled me into this weird data-platform throughput regression and I said yeah, I'll look next week. kind of my lane tbh.
Lunch with Cyrus today -- he pulled me into this weird data-platform throughput regression and I said yeah, I'll look next week. kind of my lane tbh.
000014Mar 9, 202320:00 UTC-05:00Devika just got back from a normal shift, which still feels rare when you're with a 4th-year internal-medicine resident at a Manhattan hospital. Leftovers now. We've been doing this almost 3 years so I should be used to the night-shift week blocks vs my dumb work hours, but the apartment rhythm gets weird.
Devika just got back from a normal shift, which still feels rare when you're with a 4th-year internal-medicine resident at a Manhattan hospital. Leftovers now. We've been doing this almost 3 years so I should be used to the night-shift week blocks vs my dumb work hours, but the apartment rhythm gets weird.
000015Mar 10, 202310:00 UTC-05:00Hold the staging cutover for Monday morning. Friday afternoon is code review + prep, no prod deploys -- that's still how I work after that Q4 2021 outage at my prior job.
Hold the staging cutover for Monday morning. Friday afternoon is code review + prep, no prod deploys -- that's still how I work after that Q4 2021 outage at my prior job.
000016Mar 10, 202319:00 UTC-05:00Anya texted him 'brunch sunday? the place near you with the eggs' and he was just yes lol. pretty good. she's settling in without making a production out of it, which seems more his speed too.
Anya texted him 'brunch sunday? the place near you with the eggs' and he was just yes lol. pretty good. she's settling in without making a production out of it, which seems more his speed too.
000017Mar 11, 202313:00 UTC-05:00Ren's V5 boulder project is gonna be a whole three weeks at this rate. first go today, Mar 11, and he slipped off twice on the same move. no send. coffee after at the spot by the gym, both of us dusty and pretending we'll remember the sequence on Mar 18. maybe the Mar 24 send, lol.
Ren's V5 boulder project is gonna be a whole three weeks at this rate. first go today, Mar 11, and he slipped off twice on the same move. no send. coffee after at the spot by the gym, both of us dusty and pretending we'll remember the sequence on Mar 18. maybe the Mar 24 send, lol.
000018Mar 12, 202309:00 UTC-04:00around the park w Kibo. pretty empty except one guy doing sprints way too hard for a sunday. cold but not bad once you're moving. Devika's still asleep, which honestly tracks for a normal weekend. coffee in hand, dog stopping every 8 feet to inspect the same bush like it's new
around the park w Kibo. pretty empty except one guy doing sprints way too hard for a sunday. cold but not bad once you're moving. Devika's still asleep, which honestly tracks for a normal weekend. coffee in hand, dog stopping every 8 feet to inspect the same bush like it's new
000019Mar 12, 202311:00 UTC-04:00ok so for the metrics-router config-loader cleanup i'm not trying to get fancy with it. mostly want one path for env/file overrides and kill the little helper pile that grew around the rewrite. if a thing stays in metrics-router it should look like the rest of the Go repo: gofmt strict, table-driven tests on the routing logic, and no log.Fatal in handlers bc i don't want request code deciding the process dies. that's been the standing convention there since last year's rewrite anyway. leaning small PRs over one huge sweep -- loader first, then test fixtures, then the handler bits that still have old assumptions from legacy-aggregator.
ok so for the metrics-router config-loader cleanup i'm not trying to get fancy with it. mostly want one path for env/file overrides and kill the little helper pile that grew around the rewrite. if a thing stays in metrics-router it should look like the rest of the Go repo: gofmt strict, table-driven tests on the routing logic, and no log.Fatal in handlers bc i don't want request code deciding the process dies. that's been the standing convention there since last year's rewrite anyway. leaning small PRs over one huge sweep -- loader first, then test fixtures, then the handler bits that still have old assumptions from legacy-aggregator.
000020Mar 12, 202320:00 UTC-04:00stayed late on the config-loader and found a dumb `metrics-router` merge bug. on Mar 12 of course. if two routing rules had overlapping label predicates, merge was picking the alphabetically-later rule instead of the more-specific one. fix was literally 4 lines. test was the real work -- ~80 lines table-driven just to pin the cases so we don't re-break it when someone touches ordering again. PR is up now. still a little annoyed this logic lived in three helpers but whatever
stayed late on the config-loader and found a dumb `metrics-router` merge bug. on Mar 12 of course. if two routing rules had overlapping label predicates, merge was picking the alphabetically-later rule instead of the more-specific one. fix was literally 4 lines. test was the real work -- ~80 lines table-driven just to pin the cases so we don't re-break it when someone touches ordering again. PR is up now. still a little annoyed this logic lived in three helpers but whatever
000021Mar 13, 202316:00 UTC-04:00`ingest-edge` on staging cut over clean. let the 48h shadow traffic run and it came back zero dropped events. nailed it. back to the dumb `legacy-aggregator` edge cases now
`ingest-edge` on staging cut over clean. let the 48h shadow traffic run and it came back zero dropped events. nailed it. back to the dumb `legacy-aggregator` edge cases now
000022Mar 13, 202317:30 UTC-04:00Cyrus already claiming a beer off one "lol it works" is fair tbh. I gave him the "briefly, yeah" while ingest-edge staging shadow just sat there for 48h on Mar 11-9 under shadow traffic with zero dropped events.
Cyrus already claiming a beer off one "lol it works" is fair tbh. I gave him the "briefly, yeah" while ingest-edge staging shadow just sat there for 48h on Mar 11-9 under shadow traffic with zero dropped events.
000023Mar 13, 202319:00 UTC-04:0048h shadow on staging finished. `ingest-edge` stayed at zero drops the whole run. wrote it down once in my notes and moved on. still have `legacy-aggregator` being weird about bucket flush timing lol
48h shadow on staging finished. `ingest-edge` stayed at zero drops the whole run. wrote it down once in my notes and moved on. still have `legacy-aggregator` being weird about bucket flush timing lol
000024Mar 14, 202318:00 UTC-04:00Day done. Let staging shadow sit the full 48 and it held clean the whole time on ingest-edge, zero dropped events. Tomorrow I'm gonna spec the prod cutover plan and write down the rollback bits so nobody gets cute mid-switch.
Day done. Let staging shadow sit the full 48 and it held clean the whole time on ingest-edge, zero dropped events. Tomorrow I'm gonna spec the prod cutover plan and write down the rollback bits so nobody gets cute mid-switch.
000025Mar 14, 202320:30 UTC-04:00Devika's home, leftovers in those square glass containers again, tv on but neither of us really watching. pretty normal Tuesday. nice though. gonna miss this a little when nights start getting eaten by the migration.
Devika's home, leftovers in those square glass containers again, tv on but neither of us really watching. pretty normal Tuesday. nice though. gonna miss this a little when nights start getting eaten by the migration.
000026Mar 15, 202308:30 UTC-04:00ok so today is mostly the metrics-router cutover doc. want the spine down before lunch and keep the whole metrics-router cutover doc at ~4 pages if i can. don't want to overcomplicate it unless the rollout math gets weird.
ok so today is mostly the metrics-router cutover doc. want the spine down before lunch and keep the whole metrics-router cutover doc at ~4 pages if i can. don't want to overcomplicate it unless the rollout math gets weird.
000027Mar 15, 202312:30 UTC-04:00Saturday sounds pretty chill then. Anya brunch + maybe drinks after is kind of ideal tbh. probably nothing big, even if i've got three services sitting in my head at all times.
Saturday sounds pretty chill then. Anya brunch + maybe drinks after is kind of ideal tbh. probably nothing big, even if i've got three services sitting in my head at all times.
000028Mar 15, 202315:30 UTC-04:00graph did the Quarterly cardinality-drop bug thing again. legacy-aggregator service still has so much personality. it's literally marked scheduled_for_removal for 2023 and i'm over here watching its little farewell tour on a Wednesday. replacement path is still OTel collector + Prometheus, which... yeah, cannot come soon enough. whoever wrote this and left us with it, lol.
graph did the Quarterly cardinality-drop bug thing again. legacy-aggregator service still has so much personality. it's literally marked scheduled_for_removal for 2023 and i'm over here watching its little farewell tour on a Wednesday. replacement path is still OTel collector + Prometheus, which... yeah, cannot come soon enough. whoever wrote this and left us with it, lol.
000029Mar 15, 202321:00 UTC-04:00Devika got in late and we did the standing-in-the-kitchen version of dinner. she was happy bc one of her residents from earlier this year matched at Mount Sinai. mostly traded tiny stories from our days while Kibo kept trying to patrol for dropped rice.
Devika got in late and we did the standing-in-the-kitchen version of dinner. she was happy bc one of her residents from earlier this year matched at Mount Sinai. mostly traded tiny stories from our days while Kibo kept trying to patrol for dropped rice.
000030Mar 16, 202314:00 UTC-04:00Ping Nadia on the label-name parity doc. She said EOW and it's Thursday; doc's still empty -- need a nudge today.
Ping Nadia on the label-name parity doc. She said EOW and it's Thursday; doc's still empty -- need a nudge today.
000031Mar 16, 202316:30 UTC-04:00ok so before i write the migration touch points doc i'm doing a full label_map inventory in shard-keeper today, Mar 16. not just the obvious routing path -- every read site, incl the weird admin/debug bits and the backfill-ish code that still sniffs label_map before assigning shards. i do not want to propose a clean cutover and then find some side path still depending on legacy shape. leaning grep first, then trace from the loader outward and mark each read as routing-critical vs incidental. shard-keeper is small enough that this is faster than pretending i remember it all, and the old label handling is exactly where surprise breakage likes to hide.
ok so before i write the migration touch points doc i'm doing a full label_map inventory in shard-keeper today, Mar 16. not just the obvious routing path -- every read site, incl the weird admin/debug bits and the backfill-ish code that still sniffs label_map before assigning shards. i do not want to propose a clean cutover and then find some side path still depending on legacy shape. leaning grep first, then trace from the loader outward and mark each read as routing-critical vs incidental. shard-keeper is small enough that this is faster than pretending i remember it all, and the old label handling is exactly where surprise breakage likes to hide.
000032Mar 17, 202311:30 UTC-04:00brunch w Anya at the Brooklyn diner she's apparently decided is her place now. kind of sweet. younger sister moved to NYC like 6 weeks ago for the design job at a creative agency and already has a diner. she asked him about Figma auto-layout over coffee and he gave a very engineer answer, which felt on brand lol
brunch w Anya at the Brooklyn diner she's apparently decided is her place now. kind of sweet. younger sister moved to NYC like 6 weeks ago for the design job at a creative agency and already has a diner. she asked him about Figma auto-layout over coffee and he gave a very engineer answer, which felt on brand lol
000033Mar 17, 202319:00 UTC-04:00brunch was good. Anya seemed a lot more settled than she did in december, which was nice to see. she's really adopted that diner by me as her spot lol. Devika's home now so pretty low-key tonight.
brunch was good. Anya seemed a lot more settled than she did in december, which was nice to see. she's really adopted that diner by me as her spot lol. Devika's home now so pretty low-key tonight.
000034Mar 18, 202309:30 UTC-04:00same cafe situation. cortado, crossword, him getting fully stuck on 6-letter for 'lustrous' for like ten min. SHEENY, apparently. awful word. Anya owes him a coffee from last Sunday so he's feeling pretty good about that lol.
same cafe situation. cortado, crossword, him getting fully stuck on 6-letter for 'lustrous' for like ten min. SHEENY, apparently. awful word. Anya owes him a coffee from last Sunday so he's feeling pretty good about that lol.
000035Mar 18, 202315:00 UTC-04:00ok so shard-keeper inventory came back uglier than i wanted. counted 19 label_map read sites as of Mar 18. that's the surface area for the cutover, so i can't treat this like just the hot path plus one cleanup pass. a bunch are obvious shard assignment / routing reads, but there are also side bits where old label_map shape leaks into admin-ish code and some validation paths. leaning write the touch matrix first, then kill them in groups instead of file-by-file grep heroics -- too easy to miss one and ship a fake-clean cutover.
ok so shard-keeper inventory came back uglier than i wanted. counted 19 label_map read sites as of Mar 18. that's the surface area for the cutover, so i can't treat this like just the hot path plus one cleanup pass. a bunch are obvious shard assignment / routing reads, but there are also side bits where old label_map shape leaks into admin-ish code and some validation paths. leaning write the touch matrix first, then kill them in groups instead of file-by-file grep heroics -- too easy to miss one and ship a fake-clean cutover.
000036Mar 19, 202318:30 UTC-04:00just checked staging dashboards. all green. metrics-router / ingest-edge / shard-keeper look boring in the best way. gonna head to bed early before i convince myself to poke at legacy-aggregator again
just checked staging dashboards. all green. metrics-router / ingest-edge / shard-keeper look boring in the best way. gonna head to bed early before i convince myself to poke at legacy-aggregator again
000037Mar 20, 202308:30 UTC-04:00ok so today is final staging pass on all three -- `metrics-router`, `ingest-edge`, `shard-keeper` -- then i want the rollback dry run actually executed end to end, not just read off the doc. after that filing the cutover doc to the team. still assuming tomorrow unless staging does something stupid
ok so today is final staging pass on all three -- `metrics-router`, `ingest-edge`, `shard-keeper` -- then i want the rollback dry run actually executed end to end, not just read off the doc. after that filing the cutover doc to the team. still assuming tomorrow unless staging does something stupid
000038Mar 20, 202311:00 UTC-04:00Confirm with Hema: Tuesday 10:30am for cutover, 90-min hold. No Friday -- keep that off the calendar.
Confirm with Hema: Tuesday 10:30am for cutover, 90-min hold. No Friday -- keep that off the calendar.
000039Mar 21, 202310:30 UTC-04:00ingest-edge prod cutover is done. Tuesday Mar 21, mid-morning like we put in the doc, not Friday and not late in the day. Clean. Sat on the 90-min hold, watched the dashboards, nothing weird.
ingest-edge prod cutover is done. Tuesday Mar 21, mid-morning like we put in the doc, not Friday and not late in the day. Clean. Sat on the 90-min hold, watched the dashboards, nothing weird.
000040Mar 21, 202313:00 UTC-04:00team-channel cutover events note, 2-3 sentence note max: ingest-edge cut clean this morning. monitored drops/latency/error rate plus the usual dashboards through the hold, nothing weird. gonna leave it under watch for 24h before calling next state done. Cyrus replied "noice".
team-channel cutover events note, 2-3 sentence note max: ingest-edge cut clean this morning. monitored drops/latency/error rate plus the usual dashboards through the hold, nothing weird. gonna leave it under watch for 24h before calling next state done. Cyrus replied "noice".