Ge, Yuqiu
Full Stack Software Engineer and Trainer (Spring Boot, Angular, React)
Summary
Resume: https://yuqiu-resume.netlify.app/
Yuqiu Ge is a senior fullstack developer with 5 years of professional experience with a focus on frontend. He is experienced in agile development principles such as pair programming, refactoring, etc. He also does regular trainings in Angular and React.
Experience
as Freelancer May 2021 - Present
React/Java Developer at iSys Software GmbH for Ifco Apr 2023 - Present Scrum, React, Java - Munich/Remote
- Goal: creation of an application framework and implementation of the basic functionality for a React SPA to replace a JSF based rich client
- Description: the application is used to locate Lidl plastic crates, e.g. As the legacy application is no longer up-to-date, it is rewritten from JSF to react
- migrated jsf code to Java/React
- added storybook integration for React Components
- added React components with tailwind and HeadlessUI
- added RestFul endpoints to backend services
- added date as customized type conversion for openapi interface (Java -> TypeScript)
Full-stack Engineer at Bitmarck Jun 2022 - Dec 2022 Scrum, Angular, Spring Boot - Remote
- Goal: The user and rights management system is intended to document and regulate access to medical records.
- Description: Medical records are strictly confidential according to data protection laws. The system is built to track access to it and to trace it in retrospect. Spring Boot was used in the backend and Angular in the frontend to display the data in the DB2 database on the user interface. Since a large dynamic form is required on the frontend and the form has been implemented in a very complex way in the past, there have been many bugs related to this over time. Without refactoring the form, it was hardly possible to design and further implement the system without bugs. It was therefore a not easy task to convince the product owner to first carry out the refactoring sensibly and only then add the other features.
- lead, shared full stack knowledge including testing to an apprentice via pair programming
- improved Jasmine Tests to improve regression test coverage
- migrated database schemas and built spring endpoints with liquibase, Spring Data, SQL and DB2
- refactored and simplified legacy angular complex dynamic generated form components
- refactored REST interfaces (Spring Boot, Spring Data)
- integrated sonar and linter to improve code quality
- upgraded Angular from 12 to 14
- improved architecture documentation by applying arc42 template
Full-stack Engineer at MGM technology partners GmbH for Ifco Apr 2022 - May 2022 Angular, Spring Boot - Munich / Remote
- Goal: System for tracking e.g. Lidl fruit crates
- Description: There are tons of fruit crates for Lidl in circulation every day. Photos are taken from a pile of crates using mobile devices while the crates were identified using tags. These then ended up in the system and were stored in the database. In reality, however, there can be errors in the recognition of tags. On the GUI, an admin can come along, find the shipment and correct the errors manually. A PDF report is generated at the end.
- added Jasmine and Cypress Tests to improve regression test coverage
- refactored angular components and service
- integrated sonar and linter to improve code quality
- documented and fixed bugs
Full-stack Engineer at Schaeffler Jul 2021 - Dec 2021 Scrum, Angular, Java, Spring Boot, NGRX, Azure - Remote
- Goal: The tool is used to show Schäffler customers which prices and discounts can be offered for vehicle parts.
- Description: As part of the project, a web application was developed with Angular and Spring Boot. Components from Monorepo are used on the front end. The components are also used by other teams, so caution is advised.
- set up spring boot integration test environment with docker database with mock data to complete DoD
- contributed in mono nx repo environment, azure and jenkins
- added material design components and service with Angular (NGRX with marbles testing, AgGrid), Spring Boot
- ensured code quality by adding tests with Jest, JUnit5 and Cypress
- reviewed frontend and backend code
- improved architecture documentation by applying arc42 template
- exported business data to csv with AgGrid
Full-stack Developer at Allianz Dec 2018 - Apr 2019 Scrum, Angular, Spring Boot - Munich
- developed features for a Spring Boot, Angular web application for underwriters platform
- worked as Full-stack developer in a team of 10 (5 developers)
- added REST interfaces (Spring Boot)
- wrote devOps (Jenkins), tests (Jasmine, Junit5, Cypress) and production code (MapStruct, Angular, Spring Boot, Spring Data, SQL)
as a part-time Trainer
Oct 2023 - Present Angular,React - Remote
- Angular: Bascis in JS, TS. Components, Input, Output, Pipes, Interceptors, Services, RxJS. Unit-tests with jasmine
- React: Bascis in JS, TS. Components, JSX, Props, Hooks like useState, useEffect, useRef, useCallback. Unit-tests with Jest and react-testing-library
DHBW Stuttgart: Feb 2022 - May 2023 Soft Skills,Advanced Software Engineering - Remote
- lecturing about principles like git, clean code, architecture with arc42, QA, agile development principles (pair programming), cracking the coding interview, jhipster, soft skills, cicd
as Full time Developer at it-economics May 2019 - Oct 2021
- I was a consultant for finance and insurance customers. My main contributions were as follows.
Developer at Fiducia GAD AG: Jul 2021 - Sept 2021 Sprint Boot,Openshift - Remote
- developer in a team of 7 developers in a SAFE project environment
- migrated e2e tests to Cypress from Protractor
- migrated microservices across bounded contexts
- implemented setting toggles on microservice with Spring Boot, Spring Data, Junit and Openshift
- migrated semi-automated microservice api-tests from postman to fully automated ones with RestAssured
- improved architecture documentation by applying arc42 template
Full-stack developer at Allianz: Jul 2020 - May 2021 Scrum, Angular,Java,Openshift,PCF - Munich
- Goal: Further development of damage report web apps in the event of a customer having an accident with his car.
- Description: On the web interface with Angular, the customer could upload pictures, enter his data and have the compensation paid out or the vehicle repaired. After data collection and sending data to the backend, Backend was then responsible for addressing the email generation interface. The actual email generation function was handled by a different Allianz team. It was therefore necessary to keep an eye on any changes to this interface. In addition to the usual unit tests, UI tests were included for all dialogs.
- developed features for 3 assets at once
- built an application from scratch and released it as a cloud native web application on AWS Cloud
- followed trunk based development
- added REST interfaces (Spring Boot) and Database queries via Spring Data
- completed tracking service with Adobe Analytics
- wrote production source code (Angular, Spring Boot, NGRX, SQL), tests (Jasmine, Junit5, Cypress) and devOps (Pivotal CloudFoundry, Jenkins)
- tripled customer conversion rate: http://direkthilfe.allianz.de/
- introduced and integrated Cypress automated UI tests in Angular Web app to meet agile software development standard: https://kfz-schaden-mobile.allianz.de/
- contributed as Full-stack developer in a team of 10
- led retrospective in absence of scrum master
- upgraded Angular from 8 to 11
- improved architecture documentation by applying arc42 template
- developed and tested an Angular coding case for interviews of frontend developers
Full-stack developer at Wirecard Oct 2019 - Apr 2020 Angular,Java - Munich
- Goal: Further development of a Spring batch app for processing CSV data as a chargeback operation for credit cards
- Description: When a customer requested chargeback for a credit card payment, it ended up in a CSV-file, which was then read by the app, depending on the logic, duplicates and invalid operations in the form of defined sequences were either discarded or executed. At the end, valid operations were fed into Kafka queues. Before the app, CSV-files were still corrected manually, which could result in errors. But now, the records could only be corrected via the web app.
- implemented and integrated automated integration tests that reduced regressions by 80% for a chargeback batch application
- wrote production source code (Angular, Spring Boot, JHipster), tests (Jasmine, Junit5) and devOps (Gitlab, Bash)
- built a Spring Boot, Angular chargeback correction web app from scratch in 8 weeks
- improved ci script in gitlab
- added REST interfaces (Spring Boot), Database queries via Spring Data and frontend features (Angular)
- improved architecture documentation by applying arc42 template
Full-stack developer at it-economics Jun 2019 - Jun 2021 Angular,NodeJS,GraphQl - Munich
- Goal: For an IT consulting company, it is also very important to know how satisfied the employees are. That is why there was a satisfaction survey for employees every quarter.
- Description: The survey results were recorded either on a PHP app or on a hybrid Ionic app. The data were then summarized and visualized on a dashboard app. Depending on their rights, project managers or ordinary employees could only view a limited number of the results. Authentication worked via Microsoft 365 and the survey results must be comparable with the previous quarter or the previous year. The histories were gradually migrated from Sql-DB to a NoSql-DB (MongoDB).
- released a teamsurvey dashboard with NodeJS, TypeScript, GraphQL and Angular
- implemented components with Angular Material Library
- developed features for it as side project: solved bugs, adding important features after initial release
- supported migration to mono repo with nx
- improved architecture documentation by applying arc42 template
Other achievements:
- released a Spring Boot (Spring Data), Angular and an Electron desktop POC for qualifying standards for construction industry in 6 weeks
- released a text mining POC based on React, Ant Design and Spring Boot (Spring Data)
Part-Time Developer Jan 2015 - Apr 2019
I was a part-time developer for various customers across different industries. My main contributions are as follows.
Frontend Engineer at Docler Holding May 2021 - Jun 2021 React/Redux - Remote
- migrated PHP code to react components
- Improved code qualities by refactoring and removing ESLint warning
- Added notification via Websockets subscriptions and Swagger OpenAPI generation
- Added other features and unit tests with ReactJS, Redux, Hooks and React Testing Library
- Communicated with other frontend and backend developers, in order to apply agile practices
- built widgets and components
Internship at BMW Apr 2018 - Oct 2018 React/Redux - Munich
- Goal: Implementation of an evaluation tool for the assessment of BMW in-car modules. Text-to-speech was also used to measure the degree of driver distraction in comparison with operating a touchscreen
- Description: The tool was used to evaluate the individual aspects of BMW cars. Text-to-speech was also used. Finally, a study was conducted with 6 participants to measure the degree of driver distraction in comparison with operating a touchscreen
- developed features for Node, SocketIO, React/Redux tablet application for evaluation of in-car modules
- added features and tests with react-testing-library and Devextreme React
- conducted an in-car study with the app and 6 participants
Working student at Nuance Apr 2017 - Feb 2018 React,Redux - Ulm
- Goal: Reimplementation of a React frontend
- Description: React should replace the original app with Jquery. In addition, the machine-human interaction with speech should be simplified on the interface. This includes radio, navigation, etc.
- revamp of in-car user interface from jQuery to React/Redux
- added features and tests with react-testing-library
- Rebuilt a React frontend that decreased page load times to below half a second
- configuring WebPack for React bundling
Other achievements at BMW, Würth, eXXcellent solutions, ECS and private projects:
Skills & Expertise
These are languages, tools, and practices to which I have had exposure over the past years. Those things which enjoy routine usage in my daily work are denoted with a † symbol.
Programming Languages
Java†,NodeJS†, JavaScript†, TypeScript†, HTML†, CSS†,
Frameworks & APIs
Spring Boot†, JUnit 5†, MERN, webpack, tailwindcss, MEAN,NodeJS,Swagger,REST, TestNG†, Rest-Assured†, JHipster†, Angular†, RxJS†, Mockito†, Jasmine†, Cypress†, NGRX†,
Spring Data†, JUnit 5†, MERN, webpack, tailwindcss, MEAN,NodeJS,Swagger,REST, TestNG†, Rest-Assured†, JHipster†, Angular†, RxJS†, Mockito†, Jasmine†, Cypress†, NGRX†,
React†,
react-testing-library†,
Redux†, ant-design, Angularjs, ExtJS, Ionic, Electron†, Mongock, GraphQl, Dropwizard, Mapstruct, Flyway, Liquibase†,
Other
Hibernate†,Test Driven Development†, Jenkins†, Mongoose, Gitlab CI†, Docker†, EC2†, Heroku†, Netlify†, Bitbucket†, Oracle, Postgres, MySql, Derby
Git†, IntelliJ IDEA†
Education
University of Ulm, M.S. in Software Engineering, 2016 - 2018
University of Ulm, B.S. in Computer Science, 2011 - 2015
Languages
English (fluent), German (business fluent)
Interests
Value investing since Nov. 2021 and reading books