LOADING
From International Relations to Frontend Development: My Unexpected Career Switch

From International Relations to Frontend Development: My Unexpected Career Switch

This is easily the most common question I get in interviews. Given my non-traditional background, I wasn't a CS major, how did I end up becoming a frontend developer? The short answer is: necessity, self-discipline, and a lot of YouTube.

The Essential Traits for a Fast Career Switch

I believe that to switch into frontend development quickly, you need to bring some core traits to the table. These were my checklist:

  • Good Logic & Fast Learner: The foundation for understanding programming concepts.
  • Motivation and Self-Discipline: Crucial for grinding through the inevitable struggles of self-teaching.
  • Good Level of English: Essential for reading native documentations, the source of truth for all modern frameworks.
  • Courage: You need the guts to take that first step and promise yourself not to quit.

I felt I met most of these criteria. The rest was just about timing.

The COVID Catalyst and Self-Taught Grind

The shift began during COVID-19. Working as a travel consultant in a tourist agency meant my company's business was heavily impacted. I decided it was time for a change, a job I could actually enjoy building. My younger brother, a CS major and frontend developer, gave me a rough roadmap, and I spent days researching others' experiences.

Having already invested heavily (and failed) in preparation for the MOFA and MJIB national exams, I was determined not to spend a fortune on this new path. My learning was mostly free:

  • Grinding videos from YouTube channels (Web Dev Simplified, Fireship, Programming with Mosh, etc.).
  • Deep diving into official documentation.
  • Building small demo projects.
I bought two Udemy courses during a deep discount, bringing my total spend for basic skills to less than 600NTD. Later, I did take a two-month government-sponsored program, which provided a small monthly stipend (around 8,000NTD per month). While interesting, it focused on older tech like jQuery and PHP, so I wouldn't say it was instrumental to my modern career.

Connecting the Dots in Production

After four months of intense self-study, I landed an intern role, a huge relief since hiring developers with non-traditional backgrounds is challenging. After a month or two, I was promoted to a full-time role. Working with real-life production code was where the self-study finally clicked. I quickly picked up Next.js and TypeScript in a live environment.

I later moved to a company called WORD UP to push my limits further. The pressure from deadlines and the sheer scale of the codebase was completely different. I worked on multiple projects, refactoring and rewriting large sections, with a passion for improving UX. I love implementing concepts like debounce, throttle, and especially Optimistic UI updates (I was the first to implement this using SWR/TanStack Query in both companies).

Diving into Mobile: React Native

When the need for an app developer came up at WORD UP, I agreed to pick up React Native. Though the syntax is similar to React, it opened up a complex new world: native code, library dependencies, platform-specific bugs, app bundling for Google Play and the App Store, and dealing with deprecated libraries (I even had to find ways to back up and self-host binaries like FFmpegKit). Overall, I successfully managed the app development needs and focused heavily on improving both UX and DX (extracting shared code, monorepo setup, etc.).

Why I Stay in Code: Substance and Joy

The most critical factor, as I mentioned, was having the courage to continue. Early self-taught debugging was tough, but the learning curve dropped significantly once I had job experience. Now, with AI tools, learning specialized knowledge is easier than ever.

Ultimately, I find coding profoundly enjoyable. I love solving real-life problems, discussing multiple solutions, and building things people genuinely use. Unlike roles like consultant or customer service, where hard work can sometimes go unseen, code is substantive. When I commit code, it exists in the codebase, I can literally feel my contribution's existence. That sense of self-fulfillment is my fuel, driving me to learn new APIs and tools every day to build better applications.