Skip to content

Projects

A record of my learning and practice in software development, Java technologies, and cloud computing.

Tech Stack

Programming Languages

  • Backend: Java, Python ... (Focus on Java)
  • Frontend: JavaScript, TypeScript, HTML, CSS ...

Backend

  • Spring Framework:
  • Spring Boot
  • Spring Security
  • Spring MVC
  • Spring Cloud
  • Spring AOP
  • APIs and Communication:
  • RESTful APIs
  • Netflix Eureka (Service Discovery)
  • Feign Client (Declarative REST Client)
  • RabbitMQ (Message Queue)
  • Kafka (Stream Processing and Messaging)
  • OAuth 2.0 (Authorization Framework)
  • JWT (JSON Web Token for Authentication)

  • Build and Dependency Management:

  • Maven, Lombok

Frontend

  • React
  • Angular

Database

  • Relational Databases: MySQL
  • NoSQL Databases: MongoDB, Redis, Elasticsearch
  • ORM: Hibernate, Spring Data JPA

Deployment

  • Frontend
  • AWS Amplify: Ideal for deploying static web applications or single-page applications (SPA) built with frameworks like React, Angular, Vue.js, or simple HTML/CSS/JS.
  • Backend
  • Compute:
    • EC2 (Elastic Compute Cloud)
    • ECS (Elastic Container Service): ECS running Dockerized Spring Boot containers
  • Storage:
    • RDS (Relational Database Service)
    • S3 (Simple Storage Service)
  • Cloud Service:
  • AWS:
    • Networking: Route 53, CloudFront.
    • Monitoring: CloudWatch
    • Scaling: Auto Scaling Group
  • Google Cloud
  • Containerization: Docker

Testing

  • Backend:
  • Unit Testing
    • JUnit 5
  • Mocking
    • Mockito
  • Code Coverage
    • Jacoco
  • Frontend:
  • React:
    • Jest' library: report
    • React testing library: component
  • Angular (built-in):
    • Jesmine: Unit Testing
    • Karma: Test Runner

Monitoring

  • Backend:
  • System log:
    • Spring Boot Actuator: Health checks, application metrics, and logs for microservices.
    • ELK Stack: Centralized logging and visualization for backend logs.
  • Active log:
    • AWS CloudWatch: Real-time log aggregation and monitoring for backend services.
  • Frontend:
  • Aws Ampify: Monitoring of frontend applications, including deployment status, performance metrics, and error tracking.

SDLC(Software Development Life Cycle)

  • Version Control: Git, GitHub
  • CI/CD: Jenkins
  • Task and project management: Jira, Trello
  • Development Tools: IntelliJ, VS Code, Linux, MySQL Workbench
  • Operating Systems:
  • Linux
  • MacOS

SDLC Workflow

graph TD
    A[Write Code] --> B[Commit to Branch]
    B --> C[Create Pull Request]
    C --> D[Code Review]
    D -->|Approved| E[Merge to Main Branch]
    E --> F[Jenkins Pipeline Detects Merge]
    F --> G[Jenkins Build and Test Application]
    G --> H[Test by QA Team]
    H -->|Pass| I[Build Docker Image]
    I --> J[Push to ECR]
    J --> K[Deploy to ECS on AWS EC2]
    D -->|Request Changes| C
    H -->|Fail| G