MONDAY, NOVEMBER 4

Caught the empty train at 9:06; drank my coffee and browsed the phone, as everyone else on the train, instead of reading a book. I couldn’t read books for the past week; too much going on in my head; my mind is craving short attention span entertainment. Looking forward to my life back to normal. I get contended and bored; I open a book and focus on the line; the line follows a line, all becomes a melody, rhymed with the sound of the train, drawing a story, as I become engrossed in the book on the busy subway train, where everyone is sleepily looking at their phone. But not now: now I’m looking at my phone.

10am usual weekly standup. The big one, which is actually when everyone sits around the table. I said I’m waiting for code review. Will said why don’t we set a deadline for the first deployment for this on Friday. I said why not; it’s mostly ready. 

Then another standup, where I explained some intricacies with the GTFS-RT feed, when the train is removed too early, before it even arrived at the station.

Then an hour of work and we had a big team lunch with burritos. I ended up in the middle of a hot conversation about old computers like Atari and Apple 2. I brought up ZX Spectrum and turned out Ken has one. Ken is 22. He’s obsessed with old computers and programs for Spectrum on the weekends. He told me there is reversed reversed-engineered Spectrum from Russia called Pentagon that he wants to get in his collection. I said Russians now trying to acquire any chips from the West will be very surprised if he’s trying to ship Russian chips.

Then another standup with Sunny, Glen, Dave, and Ken. The agenda was to figure out how we deploy by Friday. Well, I don’t exactly get it: it’s mostly ready. If we fail, we should plan for failure, plan how we debug quickly and fix, and iterate. Everyone seemed too nervous. Was I too naive?

Then Sunny reported to Will, and they discussed it. They then invited Ken and me. Will was all over, gave Ken a test plan for 3 weeks at least, then jumped to discussing memory and CPU. Ken just nodded and said sure sure. So that was the fourth meeting in the day about the same thing. But I only got it the next day. The elections anxiety. I get it.

I worked some more, but not much with all the meetings. In the evening I went to watch some trains. Recorded the signal and the timing for stop and start. Then headed home.

TUESDAY, NOVEMBER 5

I thought I’d go to the office on the election day since I voted early anyway, and since staying home on Wednesday after a sleepless night is more convenient. Will and Sunny were in the office, and T and S, and most people out. 

I focused pretty well during the day. Trying to set up a test bench with my recorded signal from another day. That’s a lot of data massaging. Claud.ai is so smart and helpful. Writing me scripts that I used to spend hours on. 

Around 3 Will came by and asked me about my conversations with EE last week. Then he just called him and invited me, and then he didn’t know what exactly his asking. I went to his table. Sunny showed me a diagram with plans. That looked like a great plan. Replacing GTFS. Feeding Itrac. Wow, that’s great. And then Will said: “We’ll place our system in the center of everything, so then we get a …” – he couldn’t find a word – “then we get …” – he pointed to me – “What do we get?” I said: “we get leverage.” (Only later I thought about the more interesting answer to this question) Will took a moment to think: “Yes, leverage. We get leverage.” But before that, we have to replace the beacons. Sunny was complaining about Cuomo: this stupid push to place displays at every station before the elections; it had cost this organization so much money, and so much tech debt. We started drawing trains on paper; trains arrive, there are trains behind, so many combinations. Will gave me a pencil and paper too and asked to take points; then he realized he didn’t have another pencil. I went to my desk and picked up a pencil. We drew a bunch of test cases; Sunny was good at it – what if there is a train behind and the train ends the trip and stays at the station, not leaving, and there is another one on the middle track. We came up with a bunch. I said that I’m thinking differently about it; I’m thinking in principle: a train, it can move, a track, it can hold one train, a signal, can come from anywhere. Then Will took away my page and said he had to think about it. I left and heard him cursing reading an email from Br. For months they delayed the project and couldn’t make buses send the pings every 5 seconds instead of every 30 seconds. We ask them for an update every couple of weeks. This time Br said they overloaded their inference servers and needed to test ARM-based AWS servers to see if it’s cheaper to maintain the load. Will was mad. What a boloney, indeed. 

In the evening I grabbed a wine and prepared for the election results. Everything was crazy outside. Lots of homeless out of nowhere. Lots of crazies. Is it what Pueblo excitement looks like? B was at home watching everything on YouTube. I said she needed to save the energy for late night. But she dozed off by 11. I stayed watching the nytimes indicator moving from pink to pinker. I was in denial. It was exactly like 2016. Dejavu. By 3 I finished the wine and watched Trump’s speech. I didn’t see him for at least four years. I watched the speech entirely. It started quite lively. Turned out this guy Vance is married to a desi girl. He pointed to his family and friends and put some of them on the spot. And then he started telling stories; those stories felt like an old man that gets you trapped and tells you stories, and you want to escape, but you can’t escape; but I could just stop watching YouTube. But I kept watching. Did it look like 2016? No. He sounded older. He sounded tremendously boring. They played YMCA. I went to bed.

