print("Hello, I am Yuchen!")

> Hello, I am Yuchen!

Where are you?

This is a brief portfolio page of me. My name is Yuchen Wei, and I am currently pursuing a master's degree at University of Maryland, College Park. I am finishing up program in Software Engineering at the A. James Clark School of Engineering in May 2025. And I finished my bachelor's degree in Computer Science at Rutgers University, New Brunswick in Jan 2023.

Résumé

You can see my full resume above, but here is a quick summary of the tech skills I have acquired through previous internships and coursework.

Programming Languages

  • Python
  • Java
  • Javascript
  • SQL
  • C/C++

Frameworks / Tools

  • PyQt
  • SpringBoot
  • NodeJS
  • Database (MySQL, MongoDB, MariaDB)
  • Java-FX
  • Git
  • Docker
  • Agile (Kanban, Scrum Board)

Work Experiences

I'm actively seeking for a position in Software Engineer. And here is a brief summary of my previous internship. Please feel free to reach out to me if you are curious about my internship experiences.

Ruijie Networks Co., LTD.

May 2022 – Aug 2022 | Software Engineer Intern – Quality Group

What is Ruijie Network?
Ruijie Networks is a Chinese company specializing in the development and manufacturing of networking equipment and solutions. They offer a range of products and services related to networking, including switches, routers, wireless LAN solutions, and network security products.

What did I do there?
  • I encapsulated base APIs and business-level interfaces for HTTP and WebSocket (WS) utilities and changed the "break" condition in a WS API which improved the runtime from ~30 sec to ~3 sec to build the fundamental for future automation upon it.
  • I decomposed the project architecture with a better design pattern. I also Changed the original variable naming pattern to enhance code readability and future maintainability.
  • I Used multi-threading for the internal tool to save around 1.5 hours from the original linear procedure of uploading server image files one after another.

As a Learner...

Self-learnings

I am constantly trying to acquire more knowledge about the technology we use today. Whether it is inside a lecture or educating myself through google, I find a great curiosity in the software that surrounds us. To keep myself motivated, I try to learn teach myself something new every month on top of the learnings I acquire through coursework.

Coursework

Here are all courses I have taken or am taking. Feel free to reach out to me if you have any questions about the courses I have taken or need any advice on any particular course.

Currently Enrolled
Name Course ID Description
System and Software Requirements ENPM 612 Focus will be placed on the theoretical and practical aspects of requirements development. Students will recognize the place of requirements, how to work with users, requirements methods and techniques, the various requirements types, how to set requirements development schedules, requirements evolution, how to model and prototype requirements, how to evaluate and manage risk in requirements, techniques to test requirements, how to manage the requirements process, and how to write an effective requirements document.
Software Testing & Maintenance ENPM 614 The purpose of this course is to provide an overview of software testing and maintenance and how these activities fit into the Software Engineering Life-Cycle. Many examples used in the lectures are derived from analysis of various NASA systems. Topics include various forms of testing such as Functional Testing, Combinatorial Testing, Structural Testing, Model-Based Testing, Security-oriented testing as well as Software Architecture's role in testability & maintainability, Regression Testing, Automated Testing, Testing Coverage including MC/DC coverage and testing standards.
Data and Algorithms ENPM 809X The course will teach the algorithms, heuristics, and code development skills in solving numerous sorting, graph theory, string processing, and job scheduling problems. It provides both a broad coverage of basic algorithms and data structures and in-depth coverage on selected topics. Moderate to heavy programming in C or Python is expected. Through this study the students will improve their problem-solving skills via various algorithm development examples and exercises.
Software Engineering Courses
Name Course ID Description
Software Engineering ENPM 611 Software engineering concepts, methods, and practices important to both the theorist and the practitioner will be covered. The entire range of responsibilities expected of a software engineer are presented. The fundamental areas of requirements development, software design, programming languages, and testing are covered extensively. Sessions on supporting areas such as systems engineering, project management, and software estimation are also included.
Software Design and Implementation ENPM 613 Covers the software design process, from understanding the need or problem, to creating suitable architecture and detailed design solutions, to preserving and evolving the design during implementation and maintenance. The main study topics include: requirements analysis models; user centered design; architecture design through decomposition and composition; architecture styles and architecture tactics for supporting various quality attributes such as security and usability; design for reuse and with reuse; detailed design object-oriented principles (such as SOLID) and design patterns; approaches for evaluating, comparing, and selecting design solutions; standard notations for documenting architecture views, detailed design, and analysis models; and industry standards for creating design deliverables. Students will acquire not only technical knowledge, but also soft skills such as communication, collaborations, critical thinking, leadership, negotiation, and time management.
Network and Protocols ENPM 694 Provides an in-depth review of the Internet with a focus on the end-to-end effects of technologies and protocols that operate in different layers. All protocols and technologies are covered in a holistic framework with an emphasis on their effect on the network and application performance. The course also includes a brief introduction of more modern concepts in the field of networking such as SDN and NFV to encourage deeper study of those topics.
CS Courses
Name Course ID Time Taken
Introduction to Computer Science CS 111 Fall 2019
Data Structure CS 112 Spring 2020
Computer Architecture CS 211 Spring 2021
Introduction to Discrete Structures CS 205
CS 206
Fall 2020
Spring 2021
Software Methodology CS 213 Fall 2021
Systems Programming CS 213 Fall 2021
Principles of Programming Languages CS 314 Fall 2021
Design and Analysis of Computer Algorithms CS 344 Fall 2021
Principles of Information and Data Management CS 336 Fall 2022
Internet Technology CS 352 Fall 2022
Software Engineering CS 431 Fall 2022

Connect With Me!

Click on the icons to get redirected to my other pages! Please feel free to check me out on other social media platforms or email me if you would like to get in touch with me.