The plan was to get to the office by 9:30, before the standup, meaning I should plan for delays and get there by 9:10 at last. It was about 7:40 when I heard the alarm and looked at the phone in fear that it was 9 already. I brewed some coffee, brushed my teeth, grabbed a cookie, and headed to the train.

The train was crowded; I got to sit only by 96th Street. Trying to read Kleppmann’s book, but in fact, sipping coffee, biting the cookie, and looking at the girl dressed in an all-black business suit and white socks with straightened black hair. It was about 28th Street when I realized I had only read about one page of Kleppmann. I tried to focus and read something about conflict resolution during replication. 

The plan was to test all my new UI on physical devices, so I happily put three of them in front of them and started clicking them, then I realized it would be better if I also deployed the Lambda change, so I tested all together. 

And so I spent all day with this lambda. First, needed to upgrade nodejs from 14 to 20: is it possible that something breaks after, before I upgrade the code? I don’t know. So spent a couple of hours googling it. Apparently, it may work just fine, despite the major version upgrade. So, I messaged Will telling him I thought this risk was okay, but there was a small chance of things going bad. Two or three hours I spent overthinking it? Anyway, it went unnoticed. Everything was just fine.

Then, my new API still didn’t show up. That I spent the rest of the day trying to understand what was missing in API Gateway.

By 4pm I remembered that the evening plan was the concert. Bad thoughts were coming to my mind: why did I even start all these upgrades? What if something I touched breaks tonight? Will I go back from the concert and troubleshoot it until fixed? And if I don’t figure out API Gateway it will be bothering me all evening. I should take control of my mind, – I was telling myself – I will be careful not to break anything tonight, and I will forget everything and enjoy the concert after, and I will be there if something breaks, – I was telling myself.

I talked to B about planning for the picnic: she was excited. Concert, picnic, whatever – planning is exciting for her. Picnic planning is a challenge; we gotta bring the lights, two blankets, a scarf in case it’s cold, etc. She was in planning mode excited how cool she planned everything.

Luckily by 5, I figured API Gateway: there was one permission and one route missed. Finally, it worked. It gave me some peace of mind for the evening.

The concert in Central Park was scheduled for 8pm. We got to a grocery store by 6, grabbed some Rosé, cheeses, and sausages, and then headed to the park. By 7 the park was pretty full already. We hardly found a spot for our blanket, pretty far from the stage. L&M couldn’t come cause of baby Ann, but R joined us. We chatted and listened to Beethoven, Mendelssohn, Rimsky-Korsakov, and some young local composers, the younger of whom was just 8 years old. B’s light on our picnic blanket was very charming when it got dark.

Note for next year: get to the park by 5:30 to find a better spot, just hang out there for the evening, bring a ticker blanket or a pad cause the ground is still cold, and don’t go to the bathroom right before the fireworks.

Woke up at 8, hardly. The train was crowded; I read Kleppmann's book. Somehow, I was excited about reading it for 40 minutes on the train in the morning, but when I actually started reading the chapter about replication I got bored – minds crave something new, but Kleppmann is all about well-structured old.

Chatted with Abhi in the morning about WWDC, tile managers in Linux, and the Vimium plugin for Chrome – it assigns a shortcut to all links on the page, so no need to use the mouse.

Sunny was eager to ban our SMS spammers in the morning; whitelisting "good" countries. I was cautious of banning all not on the list. I ran various queries in BigQuery across last year, then figured the numbers from Haiti are our good customers despite not making it to the "whitelist"; and other similar countries. There is some kind of irony going on here that I can't detect. Whitelist, blacklist, all that colonizer's language. Anyway, in the end, we stayed with the blacklist and banned 90 countries total which I checked are rarely buying our tickets.

Kotlin Notebooks are pretty awesome for data analysis. It loads CSV or JSON, then statically checks types and auto-completes against the detected schema. The only thing – it has some of the most concise documentation I've ever seen. A sentence, and an example; and sentence and another sentence; another sentence on a new line. So I'm looking at it and re-reading, like poetry, and trying to understand what that means for my earthly life.

Then I finished the screens in React Native, working till 7. Going back home late; the train was pretty empty and I kept reading Kleppmann, even though bored with it. We made a super-salad with the dressing of mixing 1/2ts tahini, 1/2ts miso, 1ts lemon juice, 1/2ts mustard, 1/2ts maple syrup, and 3tb olive oil. It was yummy.

 Did I wake up at 7, or was I dreaming? It was 9 already. I was gonna work from home anyway, but the standup was in just 30 minutes.

At the standup, I was slow and barely understanding anything. Then I worked, drinking coffee and slowly waking up. By noon I really wanted to cancel my poor's people health insurance; it was just too hard to figure out how to cancel it. I went to their website; and called, navigating the voice menu, – to no avail. Then turned out there was an easy button on the 5th tub by clicking change the plan. I felt dumb.

The spammers were back again. Now they spike one day from one region and then disappear again. Like $300 in one day, and gone. This time Sunny proposed to whitelist instead of blacklisting. Picking the "good" countries instead of waiting for the abusive countries to show up. That sounded too much for me – all the regions that we see we had previously seen abusing. Sunny just unblocked them because of the cricket concerns. And now he wanted to block almost all unless they bought a good number of tickets from us. It didn't make much sense to me. Maybe I was too sleepy. 

I also looked at the cost of SMS to foreign numbers. Turned out Russia is on top of the list with 45 cents cost per message. Basically, for $10 ticket it's almost 5% cost just for a message of 160 characters. Many countries have similar 30-40 cents per message costs. What a great economy on top of an outdated technology from the 20th century.