WEDNESDAY, NOVEMBER 6

Woke up by 10. B was up talking to her manager. Something about China and Texas, and she was talking and talking, and I thought wtf is she talking about it. I put my headphones in and looked in the chat. The chat was empty. 

It was empty until about 11. First Glen asked to confirm deployment on Thursday. It’ll be fine, I said. We’ll fail; we’ll fix it quickly; we’ll iterate. It’s fine. We’re not sending man to space, I said. Though I could send one man to space, I was about to say, but it was so-so kind of a joke and I skipped. Then nothing. I was talking to Claud.ai to make Python scripts, then opened them in Cursor to modify even more all the shit that Claud wrote. It’s like programming by code reviewing.

By 4 I got more than upset – I got hungry. The chat was still empty. I talked to AI. I finally decided to go eat something. The street was gorgeous. Nobody cared. It was 78ºF and sunny. Lots of people on the street. Life goes on. Is it always like that, or am I just noticing? Lots of kids running, lots of beautiful people. I walked back and forth. Ramen was closed till 5. I didn’t know what to eat. I ate a sandwich.

Then worked on a bench. Made my test replay all the signals and compute the error. That took twice longer to implement than I thought. Not too bad.

Then on the bench it finally hit me. All the doubts; all worries. Was it even worth it? Did I make a big mistake somewhere? This country is about simplicity. They want simple things. They will not understand anyway. It is all a waste. And why am I even bothering anyway.

I called G from the same bench. It was nice hearing him. He said if you know a person when they are 13, they don’t really change by 40; it’s funny – they are just the same as when you knew them when they were 13.

I went home and worked till 10, until I finally fixed the beacon sensitivity issue for tomorrow’s deployment.

 I woke up around 9:30; I was going to work from home. Coffee, standup at 10. I’m productionizing my debug tool: cleaning up a piece of code that I never planned to use seriously; luckily that I finished the beacons project last week and have this less demanding task now.

We sent the attorney information to SH in the morning. She called and told us to start thinking of the board application soon. It’s super easy, she said, one of the easiest applications she had ever seen for a coop: one year of tax returns, three paystubs, three months of bank statements, and two letters of references, one personal and one professional. And a cover letter. Very easy she says. And finally an interview with the board. She seemed she didn’t know the building was Cabal. I saw it was Cabal pretty much right away; but I’m familiar with this neighborhood. I googled the building; I googled its residents; it’s clearly Cabal. You need to use special keywords and passphrases. The hope is we can fit in in Cabal; don’t we deserve just a little slice of Cabal with all the work we’ve done? The hope is that they look, that they think, that they may not think we’re one of them, that they see our keywords and passphrases, maybe not properly used, but they think we have good potential; they take us in. And they don’t scrutinize us. Cause we’re not 100% there on paper, with all the requirements that they put; we're not Cabal. But they look and they think we have good potential; and they take us in in Cabal. And we will not talk about Cabal much; we don't talk about being now a part of Cabal. We will know we were very lucky to get a slice from Cabal, but we won't talk about it. That's the hope.

Then I tried to work, but really my mind was adding numbers and projecting them into the future. Selling some stocks. Tesla went up, suddenly, 272, then 268; I set the limit to 270, but it was not selling; then it went down to 260. Hell with it, I thought and sold it for 260. It’s better than below 200 not that long time ago. I sit in the office; I refactor a piece of code, make it build; then, I switch to the broker website window; I look at how the orders are doing; then I go back to the build, to the code. 

2:15 called K from Amalgamated. I called. “Who is that?” – I heard an unfriendly voice; I thought I got the number wrong. We had the call scheduled, I said, is it K. Oh, yeah, it was K, she remembered. K turned out to be a Fran Leibowitz kind: wry, grumpy, and knowledgeable. We went through my application. I explained that I found an apartment of interest and was shopping for rates. I explained how I was surprised by the rate jumping 5.25 to 5.75 in one month at another bank. Yes, the rates are up she said; this morning it went up again. Ten-year Treasury yield is what I want to watch; not the exact number, but the curve correlates with the mortgage rates. I looked: a month ago it was quite a dip over the entire year, indeed. She educated me about the rate, then started talking something about financial markets, and then she said "uhm, and the elections next week". I held my breath. "Uhm, the elections. The elections mean the bonds. The bonds market will definitely be affected." I was afraid to ask in what direction it would be affected. "By a lot," – she said. Finally, she gave me the rate: 6.50%. That was way too high. That's cause B had a low credit score, she said; why is it so low? B was inspired by digital minimalism not long time ago and closed down all her not-used credit cards, I explained. She's kind of a foreigner; didn't know how American finances work, that if you close credit cards you lose in credit score. Then, she went on into coops requirements: 18 to 24 months of safety net that they want to see on your accounts. Well, I got the 401k, don't I? They will want you to withdraw that, and because you can't withdraw more than 50% they will reject you. What the hell, I don't want to withdraw from 401k unless I really need to; why would I do that? Then they will reject you, she said, and you'll lose money on the fees, and you'll waste your time on this.

