Discipline: TCS

  • PR

    The Asian Cup was a massive project.
    Season 1 covered Virtual Kick, Cheer Cam, and face painting across Sydney, Melbourne, and Canberra, a week at each city.
    Season 2 added a foosball table and a “Join the Team” activation on top of everything from Season 1, split and deployed across every major Australian city except Perth, running over 20 days.
    One more person, Andy, got added to the team, and all of us — me, Marcus, David, Louis, Alex, and Ricky — got dispatched as the point person for our own assigned city.
    Every solution except Cheer Cam was something brand-new we’d never built before, and Louis on backend, Ricky on design, Alex on video, and me on development — we all poured everything we had into it.
    That’s when I touched Unity for the first time. Hook up a Kinect, catch the kick motion off it, send the ball flying, and have a goalkeeper block it — sounds simple, but it was brutal for a beginner.
    Somehow, with a finished build in hand, the first stop was Canberra. Since it was the opening event, it got media coverage too, and the response was electric.
    It was going great, really great — right around the time I was blowing out a satisfied victory-lap puff of a cigarette, feeling pretty pleased with myself, around 4pm, Marcus called me over.
    “The kick isn’t working — either it doesn’t trigger at all, or it triggers randomly.”
    “Huh?” What’s going on. I had Marcus operate it with a USB mini mouse as a stopgap, then went around back to check the Kinect’s depth map, and it was chaos.
    Sunlight had started coming in. The inflatable dome had been set up with its entrance facing west, and as the sun went down, direct sunlight started streaming in through the entrance.
    We’re screwed. I hadn’t even considered this. Panic. There wasn’t even time to beat myself up over why I hadn’t thought of it — I had to come up with a fix before the client noticed. Here was the plan: I wrote code to integrate a Panasonic motion sensor SDK into Unity (one that could work even in direct sunlight, though less accurate), and Marcus called the office — I don’t remember who exactly — and had them ship a Panasonic motion sensor to the airport in Canberra, then went and picked it up himself. The code was finished the following night, and the Panasonic-based solution started working, imperfectly but working, two days later.
    God, that was terrifying. Lucky. Having that piece of hardware on hand was a stroke of luck from the heavens.
    I decided to change direction completely and headed back to Sydney. The idea was this: all we really needed to track was foot movement, so did we even need a motion sensor at all? I just set up a webcam and did blob tracking on OpenCV, isolating just the feet with background removal.
    It took a week. Canberra held up well enough in the meantime, and since the next stop was Customs House in Sydney, that’s where we ran the first real-world test. Success. Tim Cahill even showed up and played my Virtual Kick.
    I went back to the office — now I had to build the foosball table and Join the Team.
    The basic concept: mount a 55-inch TV face-up on top of the foosball table, flip a mouse upside down on each of the eight handle rods, convert the mouse movement into push/pull (Y-axis) and rotation (X-axis), and sync that with the handle rods inside the Unity game — I sketched that out and got to work.
    Because it all came together so last-minute, and because it needed ongoing maintenance, we only ended up installing it in Brisbane, which was my city to manage. One way or another, after all the twists and turns, the Fan Fest wrapped up, and the company’s finances now qualified to sponsor the visa — we filed the application.
    I needed IELTS. There was no time to study. After the Asian Cup, the NRL, the Cricket World Cup, and the Netball World Cup all lined up back to back, and I genuinely couldn’t find the time. Test day. I went with Miyoung. Miyoung had already been studying for IELTS for a while, trying to transfer into UTS’s Visual Communication program, so she gave me all kinds of advice. I couldn’t remember a single thing I’d done by the time I walked out. I barely scraped a 5.0. The visa application went in on July 6th. Then it was just waiting. No way to rush it. I shut up and waited. On October 16th, I was out at Randwick Racecourse working on a 360-degree camera shoot. Miyoung called me. It’s done. Yes, yes, yes.
    Honestly, only that one day actually felt good. Because nothing much actually changed — same salary, same English, same apartment, same friends. The only thing that disappeared was that one unnameable, nagging anxiety.
    Some time later, Miyoung’s stomach started hurting and we went to the ER at dawn. She spent two hours curled up in pain waiting, got a shot, got put on an IV drip, and we finally got discharged around dawn. On the way out, I pulled out my credit card to pay. Huh? They just told us to go. Why? I thought about it for a while — Medicare!!!!! Honestly, that was the day permanent residency really sank in, in a way I could actually feel.

  • Asian cup

    After Kuwait, I kept handling this and that while gradually getting more comfortable with the interactive gear.
    Just two months later, a photo kiosk job came in from Jack Daniel’s — location: Japan.
    The job was installing a photo kiosk in the middle of a scorching Japanese summer rock festival.
    The basic flow — take a photo, upload it, send it to the user — was standard stuff, but what made it fun was three concepts: turning the user’s photo into a framed piece of wall art hanging in a mock Jack Daniel’s bar; a graffiti wall where a cleaner comes and wipes it off with a rag, revealing the user’s photo underneath; and a dark rock-concert venue where the lights come up and the user’s photo appears on the big screen to cheering crowds.
    Setting up a small green screen for each, shooting, keying it out, pulling corner-tracking data from After Effects into Flash and mapping it all — I lost track of time, it was that fun.
    Japan was Japan, through and through.
    We stayed in Tokyo for 2-3 days, went to the Jack Daniel’s venue and ran a demo for a few hours, then headed out to the region where the rock festival was happening.
    What was funny was that the kiosk was pretty big and heavy, and a crew of Japanese workers was brought in to unload it and carry it down to the basement.
    No exaggeration — about ten small Japanese guys, calling out in unison,
    “yosa, yosa,”
    moved in perfect sync like a single organism.
    Marcus — a big, strong guy himself — was watching them with this genuinely charmed look on his face, and watching him watch them, a laugh just slipped out of me on its own.
    On the festival side, some gorgeous event staff sent over by Jack Daniel’s ran the two days of the show, and Marcus spent the whole time grinning ear to ear staring at them.
    After day one wrapped, a revision request came in: mask the user’s mobile phone number field with asterisks, like a password.
    It got approved without anyone consulting me, and I had to have it done that same night — except everyone was heading out for a team dinner with the Jack Daniel’s crew, yakiniku.
    I said I’d go too.
    Someone asked, then when are you going to do the work?
    What kind of way is that to run things, you absolute — if you’re the director, either don’t take on work like this, or stay up and code it with me.
    Anyway, I got a bit heated about it, told them not to worry about me, and went to dinner with everyone.
    Drank a good amount, got back to the hotel, showered, and started coding drunk.
    It wasn’t as simple as just setting a
    “password”
    attribute like you’d do in HTML today — I had to build actual logic in a Flash text field: catch the key-up event, store the value character by character as it’s typed, and display asterisks in its place instead.
    After a short nap, I was at the venue doing a content update and finally catching my breath when David showed up.
    David was TCS’s business salesperson, and he’d stopped by the venue while he happened to be in Korea for other work.
    It was insanely hot, and David bought me a Canadian Club, and by the time the coolness of that wore off, another one showed up.
    We settled into the shade and spent the whole day chatting.
    We must have gone through more than ten cocktails.
    The sun was going down, the event wrapped up, and the event was a flop.
    The reason: a total misread of the user base.
    Maybe 20 people participated over the two days?
    A disaster caused by completely failing to account for how shy Japanese people are, how strongly they avoid putting themselves forward in front of others.
    That urgent request to hide the phone number field came from exactly that same reason — but by then it was too late, and honestly the whole direction had been wrong from the start.

    I worked on a Fisher & Paykel brochure touchscreen — building out the product detail pages.
    We shipped it to Melbourne for installation on-site.
    The day before opening, the office got a call: the touch wasn’t working.
    I remote-connected to check the device and software status — everything looked fine, but they insisted it wasn’t working.
    Tried rebooting.
    Still nothing.
    Tried everything I could think of.
    Marcus booked the first flight out the next morning.
    Told me to go handle it.
    Alone?
    Kind of scary, kind of exciting, honestly.
    Barely slept.
    Got up at 4am, caught the 6am flight, landed at 7:30, took a taxi to the Melbourne exhibition venue, and couldn’t find it anywhere.
    Called the client.
    They were kind enough to come meet me at the entrance.
    I checked the screen — nothing worked no matter what I tried.
    Powered it off and on, unplugged and replugged the touch USB, ran Windows updates, went into Device Manager and disabled anything that might be conflicting with the built-in touch functionality… spent an hour stuck there and gave up.
    Called the office.
    “Nothing’s working, what do I do? Pretty sure the touchscreen itself is defective.”
    Marcus said there was nothing else to do, and that he’d explain the situation to the client and try whatever he could from his end.
    The client still had no idea what was going on — as far as they knew, I was just diligently working on fixing it.
    Anyway, I’d given up too, and before heading back to the airport figured, well, it should at least look nice — grabbed some wet wipes lying around and started wiping down the front glass, the sides, every corner.
    Ha — and then, suddenly, the touch came back to life.
    Dust had built up on the infrared emitter, blocking the infrared signal, which of course meant no touch response.
    The client thinks I fixed it.
    “Oh, thank you so much, Amuro.”
    I don’t think my steps have ever been lighter than they were walking home that day.

    It’s 2014, and it’s about time to file for the visa — except a problem came up.
    The company’s revenue wasn’t hitting the numbers needed to sponsor the visa.
    On top of that, my salary had been reported low for tax purposes.
    The boss’s answer was that we’d probably need to wait another 9 months before two years of my salary would actually meet the 457 visa requirements.
    I knew it, I just knew something would go wrong — things had been going too smoothly.
    Fine, I could wait 9 months, sure, but it’s not like I had any control over the company’s revenue.

    Things didn’t turn out to be going well after all.
    We landed some serious projects — MTV Social Wall, Levi’s Commuter, Warner Brothers’ Man of Steel — but apparently we still weren’t meeting the requirement.
    Honestly, I couldn’t fully believe it.
    Was this some scheme to keep me locked in longer, loyally grinding away on the cheap?
    Or had they made some real accounting mistake and gotten themselves into trouble?
    As a lowly rank-and-file employee, I had no access to whatever league they were playing in among themselves.
    My uneasy work life just kept going — or really, I was probably the only one who was actually anxious about any of it.

    Ta-daa~ In October, the whole company suddenly got busy prepping for some big project.
    Usually it’s a few pages of proposal, a pitch, and you win the work — but this time the scale was different.
    The boss, the director, the planner, the designer, me — everyone piled on and worked hard, over and over: revise, add supporting documents, go to a meeting, come back, add more documents again — until we landed the Asian Cup Fan Fest national tour.
    A whopper.
    A million-dollar job came through.
    This is it.
    God had come down to help.
    The visa front lit up green, and we started the process of moving from a 457 to an ENS (permanent) visa.
    Whatever you need, bring it all, I’ll do every bit of it!!!!!!

  • TCS

    Miyoung quit the Bondi sushi place and moved to a Brown Rice Sushi closer to home, sending out resumes on the side whenever she had a spare moment, looking for web design work.
    I was polishing up my own resume too, but mostly playing supportive stay-at-home husband to Miyoung.
    A company called The Creativeshop (TCS) reached out — a Korean-Australian mixed agency — and I tagged along to drop Miyoung off the day of her interview.
    The office, out at Pyrmont’s Jones Bay Wharf, was genuinely gorgeous.
    Sitting in the middle of a marina lined with yachts, the place could’ve qualified as one of the best smoking spots in Sydney.
    Miyoung went in for her interview, and I sat on a bench out front trading long looks with the seagulls and cormorants.
    Miyoung came out, and a Korean director named Seongho walked out with her to see her off.
    He said hello to me.
    “I heard you worked as a Flash developer at Ahn Graphics.”
    “Oh, yeah.”
    “Would you mind chatting for a bit?”
    So Seongho and I talked about this and that, and then I went home.
    About a week later, Seongho reached out.
    He, Miyoung, and I went out into the city for drinks, trading stories about Australia, the agency, women — back and forth — and we got close.
    Not long after, Seongho brought me some freelance work: producing and subtitling Korean children’s educational animations.
    Miyoung and I both threw ourselves into it like maniacs for a while, and it eased things up financially a bit.
    Around fall, TCS’s team lead — Team Lead Ahn — had to go back to Korea for a break, so I picked up a short project in his absence.
    It was a Nokia mobile phone kiosk — apparently the first phone to ship with Windows Mobile OS at the time, and they wanted a big promotional push for it.
    Once that job wrapped up, we ended up moving out of the Kings Cross place.
    There was the beef-bone-broth incident.
    The landlord was Korean, and he started giving me grief about cooking gomtang (beef bone soup) at home.
    He complained the gas bill was running high, lecturing me about it, and honestly I had nothing to say back.
    If it came out a bit higher than usual I could’ve just paid the difference — I felt like I’d aged well past the point where anyone should be scolding me over what I cook and eat.
    We broke into our Korean savings, brought over about 10 million won, and used it to sign a lease on a one-bedroom apartment at Millennium Tower near Darling Harbour.
    Obviously, the two of us alone couldn’t really afford it, so, like everyone else did, we took in three share-mates for the living room.
    Our Millennium era had begun.
    Every single day was a drinking session and a drama.
    We cooked gomtang, we made braised short ribs — it was our place, after all.
    The kids who came over to hang out would bring their own drinks, and whatever leftovers Miyoung brought home from the sushi shop she worked at rounded out the side dishes.

    It was some day in April.
    Seongho showed up at our place.
    “Hyung, Team Lead Ahn went back to Korea for good. There’s an open developer spot — you want in?”
    “Uh — uh — sure, why not.”
    I said it casually, but inside I was screaming, hell yes, the moment’s finally here.
    I started the following week.
    The cigarettes tasted good, the seagulls welcomed me back, and most importantly, it meant a real step forward on the visa problem.
    I signed onto a 457 sponsor visa — work like a dog for two years on lousy pay, and it opens the door to apply for permanent residency.
    Two years, no big deal, I’ll be a dog for two years.
    I heard all kinds of stories.
    Companies going under right around the two-year mark.
    Employers using the visa as leverage to renegotiate unfair contracts.
    People strung along for years with
    “just one more year, just one more year.”
    The Korean community out there was absolutely swimming in visa horror stories.
    Maybe it’s different at a big company, but at a place this size, any of that could happen at any time.
    There was only one thing I could actually do about it: make the company unable to function without me.
    Or at least make it not worth their while, cost-wise, to fire me and replace me with someone else.
    The starting move was simple — go hard.
    There was a lot to learn, a lot that was new to me.
    Touch devices, Kinect, holograms, projectors — whole fields I’d never touched before — and coming in at 7am, leaving at 11pm basically became my daily routine.
    Just two years.
    I could handle that.
    I was young, and I was confident.
    Team Lead Ahn had already left for Korea before I even started, so there was no handoff at all.
    Seongho went back to Korea to follow him too.
    I taught myself how everything worked by digging through Team Lead Ahn’s old computer on my own.
    I found out later that a lot of people who came to Australia alone end up going back to Korea eventually, whether they land permanent residency or not.
    Loneliness.
    That’s the one thing that does it.

    About a month later, I got sent on a business trip to Kuwait.
    The scope covered a few different things: customizing an existing touchscreen-plus-projection package for taking and displaying photos; adding a print function to a digital graffiti wall that a UK client had ordered; an interactive floor, also built on an existing product; and an augmented reality piece.
    The timeline was brutal, and I was still coding on the flight to Kuwait.
    When I landed and sat down for the kickoff meeting, the AR piece — which had been scaled back earlier — got restored to full scope at the client’s request.
    Wait, I hadn’t even brought a Kinect.
    My local guide and I trekked across the desert hunting through game shops until we found one.
    The setup needed nine planets floating on screen, hooked up to the Kinect so users could push and spin them around with their hands.
    I had six days.
    I couldn’t leave the hotel room — not that there was anywhere to go anyway — and over those six days I think I slept maybe four or five hours total.
    It was basically my first time touching a Kinect at all, and just getting it talking to Flash was already a nightmare on its own.
    Room service, room service, room service, cigarettes, nothing but a hazy sand-colored view outside and a suite way too nice for someone like me, waging a one-man war alone in there.
    It had to get done, one way or another.
    On opening day, I finished the install with my body completely wrecked, and hundreds of Kuwaiti schoolgirls came flooding in.
    Watching them shriek and giggle, enjoying our stuff with that unguarded brightness of middle and high schoolers, genuinely choked me up a little.
    Then the first student stepped up to try the AR section and sent Saturn flying without a hitch — and only then did my sigh of relief finally sink all the way down.
    What am I even doing here?
    This far from home?
    Just a year earlier I’d been at a language academy in the Philippines going,
    “I am a computer programmer”
    — and now Kuwait.
    My head went a little hazy, and the past month’s ordeal flickered past like my whole life flashing before my eyes.
    But the real ordeal started right after that.
    Every 30 or so photos taken, the PC would freeze.
    I figured it was probably a memory leak, but I had no idea where to even start looking.
    I set up in a dark space behind the projection area and started testing there, while simultaneously monitoring the front of house — whenever the PC froze, I’d sprint over and restart the content.
    I had zero prior know-how for debugging this kind of thing, so all I could do was crudely tweak whatever code looked suspicious and run the test over and over, hundreds of times.
    No answer in sight.
    It was a three-day event, and I only managed to find the bug on the very last day — which is when I finally got to step outside the venue for the first time and take a long, slow cigarette.
    A fiery wind unlike anything I’d ever felt, and a dry Middle Eastern heat so thick it knocked the breath out of me, made me forget what the cigarette even tasted like.
    Actually, I don’t think it tasted like anything at all.
    Last day.
    Bags all packed, about three hours to kill.
    Marcus said,
    “Good work out there. Want to go ride jet skis?”
    “Huh? Why jet skis?”
    “Eh, why not, if you’re up for it.”
    “Sure, why not.”
    We walked about 30 minutes across the sand.
    It hadn’t looked that far, but between the sand and the heat, it took a while.
    We got to the rental place, and they asked for our passports.
    We walked all the way back.
    It was insanely hot, though somehow we weren’t even sweating.
    On the way back we stopped at McDonald’s and each downed a 2-liter Coke in one go, then headed back to the hotel.
    And that’s how my very first project at TCS in Australia wrapped up.