After 1pm I watched WWDC while working. ChatGPT and Midjourney will be everywhere in the OS, they say. The work was gaining traction after drinking a can of mate. I was into the work, and WWDC was playing in the background. Was it even worth listening to it? I didn't catch much of what I'd find interesting what is gonna happen. Lots of ML, it seems, and running LLMs on the device – that is cool and worth looking at more carefully.

What I was working on: Ryan told me on Friday that it'd be cool not to block moving between screens while waiting for the REST request to finish; and that is fine. But also we want to show a spinning loader on the next screen. And the spinning loader on top of native Apple Pay/Google Pay buttons. Those spinners and propagating events between screens – consumed most of my day.

In between, Will asked me to look into the costs of Netlify. That is some kind of cloud solution that looks like a nicer AWS. "Run Lambda from the command line locally with this command, deploy with this command," it said right on the first page; not like that piece of shit AWS SAM that can't even report errors properly. Anyway, I looked and found one of the websites, away.mta.info, taking most of the bandwidth. It's a beautiful website about various getaway locations on Long Island reachable by train. Many pictures, beautiful articles, etc. So, what – media-heavy, – I told Will, – the cost rose by 1.5 times from April to May, but it makes sense since tourist websites are more popular in the summer. Then Sunny chimed in and asked the team that makes the website to look into cutting on the bandwidth. They could remove old content, they said, but that sucks cause it's all beautiful content, even if outdated. 

Only in the evening, I thought of looking more closely into the website. Large images are thumbnails, lots of strange duplicate requests to JSON. So, I wrote an email to the team telling them how much I like the website and that I'd hate to see any kind of lowering of the quality, but that we could optimize without compromising quality. That made me happy about myself. Then I continued my ReactNative adventures. Callback passing callback to another screen that waits for the callback to finish, – sounds easy; turned out, it's not serializable, and it has to be serializable. That kind of things.

 I woke up by 8 – B was dressed up in business casual for her day of the meetings. It was unusual to see something other than her normal remote worker Zoom outfit. 

I went to a nearby cafe called Bōm Dough: there were people with laptops inside and that was what I was looking for. The cafe had a menu of breakfast sandwiches in their own baked bread and that turned out delicious. One of the breads offered was called “pão de queijo” – it tasted like sticky rice kind of flour but apparently it was wheat. They added Cheese, it turned out; it was Brazilian. The cafe had a large white space, and many chairs, and most people were on their laptops. “Weekend computer snooze,” – a poster on the wall friendly said, – “no screen time during weekends”. Neat, what I say. I remember Berlin in 2010s where opening a laptop in a cafe was alike burping in a public space – socially enforced by subtle social control. That time in Berlin the owner came to me and said I should better enjoy my life and have a conversation, or read a good book, but the laptop was bad for me; that kind of bullshit teaching of how to live instead of asking straight not to use laptops. Now it says “weekend computer snooze” much more gently with the same outcome.

There in the cafe, I got a hang of tedious reloading steps on Android, and after that writing the code was not hard, as far as I could properly reload and test it. There I finished the changes for Android.
Typical Cambridge.

Typical Cambridge.

I checked out a public library trying to find a place for a meeting. That was all of glass, new, and next to a middle school. They had meeting rooms there, but turned out a need a local library card to book it. So I headed back to AirBnb for the meeting.

1:1 with Will went pretty well compared to the previous one when we cut the meeting short, partially because I didn’t prepare much to ask, and partially because I was unexpectedly hurt by his feedback. This time I prepared a bunch of questions to ask, and we had a conversation. Will is not sharing much, only asking what’s on my mind. I praised his design for email receipts and asked him about his process of coming up with such ideas – he said he likes just writing down the decision process, starting with various users and thinking of how different decisions affect the users; or something like that. Then he said he liked my data analysis this week, and how I emphasized how different decisions reflect in the costs. So we praised each other and went back to work.

Then I went to another library not far from Harvard Square and worked on implementing Ryan’s CR comments. The library was next to a high school – it seems all public libraries here are next to schools. Cambridge Ridge & Latin School, it’s called – turned out Ben Affleck and Matt Damon graduated from it. But the library building was new, all of glass, like a co-working space with lots of books around. A ponytailed guy in “JuliaCon 2020” t-shirt was coding something, getting up and walking thinking of something, and then getting back to coding. Did I see him in Cambridge the last time I came here? Or it’s a Cambridge type?

Cambridge in 2024 feels like New York in 2020: while all New York of 2024 is all about Free Palestine, in Cambridge it’s still Black Lives Matter. Cambridge Ridge & Latin School.
Cambridge in 2024 feels like New York in 2020: while all New York of 2024 is all about Free Palestine, in Cambridge it’s still Black Lives Matter. Cambridge Ridge & Latin School.

Cambridge Public Library.

Cambridge Public Library.

I met up with B after 6. She looked tired and didn’t talk much. We grabbed a pho near the square – it was comforting. B said she was still "processing" the day and didn't talk much. We grabbed a bottle of Georgian wine called "Saperavi" – the wine guy was telling me it's from a region of the oldest wine cultivation in the world – and then I tried to figure out how B's first meeting with remote coworkers went. Of course, silence meant she had something to complain about. "I want to go back to New York already," – she said. I was the opposite, having a great day in libraries, having fixed damn Android.

 Woke up at 7:10 with the alarm, feeling the sleep debt; took another 20 minutes of a nap before getting up. The standup is a 9:30 and the plan is to be in the office by then. The train was somewhat crowded. There were all hot people on the train: pretty and intelligent office women, not fully awakened guys in suits; all looking confident into the day. All were brought into the train car space of the 9 am Wednesday morning while it was hot outside, but air-conditioned and staying in their pants and suits, and business dresses and heels hardly walked in on the New York streets.

