Mercurial
annotate react_games/Behaviour.md @ 64:a30944e5719e
Added vibe coded markdown to html script since it is useful for me. Updated Dowa so that it can be compiled without dirnet for windows.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Tue, 23 Dec 2025 15:18:46 -0800 |
| parents | 9b8521f75409 |
| children |
| 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 |