I started thinking why did I even get into all of these? I'm clearly not from Cabal. Why do I pretend I'm from Cabal? I texted SH: will they make me withdraw from 401k? "No!" she texted back. "Let me speak to the agent to make sure but this is not a strict board. They only ask for 2 or 3 bank statements to show the ending balance," she texted. It took them at least 20 minutes to converse over our case. SH called back. You will tell them you don't want to withdraw from 401k cause it's disadvantageous to you. You'll tell them if you need to you'll withdraw, but you don't need to and you will tell them you don't want to withdraw. It's not a strict board - focus on the cover letter, and find good references; I've done this before. This is totally doable. She said. Okay, fine, I thought. We'll give it a shot, and if not – it was worth it. 

Then I tried to work, but haven't done much, since I had the head full of doubts. Slept by 1 or 2.

 Woke up around 8:30, as planned, for the empty train at 9:06. Empty because they put an extra train on schedule right at our station, but the train before and the train after is crowded. I decided not to read anything – just stared into the void between the people. I was surprisingly fresh for only four hours of sleep.

Standup at 10 with everyone. Sunny was there; on his first day. Now the dilemma is how do we distinguish two Sunnys. I turned the last name "Ng" which is normally pronounced as "ein", but in Cantonese it would sound more like "uhh" as in an interjection.

Then meeting with Ken. I showed him how to run our project in IntelliJ, how he can debug his first project with tests, etc. He wrote a bunch of Python so far for exploring the data; now needs to bring the Python algorithm to Kotlin backend. We discussed a bit how to bridge those two works. In my mind I think of "converting," of course, Ken to Kotlin religion. But no rush on that. He's doing well.

Then lunch with the new Sunny and our team. We can't agree on where to eat anymore: some want to eat outside, for others, the weather in the 50s is too cold, for others the food court is "too bougie" (I simply say it's overpriced and not as good). We ended up grabbing food from different places and going to the tip of Manhattan overlooking the rivers and the helicopter landing spot. I always remember "Succession" when see those helicopters. But nobody watched it besides me; it seems nobody watched even "Game of Thrones."

After lunch, I tried to catch up on home tasks. B was finding us an attorney covered by her legal insurance, and a house inspector. The agent SH was freaking out saying the seller thinks we're having second thoughts and asking why we still didn't send an attorney, and that they may change the price unless we sign in soon. That didn't make sense to me: if we can't agree on the price and hold on to it for a few days, how can we trust each other to go through the whole deal? B suspected SH was just rushing us to go with the attorney she recommended. That guy gave us a quote of $3K for processing the deal; it was worth trying to save on it. So I called SH, and told her we needed to find an attorney; she tried to push this guy Sergey again, but I said we wanted to save money by using an insurance-covered attorney. She was telling me the seller will raise the price; if it happens the extra saved money won't matter. Saying things of that sort. I said if they're rushing us into signing I start suspecting what's going on; we still need to check a bunch of things and take our time looking into it. I told her firmly that we were talking time till 2pm the next day. She finally calmed down and said she would let the seller know; that she would do what I say, that she's just warning me.

Then B arranged a conference with an attorney from the insurance, Paul. He was chill; told us that everything was covered by the insurance and that we should send his contact to the seller, and then he would get a bunch of financial documents and review them. He said that kind of buildings are often financially weak, so we should set our expectations pretty low; that may result in maintenance rise or extra fees. Everything took 10 minutes. 

Then I was coding for a couple of hours. Productionizing my debug tool. I didn't expect to use this code at all, so I wrote some shitty code, and so I was prettifying it now. Pretty chill and satisfying task; if it was someone else's shitty code it wouldn't have been as satisfying, but cleaning up my own spaghetti was fun. 

Danny, the loan guy, got back to me after I sent him the address and asked to confirm: he said the rate would be 5.75% instead of 5.25% as we discussed a month ago. Why, I asked. The Fed rate hasn't gone up since September 19, why did they raise it? He said we could bring it down to 5.5% if we use "credit points." What does it mean? He promised to explain in a call on Wednesday.

