diff --git a/data/alpenite.json b/data/alpenite.json deleted file mode 100644 index 961a63e4..00000000 --- a/data/alpenite.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Alpenite", - "url": "https://www.alpenite.com", - "career_page_url": "https://careers.alpenite.com/", - "type": "Consulting", - "categories": [ - "cloud_software" - ], - "remote_policy": "-", - "hiring_policies": [ - "-" - ], - "tags": [ - "Salesforce", - "Magento", - "Shopify", - "SAP", - "Hootsuite", - "JavaScript", - "Java" - ] -} \ No newline at end of file diff --git a/data/aruba_spa.json b/data/aruba_spa.json index 70090d14..13c7817b 100644 --- a/data/aruba_spa.json +++ b/data/aruba_spa.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "Direct" ], diff --git a/data/bendingspoons.json b/data/bendingspoons.json index 242c6b16..7159fc05 100644 --- a/data/bendingspoons.json +++ b/data/bendingspoons.json @@ -6,7 +6,7 @@ "marketing_writing", "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "Direct" ] diff --git a/data/boom.json b/data/boom.json deleted file mode 100644 index b412e26f..00000000 --- a/data/boom.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "BOOM", - "url": "https://boom.co/", - "career_page_url": "https://boom.co/careers", - "type": "B2B", - "categories": [ - "cloud_software" - ], - "remote_policy": "-", - "hiring_policies": [ - "-" - ], - "tags": [ - "Typescript", - "React", - "NestJS", - "Java", - "Kotlin", - "Data Science", - "AWS" - ] -} \ No newline at end of file diff --git a/data/clastix.json b/data/clastix.json index 9fa31784..37623b4b 100644 --- a/data/clastix.json +++ b/data/clastix.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/cortilia.json b/data/cortilia.json index 81edfee6..30f19fb8 100644 --- a/data/cortilia.json +++ b/data/cortilia.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Hybrid", "hiring_policies": [ "-" ], diff --git a/data/crowdstrike.json b/data/crowdstrike.json index 29f3ebb5..39ce0e3e 100644 --- a/data/crowdstrike.json +++ b/data/crowdstrike.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/datadog.json b/data/datadog.json index 772a12a8..c0c66c22 100644 --- a/data/datadog.json +++ b/data/datadog.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/DigitalMakers b/data/digital_makers.json similarity index 100% rename from data/DigitalMakers rename to data/digital_makers.json diff --git a/data/docplanner.json b/data/docplanner.json index e21f346a..83eebef4 100644 --- a/data/docplanner.json +++ b/data/docplanner.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/dove_it.json b/data/dove_it.json index c6c38d4c..7d4a7608 100644 --- a/data/dove_it.json +++ b/data/dove_it.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/doyensec.json b/data/doyensec.json index abf0dcb5..2f27b1fb 100644 --- a/data/doyensec.json +++ b/data/doyensec.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/flightradar24.json b/data/flightradar24.json index 6385bca2..263d63c1 100644 --- a/data/flightradar24.json +++ b/data/flightradar24.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/fourtheorem.json b/data/fourtheorem.json index af1097c1..46923a58 100644 --- a/data/fourtheorem.json +++ b/data/fourtheorem.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Full", "hiring_policies": [ "-" ], diff --git a/data/garden.json b/data/garden.json index 9b2df59f..62cb20e5 100644 --- a/data/garden.json +++ b/data/garden.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/gorgias.json b/data/gorgias.json deleted file mode 100644 index 01750e93..00000000 --- a/data/gorgias.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "Gorgias", - "url": "https://www.gorgias.com/", - "career_page_url": "https://www.gorgias.com/about-us/jobs", - "type": "Product", - "categories": [ - "cloud_software" - ], - "remote_policy": "-", - "hiring_policies": [ - "-" - ], - "tags": [ - "GCP", - "Python", - "PostgreSQL", - "Typescript", - "Javascript", - "React", - "Terraform", - "Kubernetes", - "Socket.io", - "RabbitMQ", - "Celery" - ] -} \ No newline at end of file diff --git a/data/hinto.json b/data/hinto.json deleted file mode 100644 index 650abd06..00000000 --- a/data/hinto.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "Hinto®", - "url": "https://www.hinto.com/", - "career_page_url": "https://www.hinto.com/en/join-us", - "type": "Consulting", - "categories": [ - "cloud_software" - ], - "remote_policy": "-", - "hiring_policies": [ - "-" - ], - "tags": [ - "AWS", - "Terraform", - "PHP", - "Symfony", - "Drupal", - "JS", - "TypeScript", - "React", - "Node.js" - ] -} \ No newline at end of file diff --git a/data/hotjar.json b/data/hotjar.json index 4a7f4ffe..36f65eb3 100644 --- a/data/hotjar.json +++ b/data/hotjar.json @@ -8,7 +8,7 @@ "design_ux", "marketing_writing" ], - "remote_policy": "-", + "remote_policy": "Full", "hiring_policies": [ "-" ], diff --git a/data/infor b/data/infor.json similarity index 100% rename from data/infor rename to data/infor.json diff --git a/data/isolutions.json b/data/isolutions.json index c918a302..7324a5a6 100644 --- a/data/isolutions.json +++ b/data/isolutions.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/jimdo.json b/data/jimdo.json index 6e91621b..c21d1ed5 100644 --- a/data/jimdo.json +++ b/data/jimdo.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/kaleyra.json b/data/kaleyra.json index 70b244be..31bc6c61 100644 --- a/data/kaleyra.json +++ b/data/kaleyra.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/kensu.json b/data/kensu.json deleted file mode 100644 index 7aa2edd0..00000000 --- a/data/kensu.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "Kensu", - "url": "https://www.kensu.io?utm_source=github\u0026utm_medium=recruitment_channel", - "career_page_url": "https://kensu.betterteam.com?utm_source=github\u0026utm_medium=recruitment_channel", - "type": "Product", - "categories": [ - "cloud_software" - ], - "remote_policy": "-", - "hiring_policies": [ - "-" - ], - "tags": [ - "Scala", - "React", - "TypeScript", - "Python", - "Redis", - "Terraform", - "Ansible", - "AWS", - "MariaDB", - "OrientDB" - ] -} \ No newline at end of file diff --git a/data/luxoft.json b/data/luxoft.json index 93837341..2588fafc 100644 --- a/data/luxoft.json +++ b/data/luxoft.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/mailup.json b/data/mailup.json index 040dc54c..ef4ac3cd 100644 --- a/data/mailup.json +++ b/data/mailup.json @@ -7,7 +7,7 @@ "cloud_software", "design_ux" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/milkman_technologies.json b/data/milkman_technologies.json index 28e578cb..9e59d0aa 100644 --- a/data/milkman_technologies.json +++ b/data/milkman_technologies.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/netlify.json b/data/netlify.json index 91ccab65..927546fa 100644 --- a/data/netlify.json +++ b/data/netlify.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Full", "hiring_policies": [ "Contract" ], diff --git a/data/neulabs.json b/data/neulabs.json index ed1046ce..7d6d10be 100644 --- a/data/neulabs.json +++ b/data/neulabs.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "Direct" ], diff --git a/data/opencitylabs.json b/data/opencitylabs.json index 7e691475..06a10564 100644 --- a/data/opencitylabs.json +++ b/data/opencitylabs.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/refactory.json b/data/refactory.json index a524fc3c..e716b350 100644 --- a/data/refactory.json +++ b/data/refactory.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Full", "hiring_policies": [ "-" ], diff --git a/data/register_spa.json b/data/register_spa.json index cb1e463b..66422494 100644 --- a/data/register_spa.json +++ b/data/register_spa.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Hybrid", "hiring_policies": [ "Direct" ], diff --git a/data/spotify.json b/data/spotify.json index 192382f5..4ebabd9a 100644 --- a/data/spotify.json +++ b/data/spotify.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "Direct" ], diff --git a/data/spreaker.json b/data/spreaker.json index ceb8e963..af750409 100644 --- a/data/spreaker.json +++ b/data/spreaker.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Full", "hiring_policies": [ "-" ], diff --git a/data/subito.json b/data/subito.json deleted file mode 100644 index 38133dc5..00000000 --- a/data/subito.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "Subito", - "url": "https://www.subito.it/", - "career_page_url": "https://www.adevinta.com/jobs?company=subito", - "type": "Product", - "categories": [ - "cloud_software", - "design_ux" - ], - "remote_policy": "-", - "hiring_policies": [ - "Direct" - ], - "tags": [ - "Go", - "React", - "Next.js", - "TypeScript", - "Android", - "iOS", - "Terraform", - "AWS", - "Kubernetes" - ] -} \ No newline at end of file diff --git a/data/superfluid_team.json b/data/superfluid_team.json index 28f75c4b..6fafb1d1 100644 --- a/data/superfluid_team.json +++ b/data/superfluid_team.json @@ -5,7 +5,7 @@ "categories": [ "marketing_writing" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ] diff --git a/data/superlayer.json b/data/superlayer.json index 0331d91b..aea8310b 100644 --- a/data/superlayer.json +++ b/data/superlayer.json @@ -7,7 +7,7 @@ "cloud_software", "design_ux" ], - "remote_policy": "-", + "remote_policy": "Full", "hiring_policies": [ "-" ], diff --git a/data/synesthesia.json b/data/synesthesia.json index 40803196..a75c1c3c 100644 --- a/data/synesthesia.json +++ b/data/synesthesia.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Optional", "hiring_policies": [ "-" ], diff --git a/data/sysdig.json b/data/sysdig.json index f89f679b..47a25642 100644 --- a/data/sysdig.json +++ b/data/sysdig.json @@ -7,7 +7,7 @@ "cloud_software", "design_ux" ], - "remote_policy": "-", + "remote_policy": "Hybrid", "hiring_policies": [ "Direct" ], diff --git a/data/tlm_partners.json b/data/tlm_partners.json index d3e8878e..5c348a8d 100644 --- a/data/tlm_partners.json +++ b/data/tlm_partners.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Full", "hiring_policies": [ "-" ], diff --git a/data/tui.json b/data/tui.json index d120203a..40253bd1 100644 --- a/data/tui.json +++ b/data/tui.json @@ -6,7 +6,7 @@ "design_ux", "hr" ], - "remote_policy": "-", + "remote_policy": "Hybrid", "hiring_policies": [ "-" ] diff --git a/data/zappyrent.json b/data/zappyrent.json index 97b7a9ef..f1d7a065 100644 --- a/data/zappyrent.json +++ b/data/zappyrent.json @@ -6,7 +6,7 @@ "categories": [ "cloud_software" ], - "remote_policy": "-", + "remote_policy": "Hybrid", "hiring_policies": [ "-" ], diff --git a/src/cmd/generator/main.go b/src/cmd/generator/main.go index 0131f1d5..2b2f6e93 100644 --- a/src/cmd/generator/main.go +++ b/src/cmd/generator/main.go @@ -14,12 +14,29 @@ const dataPath = homePath + "data/" type TemplateParameters struct { Len int - Companies map[string][]cmp.Company + Companies map[string]CompaniesByRemoteType +} + +type CompaniesByRemoteType struct { + RemoteTypeName string + CompaniesByCategoryType map[string][]cmp.Company } func main() { companies := TemplateParameters{} - companies.Companies = make(map[string][]cmp.Company) + companies.Companies = make(map[string]CompaniesByRemoteType) + + for _, v := range []string{"Full", "Optional", "Hybrid"} { + companies.Companies[v] = CompaniesByRemoteType{ + RemoteTypeName: v, + } + } + + for k, v := range companies.Companies { + v.CompaniesByCategoryType = make(map[string][]cmp.Company) + companies.Companies[k] = v + } + companiesFile, err := os.ReadDir(dataPath) if err != nil { log.Fatalln(err) @@ -48,37 +65,44 @@ func main() { company.Fix() allCompanies = append(allCompanies, company) + for _, category := range company.Categories { - companies.Companies[category] = append(companies.Companies[category], company) + if company.RemotePolicy == "-" { + continue + } + companies.Companies[company.RemotePolicy].CompaniesByCategoryType[category] = append(companies.Companies[company.RemotePolicy].CompaniesByCategoryType[category], company) } } - templ, err := template.ParseFiles("./template.md") + //Create a json file for outside use of the list + jsonByte, err := json.MarshalIndent(allCompanies, "", " ") if err != nil { log.Fatalln(err) } - f, err := os.Create(homePath + "README.md") + err = os.WriteFile(homePath+"outputs.json", jsonByte, 0644) if err != nil { log.Fatalln(err) } - err = templ.Execute(f, companies) + //Update README file + + templ, err := template.ParseFiles("./template.md") if err != nil { log.Fatalln(err) } - err = f.Close() + f, err := os.Create(homePath + "README.md") if err != nil { log.Fatalln(err) } - jsonByte, err := json.MarshalIndent(allCompanies, "", " ") + err = templ.Execute(f, companies) if err != nil { log.Fatalln(err) } - err = os.WriteFile(homePath+"outputs.json", jsonByte, 0644) + err = f.Close() if err != nil { log.Fatalln(err) } diff --git a/src/cmd/generator/template.md b/src/cmd/generator/template.md index 3a9bf463..25753b03 100644 --- a/src/cmd/generator/template.md +++ b/src/cmd/generator/template.md @@ -32,46 +32,56 @@ Direct | Company is hiring directly with a legal entity in Italy. Contract | Company is hiring contractors in Italy, VAT Number is required. Intermediary | Company is hiring using a payroll intermediary in Italy. -### Software and Cloud +## Companies sorted by remote policies -Name | Career Page | Company Type | Remote Policy | Hiring Policy | Stack ------------- | -- | ------- | ------- |---------------| ------- +{{- range .Companies}} +### {{.RemoteTypeName}} -{{- range .Companies.cloud_software}} -[{{.Name}}]({{.URL}}) | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.RemotePolicy}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} +#### Software and Cloud + +Name | Career Page | Company Type | Hiring Policy | Stack +------------ | ------- | ------- |---------------| ------- + +{{- range .CompaniesByCategoryType.cloud_software}} +[{{.Name}}]({{.URL}}) | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} {{- end}} -### Marketing and Writing +#### Marketing and Writing -Name | Career Page | Remote Policy| Hiring Policy ------------- | -- | ------- | ------- -{{- range .Companies.marketing_writing}} -[{{.Name}}]({{.URL}}) | [Career Page]({{.CareerPageURL}}) | {{.RemotePolicy}} | {{.GetHiringPoliciesString}} +Name | Career Page | Company Type | Hiring Policy | Stack +------------ | ------- | ------- |---------------| ------- + +{{- range .CompaniesByCategoryType.marketing_writing}} +[{{.Name}}]({{.URL}}) | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} {{- end}} -### HR +#### HR + +Name | Career Page | Company Type | Hiring Policy | Stack +------------ | ------- | ------- |---------------| ------- -Name | Career Page | Remote Policy| Hiring Policy ------------- | -- | ------- | ------- -{{- range .Companies.hr}} -[{{.Name}}]({{.URL}}) | [Career Page]({{.CareerPageURL}}) | {{.RemotePolicy}} | {{.GetHiringPoliciesString}} +{{- range .CompaniesByCategoryType.hr}} +[{{.Name}}]({{.URL}}) | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} {{- end}} -### Design and UX +#### Design and UX -Name | Career Page | Remote Policy| Hiring Policy ------------- | -- | ------- | ------- -{{- range .Companies.design_ux}} -[{{.Name}}]({{.URL}}) | [Career Page]({{.CareerPageURL}}) | {{.RemotePolicy}} | {{.GetHiringPoliciesString}} +Name | Career Page | Company Type | Hiring Policy | Stack +------------ | ------- | ------- |---------------| ------- + +{{- range .CompaniesByCategoryType.design_ux}} +[{{.Name}}]({{.URL}}) | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} {{- end}} -### Cybersecurity +#### Cybersecurity + +Name | Career Page | Company Type | Hiring Policy | Stack +------------ | ------- | ------- |---------------| ------- -Name | Career Page | Company Type | Remote Policy | Hiring Policy | Stack ------------- | -- | ------- | ------- |---------------| ------- +{{- range .CompaniesByCategoryType.cybersecurity}} +[{{.Name}}]({{.URL}}) | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} +{{- end}} -{{- range .Companies.cybersecurity}} -[{{.Name}}]({{.URL}}) | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.RemotePolicy}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} {{- end}} --------- diff --git a/src/pkg/cmp/company.go b/src/pkg/cmp/company.go index 851b65e9..2e78c056 100644 --- a/src/pkg/cmp/company.go +++ b/src/pkg/cmp/company.go @@ -32,7 +32,6 @@ var ( "Intermediary": true, } allowedRemotePolicies = map[string]bool{ - "-": true, "Full": true, "Hybrid": true, "Optional": true, diff --git a/src/template.md b/src/template.md new file mode 100644 index 00000000..7f0b4d6b --- /dev/null +++ b/src/template.md @@ -0,0 +1,94 @@ +[//]: # (DO NOT EDIT THIS FILE MANUALLY, USE THE GENERATOR AND DATA FOLDER) +# Awesome Italia Remote + +A list of {{.Len}} remote-friendly or full-remote companies that targets Italian talents. +Companies can be both based in Italy or around the world but with operations in Italy. + +Please read the contribution guidelines before opening a pull request or contributing to this repository. + +## Web View + +https://italiaremote.com/companies + +### Built and maintained by +* [Alessandro Marino](https://github.com/alessandromr) +* [Edoardo Costantini](https://github.com/edoardocostantinidev) + +## Legenda + +### Remote Policies + +Label | Meaning +--- | --- +Full | Company doesn't have physical offices, so you'll always work remotely. +Hybrid | Company allows remote but only for some days. +Optional | Company allows you to choose when work remotely or in office, but can ask you to go sometimes. + +### Hiring Policies + +Label | Meaning +--- | --- +Direct | Company is hiring directly with a legal entity in Italy. +Contract | Company is hiring contractors in Italy, VAT Number is required. +Intermediary | Company is hiring using a payroll intermediary in Italy. + + +{{- range .remote_policies}} +### {{.Name}} + +#### Software and Cloud + +Name | Category | Career Page | Company Type | Hiring Policy | Stack +------------ | -- | ------- | ------- |---------------| ------- + +{{- range .Companies.cloud_software}} +[{{.Name}}]({{.URL}}) | {{.Category}} | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} +{{- end}} + +#### Marketing and Writing + +Name | Category | Career Page | Company Type | Hiring Policy | Stack +------------ | -- | ------- | ------- |---------------| ------- + +{{- range .Companies.marketing_writing}} +[{{.Name}}]({{.URL}}) | {{.Category}} | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} +{{- end}} + +#### HR + +Name | Category | Career Page | Company Type | Hiring Policy | Stack +------------ | -- | ------- | ------- |---------------| ------- + +{{- range .Companies.hr}} +[{{.Name}}]({{.URL}}) | {{.Category}} | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} +{{- end}} + +#### Design and UX + +Name | Category | Career Page | Company Type | Hiring Policy | Stack +------------ | -- | ------- | ------- |---------------| ------- + +{{- range .Companies.design_ux}} +[{{.Name}}]({{.URL}}) | {{.Category}} | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} +{{- end}} + +#### Cybersecurity + +Name | Category | Career Page | Company Type | Hiring Policy | Stack +------------ | -- | ------- | ------- |---------------| ------- + +{{- range .Companies.cybersecurity}} +[{{.Name}}]({{.URL}}) | {{.Category}} | [Career Page]({{.CareerPageURL}}) | {{.Type}} | {{.GetHiringPoliciesString}} | {{.GetTagsString}} +{{- end}} + +{{- end}} + +--------- + +## Contributors + + + + + +Made with [contrib.rocks](https://contrib.rocks).