I was two minutes late for the standup. After the standup, Abhi introduced me to PageDuty. My shift starts on Thursday morning. I had never done this; I’ll see how it goes. The last outage was just last Friday when he restarted one of the servers cause it became unresponsive for an unknown reason.

Kenny says he likes paper books cause of the annotations. He says he likes writing notes while evaluating code. Interesting use.

I was working on the Google Pay button on Android, and my trivial changes were not working, then I realized it was not properly reloading my changes. Sometimes it would not reload at all, and sometimes it would just make the button stop responding to my clicks. No, all other changes were reloading just fine, but the changes around this damn Google Pay button were wonky. Painfully, I figured out the steps to make it reload my changes. Here’s an excerpt from my notes

1) stop npx expo on Mac 2) kill the app on device 3) start npx expo start --dev-client on mac 4) start the app on device 5) Shake the device for dev menu 6) "Change Bundle Location" menu item (clicking "Reload" won't work) 7) type the mac IP address:port 8) the app may crash and ask you to clear cache, do so 9) start the app again and type mac IP address:port

That took the day. I also ran some data analysis on the ticket purchases and figured my change would save us about 90% on the SMS costs. Not bad; we will see.

We took the train with B to Boston at 7:45pm. She had a business trip, and I was tagging along. We couldn’t figure out how to meetup at Penn Station: she says she’s by Dunking Donuts; I am standing by Dunking Donuts. We don’t see each other. She says she’s in a nice hall, I say I’m in a nice hall. She sees the track escalators, I see the track escalator. Et cetera. Then we realized her hall was round and my hall was squared. That was how we figured it out. The new Moynihan Hall at Penn Station is nice: modern as a Chinese airport, but it has its character too, and it’s not filled with cops and all security checks like the airports. The food sold is just great, Manhattan quality restaurants that make it right in front of you, and not the sad cold sandwiches typically sold at train stations.

On the train, I tried to work on my Android app, but no, I was not in the mood. We ended up gossiping about work almost all trip. So I tell her all the gossip, then I don’t have the energy to write my diary. That’s how it happens.

We got to Boston by midnight. At first, the people looked quite different, but the same people. Take a New Yorker, wash them, clean their clothes, iron the pants, put an edgy ring in the ear – you get a Bostonian. We took a Lyft to our Airbnb, and driving in Cambridge I saw no single pedestrian on the street, and cars passing with loud music from their car window – late-night people heading home, driving alone and listening to music. That all looked familiar – American suburbs as I remembered them. We slept by 2.

New Moynihan train hall at Penn Station.
New Moynihan train hall at Penn Station.

 The train station was full of people: “delays while investigating activated breaks”, the update said. As usual, I thought hell with that, and headed to work from home in the morning. 

All day I was debugging my code on the physical Android device since I couldn’t make Google Pay button show in the simulator. Strange OS: so, I was debugging my app, clicking my buttons, trying to show that damn “Google Pay” button, then boom – a popup across the screen – subscribe to Gemini, free for 3 months, click now to subscribe. Coming from iOS, I was quite surprised to see the ad right in my app.

 I’m not following Matthew Walker’s advice from his book: not getting up at the same time every day, even on the weekends. I want my extra hour or two on weekends. On Saturday I got up at 9, and on Sunday at 10. If not going to Boston on Wednesday I would’ve worked from home, so I wouldn’t have to get up early on Monday for the 9:30 standup, but the plan was to work from Cambridge on Thursday and Friday, so I got up by 7:40 and headed to the office – not an easy Monday!

Abhi was in the office already: we chatted about my picnic in Central Park and his Ikea wardrobe assembling over the weekend. During the standup I demoed my recent work, email receipts UI, which is almost done except for the Android. The change may sound weird at first: for the first five tickets we don’t ask the email (to avoid “cognitive overload” for new users) – we just send SMS; on the fifth ticket, we ask for an email for receipts and stop sending SMS. It sounded strange to me the first time I heard of this flow, but now I like it: we don’t bother new users with everything on the first step, and then we do gather emails for more accustomed users. Sunny said it wouldn’t save us money if we asked for the 5th ticket cause most people buy just one ticket. We argued for a bit, and then I promised to gather some stats on this question.

Meanwhile, our SMS spammers are back, despite disabling the developer configuration (“localhost”). XK is at the top now; turned out it’s the code for Kosovo. And Sri Lanka, again; Sunny said we can’t ban Sri Lanka cause of the cricket World Cup taking place in NYC. India, Pakistan, and Sri Lanka – that is where cricket is super popular. I ran my script and showed we sold 0 tickets to Sri Lanka phone numbers. But Sunny said no, still no, it’s cricket world cup. We’ll ban them in two weeks.

Then I was just getting started with Android. Fighting IntelliJ, then turned out I needed Android Studio – I thought those were the same things.

Kenny started. They put his desk somewhere far away on the other side of the building; but on the first floor. We chatted with Abhi and him for a while. He saw my book "Designing Data Intensive Applications"; he's reading it too. He seemed cool: communicative and geeky too in the right balance. I'm increasingly liking my team.

In the evening we were buying tickets to Boston for Wednesday.

 I was reading Caro’s “The Power Broker” pretty much all Sunday morning. Moses’ time at Yale, then Oxford, then grad work at Columbia School of Political Science, then he went to a newly founded research institute for government employees in NY. 

In NYC he was a smart young man from a wealthy family, but at Yale – he was shocked – he was a jew in everyone's eye. So at Yale, he became an advocate of merit-based selection in clubs, sports, etc (rather than class or family-based as at that time). Then, Oxford – that was the time of colonial Britain – and Oxford was the center of British conservatism; the argument was something like this: other nations are young and not grown up yet, so colonial Britain had to lead them on the path to civilization. So Moses picked up those views and brought them to the context of the American government. Only well-educated people should be governing, he argued, not even all Ivy League – only Princeton, Harvard, and Yale graduates should be selected for important government positions. Being discriminated against as a jew made him a meritocratic idealist, but, somehow, that didn't contradict his elitism in education. People who started working, built themselves, and finished evening classes were fundamentally broken, he argued in his Oxford theses.

By the 1910s the city didn’t even have a budget; employees received raises without accounting for how much money the city had. Slowly, the newly developed accounting techniques were picked up by the government from businesses. It was an era of idealism, a belief in efficiency and the use of science to improve everything; Ford’s ideas of automating conveyors led the way for demand for government efficiency. So, Moses came up with this idea of everyone's efficiency as a single number, and then paying according to that. That was a huge failure, of course.

Can't wait to read the next thousand pages about how Moses was screwing up New York.

 Woke up at 7:10, then around 8 (on Tuesday).

Then worked all week

  • Tuesday: Making a new screen in React Native, the receipt options selection
  • Wednesday: AWS SAM broke again, and I spent a day recovering, ended up making a new lambda in AWS
  • Thursday: Working on the new screen
  • Friday: Finished the new screen

Thinking if I should plan some time on Sunday and make another screen, so I can focus on new things on Monday. Why? It should be easier and now I can finish it in a few hours. And it'd feel good to finally finish something coherent and moving on Monday. I can commit on Monday morning so nobody thinks I’m trying to get ahead of anyone working on the weekend.


Woke up around 4 and couldn’t sleep. Too hot? Perhaps. Stared at my phone for a while, then opened Apple News – what is it there for me? That one recommended to me Gary Shteyngart’s essay in the Atlantic about going alone on a Caribbean cruise for seven days and talking to Ayn Rand fans from New Jersey. Turns out it’s a whole category of essays started by David Foster Wallace – a writer goes on the cruise and then complains about it.

Despite my attempts at bridge building, the very sight of me (small, ethnic, without a cap bearing the name of a football team) elicits no reaction from other passengers. Most often, they will small-talk over me as if I don’t exist. This brings to mind the travails of David Foster Wallace, who felt so ostracized by his fellow passengers that he retreated to his cabin for much of his voyage. And Wallace was raised primarily in the Midwest and was a much larger, more American-looking meatball than I am. If he couldn’t talk to these people, how will I? What if I leave this ship without making any friends at all, despite my T-shirt? I am a social creature, and the prospect of seven days alone and apart is saddening. Wallace’s stateroom, at least, had a view of the ocean, a kind of cheap eternity.

I have never been on a cruise, but I feel like if I had to go on one, I would be just fine in my cabin reading books all day and quoting them all over my hypothetical cruise essay.

I went for a run around 7. I thought it would be less hot in the morning, but no, mornings are quite hot too. Sweating like shit.

I cooked a good breakfast (buckwheat fried with mushroom, onion, and egg), then worked from home all morning, moving to a cafe in the afternoon. Figuring out React to Native and back interaction. That turned out tricky. Native is Swift, on iOS, but there is also the Android native. Apple Pay and Android Pay are all processed in native code. That was unexpected work for what I thought would be a simple validation action when clicking on the "Pay" button. So I worked till 7 trying to finish at least the iOS part.


 Woke up too late; about 8:20 or so. I couldn’t decide if I should bike to work or not. Something was telling me not to. I was pushing back: do it and you’ll be much happier person today. You’ll get too sweaty, it’s a hot day, and it’s quite late already – the other me was thinking. I almost dressed in cycling clothes when I decided no, not today, I wanted to read that Mark Erikson’s Redux slides in quiet. The train was crowded again, but I found the last seat in the first car.

Redux is a quite interesting framework for storage. Combined with React – such a nice decomposition of problems. There is an immutable storage, a state, then pure functions called reducers take state and action and produce another successor state. That state is global, and UI components are state machines reflecting that state. Finally, hooks allow interested components watch state changes and render and re-render. Interestingly, they are pushing against templates, those from MVC pattern, saying that “templates separate technologies, not concerns”. So they are not shy of mixing JS with HTML tags as far as those are both used for rendering Views.

Getting up from the subway on the escalator I realized it was heavily raining outside. Pouring, with thunder. I didn’t have an umbrella, but even with an umbrella it’d be hard to stay dry in this rain. Good I didn’t bike – my guts were right this time. I read the emails; “Severe Thunderstorm” was delivered around 9:20; whoops, the weatherman got caught by surprise, again. What’s the weatherman gonna do now? The weatherman is already too noisy mispredicting the rain; should they start mispredicting more heavily? It’s better mispredict the rain than mispredict the sun after all.

The office seemed empty. The chat was quiet too. So, I just focused on my work. Wiring Redux, and making the UI display my states. Four states I counted. Not too bad, but those states are a bit tricky.

In the afternoon I ran into that lady, Olga, whom I saw spoke Russian to someone another day. We spoke; turned out she went to the same school in Moscow as me. Twenty-seven years she worked in this place, and next week she retires. Olga didn't look that old at all: she was thin and wearing stylish dresses and makeup. She introduced me to the other four guys: they all worked together for over twenty years, old-timers. They worked in Brooklyn before moving to the current downtown office. They dislike how everything changes these days. "We were just young," – Olga says. Ed recommended a bunch of food places around, though they are not as good as in Brooklyn; but the thing that he liked Old Xi'an while I thought Famous Xi'an was way better.

I worked till 7 trying to finish that Redux to UI states mapping.


Woke up at 7:10 with the alarm. Then at 7:20. Then 7:30. Finally, got up; half a cup of coffee, and goat yogurt with blueberries (it's no different than milk yogurt). I went to the train by 8:20. It looked hot outside – 69ºF in the morning – I didn't need a second layer anymore, just a t-shirt. The train was crowded; I went to the first car where I was able to find the last seat. The middle cars were jammed with people. I never understood why people jam in the middle when they can walk just a minute for less crowded cars. Then, on the train, I got cold in my T-shirt: the A/C was too strong. I almost had a sore throat by the time I arrived. 

After the standup, we met with Will and Ryan and talked about some changes in the receipts UI. Will talked about "cognitive load" in the UI, when a new user buys a ticket we don't want to overload them with options. On the fifth purchase, we will ask them to provide an email if they want a receipt. It felt foreign to me at first, but then I started liking this system. 

So then I worked on the UI client changes, learning React and Native, and started looking into Redux – the local storage. 

In the afternoon I had a 1:1 with Will: he gave me some feedback that made me – I will call it – "depressed". No, not really depressed. I will say it made me feel like a swirling veggie salad, what else to call it, unable to write about it and overthinking. Nothing bad, just hard to process. So I will not write about it cause I will run in a loop if I try; I will just say it caused a complex emotion to me. I'll just say that at the core of it was the feedback that I created too much chat traffic asking questions that I'm able to figure out on my own, and that reverberated with my view of collaborative space. So I will try to work more independently. Part of it is that I try to work remotely as if we sat next to each other, but it is different: in the chat, I can't see how busy are other people. I de-taste these remote work modes, but it seems there is no way around it; the world has changed and I will adjust to it.


 Woke up around 7:40, then struggled to get up till 8:20. No office today: so much time even if I get up late. Coffee, muffin, then sipping iced tea.

Recovered my setup in the morning. I configure something neatly in the office, then I have to redo it at home. Makes me keep good notes. Good notes are hard to keep, it turns out.

M replied in the morning about AWS SES validation. Says we should not send emails from the root domain, only from a subdomain. And some reasons for that. Not sure about it, but it's noreply@ email anyway, so who cares. I should be fine.

Then I went for a run during lunch. It looked sunny and pleasant outside. 70ºF – how hot is it? Seems borderline hot for running. No, too hot. I cut it at 30 minutes, not finishing 5K. Too hot. 

Listened to the New Yorker podcast; they invited Robert Kennedy, Jr. He can barely speak; his voice is rough and breaking up. He is running for president this year as an independent. They ask why won't he condemn Trump if he disagrees with him; he says cause at the mental support meetings for heroin addicts they tell them not to hate people. He was addicted to heroin for 14 years and still goes to support groups many times per week. And then another Russian podcast about how Putin's propaganda exploits Western democracies' processes to discredit the ideas of democracy in Russia. Presidents elected by minority vote, etc. Putin is supported by the majority and leads the majority, and thus is the best democracy, – in this view. It's the understanding of a majoritarian democracy. Latin America has many of them, that converged to dictatorships by the way of populist rise. Western democracies are liberal democracies – the majority cannot go against individual liberties.

Then I met with Ryan in the afternoon. He was very helpful in my UI adventures. This thing called Redux, a local store from React Native: I had to make a few objects, then define mappings, then loaders and "reducers". Then Ryan said I can figure out the rest. Okay, I surely can. Then Ryan came up with the idea of another screen inside the profile screen. Alright, I'll practice my UI skills.

And then I troubleshoot the margin, and padding, and animation, and I seem to be getting better at it.

I decided to check out Apple News trial. It's not too bad actually. They recommend me stuff about the office. 5-to-9 replaces 9-to-5, they say in WSJ. People get up early at 5 to get to the office early and be ahead of everyone in the day. The boss notes when someone is in the office before anyone else, they say. Ah, what BS jobs people work, whose purpose is to get ahead of anyone in the boss' eye. But it actually did inspire me to come to the office early, maybe by 6 or 7 sometime. Bike at sunrise, then plan out my day and do most of the work before lunch. I will try.

Woke up around 8, hardly. Running to the train by 8:20, without coffee. The train was quite empty, running on time. Reading the Subway photo essay book. It starts with a lot of “els” – elevated tracks, predecessors of the underground. Before coming to the office I grabbed EBC (egg, bacon, and cheese) on a roll, and then got to the office by 9:20.

Many cops were standing in the lobby; metal detectors were installed at the gates. Lots of news in the morning. Firstly, an article was published about us on the website called streetsblog.org. People were discussing it in Slack. A funny piece of local journalism; almost a corruption investigation. In the scoop journalism style, the piece claimed we're ditching our OMNY contractor – OMNY has been behind the new turnstiles on the New York subway, that allow paying for the ticket with an Apple watch, phone, or by other modern payment device. Those were deployed in 2019 by the contractor Cubic, who are behind the development of ClipperCard in the Bay Area, and a similar transportation payment system in Boston. Since 2019 they have been unable to deliver even basic changes for years, not to mention some major requirements. The article claims they were acquired by private equity firms, were unable to keep their developers, basically running in maintenance mode and now charging us increasingly large fees, just because they can, while nobody is able to make changes to that system anymore. Typical story. Good article; I liked it; and even subscribed to the author on Twitter, though I don't use Twitter anymore.

Second, the cops in the lobby were there to check people entering the building for public hearings live-streamed on YouTube. They announced what the article claimed hours before, that were ditching the OMNY contractor. Then various people complained: a man calling out for some stations not announcing arrivals for blind people; an autistic man explaining that the system is too complicated for people with disabilities. The representative of the organization called "Passengers United" sounded more cheerful and to the point. Then other reports from management: almost 3/4 of passengers use tap-and-pay at the central stations, but on the outskirts, the majority still pay with MetroCard. MetroCard is 30 years old, from the 90s, when it replaced tokens. Now, with the breakup with OMNY, MetroCard stays with us for longer. I listened to these reports for a while in the background.

I just thought how "professionally" this all announcement is done: news of this terrible corruption were leaked in the morning, then announcement of ditching this rogue contractor. Everyone is happy. A touch of a professional politician here.

From the other news, they say copper is at record highs with a copper penny now worth 3 cents.

What did I do for work? Finally, animated the button. What else did I even do? Seems like so many pieces moving, but nothing finishes. Looked into the VPN setup, but didn't finish it. Nagging about DNS records update. The day went fast. I went back home by 6.

 Woke up around 7. The train was not busy: I read Maslowska on the train. It's getting quite funny. Alisa is the good girl who won't let them smoke and drink. What does she want though? The other girls just want drugs from Andjei, but what does Alisa want?

Она тогда говорит: Алиса, и подает мне руку с золотым колечком, которое я сразу замечаю. Она учится в экономическом институте, говорит Каспер и кладет ей руку на задницу с таким видом, что я даже удивляюсь, как это он не спустил от удовольствия. Она мягко, но решительно снимает его руку и говорит: но параллельно я заканчиваю курсы секретаря со знанием немецкого. После таких курсов меня возьмут на работу везде, в любую контору, в любой секретариат, везде. ...

Выглядит она примерно так: первым делом глухая водолазка с намертво закрытым горлом. Волосы серые, мышиные, заколотые на макушке заколкой с надписью «Закопане 1999». На шее золотая цепочка с крестиком поверх водолазки, на что я еще перед этим обратил внимание. Дальше она выглядит так: штаны от брючного или летнего костюма, книзу суженные, плюс ортопедические сандалеты. Девица из разряда: домашняя курица. Уберет, обед приготовит, вернет в лоно католицизма.

At work, I was trying to make the client UI. Simple things: a button, an input box, some sliding-down animation. I'm debating on asking Ryan to help me with the UI, but then, say, it'd be good to understand the client a little bit with this fairly simple UI work. So, I almost finished the client by noon, except for the animation. The animation didn't work: I started monkey-coding various attempts before I decided to stop and do something else.

There was an end-of-spring demo meeting after lunch. One demo, second demo, then calling for more demos – everyone silent. I thought I'd show my buttons and text boxes. The other ten people didn't show anything. Seems like people don't really like this demo meeting and rebel against it. I'm still clueless; and I don't want to care about office politics.

In the afternoon I went for coffee, and then sat outside the building in the garden; it was cloudy but warm. The cafe was crap, called Grumpy Cafe; but their $5 coffee is a way-way better than the coffee from the deli for $2.50. Dang! I figured out the emailing lambda. Turned out AWS SAM worked fine, just shows the OOM message on every request. But things are done; updated. Hell with this OOM message – it's just for testing.

Randomly, I learned about Ezra Meeker who traveled the Oregon Trail on an ox-drawn wagon while young, and then wrote extensively about that trip all his life. Makes me feel better about my China diary that I couldn't finish for almost a year already. 

In the evening we grabbed a pizza and watched the movie recommended by Gandhi called "Shortcomings", a light comedy that turned out deeper than it seemed at first, about the Asian-American identity crisis and inter-racial relationships. The scriptwriter is the protagonist, basically, as I understood – he's the 4th generation Japanese-American; his parents grew up in Japanese detention camps during WW2. I think the story makes more sense placed in the 2000s. America changed since then. Maybe I'm wrong about it. It's also interesting how gay identity is normalized in the movie mirroring the straight identity, but the race race is a source of problems. Except for the parents.

Slept late by 1am.


 Woke up just before 7. Shakshuka for breakfast. My kind of shaksuka: with shiitake mushrooms, and without cayenne pepper.

I thought I’d run some paperwork in the morning before I go to the office. Called Fidelity first, cause the error came from their side. Talked to a girl from support for 30 minutes: she tried to help, but couldn’t. She said let’s try this and let’s try that, and sorry about that, and she went to talk to someone, but not much in the end. Maybe she’s from the South – nice and cheerful. Then I called TIAA. When the guy on the other end said “retirement”, I could sense he was about to retire. He was slow. What was going on with my account he had no idea. Then finally called our HR – they just honestly said they have no idea what to do with my issues and asked me to email them. So I described all that I did, highlighted my problem in separate bullet points, and attached some screenshots. Who’s gonna look into all of that I can’t imagine. Feels like it needs an entire investigation team. So let it start with this email, and let it bounce between different teams for a while. So hard, what if I was a bit of a funky dumb guy? It’d be immensely difficult to sign up for those benefits for a dumb guy.

It was about 10:30 by then, so I thought I’d just stay work from home. B was running meetings all day, so I listened to music again. Discovered this strange track by Shed, what the hell:

Я люблю большие суммы, я иду забрать их

Похуй какой кипишь, я вступлюсь за своих братьев

Я люблю любую суку, что лежит со мной в кровати

Я забуду эту суку если мусор ее батя

Это больше похоже на язык улицы чем тот перевод Масловской, который я читаю. Где «мама дорогая» и чего-то там «в одном флаконе». А тут прям Анжей из Польско-русской войны.

 

Meanwhile, turns out Shed playing in Brooklyn all night this Friday. Thinking of spontaneously going. Why not, I just discovered him this week.

My unfinished code for emails was left on the laptop in the office, so I couldn’t continue working on it from home. I should figure out some kind of cloud sync. Or just make the habit of checking in the code by the end of the day. Anyway, I decided to look into the client instead. React Native coding with CoPilot – how hot is that? I tell it to draw me this, and send that request, and kind of makes it with bugs, and then I fix it. Even proposes to structure it in an okay way. Then I watched some videos from Udemy on React Native and figured there were three main pieces: iOS code, Android code, and JS logic between them. And then got stuck in making a text input not look ugly. I would rather ask Ryan about it tomorrow.

I went for a walk in the evening. So easy to just get stuck with a computer and not leave the house, and then get a headache from not moving at all. It was still rainy outside, but warm. Some people dressed in jackets, and some walked in bras. And cloudy, grey, and gloomy. Glad we get these days sometimes, but not too many of them.


 Woke up at 7 without alarm. It was raining outside. I picked up an umbrella and headed to the train. The train was not too crowded, maybe more hybrid folks stayed home cause of the rain today? I read somewhere later that before COVID 5M people were riding the subway daily. A couple of years ago it was under 3M. This year about 4M – still well under before the pandemic. I read Maslowska’s “War” on the train. Magda, Angela, and now Natasha got in his place; Natasha is a crook, it seems.

In the office by 9. No meetings were scheduled, and not many people around. Except Paula – she’s back, running meetings all day; so I listened to a lot of music. Turned out Wax is Shed. Wax is his creative pseudonym, among others. But Shed is Rene Pawlowitz from Berlin. Shed’s music was inspiring; so much so that I played with Logic Pro a little bit after work.

For work I read a bunch of pages about AWS SES, that is email sending service. Learned about DKIM – that is domain signature for emails. So why does the spam still exist; why do I still receive emails from Amazon about clicking to refund my mistaken expensive purchase? I guess those do not fake the domain anymore – they just look like an authentic email from the company. Domain in email is now somewhat reliable, if it supports DKIM.

Finally, installed CoPilot. I’m late to this game. A bit disappointed at first – it doesn’t exactly read my mind and knows what I wanna do.

By 6:30 I was running to Apple Store to fix the cracked screen on my phone. The guy told me to just upgrade my 5-year-old phone, but I explained that there was no way I was gonna be giving it away – I’m passing this phone to the next generations, kids, grandchildren, etc. Then, he explained, that they actually were gonna replace the screen and not swap the phones as they used to do, and it was not gonna help with the battery life unless I asked to replace the battery too. Then, he told me my battery was probably drained because of all the background app refreshes that I never disable. I got so sleepy – it must be from the second coffee in the afternoon – I thought fuck it, I’ll keep going with the cracked screen. What’s up with Apple Store these days – they just convince you not to pay money.

I thought I’d stop by Trader Joe’s since I was in the hood. Picked up some Ube cookies – they are back on the shelves. Omg I love these cookies! – the cute cashier girl said. Yeah, they just stashed them for a while and didn’t sell anymore, I said. They are seasonal, and now they are back, she explained. What are you listening to in your headphones, she asked. Oh, my, what am I listening. War and scare and blood in faraway countries. A podcast, I say. No one tells me just a track, she says, nobody listens to music anymore. I listen to music all day at work, and a bit tired of it, just now I wanna hear someone’s mumbling. Oh yeah, music at work, do this, rhythmically do that, she plays a robot. She tells me about a track called Kambuforia, it’s cause she likes Kambucha, which is what relaxes. Have a good night, honey, she says. Honey? Is it cause I shaved this morning? Or the cause of my cool long raincoat?

Haha, you look like shit, B says when I get home. She worked from home all day, while outside it was raining pretty much non-stop all day. I definitely looked a bit like a stray dog left alone in the rain. We ate comfy tofu Korean soup with rice for dinner. I love eating Korean soups on rainy days.

 Woke up at 5, then tried to sleep till 6, but I couldn’t. I had some dreams, but boring as hell – I woke up, walked in the room, open the drawer. What’s the hell. Can I see interesting dreams? By 6 it is already bright outside. Slow breakfast, egg salad on toast, coffee, Omega-3, then I thought I’d bike to work. 

The park was pretty empty despite the sunny morning and comfy temperatures in the 50sº. It was mostly old people who biked or exercised in the Upper West Side, not many commuters. It was about 8. Then, by midtown, yuppies started coming out walking their dogs. Girls in bras and shirtless guys were jogging on the trail. The headwind was making pedaling harder. It took me 50 minutes and more effort to get to the office.

At work, I tried to make Lambda run locally in AWS SAM. That worked, but without DynamoDB. With DynamoDB it died from OOM killer without reporting anything. I didn’t figure out why. Instead, I wrote a local harness and tested it this way. Nothing interesting.

Learned about JWT. It is a cool idea: instead of a session token and storing user variables on the server, it signs those variables by a private then clients can decode using a public key. 

Then biked back home by 6. It was sporadically raining, but I had a portable parka jacket with me; still, I worried that it would start raining heavily. 

We ate pizza for dinner from an Italian owner who spoke Spanish to his employees. Hamilton Heights – everyone speaks a bit of Spanish here.

 Woke up at 7:10 – seeing some vivid dreams (something stupid that I told myself to remember, but forget as I got up), then slept till 8. I had insomnia the night before night. So, I hardly got up by 8. Coffee, cookies, and running to the train. The train was pretty packed, but I could sit after the 96th, and read Maslowska’s “Polish-Russian War”. 

In the office by exactly 9:30; just enough time to open my laptop and join the standup. Abhi was showing his platform drawing screens. That looks pretty cool. Sunny is working on the real-time buses API. I work on emailing receipts. Then another standup at 10. That went not as lively. 

Then I tried to run the existing Lambda locally, with Gateway API, and SNS events. Abhi suggested just making another Lambda in AWS and uploading and debugging there. That suggestion I didn’t like – there must be a way to run it locally, debug, write tests, etc. So I spent a few hours trying to make this thing called SAM work, but it was showing key auth errors. I changed the configs, trying various options: so I try some bullshit config from the web or from ChatGPT, and it runs, and the API says key error when I make a request. Then I realized I just misspelled my request URL. Dang. That must be from not sleeping enough.

Another thing I’ve done was to file a "Statement of Financial Disclosure" which is due on May 15. As state employees, we are required to file these essentially anti-corruption forms for the "New York State Commission on Ethics and Lobbying in Government". It was mostly about income, assets held, debts, property value, and associations/previous employers. I didn’t figure out if the information was going to be publicly available. It seems on their website they ask to file a request per person to access the disclosure. I wonder how easily they approve those requests, and how easily this financial info is accessible about any state employee.

And one more thing updated: late last week Sunny found some config in Firebase, disabling “localhost” domain somewhere, and suddenly last week’s SMS spam just stopped. It looks like the spammers exploited this debug/developer configuration leftover in production. So, now Sunny started unbanning those countries, gradually, and we don’t see the abuse anymore. This makes me somewhat sad and dissatisfied with myself: it was not exactly my fault, but I was assigned to it, spent some time trying to understand the problem, but came up only with the dumb banning countries solution; I didn’t get deep enough into Google’s long Firebase FAQ, where they mentioned that “localhost” problem. Finally, I’m making silly typos in simple URLs and then troubleshooting it for hours. What am I even doing with this dumb tech? What do I want to be doing and what should I be doing? An easily spent life on dumb tech. It’s so important to find worthy problems. Mess. So, I was feeling moody.

Back home by 7. It was B’s first day at her new job. She’s fully remote now. She says she hardly got up from her desk between 9 and 6. So we talked about that.

 Woke up at 7:20. The plan was to leave the house by 8:20, but I left by 8:30. The train was medium packed: I managed to squeeze in on a seat between people; but was I not lucky I’d have to stand.

I read Maslowska’s “Polish-Russian War” on the train. Mostly engaging in action; sex, drugs, and war. Well, it’s not really about war; rather a state of young mind in reflection to scare of war occupying old people’s minds; Polish revisionism of the 2000s. They say Maslowska was 19 when she wrote the text. 

The Russian translation is at times annoying. I think it’s probably written in modern Polish “street language”, but in Russian translation it’s a blend of informal language from all over. For example:

Так что я чего-то тут не понимаю, когда она идет таким бодрячком и строит из себя модель. Крутит задницей так, что мама дорогая. На ногу свою уже не хромает. Модель, актриса и одновременно певица в одном флаконе. Перетраханная вдоль и поперек. Живая реклама дырявых колготок, покупайте дырявые колготки, последний писк моды, самые что ни на есть стильные.

“мама дорогая” is the kind of language my parents used. It doesn’t sound right for the young messy character that I imagine in the book. But in English, it’s all quite lost, if it intended to be there:

Therefore, there’s something here that I don’t get when she goes off so playfully. Shakes her little ass. Sweetness itself. Her leg no longer lame. A model-actress-singer all at the same time, all in one. Fucked through and through. Her holey panty hose advertise, Buy holey panty hose, right now they’re the in thing, they’re all the rage.

I couldn’t find the Polish text, unfortunately, yet. I wanna look what the original looks like.

I got to the office by 9:25, five minutes before the standup. At least, not late this time. The standup was lively. We got more in-depth in our reports and had time to listen to opinions and have a conversation. I like it more this way, than disengaging two to five-sentence reports that only a few managers care about. It took 30 minutes. It’s not a “standup” in the classical sense, of course. Sometime in the future, they will run conferences under the “standup” banner.

After standup, we scheduled a meeting with Ryan, Sunny, and Will to discuss my project. We looked into the client code, and discussed the flows – that was helpful. From that was supposed to write a doc about the plan.

Otherwise, the office was empty. Everyone working from home. I went for a haircut by 4:30pm, then worked at the nearby cafe on the planning doc. David was the hairdresser; he was new. Not sure why they assigned me to him – usually I don't have to ask for John when I schedule a time. John was there too, bored on the phone, without clients. I think he's jealous of me visiting others. I'm his client. But I like Jimi too; he's a bit too crazy, too experimental – good twice a year. Then John to other times to recover from Jimi's experiments. They are good together. They should not be possessive of their clients. Such a hair salon drama.

Back home by 6:30; we grabbed a pizza and crashed into bed early.

Page generated May. 29th, 2025 03:25 pm
Powered by Dreamwidth Studios