Where are you from and how long have you lived in Chicago?
I’m currently living in Bucktown, having moved from Rodgers Park last August. Prior to this, I lived in Arlington Heights where I was born and raised (with a one year exception during which my family and I lived in South Korea).
I went to college in Kenosha and continued living in Arlington Heights after graduation until I moved in with my fiancé.
What drew you to join The Graide Network as our second full-time engineer?
I was looking for a role where the impact of my work was not abstracted through layers of management, such that I could easily observe how it affects the lives of its users. Per Triplebyte’s model of 8 Engineer archetypes (now superseded by their Engineer Genome Project), my work style mostly resonates with that of a Product Engineer, which makes sense because I consider the users the most important stakeholders of the product. This means that my concerns gravitate towards building systems suited to providing an ideal User Experience (cue the iceberg/monster memes about what users see vs actual code).
Product-focused Engineers like myself tend to enjoy working on longer projects in environments which favor a “move slow and fix things” mentality over a “move fast and break things” mentality. I’m certainly no exception. Karl’s re-envisioned interview process demonstrated early on that Graide is committed to building an exemplary caliber product and maximizing the positive impact of their Engineer’s work.
What's been the most fun/interesting project you've worked on so far?
We recently looked into our online grading process to see if we could increase Graider throughput and improve the quality of feedback by reducing the cognitive load the Graider experiences throughout the process. Using task flow analysis, we realized we could re-engineer our online grading interface to guide Graiders in a linear task flow while supporting multilinear task flows for Graiders who prefer to grade batches of students concurrently.
We began by reorganizing our Angular services and routing, introducing a feature for some users to become beta testers- which has yielded a more iterative feedback loop as we’ve gradually released the new online grading implementation. Over the next three weeks, we built and refined our new UI components with a focus on accessibility and scalability.
I found this project particularly engaging because of certain conceptual conflicts in Angular’s component architecture, which introduce more flexibility at the risk of adding complexity regarding state management. I’ve learned that, despite Angular’s own MVVM model of modularization, taking advantage of RxJS and reactive programming to create state synchronization services allows you to separate your state management into an event-driven component architecture rather than relying on state inheritance, which exposes child components to the risk of side-effects.
Though we've continued to release changes in weekly release cycles, we’re rolling out this feature to Beta users now and we’re already seeing the meaningful improvements in Graider responsiveness that we we’re targeting. We’ve also refined our standards for component and module architecture as a result of what we've learned. In the future, we’re looking to introduce `ngrx/store` into our stack to improve our state management even further with Flux-style state management patterns.
What unique skills do you bring to the team at TGN?
I also have a strong working memory - the kind of memory which stores data for processing (akin to a CPU's data registers). This means I remember more detailed information about complex systems as I build pattern-recognition. Thus, I'm good at considering low-level details while doing high-level planning.
What do you hope to learn in the next 6 months?
My goal is to ensure that my role expands at an increasing rate as the size of our team expands. As such, I am gradually shifting the focus of what I learn over the next 5 months from domain-specific knowledge that improves individual contribution quality to strengthening the skills required for Project Management, Product Development, and Organizational Leadership.
Part of this is having a better understanding of how trade-offs can impact business and architectural decisions. Another part involves understanding how to augment the platform to solve problems now while also planting the seeds for expansion to solve bigger problems down the road.
Though I am well equipped to build structures which can move and manipulate data, I would like to understand how to gain business insight from that data as well. Additionally, I want to understand how I might begin to extend The Graide Network's current company culture, which parallels a more socratic form of Process Kaizen, to build the foundation for a great Engineering culture as well.
What do you like to do for fun?
Naturally, I enjoy tinkering with new technologies and frameworks as well as reading about Software Architecture. I find gaining a potentially beneficial new understanding or learning the ins and outs of a new system intrinsically rewarding so this is always a good go-to activity.
On weekends, I volunteer at a church in Old Town to help feed the homeless. Improving the community is something I'm a big believer in and I'm planning on doing more in that regard in the future.
I also enjoy the occasional game of D&D with family and friends, and I'm currently planning a digital campaign which runs indefinitely and allows for elastic party size and a rotating DM schedule.