Loading Success: My Fruitful Journey at GoFreight

Chuchun
GoFreight HQ
Published in
6 min readJun 27, 2024

背景介紹 Background Introduction

大家好,我是Ruby,目前是交大資工四年級,當初來實習只是因為大四了課都修完了,想要找事做,理由很簡單,沒想到過程很難忘,收穫很豐富。

我對實習的期待有二:一是學習、二是體驗。學習包括去接觸軟體公司的大型專案,去學習以前沒碰過的框架、工具、和知識;而體驗則包括體驗公司文化,特別是新創公司文化、跨國企業文化。以結果來說,我在學習和體驗兩個層面都有不錯的結果,以下更詳細記錄之。

Hi, I’m Ruby, currently a senior in the Computer Science department at NYCU. I initially took on this internship simply because I had almost finished all my courses in my final year and was looking for something to do. The reason was simple, but the experience turned out to be unforgettable and very enriching.

I had two main expectations for this internship: learning and experiencing. Learning included getting involved with large-scale projects, acquiring new skills and knowledge about frameworks and tools I had never encountered before. Experiencing involved immersing myself in the company culture, especially the culture of startups and multinational corporations here in GoFreight. As it turned out, I achieved good results in both learning and experiencing aspects, which I will detail further below.

GoFreight日常 Daily Life at GoFreight

實習在做什麼 What I Do

GoFreight是一間垂直SaaS的新創公司,以跨國物流管理系統為服務。而我的團隊: tracking,負責從各個貨運公司的網頁爬取每張單的狀況,接著進行資訊的整理與驗證,最後進行結果資料與異常報告的呈現。身為tracking team的實習生,我的每日工作就是去解大大小小的ticket,ticket的內容包羅萬象,我簡單列了幾點:

  1. 爬蟲程式的維護:隨著網頁改版或是反爬蟲檢查提高,我們也有對應的對策(例如:透過selenium這類自動化瀏覽器儲存cookie資訊、新增recaptcha機制、增加隨機行為等等)。
  2. 開發一個可以迅速手動爬取資訊的chrome extension,當爬蟲程式無法解決需求時,降低人工查單的成本。
  3. 根據需求提升系統的功能性:例如,根據CS(Customer Success) team的需求呈現錯誤報告,此外,優化系統的時間表現也是一個重要的工作。
  4. 發現問題、解決問題:例如,UN/locode 和地名的對應一直是我們所頭痛的問題,所以我們開發了各種AI和統計學上的解法去嘗試破解這個問題。

以上就是我的工作日常,除了這些,我們會在每雙週進行的Team meeting中進行技術文章的分享,這個算是我又愛又怕的活動,我有感覺我從第一次報告到現在進步了非常多,包括更有自信、更善於掌握聽眾的狀況、更能統整文章的架構,有脈絡地分享給大家。

GoFreight is a vertical SaaS startup focused on cloud-based International Logistics Management System. My team, the tracking team, is responsible for crawling the status of each shipment from various freight company websites. We then organize and verify this information, ultimately presenting the result data and generating anomaly reports. As an intern in the tracking team, my daily tasks involve solving a wide range of tickets, which cover various issues. Here are a few examples:

  1. Maintenance of crawling programs: As websites are updated or anti-scraping measures intensify, we develop corresponding strategies (e.g., using automation browsers like Selenium to store cookie information, implementing reCAPTCHA, increasing random behavior, etc.).
  2. A Chrome extension Solution: We Develop a Chrome extension for rapid manual data crawling. It reduces the cost of manually checking data when automated scripts fail.
  3. Enhancing system functionality based on needs: For example, producing error reports based on the requirements of the Customer Success team. Additionally, optimizing the system’s performance in terms of speed is another significant task.
  4. Problem discovery and resolution: For instance, matching UN/LOCODE with location names has been a persistent issue, so we developed various AI and statistical methods to try to solve this problem.

These summarize my routine tasks. Aside from these, we share technical articles in our biweekly team meetings, an activity I both love and dread. I feel some pressure to share at first but I also feel that I have made significant progress from my first presentation to now, including becoming more confident, better at engaging with the audience, and more adept at structuring articles logically to share with everyone.

