package main
import (
"fmt"
)
type Hoanganh0705 struct {
Username string
Name string
Position string
Web string
Links string
Blog string
CV string
Twitter string
About map[string]string
Code map[string][]string
Architecture []string
}
func NewHoanganh0705() *Hoanganh0705 {
return &Hoanganh0705{
Username: "hoanganh0705",
Name: "Nguyễn Hoàng Anh",
Position: "Golang Software Developer",
Web: "https://anhnguyendev.me",
Links: "https://links.anhnguyendev.me",
Blog: "https://blog.anhnguyendev.me",
CV: "https://resume.anhnguyendev.me",
About: map[string]string{
"Location": "Ho Chi Minh City, the most vibrant and charming city in Vietnam.",
"FavouriteFood": "Banhmi with extra JavaScript toppings",
"SpecialisingIn": "Backend development using Node.js and Frontend development with Next.js and TypeScript.",
},
Code: map[string][]string{
"backend": {"Go", "Node.js", "Gin", "Fiber", "Express", "RESTful API", "Microservices"},
"database": {"PostgreSQL", "MySQL", "MongoDB", "Redis"},
"devops": {"Docker", "Linux", "CI/CD", "GitHub Actions", "Nginx"},
"frontend": {"TypeScript", "Next.js", "React", "TailwindCSS"},
"tools": {"Git", "GitHub", "Postman", "Golangci-lint", "Swagger", "Makefile"},
"misc": {"JWT", "OAuth2", "gRPC", "WebSockets", "Clean Architecture"},
},
Architecture: []string{"Microservices", "Clean Architecture", "Hexagonal", "Serverless", "Event-driven"},
}
}
func (h *Hoanganh0705) String() string {
return fmt.Sprintf("%s | %s", h.Name, h.Position)
}
func main() {
me := NewHoanganh0705()
fmt.Println(me)
fmt.Println("About Me:")
for k, v := range me.About {
fmt.Printf("- %s: %s\n", k, v)
}
fmt.Println("\nTech Stack:")
for category, items := range me.Code {
fmt.Printf("%s: %v\n", category, items)
}
fmt.Println("\nArchitectures:", me.Architecture)
}
"Doubt kills more dreams than failure ever will."




