Morris Lin

App Developer

  Changhua County, Taiwan

Hello, I am Morris Lin, a graduate of the Department of Computer Science and Engineering at Chung Hua University. Although it's not a particularly famous school, there are many dedicated teachers there who laid a solid foundation for me in the field of software. The teacher of the summer course on data structures opened my mind, and the algorithms teacher taught me how to think about problems. The OS teacher used simple examples to clarify how computers work. Also, my graduation project advisor helped me truly appreciate the joy of coding. During my university years, I always worked part-time to earn my living expenses, which cultivated my spirit of independence and the habit of doing things on my own. This also allowed me to gain early exposure to the workplace and prepare in advance. Before graduating, I used my savings to enroll in a Mobile course, which I always thought was a wise investment.

I consider myself quite fortunate in life. During my time at Hiiir, I met a manager from a renowned international company. I really liked the kind of meeting he organized, where he would challenge each engineer with a difficult feature and give them three days to think of a solution. Then, each engineer with a solution would write it on the whiteboard in the meeting room and explain their thoughts and the benefits of their approach. This experience taught me that everyone has their unique way of thinking about a problem, and often new ideas emerge during discussions. Since then, I've learned to continually learn from others and integrate their strengths into my own ideas, which I believe is the true essence of communication.

The book clubs organized by my manager during my time at Fullerton were also very meaningful. He always reminded us that engineers shouldn't just know how to code their entire lives. Since then, I've developed a habit of reading, including topics like management, neuroscience, literature, etc. I'm also thankful for the Steve Jobs biography he gave me, which inspired me to think outside the box and learn to 'Think different.' These pieces of knowledge have been a great help in my later work.

In my student days, our graduation project team was probably the only one to come up with our own topic. I think being able to realize the ideas in my head is what motivates me to become a software designer. I'm an empiricist; when I read some theory or have some ideas in my head, I want to put them into practice. So, I developed a habit of working on outside projects, which also made me realize the importance of front-end architecture early on. I am a strong advocate of extreme programming and like the 'convention over configuration' philosophy of RoR. So, I believe in architecture before product, and that architecture must be flexible enough to accommodate flexible changes. Thus, before MVVM became popular in Taiwan, I started adopting it. After Moore's Law became ineffective, software needed more threads to speed up, so a couple of years ago, I preemptively introduced the Actor-Model architecture with Apple and implemented it with Kotlin, completing the idea of cross-platform architecture. These have greatly improved program performance in my work, such as creating what might be the smoothest operating push notification inbox for DBS in Taiwan, and on the iWatch Series 3, outperforming Spotify in terms of performance. I also came up with a mailbox mechanism for the front-end Actor-Model, which completely decouples the pages and truly designs an architecture that meets SOLID principles, improving overall development efficiency. I also started learning system design from architecture, evolving from writing tools to designing my own products. What2Eat is my first attempt at this, and last year I tried a microservices architecture with OODBMS and GraphQL PostgreSQL, and on June 16, 2022, I applied for a patent for my own design, the Theatre architecture. Now, I've realized that one person can indeed achieve a lot.

'If I have seen further than others, it is by standing upon the shoulders of giants. So stay hungry, stay foolish.' This is a reminder to myself, combining the words of two masters who changed the world. It's because of masters like Alan Kay and Linus that I appear impressive, so I shouldn't be complacent and should always keep learning. The world actually changes very fast, so don't be satisfied with small comforts, be brave to step out of your comfort zone and challenge yourself.

您好,我是林祐正(Morris),畢業於中華大學資工系,雖然不是什麼明星學校,但其實裡面有很多教學用心的老師,為我在軟體領域奠定良好的基礎,暑修的資料結構老師,讓我開了竅,演算法老師,教會我如何去思考問題,OS老師利用淺顯例子讓我清楚電腦如何運作,還有畢業專題老師,讓我真正體會到Coding的樂趣。大學時代就一直打工賺自己生活費,培養了自己獨立自主精神,還有凡事自己動手做的習慣,也因此能更早接觸職場,而能及早做準備,畢業前,把自己存款拿去報名Mobile課程,我一直覺得是個明智的投資。

我覺得自己人生算蠻幸運的,在Hiiir期間,遇到來自國外知名公司的主管,我很喜歡他舉辦一種會議,他會把一些有挑戰性功能交給每個工程師3天時間想解法,然後每個有答案的工程師會在會會議室白板上寫下自己解法並說明自己想法與好處,我了解到原來一個問題,每個人都有自己獨特想法,而且在討論中間常常因此迸出新的想法,也因此在往後工作學會不斷學習別人優點融合自己的想法,我想這才是溝通真諦。在富爾特時期主管舉辦的讀書會,我也覺得很有意義,他總是告訴我們,工程師不要一輩子只會寫程式,在此之後養成了閱讀的習慣,包含管理學、腦神經科學、文學...等等,還有謝謝他送我的賈伯斯傳,我想我也因此受到啟發,脫離了框架,學會Think different. 這些知識都在日後工作得到了很多的幫助。