I left the office by 5:30. I was thinking of watching the trains for some time, but I was too tired. I went back home. B cooked Kung Pao chicken from Trader Joe's. In the evening, I meditated on the numbers and applied to two more loan providers to see their rates. Came to thinking of Tolstoy's Ivan Ilyich; how he and his depressive family were moving to Petersburg, furnishing the new apartment, being busy it made them happy. A bright spot in his life before another depression.

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

    Иван Ильич уехал, и веселое расположение духа, произведенное удачей и согласием с женой, одно усиливающее другое, все время не оставляло его. Нашлась квартира прелестная, то самое, о чем мечтали муж с женой. Широкие, высокие, в старом стиле приемные комнаты, удобный грандиозный кабинет, комнаты для жены и дочери, классная для сына -- все как нарочно придумано для них. Иван Ильич сам взялся за устройство, выбирал обои, подкупал мебель, особенно из старья, которому он придавал особенный комильфотный стиль, обивку, и все росло, росло и приходило к тому идеалу, который он составил себе. Когда он до половины устроился, его устройство превзошло его ожиданье. Он понял тот комильфотный, изящный и не пошлый характер, который примет все, когда будет готово. Засыпая, он представлял себе залу, какою она будет. Глядя на гостиную, еще не оконченную, он уже видел камин, экран, этажерку и эти стульчики разбросанные, эти блюды и тарелки по стенам и бронзы, когда они все станут по местам. Его радовала мысль, как он поразит Пашу и Лизаньку, которые тоже имеют к этому вкус. Они никак не ожидают этого. В особенности ему удалось найти и купить дешево старые вещи, которые придавали всему особенно благородный характер. Он в письмах своих нарочно представлял все хуже, чем есть, чтобы поразить их. Все это так занимало его, что даже новая служба его, любящего это дело, занимала меньше, чем он ожидал. В заседаниях у него бывали минуты рассеянности: он задумывался о том, какие карнизы на гардины, прямые или подобранные. Он так был занят этим, что сам часто возился, переставлял даже мебель, и сам перевешивал гардины. Раз он влез на лесенку, чтобы показать непонимающему обойщику, как он хочет драпировать, оступился и упал, но, как сильный и ловкий человек, удержался, только боком стукнулся об ручку рамы. Ушиб поболел, но скоро прошел. Иван Ильич чувствовал себя все это время особенно веселым и здоровым. Он писал: чувствую, что с меня соскочило лет пятнадцать. Он думал кончить в сентябре, но затянулось до половины октября. Зато было прелестно,-- не только он говорил, но ему говорили все, кто видели.

     В сущности же, было то самое, что бывает у всех не совсем богатых людей, но таких, которые хотят быть похожими на богатых и потому только похожи друг на друга: штофы, черное дерево, цветы, ковры и бронзы, темное и блестящее,-- все то, что все известного рода люди делают, чтобы быть похожими на всех людей известного рода. И у него было так похоже, что нельзя было даже обратить внимание; но ему все это казалось чем-то особенным. Когда он встретил своих на станции железной дороги, привез их в свою освещенную готовую квартиру и лакей в белом галстуке отпер дверь в убранную цветами переднюю, а потом они вошли в гостиную, кабинет и ахали от удовольствия,-- он был очень счастлив, водил их везде, впивал в себя их похвалы и сиял от удовольствия. В этот же вечер, когда за чаем Прасковья Федоровна спросила его, между прочим, как он упал, он засмеялся и в лицах представил, как он полетел и испугал обойщика.

    -- Я недаром гимнаст. Другой бы убился, а я чуть ударился вот тут; когда тронешь -- больно, но уже проходит; просто синяк.

    И они начали жить в новом помещении, в котором, как всегда, когда хорошенько обжились, недоставало только одной комнаты, и с новыми средствами, к которым, как всегда, только немножко -- каких-нибудь пятьсот рублей -- недоставало, и было очень хорошо. Особенно было хорошо первое время, когда еще не все было устроено и надо было еще устраивать: то купить, то заказать, то переставить, то наладить. Хоть и были некоторые несогласия между мужем и женой, но оба так были довольны и так много было дела, что все кончалось без больших ссор. Когда уже нечего было устраивать, стало немножко скучно и чего-то недоставать, но тут уже сделались знакомства, привычки, и жизнь наполнилась.


 Woke up at 9:30 – early for a Sunday! B brewed some coffee, and we ate cornbread, which I baked yesterday, for breakfast. I had a sore throat from last night smoking weed; I hoped I wouldn't get sick.

Then I read The Power Broker – the chapter about Shakespeare in the Park fight ("the second battle of Central Park"); I'm getting closer to the end, and feeling like I'm analyzing the book as much as I used to analyze the books at school. Maybe I should have had more notes. Maybe I should sit with the book for a while and go through the marks and see what I can get out of all of those – key points, themes, language that I can carry with me. 

At 12:15 I sat to write this diary for the entire week.

