What a week! RC has been a huge mental (and emotional) shift for me. I still feel anxious about making rapid progress; I hope as I settle on a more concrete direction that I'll be able to manage some of those feelings a little bit better. I feel like I'm shifting more toward a relaxed "let's just write some code" mindset. That feels good.
Self Reflection
I think back to some of the early performance discussions that I had with my managers as I was starting my career. At the time, I think I was reasonably satisfied with my own work. I was solving interesting problems and had a good dynamic with my teammates. It was satisfying to hear that others on the team were also satisfied with the work that I was doing.
Over time, the expectations that I've set for myself have grown. In some ways, I think those expectations may have stunted my growth as an engineer. With each new project or endeavor, it became more and more difficult to be satisfied with my own work. I think this is something I've struggled with since I was young. The first few times that I solved a particular type of math problem were satisfying. After that, I expected myself to be able to solve that kind of problem. There was no joy to be had in demonstrating again that I could solve that kind of problem. I would seek out progressively harder problems to solve while procrastinating on the exercises that I already knew I should be able to solve.
Software engineering is mostly working on things that you are already familiar with in some capacity. Understanding how to structure a particular abstraction or what kind of approach to take while solving a problem is mostly a consequence of experience. With enough time in the saddle, you get to see which decisions have the most significant consequences. When I feel like I am struggling to make good decisions easily, I quickly get frustrated with myself.
In that sense, being at RC feels great. I don't have to justify making a salary. I can convince myself that there are no external expecations which helps me to take it easy on myself.
More about day 4
2048
The little 2048 project that I've been pairing on is shaping up really well. It's a lot of fun to see how different strategies compare with one another. It reminds me a little bit of looking at some of the wordle solvers from the beginning of 2022. I'm excited to pair more on this on Monday.
LeetCode
I paired on a LeetCode problem again. I think I did a really bad job of driving and felt pretty bad in the moment. I was really impatient and didn't take the time to make sure I was on the same page as my navigator. My partner handled the situation really well and asked if we could take a step back to get on the same page.
I think this was a great experience for me. It was a chance to see how I can improve the way that I collaborate, which was awesome. I feel badly that I maybe didn't create the best experience for my partner, but I'm glad that I am getting better.
Crafting Interpreters
I finally dusted off my in-progress C++ implementation of a Lox bytecode interpreter. I think I'm going to forge toward the end with the hopes of thinking more about how to express some of the idioms in Rust.
One of the ideas I've been mulling over: I'd like to write a two-pass Lox compiler in Rust and implement an interactive debugger. If the debugger runtime is sufficiently modular, it should be feasible to get something up and running in wasm with a Rust-based front-end (maybe Leptos?). I think this would be a fun way to build on top of what I've learned while working through Crafting Interpreters while getting a better understanding of the compile-to-wasm space (with some web development thrown in there). We'll see how I'm feeling as I wrap up my C++ implementation.
Databases
I had a great coffee chat with an RC alum mostly discussing databases. I think I definitely want to pursue something in this space. I think I'm a bit anxious about building a toy database but maybe it's worth just trying.
Presentations
The presentations were awesome. It's a lot of fun to see the sheer variety of things that people are working on.
That's all for now
Thanks for reading. These posts will probably continue to lose structure over time. It's a lot of fun to write about random thoughts that I've been having even if they're not quite fully baked.