IMG_0895-scaled

The Proposal

11/11/2020

9 months we spent apart, and the whole time we were trying to figure out how to get you back to Sydney. But finally in October 2020 you made it back, and after 2 weeks in quarantine we were finally reunited on the 7th of November 2020.

With so much time spent apart, I knew we had to spend as much time together as possible, so I took 2 weeks off work and booked us a camping trip across the norther coast of NSW. But that was not the only thing I planned.

I was also ready to ask you to spend the rest of your life with them. I bought a ring, and thought of where and how I will propose. It was going to be on the 11th of November 2020 (11/11/2020) at sunrise at the national park we are camping in.

The stage was set the time was right and that is exactly what I did. We woke up at 5am to watch and take photos of the sunrise, but then when we got to the beach to see the sunrise, I started playing our song - Wherever you are by One Ok Rock. It was a special cut down version which plays for 1 minute or so, basically cutting off when the lead singer says: “I promise you forever right now”. So when that line of the song was sung, I bent down on one knee and asked you whether you would marry me.

I was extremely nervous these whole couple of weeks (or months) preparing for this one moment, and in the moment my knees were weak, arms were heavy, but I did it - I asked the question. And the answer you gave me was: “YES”. You said you knew it was coming, but didn’t expect it to happen at that time at that place. But you were overjoyed and crying, and so was I.

Well whats next?

We already told all of our family and friends, getting plenty of congratulations all around. So now it’s time to start planning our wedding!  Where will we have it? what will we do? what will your dress look like? Are all things I’m really looking forward to answering with you during 2021.

View Post

The HU

07/07/2020

You know it’s that kind of day when you end up listening to a Mongolian rock / metal band.

This is not the first time I stumbled upon some cool Mongolian music, check out the post I made about throat sining: this post

View Post
E12EAE6C-4E54-4AC2-9927-F11B1DBE0DB7

Lockdown

11/05/2020

It is now May 2020 and the whole world has been in shutdown for 2 months now. Who would’ve imagined that our normal lives would come to such an abrupt stop in March 2020.

COVID-19 is wreaking havoc to countries and their health systems, and without a clear solution form anyone, we are all just stuck in our homes - in lockdown.

Some governments acted faster and better than others, and have managed to protect and save more of their people from this deadly virus, but everyone had to implement drastic measures to achieve even the smallest of results.

Australia has surprisingly come out on top in terms of its response and how well we managed to contain the spread and flatten the curve. Other advanced 1st world countries (looking at you USA and UK), were not so fortunate to have leaders who care about their people and their livelihoods.

We are all doing our part - staying home, social distancing, isolating ourselves from the world. Thats what each and every one of us can do, and should do, until there is a clear end in sight. Whether it be a vaccine or total eradication of the virus, either way we all need to just accept that our lives will not be returning to normal anytime soon.

This situation has brought a lot of uncertainty into our lives - with events canceled, travel banned, and any kind of future plans postponed. I had some big things planned for 2020 and 2021, but unfortunately they will have to take a step back until life gets back to normal (a new normal).

Stay home, stay safe, stop the spread.

View Post
philippines-2020

Another year, another family holiday. This time, amid the spreading health epidemic, we ended up traveling to the beautiful tropical islands of the Philippines. Like always the Brodsky family focused on 2 things, learning about the land and its the people, and relaxing on beautiful beaches of paradise. However, there was one thing that was very different from all of our past trips. A certain Japanese girl joined us on this trip! Thats right, my beautiful girlfriend Kotone came along for two weeks of fun in the Philippines.

While swimming in pools and the sea was a great way to spend the days, those the were not the only activities we took part in during our holiday. Kotone and I went snorkelling, and I also was able to fly my drone all over the place. The views of islands and the seas were absolutely breathtaking, and the fish in the sea we quite cute too. The people are kind, and the food was delicious. However it seems like the country is very divided between the rich and the poor, we saw brand new modern buildings being constructed next to slums and rubbish. The gab in wealth is very noticeable, so much so, that we occasionally refrained from venturing outside of our hotel, as we were worried about the area surrounding it.

Overall the Philippines was a great experience, and being together with my beloved made it ever more memorable. I hope the situation around the world improves, and we will be able to go to many more together.

As always, photos on my Flickr and Instagram stories

View Post
japan_autumn

Japan 2019

19/11/2019

This trip was the most spontaneous thing trip I’ve ever planned, but it was definitely a very pleasant and memorable experience. I recently started dating a Japanese girl named Kotone, and this November was her brothers wedding party. She was planning on heading to Japan for a couple of days to attend the wedding party, and I decided to tag along. Her parents invited me to the party as well as an honorary guest, and even let me stay at their house for a few nights.

