林佑昇

A cooperative fresh graduate with 4 years professional software engineering training. I have a solid foundation in software engineering principles. I had participated, initiated and led projects that were developed in plan-driven and Agile process, and gained experiences in each development phases.


phone:  +886 975 755 152

mail: [email protected]

Technical strength

Software Development in Practice

  • Familiar with Waterfall and Agile development processes, and sticking to software engineering principles in each development phase.
  • Understand and identify requirements through comprehensive survey and analysis.

  • Follow patterns or standards to develop stable, reusable and scalable software.

  • Select and adapt algorithms to deal with target computing problems.

  • Improve and maintain high quality software by code review, refactoring, and automated testing.

Project Management Skills

  • Passionate about discovering, identifying, confirming and adapting new software development techniques.
  • Utilize collaborative tools to plan, monitor and control development processes, aiming at delivering products on time and within budget.

  • Write well structured and trustworthy reports for supervisors and stakeholders, aiming at providing a clear overview of development progress and giving credit to the right developer.

  • Willing to accept new things or challenges in process improvement and product evolution.

  • Dedicated to attending brainstorming events(e.g. hack day) to learn new skills, share ideas, initiate projects and bring value to the community

Project Coordination and Communication Skills

  • Transfer creative ideas to understandable and workable items with product proposal writing skills.
  • Share insight and convey knowledge with oral presentation skills.
  • Utilize effective documents to share knowledge, record team decisions, and track rationale

    of design.

Experience

Participated in 10+ software projects with 2-15 members, and engaged in requirement, design, implementation, testing and maintenance phases.

Requirement elicitation and analysis

  • Specified requirements with scenario, use case, prototype and check to clarify and confirm details.
  • Prioritized requirements based on results of discussions, customer feedback, feasibility study and feature survey.
  • Maintained a record of dependency among requirement documents as an easy way to understand, discuss, and maintain an evolutionary project.

Software design

  • Translated requirements to design and architecture under the Object-Oriented design principle, and described modularized components through UML class and sequence diagrams.
  • Designed web application components with MVC framework (e.g. Django).
  • Designed relational database using ER diagram for collaborative paper reading platform, IntroCS competitive training platform, lab social network, and etc.

Implementation

  • Integrated third party tools (e.g. github project with high stars), libraries (e.g. Numpy), web API (e.g. Twitter API) to existing systems for rapid development or reliable performance.
  • Stuck to code style guide (e.g. PEP8) for code understandability, reliability and consistency.
  • Adopted implementation practices (e.g. Pair Programming, Code Review) to share knowledge and ensure code quality in social network projects where members join in varied phases.
  • Developed a game-based programming training platform (with PyGame) that has been used by 300 students since 2018.

Software testing

  • Followed V-Model for step by step testing (e.g. unit, component, integration testing, requirement verification) in multiple projects.
  • Wrote test cases with python unit test framework. Entered test cases into auto-testing framework (e.g. CI/CD in Gitlab).
  • Designed test cases for students’ programming homework during 4 semesters of teaching assistantship in Intro. to Computers course in EE NCKU.

Ministry of Science and Technology (MOST) Proposal Writing

  • 2017 Personalized traveling destination and transportation recommendation system - Member.
  • 2018 An adaptable AI solution for automatic guided vehicle management system ( Accepted ) - Member.
  • 2019 Change rules of tourism: Travel information sharing and integration system - Leader.

Project leading and management

  • Leader of social community, lab social network, hack day winner project and MOST proposal writing.
  • Selected and set up development environments to manage a project, including a version control system (e.g. Git) for code management, development platform (e.g. Gitlab) for issue and schedule management, communication platform (e.g. Mattermost) for instant discussion, and online editor (e.g. Etherpad) for collaborative editing.
  • Held regular discussions to keep everyone engaged, clarify issues from multiple perspectives and gather ideas for process improvement.
  • Refined scheduling and task assignment strategies to stay on progress with progress monitoring tools (e.g. scrum boards).
  • Kept track of decisions, suggestions, issues and commits made or reported by members during development, for the purpose of identifying problems and making adjustments.

Education

2017 - 2021

國立成功大學 電腦與通訊工程研究所

資料庫與軟體工程實驗室

  • TA for lecturing the programming practice courses (C and Java) in IntroCS in NCKU EE
  • Thesis: No one can trust in our life! How to control people’s behavior on the Internet?
  • Research area: Software Engineering, Information Seeking, Data analysis, Social Network, Artificial Intelligence
  • Have taken courses in system analysis and design, machine learning, internet of things and urban computing

2013 - 2017

國立中興大學

資工系

  • Top 20% of the graduation class
  • Have taken courses in programming language, operating system, introduction of computer science, data structure, algorithm, database.

Skill

Programming languages


  • Python
  • Java
  • C

Databases


  • MySQL
  • SQLite

Web technologies


  • Html
  • CSS
  • Django

Collaborative tools


  • Subversion
  • Gitlab
  • Github
  • Mattermost

Languages


  • Chinese
  • English