What Do You Usually Think About When You Code?

It was a friend's question.

My friend is also a frontend developer who recently switched jobs. A friend who keeps asking me, "Aren't you going to switch?"

Now that I'm approaching my third year, I am considering a job change.

The question felt complex and broad, which caught me off guard, but I thought about it calmly.

The Meaning of Coding

The term "coding" encompasses many meanings.

From a non-developer's perspective, it's probably perceived as "typing code or developing programs."

From my perspective as a frontend developer, it implies several things:

1. Implementation

This is the implementation level that most people imagine. Building components, integrating APIs, handling UI state, event handling, form processing, implementing utilities, and so on.

2. Architecture

As depth increases, folder structure design, state management structure decisions, component separation and abstraction become crucial. This is especially important during collaboration—it requires many agreements and is essential for creating a smooth internal environment. In development, the same work should be minimized over time and automated, which is why scalable architecture is extremely important.

3. Optimization

Optimizing state structures to prevent re-rendering issues, determining the level of abstraction, and sharing maximally reusable components and utilities. Pushing performance to maximize user experience. This is an ongoing process—optimization must be considered endlessly whenever changes are made to a project.

4. Debugging

Various network issues encountered during API integration, handling exceptions that differ from specified types, defining extensible types for error handling—debugging is continuous, whether during development or maintenance. In other words, debugging is a fundamental aspect connected to problem-solving ability.

5. Commit, PR & Review

I believe this is truly one of the most important aspects in practice. Just as HR, sales, and management teams have tools for exchanging and systematizing documents, developers must document and deliver code effectively. Commits, Pull Requests, Issues—all categories require established conventions. While the broad framework may be similar, the details vary by company and project. The speed of work progress varies enormously depending on how well these conventions are established. Developers who communicate well follow, improve, and utilize these conventions effectively.

What I Think About When I Code

I keep the above concepts as my core values when coding.

The level of alignment varies depending on team members' tendencies, but if I believe something is necessary, I should be able to persuade others. Since I shouldn't burden others' workload, when additional requirements arise, I tend to find the simplest approach that yields maximum efficiency. I think this applies not just to development but to other domains as well.

Anyway, I think the more specific the question, the better. But I was glad to have a friend who asked me such a question after a long time, giving me time to reflect. Thanks, friend!

TODO: Cloudinary image replacement