Our trip began by arriving to Central Japan International Airport (near Nagoya) and renting a car. Thats right, no bullet trains this time, just a car. We drove up to the town of Takayama, visited the old town, and bought some sake. Then we reached our first stop of the trip: Hirayuonsen hot-spring town. For 2 nights we stayed in the Sanganoyu Ryokan, where we got to experience the various onsens, and even rent a private one for a period of time. There isn’t much around the area aside from pristine forests and mountains, so it was the perfect place to relax and enjoy everything that mother nature has to show.

The second leg of our journey was spent in the big cities like Osaka and Nagoya. We went to Universal Studios Japan, the first “real” theme park I went to out of my own desire. I even challenged myself to ride one of the more thrilling rides in the park, and while it was terrifying, I can report that I am still alive and well.

Afterwards we headed to back to home base - Nagoya, more specifically Oguchi. Meeting the family was terrifying at first, but after the first dinner, it got a lot more comfortable. The Kamino family were very kind to me and treated me as if I was their own son. It was a pleasant experience, especially when my own home is 15,000km away. At the wedding party I was seated with the groom’s high school friends, so we had a lot of laughs and plenty to drink. The highlight of the wedding for me, aside from the obviously different wedding style in Japan (even though it was somewhat a western style wedding), was that the bride gave the bouquet of flowers to my girlfriend Kotone. Is this is a sign for the future? Who knows, but it was definitely a happy moment for both of us. On the last few days we visited Nagoya Castle, Legoland, and the Nagoya Train museum.

While this was a short trip, it was very eventful, and at the end of it neither of us wanted to head back to Sydney. But we have and now we need to build our future together!

A small number of photos available on my Flickr, the rest are hidden away on my iPhone.

View Post
europe_2019

Eurotrip 2019

10/09/2019

This year the Brodsky family decided to drive around Europe and visit 2 new countries: Belgium and Luxembourg. Being part of the family means, that I got to experience this as well and thus raised my country count to 56!

We started our journey in Germany, where after landing from 24 hours of flying, I met up with my parents, who spent the last few days driving / on a ferry. While I have previously been to Germany multiple times, this was my first time driving through the country. That was probably the highlight of the trip overall, the German Autobahns. I got to experience driving at speeds that could not imagine. But of course I made sure to stay safe and drive responsibly.

Next on our list was Belgium, and you know what belgium is famous for? Beer! Thats right, Belgium has hundreds, even thousands of different types of beer. So of course I had to try at least some. Every day for lunch and dinner (when not driving, of course), I tried a different type of Belgian beer. One special type of beer that my mom and I got really fond of is called Kriek, which means cherry. Cherry flavoured beers. Quite sweet, a bit sour, but not bitter. After trying one, we couldn’t resist to buy at least 18 more. The cities of Brugge, Ghent and Dinant were beautiful examples of old Europe. To be honest every city we visited during the whole trip was beautiful, that’s why the majority of the photos are of buildings and not landscapes this time around.

During our travels, we love ticking off new countries of our list, and so we just couldn’t resist not stopping in Luxembourg for an afternoon. The country itself is tiny, and the old city was just like the others, it was still an interesting place to visit for a day.

And then last, but not least, was France. France was a bit harder to travel through than I originally expected, but thanks to Google Translate and its live camera translation features, we managed to overcome all the struggles in restaurants and shops. We had plenty of whine and Champagne in France, and I even got to try the famous french snails - Escargots (they were really good). We stopped by the city of Djon, yes the one with all the mustard, and we bought some mustard there. Finally at the end of our trip, we went to this small town of Requewhir, which looks just like it came out of a fairy tale. The buildings are all colourful and the structures themselves are from medieval times. They looked absolutely stunning from the ground (unfortunately not as well from drone height).

The last stop on our trip was the town of Baden-Baden in Germany, where we visited the famous hot spring baths, and had some great German food at a beer garden.

All the photos from both my camera and drone can be found on my Flickr.

View Post
screenshot of the new blog theme

Blog 4.5 - Kurenai

04/08/2019

The time has come to give my blog a bit of a glow up. Recently I started working on a new theme for my blog, version 5.0, however I was never able to fully finish the work here due to time constraints with SMASH! work, and now getting a new partner.

So I figured, might as well just update the colors and logo for the blog for now. So that is exactly what I am doing now. Gone is the #FF6600 orange and farewell Ringo. Instead comes the crimson color of the latvian flag: #9D2235 and a new logo that I am calling: Fen. Its a fox, a Fennec fox. The amount of changes is small so I am giving it a minor bump 4.5 and this version I am calling Kurenai 紅 for the crimson color of the latvian flag.

Next steps for the blog will be to update the BE, it is still running Ubuntu 18, and ideally I’d love to get rid of wordpress. Especially now that I have mastered React and Typescript building a ticketing system.

View Post
GUTS

