If you have any questions or feedback, pleasefill out this form
This post is translated by ChatGPT and originally written in Mandarin, so there may be some inaccuracies or mistakes.
Entering the Workforce – Sudo
Since starting my internship in 2015, it has unknowingly been over six years.
During my junior year, I became an intern at Sudo by chance; for more details, you can refer to my article on Medium as well as the article written by Denny.
At that time, I was still unfamiliar with front-end development, lacking rich experience and still in the stage of receiving information.
The software development scene is filled with experts who have been programming or taking on projects since childhood. My understanding of programming comes from my major - Information Management. It was only through university courses that I gradually learned how web development is formed.
There were many areas where I didn't do well at that time, like struggling with data structures and algorithms, and I didn't quite understand why I had to learn such boring stuff. Now I realize the importance of these foundations and regret not valuing them sooner.
However, my internship experience allowed me to become one of the more experienced peers among my age group (of course, there are many more experts at National Taiwan University of Science and Technology).
The engineers at Sudo are passionate developers, and I was fortunate to use relatively cutting-edge technologies like React (still in version 0.x), Redux, Webpack, and RxJS, which had not yet gained popularity in Taiwan, early in my career.
Joining Another Startup
After Sudo closed, I joined another startup, where I was responsible for maintaining the platform website and developing new features.
The development process was quite standard, and because it was responsive web design (RWD), I had to consider many aspects, making CSS more challenging to write.
In addition to front-end development, I also helped with some newsletter layouts and even attempted to introduce Heaven—a Ruby on Rails automation deployment tool.
The front-end foundation of the website was quite solid, and with SCSS as an aid, it was easier to maintain. Thus, I spent a stable year learning while developing.
Looking back, that time passed quickly. Every day was spent immersed in web development, constantly slicing and developing new features. I genuinely enjoyed writing web pages, reading web development articles during lunch, and pursuing new knowledge or CSS techniques after work.
Establishing a Japanese Weekly
During this period, I founded the Japanese Weekly, where I created a newsletter service using Ruby on Rails to send my Japanese notes and collected articles about Japanese culture to readers.
At the beginning, I worried every week about what to collect, and my life revolved around work, writing the newsletter, relaxing on weekends, and rushing to meet deadlines. I remember checking the newsletter data every Monday morning on the bus, seeing which links were clicked the most.
After accumulating more front-end experience, I began to fill in various CS knowledge gaps, like watching CS50, nand2tetris, tackling Introduction to Algorithms, system design, etc. It was during this time that I started forming my own views and tastes regarding technology.
Joining 17 Live
After a year of work, I joined 17 Live.
At that time, due to internship credits, general education credits, and some required credits that I failed, I had to extend my studies by a year.
After discussing with my supervisor, I was fortunate to receive an offer that accommodated my current situation. Looking back, it truly feels unbelievable.
Time at 17 Live flew by; I eagerly anticipated going to work every day to chat with everyone on Slack, discuss technology, have lunch, and share life’s little moments. Encountering a group of colleagues who clicked so well together was a rare and precious experience. I still reminisce about the times we developed, discussed technology, and joked around.
Initially, my work mainly involved writing event web pages, where I reviewed various SQL queries and discussed creative query writing methods with colleagues.
Later, I began working on the backend system, utilizing GraphQL for backend connections, which gave me the opportunity to work with the Apollo ecosystem on the frontend. Each day was fulfilling. (Looking back, it seems I might have been over-engineering things.)
I remember spending a day reorganizing the previous lunch ordering system’s code into a beverage ordering system to make it easier for everyone to order drinks. I heard it later evolved to allow orders directly within Slack, which is quite a nice improvement!
I later helped develop and maintain the web version of the live streaming platform, using many technologies from the React ecosystem while handling video and various complex data flows. On one hand, my seniors had already built a relatively complete architecture; on the other, I was grateful my supervisor was willing to give me opportunities.
That period can be considered the fastest-growing time in my career, and I was thrilled to work alongside a group of talented colleagues. Even though I have since left, we still keep in touch and occasionally meet up for meals.
Military Service and Reflection
Around May 2018, I signed up for a JPTIP conversation class to prepare for my future work plans in Japan.
The teachers at JPTIP are all Japanese nationals, allowing for more authentic conversations. This creates a more immersive Japanese environment, though the downside is that the large class size can dilute attention.
I had initially intended to go to Japan on a working holiday visa, but after discussions with friends, I felt that going directly with a work visa might be better. With weekends off and a regular salary, I would have more flexibility to experience life in Japan.
After completing my university studies, I was conscripted for military service.
Four months of military service sounds short, but each day felt like a year, as I constantly wondered when I would be able to leave.
Since I had registered for the JLPT N1 exam early on, I had to request a day off to take the test. Surprisingly, studying intensively during breaks (reviewing Japanese) allowed me to scrape by.
After completing my service, we planned a two-week trip to Tokyo, visiting Enoshima, Hakone, Tokyo, and Karuizawa. Upon returning to Taiwan, I focused on searching for jobs in Japan.
Job Hunting
Since I had already decided to go to Japan, I only applied for jobs there. Through headhunting companies, submitting resumes, and recommendations from friends, I received four job offers and successfully obtained a visa. For a detailed account of the process, you can check out my previous article.
While waiting for my visa to be issued, I enrolled in an all-you-can-eat course at JPTIP and also signed up for a coach-led weight training class. My daily life revolved around attending Japanese classes, working out, coding, and preparing for my move to Japan.
Initially, starting work in a Japanese workplace was a culture shock for me. In my previous companies, the team sizes were smaller and the colleagues were more aligned.
However, in Japan, the first challenge was the language barrier, and not every colleague shared the same values or experiences, making conflicts more likely.
This was particularly challenging for me, and I felt frustrated in communication due to this.
After being recommended by colleagues to read a few books on communication and management, things gradually improved, and I became better at collaborating and communicating with people of different opinions and styles.
Compared to my previous companies, this one was larger and had more resources, allowing me to learn about the complete product development process.
I truly admire the meticulousness of Japanese people when writing specifications. I hope this culture of detailed specification writing can also be adopted in Taiwan.
My supervisor also granted me a lot of freedom to pursue what I wanted to do, such as helping to implement CI/CD processes, developing new features, setting up a server to implement SSR, and internal testing tools, and I took on the role of Tech Lead in projects—responsible for scheduling and evaluating timelines while providing necessary support to team members.
From the start of my career to now, I feel fortunate to have encountered great supervisors who have significantly helped my growth in the workplace.
One supervisor, with whom I had a closer relationship, would take me paintballing, treat me to pudding at Xizhi Island, accompany me to Costco to buy lumber, and consistently offer assistance when I faced challenges at work. While I think he could strengthen his project management skills, overall, he was a good supervisor.
He has since left the company, and I realize I haven't properly thanked him. I hope to share a drink and chat with him at an izakaya next time (though lately, I prefer coffee over alcohol).
Additionally, taking advantage of the abundant resources across various departments, I learned Kotlin, Swift, and various new technologies. It was convenient to ask colleagues for help, and if there were disagreements, I could directly check how the company's projects were implemented.
In 2021, I received invitations to two events, and due to achieving a commendable result in the 2020 Ironman competition, I seized the opportunity to publish a book, starting the writing process in mid-year and successfully publishing it.
Perhaps due to my accumulated experience, my perspective seems to have broadened. In 2020 and 2021, I began exploring various fields, such as Arduino, Raspberry Pi, diving into AVR, purchasing STM32 development boards to play with, and learning PCB and 3D printing. I hope to integrate my front-end skills with other fields and do more of what I want.
This year is 2022. After last year’s and the year before’s explorations, I hope this year can be a year of creation, allowing me to produce some tangible results.
If you found this article helpful, please consider buying me a coffee ☕ It'll make my ordinary day shine ✨
☕Buy me a coffee