我從實習中得到了什麼 What I Gained

  1. 開發實力:GoFreight的工程師們包括我的mentor和其他工程師都是非常厲害的工程師,他們對於系統開發有非常宏觀的想法與觀念,我平常所接觸的repo也都設計的很有條理邏輯又嚴謹,透過不斷的code review我的開發觀念也獲得了很大的昇華。
  2. 表達能力:表達能力對於工程師來說應該是僅次開發能力重要的事情,而在實習的過程中,我透過每日的scrum, code review, team meeting sharing,甚至是每個commit message和pull request,不斷地在練習如何更好的表達我的想法、更好地闡述我在做的事。
  • Development Skills: The engineers at GoFreight, including my mentor and other team members, are incredibly talented. They have a broad perspective on system development. The repositories I worked with were not only well-designed but also logical. Through continuous code reviews, my development philosophy has significantly evolved.
  • Communication Skills: For engineers, communication skills are second only to development skills in importance. During my internship, I practiced expressing my thoughts and articulating my work more effectively every day through daily scrums, code reviews, team meeting shares, and even every commit message and pull request.

我的團隊 My Team

不確定這段會不會發出來不過我很樂意用文字去記錄一下我可愛的team。

我的scrum team有兩位正職和三位實習生,首先介紹的是我的領導兼mentor Paul,Paul非常用心的在帶實習生,你能感覺到他安排的工作都是他規劃過後符合你的能力且又能讓你學到東西的,而不是只是想找你做事而已,除此之外他也非常好笑、會聊天、照顧人,我很幸運初入職場就遇到那麼好的mentor。

再來是另一位正職Tabi,Tabi在我心中也是無所不知的存在,在此感謝他不厭其煩的回答了我很多繁瑣又白痴的問題,還教會我vscode debugger,此外Tabi也擁有非常獨特又詭異的幽默感dddd。

最後是另外兩位實習生Jason&Jay,比較可惜的是因為工作日排程的關係我和他們的接觸比較少,但是從每次的team sharing中可以看出他們都是認真有實力又有熱情的好青年。

VIS team的四位都像我的大哥一樣,因為我比較慢熟,所以特別感謝這段期間的熱情,照顧與包容,祝各位一切順利。

My scrum team consists of two full-time and three interns.

First, I would like to introduce my manager and mentor, Paul. Paul is very thoughtful in guiding interns; you can feel that the tasks he assigns are well-planned to match your abilities and ensure you learn, rather than just giving you work to do. He is also very funny, easy to get along with, friendly, and caring, I feel fortunate to have such a great mentor that I truly admire so much.

Next is Tabi, another full-time member, who also seems to know everything. I am grateful for his patience in answering many of my tedious and silly questions and for teaching me how to use the vscode debugger. Tabi also has a very unique sense of humor lol.

Lastly, the other two interns, Jason and Jay, unfortunately due to work schedules, I had limited interaction with them. However, from each team sharing session, it’s clear they are both serious, skilled, and passionate juniors.

The four members of the VIS team are like big brothers to me. As I’m somewhat shy, I’m especially thankful for their warmth, care, and tolerance during this period. I wish each of you all the best!

娛樂&福利 Entertainment & Perks

GoFreight算是活動很多的公司吧!待在這邊的九個月,我參加了兩次team building、聖誕party、還有春酒,上禮拜還在桌球比賽中獲勝🥇。每次活動都感覺公司很有誠意的砸了重本,我就不爆雷了歡迎大家來體驗看看!除了活動外,還有一些福利像是下午茶、零食區,還可以自由地選擇WFH,對於在新竹念書的我非常重要!

GoFreight is definitely a company that hosts many activities! During my nine months here, I participated in two team-building events, a Christmas party, and a Spring Festival dinner, and last week I even won a table tennis tournament 🥇. It feels like the company really invests heavily in each event — Come and see for yourself! Besides these activities, there are also perks like afternoon tea, free snack area, and the option to work from home, which is very important for me as a student in Hsinchu!