SH texted that the seller came back with 570K counter-offer; she proposed we give them the final 540K counter. I say okay. Then she calls and says the owner doesn't wanna hear anything below 555 – the price at the other similar apartment in the building was recently sold at; but that apartment has the windows facing the subway elevated line, and had major electrical problems, so the owner was upset if they sell for less. I said yeah the previous seller might have gotten lucky, but this is a free market, the seller may sell it quickly, or they may get stuck with it for months and months, having to fix things, and having to make it more attractive. So we offered our final 550. 

In the evening SH called and said they accepted it. We need to send them an attorney by 9am tomorrow, SH said. WoWoW, I said, we need to find one first. I said by noon. So went the evening, trying to find an attorney and hurriedly reading about the next steps.

Woke up after 11 – good sleep!

I read a chapter of The Power Broker about beginning media coverage criticizing Moses' housing projects (Lincoln center, etc).

Organized notes about apartment search: put our viewed apartments from early October and September; then added two number to each listing – down payment and total monthly payment (maintenance + principle).

SH got back and said our offer of $515K was rejected. "The agent called me and said the number is too low and they refused to counter back." Asked me what to do. I proposed $531K or $545K, she said "We can start at $530,000. Let me know your final thoughts." I said okay. Then I was confused if she proposed to go with 530K or she just picked up my number.

I went to bike around 5. Stopped by a new cafe in Harlem: big and spacious and empty. I wrote some more notes there. Then I went to Trader Joe's at 125th. It was big and spacious again, and the line was short. 

In the evening we cooked soba with salmon. Then I played some video games and smoked weed. I baked cornbread. Played some Valhaim, but got a base raid with bats, and didn't know how to fight it, so I stopped. 

I slept by about 2am.

 I stayed home so we could check out the apartment at noon, ignoring the anchor day at office (the night before, I messaged everyone in Slack that I had "to run errands" and would work from home). The apartment was Claremont Ave; it had 3 bedrooms and is very spacious, but it looked it badly needed remodeling. 

At 11:30 Ryan ran a meeting for "Roadmap," rescheduling it an hour before the start. Turned out they overhauled the subway logical map and we were gonna use mapbox for the subway with all the streets, etc. I disliked it at first. I regretted I didn't go to the office. Later I saw messages at 12:20, but I had to disconnect at 12, after walking to the apartment and listening from the phone to the meeting. What a mess! – I thought, – and why it couldn't be communicated better. Not much changes for my backend though.

The apartment viewing went well: it was exactly as in the pictures; spacious, and badly in need of remodeling – the parquet was in so bad condition that they just put linoleum on top of it. The only discovery was the neighbor upstairs that we could hear how they walked. The ceilings were very high, so maybe we could soundproof it later? The building was constructed in 1926; the agent showed us two antiques of the time: "dumbwaiter" - a small elevator in the kitchen that lets you move stuff between floors (maybe grocery deliveries), no longer functioning. And an antique "fridge" in the kitchen: with a compartment for ice; ice was a big industry back then, delivered from Iceland on boats. I also remember an "Ice factory" from the nineteenth century in Brooklyn. The agent could tell we liked it. The only thing is the price: 600K. She said we can start with offering 515K and probably converge somewhere around 550K. A similar apartment on the fourth floor was sold for 555 earlier this year.

Then we had lunch, talked about the apartment, and returned home to work. I was wrapping up my beacon detection algorithm, something I planned to finish two weeks before. (Each train has a Bluetooth beacon on it; we detect the train approaching, then when it stops, based on the signal strength and acceleration; and when it departs)

Jill asked if we wanted to view the apartment at 148 Street in the evening. We said sure; it was twice already when this one was canceled. I was skeptical of it: too small; with only two small bedrooms and the living room included a kitchen. The apartment turned out newly built, in 2018, by Columbia housing. Everything was new and nice; it left a good impression. Then, on the eleventh floor, it had a great view of the East. Everything in the hood is 8 stories max of hundred years old building, so it had a great view above the old city. And the price: 360K, practically nothing for NYC. It made me think about what I want. Do I really want all the mess of remodeling the huge three-bedroom apartment, or just move into a nice new building with everything ready? The only thing is the location. 148 Street; I wish it was closer.

Back walked back home discussing all those variants of our future.

Woke up at 7:30 – easily, then I snoozed the alarm for 10 minutes, then for another 10, and it was 8:20 already. I brewed some coffee, picked up a cookie, then headed to the train. As it turned out there were delays on the subway; the wait for 8 minutes, then getting on the crowded train. The train was crowded, but some seats are still empty, with inconsiderate people taking more space. I kept standing for another couple minutes, then squeezed in on a seat between a relaxed dude and a lady in a dress without sleeves; backpack put on my knees, finally, trying to to bump people with my elbows, I pulled my iPad from the backpack. I continued reading Kotlin in Action; not much new in the book, but refreshing Kotlin idioms, and somewhat enjoying the structure of the book; it’s a good book.

