{"id":15590500,"url":"https://github.com/rubyhcm/rubyhcm","last_synced_at":"2026-03-17T13:14:13.195Z","repository":{"id":187730785,"uuid":"677463541","full_name":"rubyhcm/rubyhcm","owner":"rubyhcm","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-11T04:40:24.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-01T04:08:22.860Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubyhcm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-11T16:27:16.000Z","updated_at":"2025-05-11T04:40:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"47a7a9ca-55fc-47c6-a841-1ddd7b99951b","html_url":"https://github.com/rubyhcm/rubyhcm","commit_stats":null,"previous_names":["rubyhcm/rubyhcm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rubyhcm/rubyhcm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyhcm%2Frubyhcm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyhcm%2Frubyhcm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyhcm%2Frubyhcm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyhcm%2Frubyhcm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubyhcm","download_url":"https://codeload.github.com/rubyhcm/rubyhcm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyhcm%2Frubyhcm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30624453,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T11:26:08.186Z","status":"ssl_error","status_checked_at":"2026-03-17T11:24:37.311Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T23:22:19.106Z","updated_at":"2026-03-17T13:14:13.183Z","avatar_url":"https://github.com/rubyhcm.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://emojis.slackmojis.com/emojis/images/1531849430/4246/blob-sunglasses.gif?1531849430\" width=\"100\"/\u003e\n  \u003ch1\u003eHey there! I'm Loi Nguyen\u003c/h1\u003e\n  \u003cp\u003e\u003cem\u003eBackend Developer with a passion for elegant solutions\u003c/em\u003e\u003c/p\u003e\n  \n  [![Blog](https://img.shields.io/badge/Blog-phucloi.dev-FF4088?style=for-the-badge\u0026logo=hugo\u0026logoColor=white)](https://www.phucloi.dev/)\n  [![Profile](https://img.shields.io/badge/Profile-profile.phucloi.dev-4285F4?style=for-the-badge\u0026logo=google-chrome\u0026logoColor=white)](https://profile.phucloi.dev/)\n  \n  \u003cimg src=\"./images/vietnam\" width=\"20\"/\u003e \u003cb\u003eHo Chi Minh City, Vietnam\u003c/b\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e✨ Welcome to my Developer Universe! ✨\u003c/h3\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eWhere code meets creativity and problems find their solutions\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable border=\"0\" cellspacing=\"0\" cellpadding=\"10\" style=\"border-collapse: separate; border-spacing: 0 15px;\"\u003e\n    \u003ctr\u003e\n      \u003ctd width=\"50%\" align=\"center\" style=\"background-color: #f5f5f5; border-radius: 10px; padding: 20px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);\"\u003e\n        \u003ch3\u003e🚀 What I Share Here\u003c/h3\u003e\n        \u003cul align=\"left\" style=\"list-style-type: none; padding-left: 0;\"\u003e\n          \u003cli\u003e📊 \u003cb\u003ePractical web development\u003c/b\u003e insights from real-world projects\u003c/li\u003e\n          \u003cli\u003e🧭 \u003cb\u003eBeginner-friendly guides\u003c/b\u003e to navigate the tech landscape\u003c/li\u003e\n          \u003cli\u003e🛠️ \u003cb\u003eTechnical solutions\u003c/b\u003e to common Ruby on Rails and Go challenges\u003c/li\u003e\n          \u003cli\u003e✅ \u003cb\u003eBest practices\u003c/b\u003e I've learned along my development journey\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n      \u003ctd width=\"50%\" align=\"center\" style=\"background-color: #f5f5f5; border-radius: 10px; padding: 20px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);\"\u003e\n        \u003ch3\u003e💡 My Philosophy\u003c/h3\u003e\n        \u003cp align=\"left\"\u003e\u003cb\u003eI believe in:\u003c/b\u003e\u003c/p\u003e\n        \u003cp align=\"left\"\u003e✨ \u003cb\u003eClean code\u003c/b\u003e that speaks for itself\u003c/p\u003e\n        \u003cp align=\"left\"\u003e🏗️ \u003cb\u003eThoughtful architecture\u003c/b\u003e that scales\u003c/p\u003e\n        \u003cp align=\"left\"\u003e🔄 \u003cb\u003eContinuous learning\u003c/b\u003e as a lifestyle\u003c/p\u003e\n        \u003cp align=\"left\"\u003e🌱 Every line of code should solve a problem elegantly while being maintainable for the future.\u003c/p\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n```ruby\n class Loi \u003c Developer\n   def initialize\n     @name       = 'Loi Nguyen'\n     @birthday   = 1995\n     @email      = 'phucloi.dev@gmail.com'\n     @educations = [\n       { name: 'Ho Chi Minh City University of Technology and Education', GPA: 7.0 },\n       { name: 'VNUHCM - University of Information Technology', GPA: 8.5 },\n       { name: 'English', level: 'B2' }\n     ]\n     @hobbies    = ['Reading', 'Music', 'Coding']\n   end\n\n   def current_location\n     '3 Ward, Go Vap District, Ho Chi Minh City'\n   end\n\n   def skills\n     {\n       # Frontend Technologies\n       frontend: [\n         'Vue.js', 'Tailwind CSS'\n       ],\n\n       # Backend Technologies\n       backend: [\n         'Ruby On Rails', 'Go'\n       ],\n\n       # Database Technologies\n       database: {\n         relational: ['MySQL', 'PostgreSQL'],\n         nosql: ['Redis', 'Firebase'],\n         messaging: ['Kafka', 'RabbitMQ']\n       },\n\n       # Deployment \u0026 CI/CD\n       deployment: [\n         'GitLab CI/CD', 'CircleCI',\n         'GitHub Actions', 'Rancher'\n       ],\n\n       # AWS Services\n       aws: [\n         'DynamoDB', 'RDS', 'AuroraDB', 'S3',\n         'CloudFormation', 'Codebuild', 'CodePipeline',\n         'IAM', 'EC2', 'SES'\n       ],\n\n       # Google Cloud Platform\n       gcp: [\n         'VM instance', 'Cloud Storage'\n       ],\n\n       # Third-party Services\n       third_party: [\n         'Ory Hydra', 'Ory Kratos',\n         'Ory Oathkeeper', 'Ory Keto'\n       ],\n\n       # Other Tools \u0026 Technologies\n       others: [\n         'Sidekiq', 'Elasticsearch', 'Unit Test',\n         'Docker', 'Sentry', 'Swagger', 'CRM (Brevo)'\n       ]\n     }\n   end\n\n   def main_stack\n     {\n       backend: ['Ruby On Rails', 'Go'],\n       database: ['MySQL', 'PostgreSQL']\n     }\n   end\n end\n```\n\n## 🛠 Technologies and tools\n\n\u003ca name=\"learning-now\"\u003e\u003c/a\u003e\n\n#### 🛠 Techs\n\n\u003cp\u003e\n  \u003cimg alt=\"Ruby on Rails\" src=\"https://img.shields.io/badge/-Ruby_on_Rails-CC0000?style=flat-square\u0026logo=ruby-on-rails\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"RSpec\" src=\"https://img.shields.io/badge/-RSpec-DC343B?style=flat-square\u0026logo=ruby\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Go\" src=\"https://img.shields.io/badge/-Go-00ADD8?style=flat-square\u0026logo=go\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Vue.js\" src=\"https://img.shields.io/badge/-Vue.js-4FC08D?style=flat-square\u0026logo=vue.js\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Tailwind CSS\" src=\"https://img.shields.io/badge/-Tailwind_CSS-38B2AC?style=flat-square\u0026logo=tailwind-css\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"MySQL\" src=\"https://img.shields.io/badge/-MySQL-4479A1?style=flat-square\u0026logo=mysql\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"PostgreSQL\" src=\"https://img.shields.io/badge/-PostgreSQL-336791?style=flat-square\u0026logo=postgresql\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Redis\" src=\"https://img.shields.io/badge/-Redis-DC382D?style=flat-square\u0026logo=redis\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Kafka\" src=\"https://img.shields.io/badge/-Kafka-231F20?style=flat-square\u0026logo=apache-kafka\u0026logoColor=white\" /\u003e  \n  \u0026nbsp;\n  \u003cimg alt=\"RabbitMQ\" src=\"https://img.shields.io/badge/-RabbitMQ-FF6600?style=flat-square\u0026logo=rabbitmq\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Sidekiq\" src=\"https://img.shields.io/badge/-Sidekiq-51B749?style=flat-square\u0026logo=sidekiq\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Elasticsearch\" src=\"https://img.shields.io/badge/-Elasticsearch-005571?style=flat-square\u0026logo=elasticsearch\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Swagger\" src=\"https://img.shields.io/badge/-Swagger-85EA2D?style=flat-square\u0026logo=swagger\u0026logoColor=black\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"MVC\" src=\"https://img.shields.io/badge/-MVC-0095D5?style=flat-square\u0026logo=microsoft\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"REST API\" src=\"https://img.shields.io/badge/-REST_API-009688?style=flat-square\u0026logo=rest\u0026logoColor=white\" /\u003e\n\u003c/p\u003e\n\n#### 🛠 Deployments \u0026 DevOps\n\n\u003cp\u003e\n  \u003cimg alt=\"Docker\" src=\"https://img.shields.io/badge/-Docker-46a2f1?style=flat-square\u0026logo=docker\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"GitLab CI/CD\" src=\"https://img.shields.io/badge/-GitLab_CI/CD-FCA121?style=flat-square\u0026logo=gitlab\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"GitHub Actions\" src=\"https://img.shields.io/badge/-GitHub_Actions-2088FF?style=flat-square\u0026logo=github-actions\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"CircleCI\" src=\"https://img.shields.io/badge/-CircleCI-343434?style=flat-square\u0026logo=circleci\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Rancher\" src=\"https://img.shields.io/badge/-Rancher-0075A8?style=flat-square\u0026logo=rancher\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Git\" src=\"https://img.shields.io/badge/-Git-F05032?style=flat-square\u0026logo=git\u0026logoColor=white\" /\u003e\n\u003c/p\u003e\n\n#### 🛠 Cloud Services\n\n\u003cp\u003e\n  \u003cimg alt=\"AWS\" src=\"https://img.shields.io/badge/-AWS-232F3E?style=flat-square\u0026logo=amazon-aws\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"DynamoDB\" src=\"https://img.shields.io/badge/-DynamoDB-4053D6?style=flat-square\u0026logo=amazon-dynamodb\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"RDS\" src=\"https://img.shields.io/badge/-RDS-527FFF?style=flat-square\u0026logo=amazon-rds\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"S3\" src=\"https://img.shields.io/badge/-S3-569A31?style=flat-square\u0026logo=amazon-s3\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"EC2\" src=\"https://img.shields.io/badge/-EC2-FF9900?style=flat-square\u0026logo=amazon-ec2\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Google Cloud\" src=\"https://img.shields.io/badge/-Google_Cloud-1a73e8?style=flat-square\u0026logo=google-cloud\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Render\" src=\"https://img.shields.io/badge/-Render-007BFF?style=flat-square\u0026logo=render\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Nginx\" src=\"https://img.shields.io/badge/-Nginx-009639?style=flat-square\u0026logo=nginx\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Puma\" src=\"https://img.shields.io/badge/-Puma-FFD43B?style=flat-square\u0026logo=puma\u0026logoColor=222222\" /\u003e\n\u003c/p\u003e\n\n#### 🛠 Third-party Services\n\n\u003cp\u003e\n  \u003cimg alt=\"Ory\" src=\"https://img.shields.io/badge/-Ory_Suite-FF4F64?style=flat-square\u0026logo=ory\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"SendGrid\" src=\"https://img.shields.io/badge/-SendGrid-1A82E2?style=flat-square\u0026logo=sendgrid\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Brevo\" src=\"https://img.shields.io/badge/-Brevo-3333FF?style=flat-square\u0026logo=brevo\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"MeiliSearch\" src=\"https://img.shields.io/badge/-MeiliSearch-6B46C1?style=flat-square\u0026logo=meilisearch\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Postmark\" src=\"https://img.shields.io/badge/-Postmark-4A667B?style=flat-square\u0026logo=postmark\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Sentry\" src=\"https://img.shields.io/badge/-Sentry-362D59?style=flat-square\u0026logo=sentry\u0026logoColor=white\" /\u003e\n\u003c/p\u003e\n\n## 📖 What I am currently learning / improving on\n\n\u003ca name=\"learning-next\"\u003e\u003c/a\u003e\n\n\u003cp\u003e\n  \u003cimg alt=\"MongoDB\" src=\"https://img.shields.io/badge/-MongoDB-47A248?style=flat-square\u0026logo=mongodb\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Firebase\" src=\"https://img.shields.io/badge/-Firebase-FFCA28?style=flat-square\u0026logo=firebase\u0026logoColor=black\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Azure\" src=\"https://img.shields.io/badge/-Azure-0089D6?style=flat-square\u0026logo=microsoft-azure\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"Digital Ocean\" src=\"https://img.shields.io/badge/-Digital_Ocean-0080FF?style=flat-square\u0026logo=digitalocean\u0026logoColor=white\" /\u003e\n  \u0026nbsp;\n\u003c/p\u003e\n\u003c!-- \u003cdiv style=\"display: flex; align-items: center;\"\u003e\n\u003c/div\u003e --\u003e\n\n## 🛠 Somethings make us better\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable border=\"0\" cellspacing=\"0\" cellpadding=\"10\" style=\"border-collapse: separate; border-spacing: 0 10px;\"\u003e\n    \u003ctr\u003e\n      \u003ctd width=\"50%\" align=\"center\" style=\"background-color: #f8f9fa; border-radius: 8px; padding: 15px; box-shadow: 0 2px 5px rgba(0,0,0,0.05);\"\u003e\n        \u003ch4\u003e⚡ Rails Resources\u003c/h4\u003e\n        \u003cul align=\"left\" style=\"list-style-type: none; padding-left: 0;\"\u003e\n          \u003cli\u003e🚂 \u003ca href=\"https://guides.rubyonrails.org/\"\u003eRails Guides\u003c/a\u003e - Official Rails documentation\u003c/li\u003e\n          \u003cli\u003e🔍 \u003ca href=\"https://awesome-ruby.com/\"\u003eAwesome Ruby\u003c/a\u003e - Curated list of Ruby libraries\u003c/li\u003e\n          \u003cli\u003e✅ \u003ca href=\"https://www.betterspecs.org/\"\u003eBetter Specs\u003c/a\u003e - RSpec best practices\u003c/li\u003e\n          \u003cli\u003e📝 \u003ca href=\"https://rails.rubystyle.guide/\"\u003eRuby Style Guide\u003c/a\u003e - Community-driven Ruby coding standards\u003c/li\u003e\n          \u003cli\u003e🔒 \u003ca href=\"https://rails-sqli.org/\"\u003eRails SQL Injection\u003c/a\u003e - Security guidelines\u003c/li\u003e\n          \u003cli\u003e🛡️ \u003ca href=\"https://rorsecurity.info/\"\u003eRoR Security\u003c/a\u003e - Rails security best practices\u003c/li\u003e\n          \u003cli\u003e📚 \u003ca href=\"https://thoughtbot.com/upcase\"\u003eUpcase by Thoughtbot\u003c/a\u003e - Ruby/Rails learning resources\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n      \u003ctd width=\"50%\" align=\"center\" style=\"background-color: #f8f9fa; border-radius: 8px; padding: 15px; box-shadow: 0 2px 5px rgba(0,0,0,0.05);\"\u003e\n        \u003ch4\u003e⚡ System Architecture\u003c/h4\u003e\n        \u003cul align=\"left\" style=\"list-style-type: none; padding-left: 0;\"\u003e\n          \u003cli\u003e🏗️ \u003ca href=\"https://microservices.io/\"\u003eMicroservices.io\u003c/a\u003e - Patterns for distributed systems\u003c/li\u003e\n          \u003cli\u003e📘 \u003ca href=\"https://studio.asyncapi.com/\"\u003eAsyncAPI\u003c/a\u003e - Design event-driven architectures\u003c/li\u003e\n          \u003cli\u003e📝 \u003ca href=\"https://12factor.net/\"\u003eThe Twelve-Factor App\u003c/a\u003e - Methodology for SaaS apps\u003c/li\u003e\n          \u003cli\u003e🔄 \u003ca href=\"https://www.martinfowler.com/articles/microservices.html\"\u003eMicroservices Guide\u003c/a\u003e - Martin Fowler's definitive article\u003c/li\u003e\n          \u003cli\u003e🧩 \u003ca href=\"https://docs.microsoft.com/en-us/azure/architecture/patterns/\"\u003eCloud Design Patterns\u003c/a\u003e - Solutions for common challenges\u003c/li\u003e\n          \u003cli\u003e📊 \u003ca href=\"https://www.dataintensive.net/\"\u003eDesigning Data-Intensive Applications\u003c/a\u003e - Systems architecture book\u003c/li\u003e\n          \u003cli\u003e🔍 \u003ca href=\"https://refactoring.guru/design-patterns\"\u003eDesign Patterns\u003c/a\u003e - Solutions to common problems\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd width=\"50%\" align=\"center\" style=\"background-color: #f8f9fa; border-radius: 8px; padding: 15px; box-shadow: 0 2px 5px rgba(0,0,0,0.05);\"\u003e\n        \u003ch4\u003e⚡ Go Resources\u003c/h4\u003e\n        \u003cul align=\"left\" style=\"list-style-type: none; padding-left: 0;\"\u003e\n          \u003cli\u003e🔷 \u003ca href=\"https://go.dev/doc/effective_go\"\u003eEffective Go\u003c/a\u003e - Writing clear, idiomatic Go code\u003c/li\u003e\n          \u003cli\u003e📚 \u003ca href=\"https://github.com/avelino/awesome-go\"\u003eAwesome Go\u003c/a\u003e - Curated list of Go frameworks and libraries\u003c/li\u003e\n          \u003cli\u003e🧪 \u003ca href=\"https://pkg.go.dev/testing\"\u003eGo Testing\u003c/a\u003e - Standard library testing package\u003c/li\u003e\n          \u003cli\u003e🔌 \u003ca href=\"https://github.com/gin-gonic/gin\"\u003eGin Web Framework\u003c/a\u003e - High-performance HTTP web framework\u003c/li\u003e\n          \u003cli\u003e📘 \u003ca href=\"https://gobyexample.com/\"\u003eGo by Example\u003c/a\u003e - Hands-on introduction to Go\u003c/li\u003e\n          \u003cli\u003e🔄 \u003ca href=\"https://go.dev/blog/concurrency-is-not-parallelism\"\u003eConcurrency in Go\u003c/a\u003e - Understanding Go's concurrency model\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n      \u003ctd width=\"50%\" align=\"center\" style=\"background-color: #f8f9fa; border-radius: 8px; padding: 15px; box-shadow: 0 2px 5px rgba(0,0,0,0.05);\"\u003e\n        \u003ch4\u003e⚡ Vue.js 3 Resources\u003c/h4\u003e\n        \u003cul align=\"left\" style=\"list-style-type: none; padding-left: 0;\"\u003e\n          \u003cli\u003e💚 \u003ca href=\"https://vuejs.org/guide/introduction.html\"\u003eVue 3 Guide\u003c/a\u003e - Official documentation\u003c/li\u003e\n          \u003cli\u003e🧩 \u003ca href=\"https://pinia.vuejs.org/\"\u003ePinia\u003c/a\u003e - State management for Vue 3\u003c/li\u003e\n          \u003cli\u003e🔄 \u003ca href=\"https://router.vuejs.org/\"\u003eVue Router\u003c/a\u003e - Official router for Vue.js\u003c/li\u003e\n          \u003cli\u003e⚡ \u003ca href=\"https://vitejs.dev/\"\u003eVite\u003c/a\u003e - Next generation frontend tooling\u003c/li\u003e\n          \u003cli\u003e🧪 \u003ca href=\"https://test-utils.vuejs.org/\"\u003eVue Test Utils\u003c/a\u003e - Official testing utilities\u003c/li\u003e\n          \u003cli\u003e🎨 \u003ca href=\"https://tailwindcss.com/docs/guides/vite#vue\"\u003eTailwind + Vue\u003c/a\u003e - Using Tailwind with Vue\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd width=\"50%\" align=\"center\" style=\"background-color: #f8f9fa; border-radius: 8px; padding: 15px; box-shadow: 0 2px 5px rgba(0,0,0,0.05);\"\u003e\n        \u003ch4\u003e⚡ DevOps Resources\u003c/h4\u003e\n        \u003cul align=\"left\" style=\"list-style-type: none; padding-left: 0;\"\u003e\n          \u003cli\u003e🐳 \u003ca href=\"https://docs.docker.com/compose/\"\u003eDocker Compose\u003c/a\u003e - Define multi-container applications\u003c/li\u003e\n          \u003cli\u003e☸️ \u003ca href=\"https://kubernetes.io/docs/home/\"\u003eKubernetes\u003c/a\u003e - Container orchestration\u003c/li\u003e\n          \u003cli\u003e🔄 \u003ca href=\"https://www.terraform.io/docs\"\u003eTerraform\u003c/a\u003e - Infrastructure as code\u003c/li\u003e\n          \u003cli\u003e📊 \u003ca href=\"https://prometheus.io/docs/introduction/overview/\"\u003ePrometheus\u003c/a\u003e - Monitoring and alerting\u003c/li\u003e\n          \u003cli\u003e📝 \u003ca href=\"https://www.conventionalcommits.org/en/v1.0.0/\"\u003eConventional Commits\u003c/a\u003e - Commit message standards\u003c/li\u003e\n          \u003cli\u003e🔄 \u003ca href=\"https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow\"\u003eGitflow Workflow\u003c/a\u003e - Branching model for Git\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n      \u003ctd width=\"50%\" align=\"center\" style=\"background-color: #f8f9fa; border-radius: 8px; padding: 15px; box-shadow: 0 2px 5px rgba(0,0,0,0.05);\"\u003e\n        \u003ch4\u003e⚡ Security \u0026 Best Practices\u003c/h4\u003e\n        \u003cul align=\"left\" style=\"list-style-type: none; padding-left: 0;\"\u003e\n          \u003cli\u003e🔐 \u003ca href=\"https://owasp.org/www-project-top-ten/\"\u003eOWASP Top 10\u003c/a\u003e - Web application security risks\u003c/li\u003e\n          \u003cli\u003e🧪 \u003ca href=\"https://martinfowler.com/articles/practical-test-pyramid.html\"\u003eTest Pyramid\u003c/a\u003e - A balanced test strategy\u003c/li\u003e\n          \u003cli\u003e🔍 \u003ca href=\"https://semver.org/\"\u003eSemantic Versioning\u003c/a\u003e - Version numbering standard\u003c/li\u003e\n          \u003cli\u003e📝 \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e - Maintaining a good changelog\u003c/li\u003e\n          \u003cli\u003e🛡️ \u003ca href=\"https://cheatsheetseries.owasp.org/\"\u003eOWASP Cheat Sheets\u003c/a\u003e - Security implementation guides\u003c/li\u003e\n          \u003cli\u003e🔒 \u003ca href=\"https://jwt.io/introduction\"\u003eJWT Auth\u003c/a\u003e - JSON Web Token authentication\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubyhcm%2Frubyhcm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubyhcm%2Frubyhcm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubyhcm%2Frubyhcm/lists"}