package main
import (
"fmt"
"sync"
)
type Person struct {
Name string
Bio string
GithubProfile string
TechStack []string
}
func main() {
var wg sync.WaitGroup
nameCh := make(chan string)
bioCh := make(chan string)
githubCh := make(chan string)
techStackCh := make(chan []string)
// Fetch name
wg.Add(1)
go func() {
defer wg.Done()
nameCh <- "Vinny"
}()
// Fetch bio
wg.Add(1)
go func() {
defer wg.Done()
bioCh <- "Software Developer and Tech Enthusiast"
}()
// Fetch GitHub profile link
wg.Add(1)
go func() {
defer wg.Done()
githubCh <- "https://github.com/Cerebrovinny"
}()
// Fetch technology stack
wg.Add(1)
go func() {
defer wg.Done()
techStackCh <- []string{"Golang", "TypeScript", "Django", "JavaScript", "NestJS", "Python", "Spring", "AWS", "Docker", "Kafka", "React", "Next.js", "OpenTelemetry", "Playwright", "C++"}
}()
// Create a Person instance
me := Person{
Name: <-nameCh,
Bio: <-bioCh,
GithubProfile: <-githubCh,
TechStack: <-techStackCh,
}
// Wait for all goroutines to finish
wg.Wait()
// Printing the details
fmt.Println("Profile Information:")
fmt.Printf("Name: %s\n", me.Name)
fmt.Printf("Bio: %s\n", me.Bio)
fmt.Printf("GitHub Profile: %s\n", me.GithubProfile)
fmt.Println("Tech Stack:", me.TechStack)
}
Cerebrovinny