By 9:25 I realized I’m not making it to the standup at 9:30. So I got off Christopher St, exited the subway and ended up on a bench at Stonewall park. I called to the meeting. Everyone was working from home, it seemed from the videos. I promised to get started on reading the bus GPS feed. The temperature was about 65ºF, nice and sunny, I didn’t wanna leave the bench, dreaming of how cool it’d be to live in downtown. I went back to the train.

In the office I started reading the code related to buses; a few data feeds, a few components parsing and merging it. What were I gonna do there I still didn’t know. 

At 11, I got invited to a meeting about project transfer to our team; the beacons train tracking on the B division. That went pretty interesting. The train on Flushing and Canarsie lines are tracked with inches precision (great), but the servers that push the data to us are old and do it only every 30 seconds. They were telling us we have to wait till those servers upgrade next year.

We went for lunch with Kenny. Talked about projects, bus tracking – he works on the buses tab on the client, gossiped a bit about Sunny. Sunny is a character; the way he speaks can feel at times offensive. But knowing him – it’s just Sunny, – that’s how he speaks; that is nothing personal. 

Then I read some of the bus existing code, gathering questions for Sunny. Sunny was interviewing someone. I couldn’t tell if it was going very good or very bad. Turned out it went very well. 

Then I talked to Sunny about my bus tracking project. Take the GPS coordinates from the queue, updated every 30 seconds, and merge with the slower feeds, so we get more fresh locations on the client. The plan is for the buses to send us pings every 5 seconds, but the team that is working on it says it’ll run only next year. How does it work now? Now, it turns out, it’s the same 30 seconds + refresh within 20 seconds, depending on how lucky it gets. So I’ll get read of those random up to 20 seconds delay for now, and later the queue will be more frequently updated. Okay, seems fair; that is not as much work as tracking the trains underground. 

Then worked on the parsing part. Cursor didn’t work with Kotlin that well, so I switched back to Intellij; CoPilot was too dumb compared to Cursor, so I ended up just coding myself. I went home by 6. Kenny was still in the office; it was unusual. I forgot to ask him how 1:1 with Will went.

At home, we warmed up our moghrabieh, and ate it with salad, drinking tomato juice. B had some good news about their film script with Y. Then I read something light (wars, word affairs, Indian trading sanctioned tech to Russia [another day YouTube was recommending me something from WION, Indian television – the picture they paint there is only comparable to Russian propagandal showing bravado about big bombs, etc]).

 I woke up around 8:30, pretty easily. 

Drank coffee while reading a page of Newport's "Slow Productivity"; it seems pretty similar to his deep work ideas. Don't try to do too much, focus on one thing. On the train, I read Kotlin in Action; and kept drinking coffee. 

It was not a super productive start of the week: looking over the tasks, thinking of what I didn’t push to finish on Friday. Two app tickets (Sentry integration and Redux refactoring), and the lay-up trains edge case. 

Will posted a few points about Cursor. Trying it. Seems like a lot of hype around it. But works well for what it’s worth. Select code, CMD+K, describe what to do, and it shows the diff to approve. Karpathy says he stopped writing code and writes only English with it.

Lunch with Angela in the park; we both brought lunch. I brought my last night’s cooked moghrabieh. We talked about vacations, beaches, and mountains. Reminded me to check the ski resort passes for the winter. Epic, or no Epic, – that’s the question. $1K for a dozen resorts on the East Coast, and a few in Europe, and in Japan; could go travel somewhere for a week, and have fun weekends. But Angela says skiing on this coast is absolutely sucks: too icy. So, thinking.

Then, unexpectedly productive – finished those two app’s tasks, and fixed the lay-up train case on the backend; I even had some time to think of what’s next.

Back home by 7. The weather was just great; fresh cool air, not cold, not hot; perfect. I was thinking of hanging out in downtown, doing nothing, chilling in the park, but then I thought nope, let’s go for a run. That was a bit hard to push myself to do, but I finished 5K. 

B already ate early dinner by the time I finished running; so I cooked myself some pasta, and we watched an episode of “Watership Down”. Hazel almost died. “There's no more to fear in death than in the changing of the seasons”. Yay.

 Worked from home. Retro at 9:30. I'm still not sure what the usefulness of this event is. I say it's good to see the bus tab in our app now, even though it's quite buggy still, but I am indeed exited about using it, and complained about slow IT. My firewall change ticket has not been updated for 3 days.

Then worked on merging GTFS-rt and CBCT sources. Most of the time spent on the test: I tell it to ignore the estimated time, but it won't. Ended up just removing it from the objects before comparing. AssertJ, this thing is called, compares deep objects; otherwise, pretty nice library.

