- Over 5 years of experience as a full stack Web Developer, creating Single Page Web applications with either React or Angular as front end and Java Spring as back end.
- Proficient in developing Single Page Application (SPA) using Angular and React.js.
- Created Single page applications with Angular using TypeScript to create Directives, Components, Services, Pipes, Observables, Reactive/Template driven forms, and Router for multiple components utilizing Router Guards and Navigation.
- Created Single page applications with React using Hooks, redux for stateful management; or using previous React state object plus lifecycle for component's internalize stateful management. Used react - router for routing.
- Expertise in open source libraries like Angular Material and redux-thunk for customized needs.
- Used CSS grid, CSS flexbox, and Media queries to do responsive web design that fits all users and devices from desktop to tablet and mobile phone.
- Experienced in Server-Side programing using Node.js and NPM modules like Express.js, CORS, BODY-parser, Mongoose, and Json Web Token.
- Experienced in developing RESTful web API using Node.js, Express.js, and testing APIs using Postman.
- Experienced in database systems like MySQL, SQL Server, and NoSQL database MongoDB.
- Experienced in using the NPM packages like MongoDB and Mongoose to integrate MongoDB into web applications and performing CRUD and Aggregation operations on collections.
- Experienced in using Java Spring JPA with Hibernate to integration H2, MySQL, or SQL Server into back end web applications and performing CRUD and aggregation operations on database.
- Extensive knowledge on Java SE including Collection, Threading, and Core Java.
- Good experience on Java EE technologies such as Servlet and JDBC.
- Strong programming skills in designing and implementation of multi-tier applications using web-based technologies like Spring Boot.
- Skilled with Spring Core such as Dependency Injection, Annotations, and Configurations.
- Extensively worked on Spring JDBC, Spring Hibernate ORM, and JPA.
- Strong experience using MAVEN 3.0 Build System.
- Good experience in developing applications with RESTFul Web Services.
- Involved in all stages of Software Development Life Cycle (SDLC) as well as working in AGILE Methodologies based development environment, participating in spring/iterations and SCRUM meetings.
- Basic idea in cloud computing and Amazon Web Services (AWS) Google Cloud Platform.
Tools: Visual Studio code, Jupyter Notebook
Version Control: GIT, GitHub
Nodejs, MongoDB, AWS, MySQL, MS: SQL
Frameworks: Angular Material, Spring, Spring Boot, DAO in Spring Framework, Angular, Hiberante (ORM)
Debugging Tools: Jest, Mocha
Operating System: Windows, Unix/Linux, MAC OS X
Confidential, Collingswood, NJ
Full Stack Developer (Java/ReactJS)
- Developed the backend server with Spring Boot, involving different layers of the application including entity/model, DAO/repository, Controller, Service, Business, and Persistence.
- Involved in creating and designing database, and connect database with Hiberante (ORM),
- Involved in authentication process. Configured Spring for customized JwtTokenProvider, incorporated JwtFilter, yet not conflicting global CORS requirement.
- Used JUnit testing for quality assurance.
- Developed RESTful API for front end API usages.
- Started the front end application with React and used state object React Class Component for general stateful management.
- Implemented redux to resolve application’s global state management, especially for user login status.
- Enhanced user experience with React’s life cycle methods, including componentDidMount, shouldComponentUpdate, componentWillUnmount, etc.
- Used React 16.8’s new feature Hooks to rewrite/re-factor front-end application and truncated down 30% codes (better maintenance).
- Developed the web application with the newest React features centralized with Hooks.
- Later re-implemented the front end authentication with native React Context and used React.useContext as syntactic sugar.
- Incorporated with @Reach/Router to handle routing.
- Used axios for http requests and attached Bearer token for secure usage of API.
- Used node/sass for quick development.
- Basically, replace all React class component with functional component. For stateful management, replaced with new Hooks like useState, useEffect, useReducer, and useRef.
- Practiced latest ES6 features including let, const, and arrow function.
- Used AzureDevOps to track progress of the project.
- Responsible for design and maintenance of the Git repositories.
- Participated in Agile methodology for application development and SCRUM meeting every day.
Confidential, New York, NY
- Involved in most phases of Software Development Life Cycle (SLDC) with Agile and started with Scrum Sessions every day.
- On server side, used Spring MVC with Hibernate to connect with Microsoft SQL Server.
- Deliberately used @Annotation for ease of ORM to map POJO with actual database.
- Designed and created DAO, Model, and Component for consistency
- Prefer to use Hibernate Criteria API for query database and perform other CRUD operations as much as possible.
- Used customized JwtFilter for user authentication but also allowed global CORS.
- Developed front end website with Angular 6.
- Familiarized with Angular CLI for building and creating component, services, modules, and initialized routing functionalities.
- Created, adjusted, and maintained reusable UI Components with Angular.
- Used various directives including structure directives *NgFor and *NgIf, also incorporated some group sibling elements like ng-container and ng-template. Also used attribute directive like NgClass.
- Implemented @input, @output, and @Viewchild for local for simple component communication only (always prefer communication with services) or special case like need scrolling information.
- Had form validation like template-driven form for login page simple validations. Used react form for more complex like register validations. (Ensure email, confirm passwords matched)
- Incorporated rxjs with Http Client Module for all asynchronous backend requests (GET, POST, PUT, and DELETE).
- Beautified and unified the front-end styles with angular material along with CSS3.
- Created from scratch in Typescript for most components with Angular 6 framework in mind.
- For routing, relied on router guard to redirect unauthorized user back to login page.
- For front end authentication, created a service purely for it. Make it could load localStorage’s token at initializing process, and keep track of it throughout the app.
- Used git for version control and collaboration.
- Participated in Agile methodology for application development, had SCRUM meeting every day.
Environment: VS code, Git, Spring, Spring Boot, J2EE, Hibernate 4.x, Junit, RESTful, Maven, SQL Server, Angular, HTML5, CSS3, SASS, and TypeScript.
Confidential, Boston, MA
- Used Spring MVC with Hibernate framework.
- Designed POJO to solve ORM with the Microsoft SQL Server database.
- Used Hibernate HQL to query database and performed CRUD operations.
- Integrated customized JwtFilter for authentication.
- Planned the front end single page application with React.
- Incorporated react-redux for global state management, mainly for authentication process, and added redux-thunk for asynchronous handling.
- Navigated with react-router.
- For each component, managed state with React’s internal state object, setState (asynchronous) as minimal as possible.
- Utilized React’s life cycle, including compondentDidMount, shouldComponentUpdate, and componentWillUnmount, etc for performance boosting and bug fixing.
- Used react-bootstrap for styling and responsive web design.
Environment: Spring MVC, Hibernate, React, react-redux, redux-thunk, react-router, and react-bootstrap.
Confidential, Boston, MA
Full Stack Developer
- Developed a full stack application with express framework in node.js environment.
- Parsed html request with express middlewares including body-parser , cookie-parser , cors , and morgan.
- Implemented passport.js as the authentication middleware for node.js.
- Involved in designing and implementing models/schemas in mongoose to connect with mongoDB.
- Used ajax for partially update webpage for better and smoother user experience.
- Manage dependencies/packages with package manager npm.
- Followed Agile and Scrum software development methodology.