在學生時代畢業專題我們組大概是唯一自己想題目的,我覺得能把腦中的想法實現出來是想成為軟體設計師的動力,我自己是實證主義者,在讀了一些理論或腦子裡有一些想法的時候,就會想要去實際去應證,所以養成了寫Outside-project習慣,也因此提早注意到前端架構的重要性,我算是極限開發擁護者,也喜歡RoR約定先於配置想法,所以認為應先架構後產品,而且架構要足夠靈活,才能做到靈活的更動,於是在MVVM未在台灣風行時,便開始採用,摩爾定律失效後,軟體需要多開執行緒來加速,於是前年搶先蘋果導入Actor-Model架構,並也用Kotlin實作,完成架構跨平台的想法,這些也工作中實際應用上大大提升了程式執行效能,如替DBS寫出可能是台灣操作最流暢的推播收件夾,還有在iWatch Series3執行效能打敗了Spotify,並且自行想出前端Actor-Model的信箱機制,讓頁面完全解耦,真正設計出符合SOLID的架構,讓整體開發效率提升,自己也開始從架構後開始學習系統設計,從寫工具變成自己設計產品,What2Eat就是第一次嘗試作品,去年更嘗試了OODBMS搭配Graphql PostgreSQL的微服務架構,並於2022/6/16將自行設計的架構:Theatre申請發明專利,現在發現,原來一個人也可以做到很多事。

If I have seen further than others, it is by standing upon the shoulders of giants. So stay hungry stay foolish. 這是我結合兩位改變世界大師說過的話提醒著自己,是過去有像Alan Kay與Linus這些大師讓自己看起來很厲害,所以不要自滿要始終保持不斷學習,這世界其實變化非常快速,不要滿足於小確幸,要勇敢脫離舒適圈,去挑戰。

Education

2006 - 2012
Chung-Hua University

CSIE


Skill

   Objective-C/Swift      Android      JAVA      kotlin      Elixir      Ruby on Rails      Python   

Language

   中文 — Native      英文 — Intermediate   

Work experience

Senior iOS Developer

鴻海集團- 富智捷股份有限公司  •  四月 2022 - Present

1. Develop Stellantis Sapce App iOS.

2. Work with Agile flow.

3. Implement clean architecture.

4. Implement Unit test.

5. Communicate with PO and Scrum master.

6. Communicate with Stellantis engineer.

7. Help fix technical issues.

8. Trace and fix bugs

9. Code review

iOS Developer

智趣王  •  Mar 2021 - Mar 2022

1.Develop iOS
2. Responsible for software analysis, design and programming
3. Test and modify the software
4. Understand the needs of related units for information, and think about suitable solutions
5. Architecture design
6.Connect with third-party vendor services


Product : 

Funpark - iOS and iWatch App



System Analysis/App Developer

Think Power  •  May 2019 - Dec  2020

1. Develop Android and iOS
2. Responsible for software analysis, design and programming
3. Test and modify the software
4. Understand the needs of related units for information, and think about suitable solutions
5. Responsible for planning, commanding and coordinating the integrated team for development
6. Architecture Design
7. Rebuild MFE interface
8.Connect with third-party vendor services (Adobe) and conduct technical communication with partner vendors
9. Lead an international team to complete the project

Product: System Talk、DBS Card+


Mobile RD

EventXtra  •  Oct 2018 - May 2019

1.Develop Android(Java) and iOS App(Swift)
2.Responsible for software analysis, design and programming
3.Test and modify the software

Product :EventXtra App

iOS Developer

JSW  •  Apr 2017 - Sep 2018


1.Responsible for software analysis, design and programming
2.Test and modify the software
3.Maintain products of the company
4.Responsible for understanding the requirements of relevant units, and thinking about solutions.
5.Help for studying and developing new technology
6.Coordinate work required in the course of the project
7. Project analyze and refactor
8. Programing architecture design or improve
Product

SHC Pro - Surveillance system

iOS Developer 

Fullerton  •  Jan 2016 - Apr 2017

1.Responsible for software analysis, design and programming
2.Test and modify the software
3.Product maintenance
4.Responsible for understanding the requirements of relevant units, and thinking about solutions.
5.Help for studying and developing new technology
6.Coordinate work required in the course of the project
7.Read technical documents.
8.Import AR VR technology
9.Import tools like Zeplin and Axzure


Product:
Tripitta - Tour Package Carpooling Service
EZDing - Booking Movie tickets

iOS Developer

傳諦股份有限公司  •  Oct 2015 - Jan 2016

1.Responsible for software analysis, design and programming
2.Plan and execute the design of software architecture and modules. Controlling the progress of software design
3.Test and modify the software
4.Product maintenance
5.Understand the needs of related units for information, and think about suitable solutions

iOS Engineer

Hiiir  •  Mar 2014 - Sep 2015

1.EMMA iOS App development and maintain
2.Responsible for software analysis, design and programming
3.Plan and execute the design of software architecture and modules. Controlling the progress of software design
4.Test and modify the software
5.Responsible for planning, directing and coordinating the integration of the iOS team for development
6.Lead the team to test and validate existing software
7.Understand the needs of related units for information, and think about suitable solutions
8.Test and modify the software
9.Read technical documents
10.Communicate and cooperate with third parties
11.Write documents
12.Write stress testing code
13.Develop message queues  to handle huge instant chat messages

Product:
EMMA IM
動腦

Android Developer

SoftWorld  •  Aug 2012 - Mar 2014

1. My Card App Android development and maintenance
2.Responsible for software analysis, design and programming
3.Responsible for planning, directing and coordinating the integration of the iOS team for development
4.offer UI/UX advice
5.Trace bugs and fix
6.Help develop new software technology
7.Read technical documents. 
8.Work with the developers of banks and help to connect the systems of both sides
9.Offer designer technical support

Product:

My Card App

productions


Emma

遠傳企業通訊軟體

動腦活動App

App Store Link

EZDing電影訂票

AppStore Link

Holic

NFC APP(Outsourcing)


What2Eat

Personal outside project


訪客登記

An P2P outside project

My Favorite books

Getting More: How to Negotiate to Achieve Your Goals in the Real World

Stuart Diamond

Rework

Fried, Jason/ Hansson, David Heinemeier

Steve Jobs: A Biography

Walter Isaacson