SMASH!, the largest anime convention in Australia, with over 22,000 people coming annually. And to support this convention we have a range of systems: website, recruitment, and ticketing. And now, in 2019, we have to rewrite the ticketing system from scratch. As a bit of backstory, let me tell you how we ended up in this situation.

The backstory of SMASH! ticketing systems

SMASH! is purely volunteer run, and because of that, it simply lacks the necessary funding to pay for expensive systems like Ticketek or Eventbrite. However SMASH! is run on passion, passion of people from all sorts of backgrounds. And who would have thought that the majority a lot of people who want to dedicate their free time to help grow such convention are IT professionals working in the field. And what do IT guys and girls like doing more than hacking systems? - that’s right, building new systems! So at some point, the IT team of SMASH! built it own ticketing system (frontend and backend), and payment link system, and pass issuing system, and local redemption system and infrastructure. One might ask why build so many systems? The answer is always simple: cause there was a need for it.

With 5 systems, maintaining them became quite the challenge, and all of 2018 was spent to just support the existing systems and add 2 minor features. However it became clear that something needed to change when the 2 tech leads, who built the ticketing system and payment link system, retired from SMASH! after 8 years of service, each.

So even before SMASH! 2018 weekend happened, Yaakov and I started taking about the future of SMASH! ticketing.

The decision

We had 4 options and we had to make a choice…


  1. Stick with the current system
  2. Find an open source ticketing system, and try to make it fit our needs
  3. Pay for Ticketek, Eventbrite, or equivalent
  4. Build one ourselves

So the biggest problem of #1 is that the old systems were written in a number of languages and used a number of outdated frameworks:

  • Ticket-api: ruby on rails, PostgreSQL
  • Ticket-frontend: ruby on rails, HAML, Bootstrap, plain CSS
  • Payment-link: ruby on rails, PostgreSQL, JadeHTML, Bootstrap, SASS
  • PMS (pass management): ruby on rails, PostgreSQL, HAML, Bootstrap, plain CSS
  • WEB STIC (local redemption): QT, go, PostgreSQL, Angular 2.0, SASS

And no proper CI / CD implementation (manual testing and deploys were not fun). So if we were to support all this, we would all need to know all of these frameworks and languages. Unfortunately we didn’t. Not a single dev that remained on the team knew Ruby on rails, or wanted to spend time refactoring everything to use latest SASS syntax, better performing Postgres queries and fixing the under 50% test coverage that the old systems had. So we chose not to go with option 1.

Option 2 was considered very briefly, as after some research it was shown that there aren’t that many good open source ticketing solutions out there. Especially those that would meet our need and would be easy to adapt. Option 2 - rejected.

That left us with option 3 and 4. So after some math and estimating, Yaakov and I figured that building our own system from scratch would be quite feasible, so we sketched up a proposal. During the IT team debrief we presented this to the rest of the team, had a few debates of the structure and the feature set, but agreed that it was worth doing. The last hurdle was to get the executives to approve this endeavour. At the management debrief, I presented this as the main topic of discussion, saying that if we don’t do this, we will either lose a lot of money, or never get another new feature in those legacy systems again. Execs agreed to give me and my team a shot, they trusted us, but asked that we give them a solid answer of whether the system can be delivered before the tickets launch, and that date was: 10th of Feb.

Lets build GUTS!

One of the most important decisions of the IT debrief of 2018 was to find a name for this new proposed ticketing system. Many names were thrown around, some better than others. We had names like: Bliss, Sybil, Avocado, Hulk, Mordor, Serenity, Tsu, Nigel, Yato, Oni, and just plain old Ticketing. In IT we love our acronyms, so its only natural that our new name ended up being an acronym.

  • G - Grand
  • U - Unified
  • T - Ticketing
  • S - System

And thus the Grand Unified Ticketing System (GUTS) was born.

Now to actually build it. At this point all we had was a feature list and a skeleton of an ERD of the database. We needed to agree on a language and framework set that would support such a system. I sought help from a few friends in the industry, one from AWS and one from Beemit. They both recommended pretty much the same tech stack, and after some research I tweaked it a bit to work better with SMASH!s requirements.

The tech stack we ended up with is:

  • Bitbucket for version control
  • Bitbucket pipelines for CI and CD
  • Azure for hosting (as we get it for free as a Non For Profit (NFP) organisation)
  • Kubernetes, Terraform and Docker for all the hosting deployment scaling and automation
  • MySQL as the database (as we already have a Wordpress site, so we work with MySQL already)
  • Nodejs, Express for the backend and routing
  • knex and objection for database access for the backend
  • Typescript for the backend and frontend
  • React for the frontend
  • Redux for state management
  • Bugsnag for bug reporting for both client and server
  • SASS as well as out new SMASH! component library SKit for the styling
  • And finally Jest for testing both the frontend and backend

