My Enriching Voyage with GoFreight

GF 小編
GoFreight HQ
Published in
5 min readNov 1, 2023

關於我 / About Me

Hi!我是交大資工的 Colin(Yung-Yu),對網頁開發和AI特別感興趣。2022年2月以R&D實習生的身份加入GoFreight 的 Tracking Team。這篇文章將分享我在這裡的成長以及所見所聞,希望幫助大家了解GoFreight。

Hi, this is Colin, a Computer Science student at NCTU. I am particularly interested in web development and AI. I joined GoFreight’s tracking team as an R&D intern in Feb 2022. This article shares what I saw, what I did, and what I learned. Hope it helps you know more about GoFreight.

為什麼實習 / Why Taking an Internship

大三的我開始對學業感到非常厭倦,下定決心畢業後不念碩士直接投入職場。而實習是填補學校和職場間的巨大鴻溝的最好方法,同時也是我在錯誤中學習的最後機會。

In year 3, I was finally fed up with tedious schoolwork. I determined that I would dive into the workplace right after graduation instead of pursuing a master’s degree. An internship was obviously the best solution to making up for the huge gap between school and the workplace. This is my last chance to learn while making mistakes.

為什麼選擇 GoFreight / Why GoFreight

即便下足了決心,當時我其實沒有具體的職涯規劃。待在一個充滿變化的工作環境並且接觸不同領域的知識對我應該會最有幫助。因此相較成熟的大企業,擁有各種可能性的新創更吸引我。GoFreight 也沒有讓我失望!

此外學校的 AI 課只提數據處理和模型訓練卻很少談到資料收集。也許是因為聽起來很不 「AI」,但我認為它的重要性不亞於另外兩者,畢竟少了數據AI什麼也做不了。所以建立高效的自動爬蟲系統在我看來是很有價值的技能,這也正是 GoFreight 的強項之一。

Determined as I was, I did not have a concrete career plan. Exposing myself to a versatile workplace sounded like a good idea. As a result, a start-up company with unlimited possibilities was more appealing compared to a big enterprise. And GoFreight did not let me down!

In addition, AI courses at school talked about data processing and model training, yet rarely mentioned data collection. Possibly because it did not sound very “AI”, but I believed that this was no less important. After all, AI would not have become a hit without data. Therefore, building an efficient web scraping system, which was one of GoFreight’s expertise, seemed like a valuable skill to me.

關於 GoFreight / About GoFreight

GoFreight 是一家雲端 SaaS 服務商。我們的平台解決貨運代理業常見的痛點:

  1. 紙本作業:傳統貨運代理涉及大量文書工作,效率低且容易出錯。我們的平台自動化和數位化這些流程,大幅降低人力需求和出錯機率。
  2. CRM:與客戶有效溝通對企業而言至關重要。貨運代理商可以在平台上更新貨況並即時將這些資訊分享給客戶。
  3. 貨運追踪:追踪貨況是貨運代理商的日常工作之一。通常透過電話或網頁查詢來完成,無法想像同時追蹤上千個由不同船公司負責的貨櫃是一個多麼浩大的工程。針對這個問題,GoFreight 建立了一個強大的自動化爬蟲系統,能夠定時從世界知名的船公司(如 Maersk、長榮、萬海等)的網站取得最新貨況。

關於貨運代理業

貨運代理業相當於貨櫃的旅行社,負責安排商品由製造商運送到客戶的過程。最常見的方式是藉由貨櫃海運,因此貨船的位置和抵達時間對他們而言是重要資訊。更多細節可以參考這裡

如同一般新創,GoFreight 非常重視員工福利。辦公室提供零食飲料餵飽大家是基本,時不時還會聚餐,更重要的是採用混合工作制不用天天舟車勞頓。(說來有點慚愧,我從來沒有踏進辦公室一步但很少錯過聚餐(蹭飯),每次都像網友見面會)。另外扁平化組織和自由的氛圍讓溝通順暢無阻,實習生的建議也能被充分聽見。

GoFreight is a cloud-based SaaS provider. Our platform aims to resolve common pain points of freight forwarders:

  1. Paperwork: Traditional freight forwarding involves a huge volume of paperwork, which is inefficient and error-prone. Our platform automates and digitizes these processes, releasing labor from tedious work and minimizing errors.
  2. CRM: It is crucial to communicate with stakeholders effectively. Our platform allows forwarders to update and share shipment progress with their customers seamlessly.
  3. Shipment Tracking: Keeping track of shipment progress is one of the daily routines of forwarders. It is usually done by phone calls or manual searching on websites. This can be overwhelming when there are thousands of containers carried by different shippers. To tackle this, GoFreight features a robust web scraping system, which automatically retrieves the most recent progress from the websites of the most prominent shippers (Maersk, Evergreen, OOCL, etc) around the world.

About Freight Forwarders

One can take freight forwarders as travel agencies for containers. They organize how goods are delivered from manufacturers to customers. The most common approach is shipping them with containers. Hence, where the vessels are and when the vessels arrive are important to them. More details can be found here.

Like any other start-up company, GoFreight values the well-being of employees. Snacks and drinks are available at the office, team buildings are held from time to time, and (perhaps the best of all) hybrid working is adopted. Awkwardly, I have never stepped into the office, yet rarely missed team buildings (free dinner!!!). Moreover, the flat hierarchy and the free atmosphere allow smooth communication. Even the opinions of interns are respected and welcomed.

關於 Tracking Team / About Tracking Team

顧名思義我們負責貨運追蹤。R&D 的角色是通過爬蟲和 API 取得資料,收集到的資料將在後端進一步處理並存儲到資料庫。作為一個實習生要學的東西非常多,不過完全不需要擔心。因為指派的任務都經過挑選以便新手邊做邊學,不會讓人無所適從。團隊成員也非常友善,遇到困難時總能得到充分幫助。