In the evening we watched "The Sound of Silence" (2019) on MUBI. I think it's full of very subtle and hard-to-trace humor, but most people probably don't get it – the rating is below 6 on IMDB. The guy's invention is to tune the ambient sounds of houses, which he tries to publish as a PhD thesis, but fails – cause he's a musician and not a scientist. The authors imply, that if he wanted to make it a commercial "product", he'd be rich and successful, but the guy hates the word "product," hates commerce, and ends up in depression instead of being rich and happy. Very real story, it seems, if read between the lines. I gave it a seven.

Then played Panzer Corps 2; still trying to understand the war – on the tactical level. I was never curious about it, but now the times are calling for it. The battle of Paris; (my) German Panzers capture Paris and its surroundings. I thought it was easy – I just had to be swift. Somehow, it's not. French tanks are just too powerful, and my artillery seems completely useless. I thought war was dumb, is it now? I should probably read something about the tactics. Somewhere I read recently that what Hitler had done on the western front took a militaristic and diplomatic genius; was it indeed? 

Slept by 2.

 In the morning I was installing Python on a Windows machine that had lots of admin restrictions. Weird, but the plan, I hope, is not too weird – I just want to leave this dumb PC to record ZeroMQ events 24/7 instead of doing it from my laptop with interruptions. So many things may go wrong.

Lunch with Angela. She stays so positive; I feel like me and Kenny are damaged whiners compared to her. I thought the shorts incident was funny, but distressing too. Angela changed to wear pants too – I don't know if cause of solidarity with us. 

Then the plan was to make a broker from ZeroMQ to ActiveMQ in Kotlin with Spring Framework – easy? I took the spring connected, and that was a rabbit hole: turned out I had to use producers instead of consumers for reading ZMQ, cause I guess it produces messages in this thing called Reactive Project, and then I went on trying to make my Reactive code and stumbled on it, and went on reading what that was – quite exciting SPI introduced in Java in 2019 making robust asynchronous streams, and I called the day puzzled whether I should just write my own dummy broker in two threads threads, or learn these reactive streams API.

What makes Spring terrible? I think stupid things like these: it will complain about unrelated shit that is hard to understand why without reading a stackoverflow thread (example); I will follow the doc precisely just to find out that they renamed a stupid thing and forgot to change the doc; the doc will provide you all conceptual understanding in 20 pages with little examples and no working example to point to; the docs will throw a whole big concept at you and will make you fill bad as if you're supposed to know it already – here, ZeroMQ Support, as they just tangentially mention it involves the reactor framework.

About 11pm Sunny messaged on Slack saying the support called his phone about some users not able to make purchases. He told them it's not too many users and can wait till the morning.

 Woke up around 8. It was not that hard since I was waking up by 9 over the weekend. Working from home.

Finished a bunch of dumb tasks, but feeling blue for some reason. It must be cause I slept 4 hours on Friday and Saturday – I can recognize this feeling. Nothing matters. But work is even easier that way.

I read some good reviews of PDF Owl – that was encouraging. Interestingly, some students reached out to me about getting a discount or a free license for them since they are students. Well, in fact, I already priced it with students in mind; but now I think about it, people want to have an exclusive discount, while the actual price point is not as important to them. I'd be better off if I priced it double and offered a discount for students and researchers. Then they'd feel good about getting the discount even though paying the same price. That must be some fundamental rule of marketing, but I feel like I rediscovered it at home.

I met with Justin 6-7pm. He's planning to work on his project for 10 hours per week. That is kind of light. We should scale down the project, I guess. He's a high-school student that I'm mentoring this summer. 

It was super windy outside, but the sunset was bright red and charming. I slept by 11.


 I got up by 8:15 and went to the office. I was excited to chat with Abhi and Kenny; when did I see them last time? Last Tuesday? Or Thursday? A long time ago. I got to the office and found out that both of them were working from home. Oh, well, I hung out by myself.

I started searching various keywords in Confluence from yesterday's meeting: ATS, PLC-A, PA/CIS, CBTC, etc. That's a rabbit hole, of curse. I skimmed a manual for train operators and similar documents. As I understood ATS-A is what people call internally CBTC – a train control system developed by Siemens. It includes equipment on the train (on-board), equipment in the tunnel (wayside), various servers gathering the signals from both, a control center operated by dispatchers, and various automatic systems like automatic train stop to prevent collisions. PA/CIS are the monochromic arrival displays on the A division stations. Those displays are hooked directly into Siemens' control system via separate network, and somehow it's hard for us to get access to that information. And then all that can be complicated by different systems used on different lines. ATS feed has sub-second latency and goes to some other old subsystem that provides public GTFS-rt feed used by Google Maps and other companies – that feed in turn has 20+ seconds latency. Plus it's a pull based feed. In general mood, the feeling about this Google's GTFS-rt format is not very positive.

