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