Profile picture

Career Advice About Twitch

Videos and discussions from Taro to grow your tech career.

Is there a way to "grind" system design or soft skills?

Mid-Level Software Engineer at Twitch profile pic
Mid-Level Software Engineer at Twitch

I'm not sure exactly how to phrase this, but to give an analogy, I love card games (ex: Legends of Runeterra, Race for the Galaxy, Hearthstone, etc). There are a fixed set of rules and a fixed set of cards. I can "grind" games and get better by noticing patterns, picking up new strategies or tactics by playing against a diverse set of players. The outcome of an interaction is usually idempotent (i.e. card 1 interaction with card 2).

In real life, things are quite complicated. Asking a certain question in a certain way to person 1 and person 2 may give wildly different responses, and may even depend on your mood, their mood, your tone, time of day, etc. It's super messy and unpredictable.

I also feel a similar way about system design. The nearly infinite possibility of inputs, outputs, TPS, throughput, scenarios make it difficult to reapply the same set of rules to different scenarios. This is just talking about one component, when we bring in N components, the interaction gets very complicated and the "rules" change" case by case. I'm sure it gets better with practice, but I also feel I have a limited opportunity to learn or practice these on the job.

Has anyone found a way to structure these learnings in terms of a repeated "grind", because oftentimes I feel overwhelmed and don't know where to start. This is a complicated question, so answers regarding either a) soft skills or b) system design separately I will treat as valid answers.

Show more
Posted 2 years ago
2.1K Views
5 Comments

Does coding language matter in interviews?

Mid-Level Software Engineer at Twitch profile pic
Mid-Level Software Engineer at Twitch

Just curious about opinions here. My main language is JavaScript, and I know people probably assume I am a front-end developer / full-stack (reasonable biases). In reality, I've been primarily backend for several years now. Throughout my experience at Microsoft and Twitch, I've used a fair amount of Node.JS / vanilla JS, then a bit more TypeScript for the CDK constructs we all know at Twitch (our team was primarily responsible for building and debugging Amazon Builder Tools things). I've done the majority of my interviews in JavaScript and it has been mostly OK, since I've used it for so long, but just wondering if it matters.

I used to do my interviews in C++, but then I got burned during a Google interview when my interviewer talked about the inefficiencies of emplace_back vs push_back (I had no idea). After that point, I just decided to do JS because I was reasonably proficient at it, and it is actually faster to write than C++ in a lot of cases (less boilerplate).

The top LeetCode answers / YouTube explanations and such are usually in Java or Python, so sometimes it's also hard to find a good JS answer. I'm leaning towards Python, because it is more like JS and with less boiler-plate like Java, but I'm worried about something throwing out some random trivia about Python that I have no idea about, because honestly I haven't used it much in my career thus far.

Show more
Posted 2 years ago
194 Views
3 Comments