So, my next project is to tap into that low latency ATS-A feed and try to re-create the system state for better quality data in our app (better than GTFS-rt). I say we should fix GTFS-rt so everyone benefits, but that might be too heavy a project for now. We will see. And then comes another strange requirement from Sunny: we actually don't want to be inconsistent with PA/CIS displays; that may cause too much confusion even if we predict better arrival times. This curbs my ambition of making seconds precise arrival times; you know, like in Europe, they have those countdown clocks counting seconds: 15, 14, 13, .. and you see the train arriving. In New York, we say arriving in 1 minute, and then "Arriving". I will see.

At home, I checked the mouse traps that I installed in the morning with cheese on them. All day I was afraid of finding my friendly mouse smashed by one of these traps: with blood, the mouse perhaps still alive, you know. I was amazed to find the traps empty without the cheese. I put another cheese, then looked at the traps more carefully, and realized I had to put the cheese on a hook; I did so. I found the cheese gone in two hours. Amazing. Either this mouse is smart, or my traps are no good. I put some more cheese for the night.

 Woke up around 8:15. What happened to the alarm at 7:30? I couldn't tell. I didn’t hear it. I was surprised to wake up feeling cold. It’s supposed to be hot already, is it not? But cold wind still blows from the open window at night. That’s pleasant, of course.

I stayed home; we had the standup at 9:30. Angela already has Jira access and has started working on a ticket. That is too fast: I got my email working only on the second week. Jira took longer to add me to. Then another stand-up at 10. We have two standups on Mondays, somehow. My plan was: anything from Ryan’s code review, then SMS pumping, and then getting started on the new project. 

The new project is to read a low-latency data feed and bring some better data in our app. What to do with that I’m still not sure. Torrey told me to talk to Sunny about the details. Sunny said we should talk together with Will and Dan W. So I brought everyone together, and then they mostly talked by themselves, and in the second half, I barely understood what they were talking about. A bunch of keywords, and what that means I didn’t know. PA/CIS, ATS, PLC, and the like. I had no idea what it was.

In the evening, at first, I saw something dark moving by my side on the floor and got scared; then I saw a tiny mouse running near the heater. A very small mouse of the length of my little finger. The mouse ran kind of funny: sliding on the corner, as the fat belly dragged it from turning to under the heater, and it moved the limps fast, sliding on the parquet floor. The mouse probably was surprised by seeing me not less than I got scared by her. She looked kind of cute, but for the rest of the evening I had that fear of the dumb mouse just wanting to bite whatever came to it – I was afraid it would bite my toe if it got under my desk.

 I worked from home. Finally, finished my email receipts project, finally. Well, it’s still on Ryan for CR.

Localized all new interfaces in 6 languages. How did I do it? I typed in Google Translate something like:

In the application on the left tab click the “Send receipt” button

So to give it more context around the short phrase I was translating. And then looked at what it told me in the quotes in Italian, or Chinese, or whatever, and copy that, and crosscheck with deepl.com. 15 or 20 UI elements had to be translated this way. I showed B what I did in Chinese and surprisingly it was all good. I assumed it was alright for other languages as well.

Then Will asked me to research SMS pumping and figure out what to do. Sunny says we should just block everything except the US. He’s probably right, but I was still trying to find a way to keep international numbers. It makes tourist’s life so much easier. On the other hand, it’s just a suburban train – not that many tourists ride anyway. So I googled, ran some queries, computed some numbers, and made a proposal on what to do – I feel like an analyst at times. I like it. I have to think, have to write, have to use data in my thinking and come up with creative decisions. I sent the report and called it a day.

It got too hot, we realized with B in the evening, and we installed AC.

 Slept till 9 almost and still felt under-slept. The plan was to pick up a badge from another office on the way, from Grand Central. The midtown was hot; I could feel the summer was coming. 

In the office I found the first strange bug with ReactNative: SelectionList would re-mount my component, so the state would be lost. Not sure if it was a bug or intended behavior, but moving it outside of SelectionList solved the problem.

Then, the spammers were back: this time from French numbers. First, we saw a spike in costs, and I ran my metric and found that there were thousands of tickets bought on French phone numbers in the last couple of days. That explained the spike in auth costs. What could it be? French holiday? Are students heading to some college for the summer term? I kept imagining. Then Sunny showed me that there were only 10 tickets bought and 4 new accounts. I looked again: I was selecting the year of data. Doh! So the spammers were indeed back and from the French numbers. 

In the afternoon Angela stopped by and said hi after her orientation. She’s our last hire. Now, our team is fully assembled.


 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.

Page generated May. 23rd, 2025 09:30 am
Powered by Dreamwidth Studios