offset \ˈȯf-ˌset\ noun

a force or influence that makes an opposing force ineffective or less effective

NFC Tags in Home Automation

The current Zemismart curtain roller started to act up and I was to do the whole reset with a pin and a button, but my manual was in a box in our storage so I had to retrieve it like Conan the Barbarian. I had to shuffle other boxes and stuff to get to the one I needed. This just made me realize that our physical storage space could use some more love. I thought it would be a great idea to put an NFC tag near the curtain to have a link to the scanned manual instead. Get rid of all the paper forms and have a digital storage of things would free up the space. I already use Syncthing for the photos for the PhotoPrism so I might as well do a self-hosted document storage system to manage general files, too. For that, I opted to use dufs. It's simple and it works. I mounted a folder from my external drive into the configuration of dufs, added the credentials and left it in the local network. After all, I don't need this service exposed to the whole world to see. I added the whole thing into my existing compose file on the Raspberry Pi. It is something like this:

dufs:
  image: sigoden/dufs
  ports:
    - 5000:5000
  volumes:
    - /path/to/host/folder:/data
  command: ["/data", "-A", "-a", "user:pass@/:rw"]

Of course, you'd need to adjust where necessary for your system. With static file serving in place, I scanned the manual and uploaded the resulting file to the dufs.

I did the same for the washer/dryer, but it was easier for it. I found three manuals online and uploaded them in a single folder. I could eventually write the folder URL to the tag instead. One piece of the puzzle was in place. Moving on to the NFC one.

When discussing my solution with friends, they asked a few questions about the NFC itself. I answered them as best as I could:

  1. Do the NFC tags require batteries?

    No, they're just a chip and an antenna in a small form. When exposed to the RF field, they emit the data. They do not require batteries which is cool. The reading happens when the reader and the tag are in a close proximity of each other.

  2. Could you do the same with QR code if you're scanning with your phone?

    Yes, you could embed the data and this is wonderful. WeChat and Revolut even function with payments reading the QR codes since you only need a camera. Almost all smartphones have a camera, and while majority of phones do have NFC, it's not as ubiquitous as the camera. When you create a tag in Home Assistant, you get a QR code, but can also write it to an NFC chip. I had the QR code for one automation already and I also use one currently for WiFi credential listing in the apartment as well, but in my experience, scanning QR codes requires more work from the user and more time is spent, whereas NFC scanning happens almost instantly.

  3. You could call automations by just clicking a shortcut on your phone.

    Yes, I could, and I do for some of the things. Curtain control mostly. But then you have to set up phone shortcuts as well.

  4. You can tell your smart speaker to execute an automation, right?

    I can, and I do. A smart speaker leaves a lot to be desired, though, at least the Nest Mini I have. It mishears the command or ignores it for some reason or says it did things, but it didn't... It even asked me to clean my room myself once instead of sending the vacuum cleaner there. Can you imagine?

  5. What do your cats have to do with that technology?

    Nothing except having the same acronym. NFC = Near Field Communication, NFC = Norwegian Forest Cat

Last year I bought a box of NFC NTAG 215 tags and started using them in various circumstances. I gave some to friends as well so they can experiment if they wanted to. While reworking the dashboard for the Home Assistant instance, I made the tabs for each room of the apartment and in each room I opened a markdown card describing what NFC tags I had in each room (or in general) and what they were used for.

  • on the keychain:

    holds the URL of the OffSetLab

  • on the cork board:

    has 7 tags and acts as a dashboard for controlling the lights and sounds for the D&D session

  • on the projector:

    toggles projector, speakers, PS4 on/off state and lowers the motorized projector screen (for some reason, HDMI CEC is not powering on all the devices so I have to trigger them each separately)

  • on the washing machine (two tags):

    triggers a notification in 8:05 hours from the moment of scanning. This is the exact time the washing machine cotton 40 °C and cupboard dry takes to finish. I might have a smart washing machine one day so I would not be limited to the manual notification of that single program

    contains the link to the folder with manuals for the washer/dryer

  • below the kitchen hanging cupboard:

    calls Roborock to clean up the kitchen. This is useful when the surfaces are cleaned up and crumbs thrown on the floor

  • on the apartment door:

    WiFi connection information for the apartment. There's a QR code next to it as well. When guests arrive and ask for a WiFi access, this is how they get it

  • on the hooded litterbox:

    turns off the notification annoyer to clean the litterboxes

  • on the side of the mirror next to the bathtub:

    toggles a scene which dims the lightbulb, changes its colour to warm and turns on the fan

  • on the blue box in the storage:

    sends a notification to the phone that scanned it with a list of items in the box (I should change this to a proper link to a list)

  • on the window

    contains the link to the manual for the roller curtain motor

