Wen-Fu Yang
Java Backend Developer
Personal Information
Dallas, TX
**@************.***
Professional Summary
●Having about 6 years of experience in designing, developing, and implementing core Java/J2EE applications.
●Hands on experience implementing Applications using Java 1.8 Lambdas, Functional Interfaces and integrated Stream API into the Collections API, to perform bulk operations on collections.
●Good Knowledge in Java Technology and strong understanding in Object oriented concepts with strong understanding of Collections, Multithreading, Event handling, Exception handling and Generics.
●Full System Development Life Cycle (SDLC) experience including: gathering requirements, analysis, design, development, documentation, deployment and testing.
●Worked with various frameworks in Spring such as Spring MVC, Spring AOP, Spring transaction Management, Spring Data, Spring JPA, Spring JDBC, Spring Boot and Spring Cloud.
●Strong experience in designing applications using MVC Architecture, Object Oriented Analysis and Design (OOAD).
●Developed Spring Restful/Microservices and implemented Spring Restful/Micro Services and implemented Spring Eureka, Ribbon as part of Services Discovery using Apache Axis.
●Implemented web application based on Spring framework using MVC design patterns.
●Experience in Microservices development using Spring Boot and Spring Cloud.
●Hands on experience deploying Microservices components such as Zuul API Gateway, Eureka, Ribbon, Hystrix and Spring Cloud OpenFeign on AWS.
●Used Spark and Hadoop ecosystem to enable fast and scalable big data processing and analytics on distributed systems.
●Experienced in designing, managing, and scaling Kubernetes clusters with expertise in containerization, cloud platforms, and automation.
●Experienced in designing, optimizing, and managing high-performance Elasticsearch clusters for efficient search operations.
●Developed Spring Boot based Microservices by consuming Amazon RDS and creating Elastic Beanstalk Applications in the AWS admin console.
●Experienced in designing, implementing, and managing Azure solutions, with expertise in infrastructure-as-a-service, platform-as-a-service, security, monitoring, and automation.
●Experience in writing Web Services using REST in distributed web application development environment.
●Hands on experience in developing Single Page Application using NodeJS and React.
●Knowledge of Node.js, Express.js, MongoDB and MySQL in backend development.
●Experience in Spring JDBC template and Spring Data JPA for performing Database Transactions. Expertise in Java and J2EE - Servlets, JSP, Spring, Hibernate and JPA.
●Experience in Spring Task/Cron for automating tasks and scheduling them to run at defined times.
●Created connections to database using Hibernate session Factory, using Hibernate APIs to retrieve and store data to the database with Hibernate transaction control.
●Extensive Experience in Data Modeling, Design, Development, Implementation and Administration of Database systems using Oracle, MYSQL, SQL SERVER, Apache Cassandra and MongoDB to manage extremely large data sets.
●Experience in GraphQL for writing efficient queries to retrieve data from an API.
●Extensively worked with Hibernate for Object/Relational mapping, transparent persistence onto the Oracle and MySQL database.
●Composed and executed MongoDB scripts and queries to fetch and test data from NoSQL databases.
●Experience in automating the infrastructure in AWS using web services and using AWS with both EC2, S3 and DynanoDB services for application backup and recovery.
●Involved in multi-tiered J2EE design utilizing Spring Inversion of Control (IOC), AOP, MVC and Hibernate.
●Experience of working with enterprise application development IDE like IntelliJ, Eclipse, and Spring Tool Suite.
●Hands on experience using Apache Kafka for messaging services and good experience in provisioning Kafka clusters.
●Experience using Active MQ, Rabbit MQ and Kafka to implement messaging and queuing requirements.
●Experience in using Splunk to search and analyze data in real-time.
●Experience in using SonarQube for continuous inspection of code quality.
●Adept with Junit, TestNG and Mockito for performing Unit Testing and determining the application functionality and comprehensive knowledge of Maven for project build and Log4J for logging.
●Knowledge of handling messaging services using Apache Kafka.
●Good experience in working with web servers like Tomcat 8 and JBoss.
●Experience using Maven, Jenkins and Log4j tools.
●Extensive experience in Software Configuration Management using Version Control tools such as
GIT and responsible for various software version releases.
●Have excellent problem solving, proactive thinking, analytical, programming skills, communication skills, work ethics and the ability to work well in a team or individual environment.
Technical skills
Programming Languages
Java, Java Script, CSS, HTML, C++, Kotlin
J2EE Technologies
JSP, Servlets, JMS
Frameworks
Spring, Spring Boot, Spring MVC, Spark, Hadoop, Typescript, React.js, Node.js, Express.js, Hibernate, Junit, TestNG, Mockito, Kubernetes
Application/Web Servers
Apache Tomcat, WebLogic
IDE/ Tools
Eclipse, IntelliJ, Git, Maven, Jenkins, Splunk
Database and Tools
Apache Cassandra, Oracle, SQL SERVER, H2, MySQL, PostgreSQL, GraphQL, MongoDB, Redis
Operating System
Windows, Linux, Mac OS
Project Management Tools
Jira, GitHub
Employment History
Cisco, Dallas, TX Mar 2022 - Present
Role: Java Developer
Project Description – Developed an inventory management system, leveraging Java, Spring Boot, and the MVC architecture to streamline stock control, product tracking, and warehouse management processes deployed on Azure. Utilized Spring Batch and JDBC for efficient batch processing, data manipulation, and seamless interaction with databases, significantly improving system reliability and performance. Developed and integrated RESTful APIs to enable real-time data exchange, facilitating cross-platform functionality and enhancing the user experience. The system effectively handles complex features such as real-time inventory tracking, re-order level alerts, supplier/vendor management, reporting, and analytics, which has led to improved operational efficiency and reduced inventory costs.
Responsibilities:
●Involved in various phases of Software Development Life Cycle (SDLC) of the application like Requirement gathering, Design, Analysis, and Code implementation.
●Implemented the application using Spring IOC, Spring MVC, Spring Boot, Spring Batch.
●Developed Microservices using Spring Boot, Spring Security, and deployed on Azure.
●Implemented the associated business modules integration using Spring and Hibernate data mapping.
●Used Spring dependency injection, annotations and Spring MVC components to implement business layer and navigation part of application.
●Used Spring MVC to handle/intercept the user requests and used various controllers to delegate the request flow to the back-end tier of the application.
●Designed and developed the Endpoints (Controllers), Business (Service) Layer and DAO Layer.
●Used Spring Dependency Injection to set up dependencies between the objects.
●Hands on experience in development and implementation of ORM framework Hibernate with Spring Data access.
●Used Kotlin for backend development, with expertise in building scalable and efficient server-side applications, APIs, and microservices.
●Used Hibernate ORM framework as persistence engine to automate the mapping between Oracle Database and objects in Java and integrated it with Spring.
●Used Spring JPA repository and Native SQL for accessing data from database and created Hibernate POJO objects.
●Proficient in containerization, cloud platforms, and automation, with extensive experience in designing, managing, and scaling Kubernetes clusters.
●Implementing publish/subscribe message queue with Apache Kafka to make processing asynchronous, improve scalability, concurrency, and efficiency for whole system.
●Design and develop micro-components, microservices, and deploy them on cloud platform Azure using an automated process through services like Functions, VMs, Blob Storage, Azure Pipelines, ARM Templates, Virtual Networks, Subnets, and Network Security Groups.
●Used Apache Cassandra to handle large amounts of data across servers.
●Used MongoDB No-SQL database and set connection by using Hibernate to fetch data from the database and store data in the database.
●Composed and executed MongoDB scripts and queries to fetch and test data from NoSQL databases.
●Worked on Oracle to write Stored Procedures for complex inserts and updates in the database.
● Deployed the applications in Azure as Virtual Machines and created snapshots for the data that had to be stored in Azure Blob Storage.
●Consumed RESTful web service using HTTP protocol to retrieve data from different applications.
●Used Kafka stream platform to communicate between microservices.
●Responsible for implementing and managing Redis, a high-performance in-memory data store, to optimize data retrieval and caching for an inventory management system.
●Developed the Application Module using several design patterns like Singletons, Factory, DAO, Builders.
●Strong understanding of common API technologies, such as REST, Spring Boot and Micro Services.
●Responsible for debugging, writing test cases, performing unit testing, and integration testing.
●Used Junit, TestNG and Mockito framework for unit tests of application.
●Used Splunk to search, analyze and visualize the data gathered from the applications.
●Worked on Jira for user requirements and used Jira as bug tracking tools.
●Used Git as a version control system to manage the projects.
●Designed a simple web page with HTML component to exhibit internal testing tool on DEV/QA environment.
●Used Jenkins to automatically build and deploy the application on Azure.
●Create complex JIRA workflows including project workflows, screen schemes, permission scheme and notification schemes in JIRA.
Environment: –Apache Kafka, AWS, Code Deploy, DAO, EC2, Hibernate, ORM, RESTful API, Mockito, Micro Services, S3, Spring JPA repository, Spring IOC, Spring MVC, Spring Boot, Spring Batch, Spring Security, Spring MVC, Unit testing, Integration testing, Splunk
Verizon, Irving, TX Jan 2021 – Feb 2022
Role: Java Developer
Project Description – Developed a comprehensive Payment System, employing a Microservices architecture along with Spring Boot and Spring MVC, enabling efficient, secure, and reliable payment transactions. Leveraged Spring Security to implement robust authentication and authorization mechanisms, enhancing the system's security and protecting sensitive user and transaction data. Utilized Spring JPA and MySQL for seamless data management, performing complex queries and transactions, thus ensuring data consistency and integrity. The system incorporates key features such as real-time payment processing, secure user authentication, transaction history tracking, and payment gateway integration, significantly improving user convenience and financial transaction efficiency.
Responsibilities:
●Involved in the analysis, design, development and testing of web-based applications using Java/J2EE.
●Implemented the application with multiple Web layers with Spring MVC like design Service Layer for Business Logic Layer.
●Designed and developed the Endpoints (Controllers), Business (Service) Layer and DAO Layer.
●Used Spring Boot, which is radically faster in building cloud based Micro services with very less configuration.
●Used Spring Security to control the Authentication and Authorization to access the resources within the application. Implement OAuth2.0 and JWT Tokens.
●Implemented REST Microservices using spring boot. Generated Metrics with method-level granularity and Persistence using Spring AOP and Spring Actuator.
●Developed the application using Java and implemented its features like Lambda Expression, Streams.
●Implemented Spring Dependency Inject (DI) for Spring Java Beans wiring and implementing Inverse of Control (IoC).
●Implemented Hibernate, Spring JPA as ORM framework for mapping object-oriented domain model to Database Used SVN for version control.
●Develop various modules/features to support attributes using Spring Boot, Micro services, Web services.
●Developed the Persistence Layer using Hibernate. Used Hibernate annotations and created Hibernate POJOs.
●Process the JSON requests according to different types of modules, actions and request data.
●Created a pipeline from Mongo DB cluster by configuring Mongoose Connector, to sync with multiple sources like Elastic Search or another Mongo DB.
●Created tables and worked on MySQL to write Stored Procedures functions for complex inserts and updates and updates in the database.
●Deploying the applications using Docker container services and building continuous integration (CI) and continuous deployment (CD) pipeline using Jenkins with GitHub.
●Developed application code using Eclipse IDE and configured with Maven and JUnit. Used Maven to compile and generate WAR and JAR files.
●Worked on Log4J to validate functionalities and Mockito framework.
●Development of cloud hosted web applications and REST APIs using Spring Boot with embedded Tomcat.
●Used Junit and TestNG framework for white box testing of applications. Created test conditions/test data.
●Implemented build scripts for compiling, building and deploying the application on server using Maven and Jenkins.
●Experience of application development and deployment in Window, Linux, Mac.
●Version Control done using SVN/Git.
Environment: – Docker container, Java/J2EE, Jenkins, JUint, Mockito, Mongo DB, Log4J, Maven, MySQL, REST API, Spring MVC, Sprint Boot, Spring Security, Spring JPA, Spring Dependency Inject, Spring Java Beans, Tomcat, Inverse of Control
WeThink Software, New Taipei City, Taiwan April 2017 – June 2020
Role: Software developer
Project Description – Designed web applications for small business, development focusing on client needs, performance and scalability using Agile. Developed features like subscribe page, about page and custom home page using Servlets, JSP, JavaScript, HTML5, CSS3 and XML. Used JUnit to test the application and Log4j to log error messages.
Responsibilities:
●Followed Agile methodology (Stand up meetings, retrospective meetings, sprint development and Pair programming).
●Developed the controller servlet to handle the requests and responses.
●Developed JSP pages with MVC architecture using Spring MVC, Servlets and Simple tags.
●Configured Maven dependencies for application building processes.
●Optimized the source code and queries to improve performance using Hibernate.
●Assisted other team members with various technical issues including JavaScript, CSS, JSP and Server related issues.
●Designed and developed a web client using Servlets, JSP, JavaScript, HTML5, CSS3 and XML.
●Used Junit and TestNG to unit test the modules andLog4j for logging error/debug messages.
●Used Jenkins as a dashboard to deploy the application on Apache Tomcat Server.
●Designed and developed User Interface, application modules and business components using JSPs, Servlets, Java, HTML and JavaScript, testing and deploying them on Server.
●Used Git, the version control tool for code commits and updates.
●Worked on many requests using Node.js to interact with backend services.
●Develop the landing website UI with React and separated it into reusable React Components.
Environment: – Agile, Apache Tomcat Server, React, CSS, Git, HTML, Java, JavaScript, Jenkins, JSP, JUnit, Log4j, Node.js, Maven, Servlets, Spring MVC, XML
Education
Masters in Computer Science
University of Texas, Richardson, Texas
Bachelors in Engineering
Southern Taiwan University of Science and Technology, Tainan, Taiwan