As the name suggests, we are responsible for shipment tracking. From the R&D perspective, it is achieved by web scraping and APIs. Collected data will be processed at the backend and stored in DB.

There is a lot to learn for an intern. But no worries. Tasks are carefully selected so that newbies can learn by doing. Besides, team members are kind and patient. When facing difficulty, one can always find the support he or she needs.

我學到的東西 / What I Learnt

實習生的主要工作可以分成兩類:

爬蟲(Scrapy、Selenium、Postman)

  • 為貨運公司網站寫爬蟲
  • 在網站更新時調整爬蟲
  • 對各種反爬蟲機制見招拆招

後端(Django、PostgreSQL、Docker、APIs)

  • 在爬蟲更新時調整數據處理
  • 持續優化系統。例如將寫死在程式碼中的設定搬進 DB,這樣點幾下滑鼠即可調整爬蟲應對不同狀況

另外相比學校作業,公司系統會持續運作多年,同時也會隨企業成長而擴展。可讀性、可維護性和可擴展性都必須兼顧。還記得剛進公司的我非常掙扎,花費許多心力調整 coding styles。不過也多虧經歷過這些,現在我寫的程式更簡潔更少出錯,而且也會不知不覺地考慮可擴展性等面向。

最後實習對學生而言真的是拓展眼界的重要機會。我接觸到貨運業的各種知識,見證企業的商業模式,與資深工程師合作,並和不同領域的人交流意見。除了寫程式技巧也強化了溝通表達能力,相信未來去到任何地方這都會很有幫助。

更多我做過的有趣事情

  1. AI Side Project:預測貨船抵達日期。
  2. CS 觀摩:CS(Customer Success)Team 是客戶聯繫公司的主要窗口。我被派去臥底1個月,了解 R&D 是如何與 CS 合作的,並提案如何優化他們的工作流程。
  3. Emily 工作坊:Emily 是其他公司開發的自動化工具,有一段時間我每週都會參加教學工作坊。目的是介紹相關功能給大家,並思考它能如何改善我們的工作流程。

Interns are responsible for 2 repos:

Web Scraping (Scrapy, Selenium, Postman)

  • Create crawlers for new shipper websites.
  • Update crawler upon website changes.
  • Endless combat with anti-crawler.

Backend (Django, PostgreSQL, Docker, APIs)

  • Update data processing upon crawler changes.
  • Continual optimization. For example, migrate hard-coded settings into DB such that crawlers can adapt to various circumstances with only a few clicks.

There is a lot more apart from scraping and the backend. Contrary to schoolwork, systems in the workplace usually go on for years and expand as the enterprise grows. Readability, maintainability, and scalability can never be overemphasized. I struggled a lot adjusting my coding style, but it was worth it. Now I write neater codes with way fewer bugs. And I instinctively take the aspects mentioned above into consideration.

Last but not least, an internship greatly broadens the horizon of a student. I get to know the freight forwarding industry, witness the business model of an enterprise, cooperate with senior engineers, and exchange ideas with people from different disciplines. Without awareness, I have sharpened my presentation and communications skills, which will surely be useful wherever I go.

Some more cool things I did

  1. AI side project:Predict the arrival date of shipment.
  2. CS trainee: The CS (Customer Success) team is the main contact to our customers. I stayed there for 1 month to understand how our team cooperates with them and propose how we can improve their workflow.
  3. Emily Workshop: A training for an automation tool called Emily. The goal was to introduce its functionality to my colleagues and identify how it could enhance our workflow.

總結 / Summary

R&D 實習生的工作量不算太大而且有一群熱心的夥伴,是一個非常適合沒有經驗的人成長的機會。而且 GoFreight 處於快速發展的階段,如果你是一個好學的人一定會愛上這樣的環境。

若是對這份工作感興趣,這邊透露一下主管親口說的選人重點:

不一定要具備爬蟲、網頁開發或資料庫相關經驗。基礎觀念(例如OOP)扎實的人會更容易得到青睞。據說如果觀念題沒答好是會立刻無情結束面試的

如果你成功加入這個團隊,這裡有一些建議提供給你:

  1. 向他人學習是最有效率的方式。大家都非常熱心不用害怕問問題。
  2. 例行維護可能會比較適合快速標準的解法。系統優化則沒有標準答案,遇到這類問題可以盡情探索各種可能並分享你的想法,團隊成員都很樂意傾聽。
  3. 沒意外的話 Paul 會是你的直屬主管,他非常健談和關心實習生,每個月都會抽空和實習生一對一聊聊。無論工作、學業、職涯或生活他都能給出實用建議,可以提前準備好問題,才不會白白浪費這個好機會。

With moderate workload and sufficient support from others, it is an ideal opportunity for people with no internship experience before. Furthermore, GoFreight is a young and fast-growing company. A quick learner will certainly enjoy the versatile environment.

For those interested in the position, here are some tips for the interview:

It is not necessary to possess experience in web scraping, web development or database. Candidates with solid fundamental knowledge such as data structure & OOP are preferred.

If you make it to join the team, here are some advices for you:

  1. It is more efficient to learn from others. No need to shy from asking since people here are super nice.
  2. Daily routines may require standardized solutions. On the other hand, some optimization tasks have no correct answer. When you encounter one, feel free to explore the possibility to the fullest and share it confidently. The team members are all ears.
  3. It is very likely that Paul will be your supervisor. He is talkative and cares about people around him. Every month, he arranges a 1-on-1 meeting for each intern. The conversation may involve work, school life, career, or even daily life. He always provides useful feedback. You may want to prepare your questions in advance to seize the chance.

--

--