Yaakov handled the CI/CD and the Azure hosting stuff, while Clement, Brian, MZ, Tony D, Tony L, Patric, Trent, Jenny and I got to work of actually building GUTS.

Phase 1

We had a number of revisions of our initial designs, and a number of scope creeps and new feature requests along the way, but we were making good progress towards launching on time. By the 10th of February we had 95% of the user facing UI and logic done, and about 60% of the admin side done. I had to make the call of whether we are launching with GUTS, or falling back to the old systems. I took a risk, and said we would launch GUTS on time. It was rough, a lot of late nights and plenty of testing. A week before launch we tested GUTS with real data and guess what… IT WORKED! I successfully bought a ticket to SMASH! using the new system!

We all rejoiced, we were ready for launch. On the 31st of March 2019 we launched ticket sales, and had around 500 people buy tickets in the first 3 days (due to our early bird discount). Everything worked. No bugs. No site crashing due to traffic. It all worked*.

Well everything that we launched worked, but we had to cut a few features. Notably PDF ticket generation, seat allocation, and admin order editing. We had to make some sacrifices in order to get something out the door. One thing we didn’t sacrifice is unit tests.

Phase 2

A month after main tickets launched, we had launch part 2 coming up: Anisong tickets. For this we needed to provide customers with a way to upgrade their tickets if they purchased a SMASH! convention ticket, to a SMASH! + Anisong bundle. Tony D and MZ are the real MVPs here. They got the ticket update feature done in 4 days. Albeit with a few bugs, and barely and tests. But it worked when it needed to.

Phase 3

Remember those features we missed out on in phase 1? Well we need to deliver them now. Let’s get to it! PDF generation was smashed by Jenny and I; seat allocation was conjured by MZ; a bunch of admin enhancements done by the rest of the team. And then we got another feature request: Kiosk mode. Thankfully Pat managed to write that up on time, even delivering slightly early.

Phase 4 and the final stretch

SMASH! is right around the corner and we have 2 more features to build: free pass generation, and barcode generation for printers. Clemmy did the first, while Brian did the second. And here we are, 1 week before SMASH! almost ready for launch. We have our brand new Android mobile scanners all ready to go, all of our attendees have received tickets with QR codes. Oh… wait… we haven’t  build the QR code scanning and redemption logic…

With a week to go MZ got right on the backend and I hammered out the front-end of scanning and redemption. And on Friday before convention, when exhibitors were redeeming their passes, thats when I finished it. We tested in production, and it worked?! Once again we were absolutely thrilled that it all came together. However the main challenge was still ahead of us. Saturday… 10,000 attendees… server load… scanner battery life… long queues and wait times… All of these issues were still to be faced. And the worst part is, Yaakov couldn’t be there on Saturday. So if ANYTHING went wrong with the servers, rebooting would’ve been the only thing we could’ve done really.

Conclusion

I woke up on Saturday terrified of everything that could go wrong today. I got to ICC, I went to help setup. We all looked ready, but we didn’t feel ready. 8am, about a thousand people line up. Usually it takes us till about 12pm to clear the never-ending queue of people, but this year - we were done in 40 mins. When we asked where the rest of the queue was, they replied: thats it, thats all of it. Of course we had more people arrive at around 10-11, but nowhere as bad as previous years. GUTS worked, the mobile scanners worked, everything was solid and fast.

And now we have a fully functional ticketing system with over 5000 users and overall 11,000 tickets purchased. The biggest praise goes to the IT team and their dedication to make GUTS happen, SMASH! 2019 wouldn’t have been the great success that it was, if it weren’t for our efforts. But now, let’s look at the future, with a fully functional and modern system, we can support so many more features, improve the purchase flow, improve the upgrade flow, add nice-to-haves like Apple Wallet integration, order details, and much much more. GUTS will have a bright future ahead of it, but only if it is constantly maintained and improved. We can not just sit on our backs and watch technology move forward while leaving our frameworks and open source modules behind, we need to keep on updating, keep on improving, only then will we be able to support GUTS for the next 5-10 years.

Read More
drone

For the longest time I have been taking photos with a DSLR camera, and sometimes with my iPhone. Recently however, I’ve been tempted by the beautiful photos from all these photobloggers and instagrammers, who capture absolutely stunning shots from angles that are near impossible, unless you have a device that can fly.

So after some consideration, I decided to spend a bit of cash and buy myself a drone - named Senkuu. I went for the DJI Mavic Air with the fly more combo (for the extra batteries), and so far its been performing absolutely amazingly. When flying it, I feel like I am a kid again, playing with a radio controlled toy, only this time its not a toy but a really amazing piece of technology that can help me capture the wonders of the world from an angle that I could not before.

I’ve taken quite a few shots with the drone and I am sure I will be taking plenty more.

You can find all the photos on my Flickr.

View Post