桌球比賽、端午縫香包、聖誕纏繞畫活動
雷射槍活動、春酒Intern表演團

總結 Summary

回顧這些日子,我從連PR都不會開的小白到現在,成長、學習了許多,我感覺我離自己希望成為的很強的工程師又更近了一步。雖然常常WFH,但我也很期待去公司的日子,可以看看好久不見的大家、沈浸式體驗充滿Paul笑聲的辦公室,謝謝GoFreight讓我平淡的大四生活豐富許多!也再次謝謝我的VIS team,謝謝我的mentor Paul,謝謝我的飯搭子Lon, Webster,還有聊天好友Allen, Crystal, Irina。最後也謝謝認真工作的自己😁。

Reflecting on my time here, I’ve grown and learned a lot — from a complete novice who didn’t even know how to open a PR to being one step closer to becoming the impressive engineer I aspire to be. Although I often work from home, I look forward to the days I go to the office to see everyone I haven’t seen in a while and immerse myself in an office filled with Paul’s laughter. Thanks you GoFreight for enriching my mundane senior year life! Also, thanks again to my VIS team, my mentor Paul, my lunch buddies Lon and Webster, and my chat-mates Allen, Crystal, and Irina. Lastly, thank you to myself for persistent hard working in every working day😁.

其他/給下位實習生(和我自己)的建議

Advice for the Next Interns (and Myself)

  1. 把工作問清楚再做:
    假設說老闆讓你做一個sharing,那你可以問清楚這個sharing的聽眾有誰?都是工程師嗎還是有別的Team的人?這樣就可以去掌握你sharing的方向、技術內容的佔比等等。雖然這點我也還在學習中,因為常常覺得問很多問題很不好意思,但是沒問清楚方向就去做工作有時候就會浪費很多自己和大家的時間。
  2. 把握實習生的優勢:
    對我來說實習生的優勢就是大家知道你是來學習的,所以你可以睜大眼睛、保持好奇,也承認自己對於有些地方不了解,好好去學,最後也可以多問問題、多尋求回饋,這些都是實習工作最寶貴的地方。
  3. 多參與活動&交新朋友:
    如上所述GoFreight的活動很多且豐富,多參與活動除了好吃好玩外就是認識很多有趣的人,多多益善。認識多一點人就會發現GoFreight的人都有點怪怪的又蠻好笑的特質,算是這裡的文化之一(?)
  4. 面試準備方向:
    因為進來主要是寫Python所以會問一些python container,還有基本的oop概念、BST等,對於履歷上條列的Project也是需要每一項都很熟悉,言之有物才行。總之這裡的面試算是非常友善的,不用太緊張!
  • Clarify Your Tasks Before Starting: For example, If your manager asks you to prepare a presentation, make sure to clarify who the audience will be. Are they all engineers, or are there people from other teams as well? Understanding this will help you tailor the direction of your sharing, the technical content, and more. I’m still learning this myself, as it often feels awkward to ask many questions, but not clarifying things upfront can lead to wasting a lot of time, both yours and others’.
  • Leverage the Advantages of Being an Intern: The biggest advantage of being an intern is that everyone knows you are there to learn. So, keep your eyes wide open, stay curious, and admit when you don’t know something — this will enhance your learning. It’s also beneficial to ask many questions and seek for feedback, which are valuable aspects of an internship.
  • Participate in Activities & Make New Friends: As mentioned earlier, GoFreight hosts many fun and enriching activities. Engaging more in these events is not only enjoyable but also a great opportunity to meet interesting people. The more people you meet, the more you’ll notice the quirky and humorous characteristics of GoFreight’s culture, which seems to be a part of its charm.
  • Directions for Interview Preparation: Since the role primarily involves programming in Python, expect questions about Python containers, basic concepts of object-oriented programming (OOP), binary search trees (BST), etc. It’s crucial to be very familiar with each project listed on your CV and to be able to discuss them substantively. The interviews here are quite friendly, so there’s no need to be overly nervous!

--

--

Chuchun
GoFreight HQ

Junior software engineer looking forward to becoming a 技術大牛