Vesna particularly loves the physical dashboard with NFC tags I made for our D&D sessions. They start playing ambiental music from Spotify playlists on the speakers and manipulate the lights as well as one that turns off everything that was running for the session. I started up the Inkscape, added one inch diameter circle, only border, no fill and placed the icon from Material Design Icons inside it. I printed it on the sticky paper and cut it out to be on the NFC tag. Then I put the tags onto the hexagonal cork board and gave it to Vesna to play with the dashboard since she's our resident dungeon mistress (not that kind, you perverts).


/media/images/ha-dnd-dashboard.jpg

Setting up the NFC tags is quite easy:

  1. Take an NFC tag and have it ready
  2. Open Home Assistant app on your NFC enabled phone
  3. In Home Assistant, open the hamburger menu, pick Tags, click Add Tag, name it and press create and write (you don't have to enter tag ID)
  4. Press the robot head icon for the created tag, this creates the automation that triggers When a tag is scanned
  5. Create the automation according to your needs

/media/images/ha-app-tags.png

Alternatively to the Home Assistant app, you can use NFC Tools app, go to Write -> Add a record, pick a type of the record and follow the instructions. This is useful for having the tag with other data like links, WiFi credentials, automating phone behaviour with Tasker... in essence, things that are not exclusive to Home Assistant.

Automations in the house are either:

  • togglers whose action is Conditionally execute an action and default to another action which is using a simple IF-THEN-ELSE construct to check for a certain device state (off or on) and execute a script. This enables me to activate things or deactivate them

  • use the same thing as above, but check which device triggered it. IF part is: Test if template renders a value equal to true:

    {{ trigger.event.data.device_id == "my device app id taken from device's URL" }}
    

    THEN is Call a service: 'Notifications: Send a notification via mobile_app' (depending on the device, I have two actions for two devices here so it's going to two different mobile_app instances). No ELSE.

  • directly Call a service (usually execute a script or send a command to a device) or Delay for, then Call a service (in the case of the washing machine tag)

Annoyer silencing is a bit complex, so I'll explain it as best as I can with an example for my litter box cleaning routine. It comprises of one helper and three automations to accomplish the entire workflow:


/media/images/ha-helpers.png
  1. Under Settings, Devices and services, there is a Helpers tab. I use the toggle type which is esentially an input boolean. It can be either true or false. I called it "Litterbox Cleaned".

  2. I have an automation that triggers every half an hour, three times. It's active in the morning, in the afternoon and in the evening. Annoying, right? I call it "Litter Boxes Notification". It checks if the "Litterbox Cleaned" is Off, and only then does actions that are:

    1. Call a service 'Notifications: Send a notification via mobile_app' with the message: "Clean the litter boxes." and data:

      actions:
        - action: SILENCE
          title: Silence
      

      This means that the notification on the phone will have a button that can be pressed and the specified action triggers.

    2. Text-to-speech (TTS) 'Say a TTS message with cloud' (I edit this one in YAML because I use a template to give some personality to the responses):

      service: tts.cloud_say
      metadata: {}
      data:
        cache: false
        entity_id: media_player.my_nest_speaker
        message: >-
          {{ ["Clean the litter boxes.", "Please clean the litter boxes.", "Clean the fucking litter boxes.", "Roses are red, violets are blue, clean the damn litter boxes, so I don't bother you.", "Did you clean the litter boxes?"] | random }}
      
  3. Manual interventions are then another automation that I call "Tag Litterbox 1 is scanned" and it has two triggers:

    1. When a tag is scanned (the one I physically put on the litter box)

    2. When mobile_app_notification_action event is fired. Event data is action: SILENCE which means I pressed the silence button on the notification from the step 2.1.

      And two actions:

      1. Call a service 'Input boolean: Turn on' on Litterbox Cleaned

      2. Call a service 'Notifications: Send a notification via mobile_app' (I edit this one in YAML because I use a template to timestamp the silencing):

        service: notify.mobile_app_fp3
        data:
          message: Litterboxes cleaned at {{ now().strftime("%-I:%M %p (%d-%m-%y)") }}.
        
  4. The last automation I call "Turn Off Litterbox Input" and it triggers on the time as well, five minutes after the last notification in the series. The automation from step 2 triggers on 10:00, 10:30, 11:00, and this one triggers on 11:05. It has the action Call a service 'Input boolean: Turn off' on Litterbox Cleaned. This makes the helper have a value of false and it's idempotent so there's no worry if it's already off. This action primes the annoyer for the next series of annoying that will start in the afternoon (again, automation from step 2).


/media/images/ha-automation-lbn.png
/media/images/ha-automation-lb1is.png
/media/images/ha-automation-tolbi.png

I use Nabu Casa cloud connection for the convenience of accessing the instance outside my network, to integrate with voice assistants easily and to financially support Home Assistant development. I think this is a good thing. With it, I'm able to have tts.cloud_say, but you could also use tts.google_translate_say if you have a different setup.

This was a long overdue article (and it's long, too) so I hope it's useful for whomever is reading this, but it will be useful to me so I remember how I did stuff. Poking around the Home Assistant is not a scary experience and it can be very fun.

2023 Recap

The year started like usual. Recap writing and checking out the New Year's resolutions. We quickly tried to get back into the routine that we sorely missed for a month, but as it turned out, 2023 was great in the first half, however, very bad in the second one. My writing halved due to the general lethargy since I got laid off and some other things got to occupy our life at the same time. Considering those, this year should see us wrap up some things we set in motion and propel us into new directions. Aside from being laid off, getting the cats and the citizenship are the most important events. Here's the recap:

Trips:

  • Luxembourg (Luxembourg proper, a weekend getaway to see the city, we were pleasantly surprised because it was really beautiful)
  • Croatia (Zagreb and Slavonija as usual, to see our families)
  • Spain (Madrid layover and sleepover)
  • Panama (Panama City and the Canal itself, monkey islands in the Canal)
  • Mexico (Cancún, Tulum, Yucatán riviera, Chichén Itzá)
  • USA (Florida, Orlando, Universal Studios amusement park - a jumping off point to the next set of countries below)
  • US Virgin Islands (St. Thomas, basically this is a USA territory, not a standalone country)
  • Antigua and Barbuda (St. John's)
  • Sint Maarten (Philipsburg, this is a part of the Netherlands)
  • Collectivity of Saint Martin (Marigot, this is a part of France, the previous one and this one are both on the same island: Saint Martin)
  • Commonwealth of Puerto Rico (San Juan, another USA overseas territory and they're not sure how to resolve the political situation, I think there was a referendum on them wishing to become a new state)
  • Dominican Republic (San Felipe de Puerto Plata)
  • USA (Orlando, Florida, again, since it was a round trip across the Caribbean, but this time we saw the Kennedy Space Center)
  • USA (New York for work)
  • UK (London for a day trip)
  • Spain (Málaga, a day long layover, Spain is really wonderful)
  • Croatia (Slavonija and Zagreb to see families and friends)

/media/images/atlantis.jpg

Domestic travel:

  • Great Sugar Loaf (again, climbing this 501m mountain)
  • Portadown (pizza and pottery course)
  • Killarney (citizenship ceremony)
  • Leixlip (kayak course)
  • Belfast (for a trip with friends)
  • Kircubbin (family expansion)
  • Celbridge (friends got a place there so we visit frequently)
  • Enniskerry (a friend has a place there so we visited)
  • Glendalough (again, with another set of family members)

Shows:

Books:

Things we bought:

  • LEGO sets (we were gifted Bonsai Tree and quickly complemented it with Flower Bouquet and Horizon Forbidden West: Tallneck)
  • A charging gadget for USB devices (we're getting low on sockets in the apartment so having a charging hub was a life saver)
  • More climbing equipment (shoes and harnesses)
  • SteamDeck
  • SteamDeck dock
  • Insect net for the balcony
  • Some fitness equipment for training the fingers for climbing
  • Some cable organizing solutions and boxes
  • FireAngel smoke alarm to replace the old broken one (also thinking about the automation of it)
  • NFC tags for improving the automation at home (annoying notifications and NFC scans to silence them, calling vacuum to the kitchen, WiFi credentials, activating scenes, delaying notification for stupid devices like washing machine)
  • Paper shredder (because we got sick and tired of figuring out how to anonymize the incoming mail for recycling)
  • Netatmo weather station (that has since shown us that the air quality can get bad in the apartment)
  • Bathroom cupboard
  • Tons of pet related equipment including smart fountain and feeders by Petkit
  • A set of Ikea KALLAX frames (to replace what we sold)
  • Additional KALLAX inserts
  • A small handheld vacuum cleaner
  • Aqara FP2 presence sensor (for zone automation, but it's currently underutilized)
  • Another dehumidifier model to complement the existing one in another room (they run for a couple of hours each day with smart outlets controlling them)
  • Graphics card (the old one is giving up on us, and it was the last component to buy since the whole PC died last winter. That said, not sure the new one works as expected)
  • Picture frames (we attended a fluorescent painting course)
  • More cocktail equipment
  • Fake elven ears for a Halloween costume :)
  • Raspberry PI 5 (but it is not established yet)
  • A bluetooth mouse for the SteamDeck
  • A set of wireless headphones (because Kida keeps eating the wired ones)

Things we sold:

  • Ikea MALM small chest
  • Ikea MALM big chest
  • Fit Bounce trampoline (we're sad this is gone, but we needed some space, considering)

Other important events:

  • Sequenced our DNA
  • Got laid off
  • Became an Irish citizen, did the ceremony, got the cert, got the passport
  • Had a massive amount of vaccines due to travel, then Covid vaccine again
  • Saw a lot of places and touched a Moon rock
  • Finished a kayaking course so we can kayak with confidence
  • Threw away all the boxes of the devices whose warranty expired
  • Expanded our small family to include Tenzin and Kida and bought a whole lot of cat stuff
  • Did all the necessary things at the vet for Tenzin and Kida but we kinda need to get checked ourselves this year
  • Automated cat drinking and feeding solutions
  • Overhauled Home Assistant instance
  • Went to a drink&paint course
  • Finished Subnautica again
  • Sold things we were not using
  • Taught cats some tricks
  • Assembled cat trees
  • Sister and her family finally visited
  • Changed wheels on my office chair
  • Upped my cocktail game with a book on D&D cocktails gifted by a friend
  • Joined IndieWeb community and slowly reworking the web with HTMX and webmentions
  • Cats had to be spayed and neutered so it was a number of sleepless nights
  • Halloween costume party
  • Little birthday party in an old arcade machines pub
  • Added Homer into the Raspberry to have a visible list of all our Docker containers
  • Planted flowers around the neighborhood, waiting for Spring to see the results

Family DLC

Every time I try writing something I end up in a state resembling a writer's block. Days pass and when I sit down to write an article, I quickly realize I don't have anything to report. In actuality I have loads of things to report, but no point in writing about them since they're not complete yet. I'm either busy wrapping things up for weeks or resigned to waiting for things beyond my control to resolve. Another cold period approaches and it is not helping either.

Still, I need to write about something, else I'll slow down so much I am afraid I'll be going in reverse. While I won't write about the things that are not yet completed, I'll write about one thing that definitely is. Our small family is not two, but four now. Twins Kida and Tenzin have joined our little club and are taking away our sleep, our time, our sanity, but bringing in some joy, calm and are keeping us from obsessing over meaningless things.


/media/images/tenzin-kida.jpeg

Getting a household ready for cats is not a trivial task. To fit our overall smart-home project, we opted to immediately introduce some smart gadgets - the ones we could afford and fit into our small apartment. We now have two automated food dispensers (dry only), a smart water fountain (they're interested in drinking the running water) and a single cat flap door.

The flap door we needed for Kida as she's a fussy eater - slower than her brother, who started to steal her food, and she also prefers to have audience and encouragement while she does it (we've since learnt that she's what's referred to as "affection eater").

He has no such trouble. He's growing way faster than her and is over five kg now. A true gentle giant. At the time of this writing, they're currently just over seven months old. Time is flying, though.

Aside from providing food and water logistics, we've set up two litter boxes in the hallway, which we'd love to replace with an automatic one, but that's both expensive and impractically large at this point.

Vesna bought every toy from every top list of cat toys and then some, we've set up a number of nooks where they can curl into for a nap, as well as two cat trees that they can climb, perch from and observe us from a height. Most of the time they sleep on the windowsill or above and below our bed.

They also have very distinct personalities. Tenzin is quick to sneak a cuddle or two, or three, and is friendly with everyone (which terrifies Vesna as if he ever escaped, nobody would ever return the glorious affectionate furball that he is). Kida is very skittish, but loves to explore and play, and vocalizes it frequently. She's not super into being cuddled, but will follow us from one room to another. We're working on it.

We also took the time to teach them some tricks. Their repertoire consists of responding to their name, sitting, giving high five, fist bump and low five, giving handshake, a hug, jumping over a leg or an arm, nose bumping and the list continues to grow. Right now we're teaching them to react to "no" - basically turning their attention from the illicit activity to us and using positive reinforcement when it works.

When weather permits, we try to take them for a walk on a leash, although that can prove to be challenging with them either trying to dash after something (Tenzin) or getting scared of strangers and freezing in place (Kida). It sure makes our lives less boring, and hopefully theirs more interesting.

The challenge ahead of us will also be switching them to a vegan diet. Their digestion can react temporarily, but we've done our research and it shouldn't cause long term issues. There are several brands that offer balanced food options for cats in the vegan department, but none of them are going into specialized territory like "kitten only", or "sterilized kitten" foods. Top that with what they had in the previous household, we are taking it slow.

They were also fixed relatively recently and they recovered nicely. Her procedure did involve some sleepless nights on our part, spent streaming relaxing cat music, but it mostly worked on Vesna. Luckily, that milestone is behind us now.

They've changed our lives profoundly in a very short time and we love them unconditionally, but I do sometimes wish they could learn how to work so Vesna and I are not the sole breadwinners in the family, or at least to cast some useful spells in the spellcaster's familiar vein.

Genealogy and DNA Analysis

In short, genealogy is the study of family history. Aside from studying birth records, historical lists and articles and other available sources, relatively recently popular method of studying family history is DNA analysis, to see how related people within a DNA database are. There are two biggest consumer focused companies out there for humans: Ancestry, which is mostly focused on North America and MyHeritage, which is mostly focused on Europe.


/media/images/dna.jpeg

My uncle started doing genealogy on MyHeritage and I was kinda fed up myself with not knowing all the cousins, their spouses, children. I also wanted to have my DNA sequenced. After all, I used to work in such a company, but eventually I opted to first enter the data in Ancestry because their DNA database of humans is the biggest there is at the moment, they offer traits display, as well as ancestry, and there's an option to export the data from them and import it into MyHeritage. It took some manual work to export the data from Ancestry, with usual disclaimers, of course, then import it to MyHeritage and wait for them to analyze it.

DNA is assembled by combining some parts in the DNA strain of the individual with the reference genome. Humans are mostly the same so there are no big differences between us regarding genetics.

All of the calculations are done by finding similarities of the submitted DNA with the rest of the DNA samples in the database.

The ancestry analysis is done by comparing the number of DNA subsequences of the individual with the sampled population grouped by their place of living. It is a static picture of things. People migrated and there's considerable room for getting it wrong, but there is truth to it, especially because ancestry can be distinguished way back throughout generations.

The traits display is there to see things like free vs attached earlobes, alcohol flush, sprinter gene and so on. Ancestry got almost all of my traits correct. Traits are usually determined by finding genetic similarities of a user within the DNA database that is marked up by user submitted answers.

More interesting is the PRS (Polygenic Risk Score) that can determine predisposition to various traits. Diseases being a very interesting part of it. Cancers and such. Of course, we're talking about statistical probability, which is definitely not the singular cause, but a possible contributing factor. For instance, just because one might be an alcoholic, genetically speaking, if they're not drinking, it can hardly be the case. PRS are also most viable in the populations with European ancestry, since they're the most researched group, but can fail in other groups. Take it with a grain of salt if you're checking things out for health. Ancestry does not give out PRS related to health. If one wants that, they should sequence their genome with 23andMe instead.

DNA analysis, as expected, depends largely on the sample size, as well as other factors, like epigenetics, additive genetic effects, etc. It is an interesting area of study.

It took about a month to get the results. The kit gets ordered, sent, then it's activated, sample is collected via saliva, stabilizing fluid is added to it and it's mailed back. It's a long wait then. They need to receive the sample, extract the DNA and run analysis on it. It depends on the lab and the amount of work they have. Import/export to another service (from Ancestry to MyHeritage in our case) was a matter of days and a bit of manual work.

As for my ancestry, I didn't get swapped at birth. The DNA matches it produced are correct, from both sides of the family (calculated by chromosomes because this is how inheritance works), but the ancestry is different from what I was expecting. My family is Slavic, to be precise: West and South Slavs. In Ancestry.com instead of Czechia, it got a lot of Southern Poland. It also threw out some similarities in their model with Germanic Europe, Baltic, Sweden and Denmark, then a bit of Norway. MyHeritage used a different model because it has different groups and has different samples. They placed my ancestry correctly in Czechia, but also found some similarities with Greek and Italian groups, Scandinavian, Iberian and Finnish. Apparently the families migrated from the north towards the south of Europe. Can't really blame them. My path was going back and a bit west. I'm in Ireland now and I love the climate here. I even got the citizenship just a few days ago ☘ Something to mess up the static image of ancestry once again :)

Way Away

We picked up wanderlust some six years ago when we were traveling to Australia. There's no way we'll see all the countries in the world during our lifetime, but there's a strong chance we'll succeed in seeing all of Europe's. Humans often focus on wrong things. Our apartment could burn down, but we would move on. Material things are not that important. It's important that we have each other. But we are lucky enough that our fundamental needs have been met at this point in time so we have some space to pursue our desires.

I wasn't writing for a while since we were away from home for a month and a half. I was called to an off-site in Panama and an on-site in New York was planned to be soon after. We chose to take our holidays in between so we didn't have to do two transatlantic flights. Planes are leaving a substantial carbon footprint as is. We saw a fair chunk of Mexico and Caribbean as well. The trip was long and enjoyable, but I can say Aegean islands do beat the Caribbean in terms of what you can see. It's hard to pack a lot in limited time, and the cultural sites, which we prefer to visit, are more tightly packed in the former.

As for the nature, Yucatan peninsula is full of cenotes that are a sight to be seen. The time we spent in Mexico was the top experience of our journey. It had some nice natural and historical sites. From ancient Mayan ruins, to reefs and groundwater pools.

Our first flight was from Dublin to Madrid, for a long layover towards Panama City. We saw the Panama canal and the city itself. The work was exhausting, trying to get a new feature off the ground within a very tight deadline is always hard, but I got to see people I hadn't seen in a while. For Panama we also opted to get vaccinated. Our bodies are not really used to the conditions there. The vaccination went well and some protections we took (DTP, Hep A and Typhoid) will last a long time. This will be useful for us in the future.

After Panama, we went to Cancún. It was a mixture of nature and history. We saw the city itself because we had accommodation near the center. It's not a very walkable city, and we're not car people, but it does have good public transport. We jumped off to some guided tours towards Chichén Itzá and Tulum. We admired the Mayan architecture and took a dip in the sea and some sinkholes, which made me want to start a scuba course one day.


/media/images/tulum.jpg

After Cancún, we went to Orlando as our jumping off point to the islands. We had some mean tostadas over there that we immediately tried to replicate back home. Those tostadas and the Colombian empanadas we had in Panama were two food items that we enjoyed the most. The rest of our culinary experience ranged from average to sadly subpar, and left us with the impression that vegan scene in North America is just not that developed yet. The highlight in Orlando was the Universal Studios amusement park. We managed to go to all the adrenaline rides that we wanted.

The Caribbean islands/territories/countries we visited from Orlando were the US Virgin Islands, Saint Martin (both French and Dutch parts), Antigua and Barbuda, Dominican Republic and Puerto Rico. The culture over there is diverse and influenced by the previous colonialism era and dramatic historical overturns. We enjoyed some historical sites and the cities themselves. It was a long round trip that took us back to Orlando again.

Back in Orlando, we decided to stay for a few days before traveling for the New York on-site. The US is still expensive as is, but Orlando is cheaper than New York. We went to see the Kennedy Space Center and all the US space program exhibitions. We got to fondle a moon rock sample. We did miss an actual rocket launch, because it got postponed so many times. Eventually we packed our bags (that were not many because we always travel light) and flew to New York.

In New York it was the usual on-site work, the combination of rooftop bars that the company usually goes for and an evening of personal time that we used to see the Edge skydeck and Manhattan from a higher vantage point. By then we were getting homesick and were looking forward to going back to Dublin.

Those first days at home were us just trying to catch up, wash all our clothes, get things in order. I had my hair cut a bit, installed a bug net on the balcony. We were getting ready to spend a summer at home. As luck would have it, less than two weeks after we came back, I got laid off together with around a third of the company. I really strive not to obsess over things I can't control. After all, the job market situation is very bad recently, especially in IT. Layoffs are happening all over the world.

Right now I'm out there on the job market, as well as doing some personal stuff. Losing a job really messes with one's head. Looking for a job is not helping it. Constant impostor syndrome, questioning self-worth, being worried all the time. I feel like this is not talked about enough. Life goes on, really. Time stops for nobody.

P.S. While I was writing this, my citizenship application got approved so I guess there's some more bureaucracy in that department. Time indeed does not stop for anybody and tends to be very turbulent. :)