annotate react_games/Behaviour.md @ 51:68fa88ac73fe

Interview prep for xAI
author June Park <parkjune1995@gmail.com>
date Mon, 15 Dec 2025 19:55:17 -0800
parents 9b8521f75409
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
40
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1 ## Challenging projects
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
3 One of the most challenging projects I worked on was leading the backend development for app called "fan app" at Warner Music Group. We had only six months to deliver an MVP to internal artists and fans, and the environment was tough — most of the team were contractors unfamiliar with working together, infrastructure was minimal (mostly basic Lambda functions), and there was little documentation or support from leadership, as my manager was focused on longer-term strategy.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
4
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
5 As the tech lead, I had to bring structure quickly. I initiated daily team meetings, even holding them at 5 a.m. to accommodate the London-based contractors, to sync up and track progress. I created a shared backend repository with a proper setup — including linters, unit testing, and factory patterns — and introduced scripts to enforce coding standards.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
6
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
7 To unblock the team from infra bottlenecks, I also set up a temporary CI/CD pipeline on GitHub using basic cloud distribution so we could deploy and test independently before later migrating back to the company’s infrastructure.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
8
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
9 On the feature side, I took on more complex tasks like implementing real-time comment pulling and handling audio/video processing pipelines with ffmpeg, which were areas the contractors weren’t familiar with.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
10
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
11 Thanks to these efforts, we were able to launch the MVP on time. Even today, parts of the structure I set up, like the testing frameworks and audio/video processing, are still being used, which I’m proud of. It was a project that really tested both my technical skills and leadership ability under pressure.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
12
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
13 ## Tell me about feedback you got
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
14
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
15 One piece of meaningful feedback I received was during my time at Meta, where I was working on a project called Channel Value Rules.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
16
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
17 The project environment was pretty challenging — there were frequent top-down changes about what we were allowed to launch, and how Channel Value should apply alongside other audience targeting data.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
18 Because of that, I ended up writing a lot of code early on that later had to be thrown away or heavily reworked as the design shifted.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
19
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
20 After one of these cycles, my manager gave me some really valuable feedback.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
21 They said that technically, I was doing a strong job — I could adapt quickly, get the work done — but I should try to take leadership earlier in areas I wasn't fully comfortable with, like design ownership.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
22 Specifically, rather than just adapting to changes, I should try to get ahead of them: understand why the design was shifting, where uncertainty was coming from, and proactively influence how we moved forward.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
23
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
24 After that conversation, I made it a point to change my approach.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
25
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
26 I wrote up a few key internal documents that clearly outlined:
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
27
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
28 - What parts of the system were stable
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
29
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
30 - What parts were still fluid
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
31
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
32 - What options we had moving forward
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
33
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
34 I presented three main options to the team:
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
35
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
36 Build an alpha version fully aligned with the latest spec — but accept that it might be thrown away later.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
37
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
38 Use the partially completed alpha work I had already built, even though it wasn't a perfect match with leadership's latest direction.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
39
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
40 Integrate Channel Value into Audience Value logic for now, treating Channel as a subcomponent of Audience, and later evolve it into a separate view when needed.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
41
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
42 We had a few discussions around the trade-offs, and ultimately agreed to go with Option 3 — it gave us a clear path to deliver something real without wasting a lot of effort, and kept the system flexible enough for future changes.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
43
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
44 As a result, we were able to successfully launch the feature without more major throwaway work, and I felt much more confident leading design discussions and influencing the team's technical direction after that.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
45
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
46 ## Discuss a time when you had a failure, what did you learn from it.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
47
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
48 One example that stands out is when I tried to introduce Bazel as a build system at Warner Music Group.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
49
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
50 Coming from Google, I really believed in Bazel's strengths — having reproducible builds, better dependency management, and avoiding "works on my machine" problems.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
51 At WMG, we were building a new backend system, and I thought if we set up Bazel early, it would save a lot of trouble later.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
52 So even while working on main feature work, I spent about 20% of my time — and even weekends — trying to set it up and make it easy for the team.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
53
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
54 The problem was, most of our engineers weren't used to build systems for scripting languages like Python and JavaScript.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
55 For them, adding extra build definitions for simple scripts felt like unnecessary friction.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
56 Even though I created codelabs, gave internal talks with a principal engineer, and tried to teach people how Bazel worked, productivity didn’t improve.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
57 In fact, for many, it slowed things down because they had to wrestle with build rules instead of focusing on delivering features.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
58
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
59 Eventually, a new senior staff engineer joined and raised a good question:
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
60 Why were we investing so much in something that wasn't an urgent problem?
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
61 Our codebase was small, our team was small, and unlike Google, we weren’t going to have 1000+ engineers working on the same monorepo.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
62 Versioning by hand was manageable for us at this stage.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
63
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
64 After a lot of discussions, we decided to stop pushing Bazel adoption and presented the situation to higher leadership.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
65 We also convinced the principal engineer that, for our team's size and stage, the tradeoff wasn’t worth it yet.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
66
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
67 What I learned from this experience was that technical correctness isn't always the most important thing — timing, team context, and scale matter just as much.
9b8521f75409 [ReactGames] Few games I made using react just to practice few things.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
68 I learned to balance idealism with practicality: sometimes it’s better to solve today’s problems and leave future problems for when they’re re