# DO NOT EDIT: Autogenerated from cmd/events.
# To update, run:
#    go run github.com/godevsite/go.dev/cmd/events > data/events.yaml
all:
- city: Bournemouth
  country: United Kingdom
  description: |-
    Golang Dorset<br/>
     is a user group for people interested in the <br/>
    <a href="https://golang.org/" rel="nofollow">Go programming language</a> and assorted related technologies and methodologies (kubernetes / docker / DevOps etc) <br><br/>
    We aim to meet every month in central Bournemouth. <br>--- <br><br/>
    We want to give everyone a chance to learn, or improve their skills with Go by practicing it, organizing workshops and talks, and mingling along like-minded individuals.<br/>
    Any level of proficiency (or none at all) is welcome. <br/>
    All code and slides from examples are available in the github repo <a href="https://github.com/golangdorset" rel="nofollow">github.com/golangdorset</a>  <br><br/>
    <a href="https://join.slack.com/t/golangdorset/shared_invite/enQtMzM0OTEwNDAyNDM2LWExNjUxZmFlMGQ5NTdiMmIwYzg5ZGQwMGJlZWJkMWEyMjMxMDE1ZDg4ODgzZWFmNDZiMmQzNTRlNWQ0ZTY3ODU" rel="nofollow">Join us on Slack!</a> <br>
  id: mbdwhryznbcc
  local_date: Oct 21, 2019
  local_time: "2019-10-21T19:00:00+01:00"
  localizedcountry: United Kingdom
  localizedlocation: Bournemouth, United Kingdom
  name: Golang Dorset Monthly Meetup
  state: ""
  thumbnailurl: ""
  url: https://www.meetup.com/Golang-Dorset/events/mbdwhryznbcc
- city: Göteborg
  country: Sweden
  description: A community for anyone interested in the Go (golang) programming language
    - and related topics - in, and around Gothenburg, Sweden.
  id: "265583393"
  local_date: Oct 22, 2019
  local_time: "2019-10-22T17:30:00+02:00"
  localizedcountry: Sweden
  localizedlocation: Göteborg, Sweden
  name: Concurrency @ Zimpler
  state: ""
  thumbnailurl: https://secure.meetupstatic.com/photos/event/6/9/a/thumb_466021690.jpeg
  url: https://www.meetup.com/sweden-go-west/events/265583393
- city: Tel Aviv-Yafo
  country: Israel
  description: |-
    This is the group for programmers who are interested in the High Performance, Scalable, lightweight, cross platform development tool that also promises ease of programming, agility and the fun you don&#39;t usually get using a low-level language. Welcome to the Israeli Go language Group.<br/>
    If you&#39;d like to give a talk, please add yourself to <a href="https://trello.com/b/xbSxWRpG/go-israel-talks" rel="nofollow">the trello board</a>
  id: "254097017"
  local_date: Oct 22, 2019
  local_time: "2019-10-22T18:30:00+03:00"
  localizedcountry: Israel
  localizedlocation: Tel Aviv-Yafo, Israel
  name: Go Israel October 2019 Meetup
  state: ""
  thumbnailurl: https://secure.meetupstatic.com/photos/event/a/9/6/9/thumb_477523369.jpeg
  url: https://www.meetup.com/Go-Israel/events/254097017
- city: Sofia
  country: Bulgaria
  description: An open meetup for everybody and anybody interested in Golang, CSP,
    software development. Experienced &amp; aspiring software developers as well as
    actual gophers are all welcome!
  id: "265376069"
  local_date: Oct 22, 2019
  local_time: "2019-10-22T19:00:00+03:00"
  localizedcountry: Bulgaria
  localizedlocation: Sofia, Bulgaria
  name: Dos and don'ts on Golang Interfaces
  state: ""
  thumbnailurl: https://secure.meetupstatic.com/photos/event/3/d/e/6/thumb_462375846.jpeg
  url: https://www.meetup.com/Golang-Bulgaria/events/265376069
- city: Zagreb
  country: Croatia
  description: |-
    Ovo je grupa za sve zainteresirane za Go programski jezik.<br/>
    Prošli talkovi se mogu naći na:<br/>
    • <a href="https://github.com/golanghr/golangzg/blob/master/talks.md" rel="nofollow">github repou</a><br/>
    • snimke na <a href="https://www.youtube.com/channel/UCBe6NfYfKoQxRv7kswV6wpQ" rel="nofollow">YouTube kanalu</a> <br><br/>
    Prati na nas <a href="https://twitter.com/GolangZg" rel="nofollow">twitteru</a> i na <a href="https://www.facebook.com/groups/golanghr/" rel="nofollow">facebooku</a>.<br/>
    Družimo se i na <a href="https://invite.slack.golangbridge.org/?fbclid=IwAR35p7rEaNkowXDxX8RvmWDvyhoAslx2QskpBBnHlVdKCXvRpCoxePMmHnA" rel="nofollow">gophers.slack.com</a> - tamo smo u kanalu <a href="https://gophers.slack.com/messages/C08DCDAKC/" rel="nofollow">#croatia</a>.
  id: "265507175"
  local_date: Oct 22, 2019
  local_time: "2019-10-22T18:00:00+02:00"
  localizedcountry: Croatia
  localizedlocation: Zagreb, Croatia
  name: GoTalks 22.10.2019.
  state: ""
  thumbnailurl: https://secure.meetupstatic.com/photos/event/7/2/5/2/thumb_462749266.jpeg
  url: https://www.meetup.com/Golang-ZG/events/265507175
- city: Bristol
  country: United Kingdom
  description: |-
    <br/>
     <br><br/>
    Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.<br/>
    We are a small group, ready to learn from each other, if you like to code and talk about it then join us and help us to grow and prosper...<br/>
    King Leonidas: You have many slaves, Xerxes, but few warriors. It won&#39;t be long before they fear my spears more than your whips...
  id: "264616451"
  local_date: Oct 22, 2019
  local_time: "2019-10-22T18:00:00+01:00"
  localizedcountry: United Kingdom
  localizedlocation: Bristol, United Kingdom
  name: Go(ctober) - OpenAPI and Go 1.13
  state: ""
  thumbnailurl: ""
  url: https://www.meetup.com/golang-bristol/events/264616451
- city: Cambridge
  country: United Kingdom
  description: |-
    About Cambridge Gophers<br/>
    We are in phase zero, forming. Our initial aim is to gather some gophers and work our how we want to share experiences and ideas. We hope to run workshops, talks and discussions once a month with the prime directives of learning and involvement from group members.<br/>
    twitter: @CambGophers<br/>
    slack: <a href="https://gophers.slack.com/messages/cambridgeuk/" rel="nofollow">https://gophers.slack.com/messages/cambridgeuk/</a><br/>
    join slack: <a href="https://gophersinvite.herokuapp.com/" rel="nofollow">https://gophersinvite.herokuapp.com/</a><br/>
    About Go <br><br/>
    The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It&#39;s a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
  id: "265281185"
  local_date: Oct 22, 2019
  local_time: "2019-10-22T18:30:00+01:00"
  localizedcountry: United Kingdom
  localizedlocation: Cambridge, United Kingdom
  name: 'October meetup: Laszlo Papp shows us how to write a Slack bot in Go'
  state: ""
  thumbnailurl: https://secure.meetupstatic.com/photos/event/5/7/9/9/thumb_447382425.jpeg
  url: https://www.meetup.com/Cambridge-Gophers/events/265281185
- city: Newcastle Upon Tyne
  country: United Kingdom
  description: This is a group for anyone in the North East of England who&#39;s interested
    in the Go programming language. We usually meet up in Newcastle on the fourth
    Tuesday of every month at Campus North, Carliol Square.
  id: qtpnmqyznbdc
  local_date: Oct 22, 2019
  local_time: "2019-10-22T18:30:00+01:00"
  localizedcountry: United Kingdom
  localizedlocation: Newcastle Upon Tyne, United Kingdom
  name: better testing of Go commands with testscript
  state: ""
  thumbnailurl: ""
  url: https://www.meetup.com/Golang-North-East/events/qtpnmqyznbdc
- city: Eugene
  country: USA
  description: |-
    All Gophers and curious software professionals are welcome to come discuss Go and related topics.<br/>
    Go is a Google-funded language for massively-scalable distributed systems that is statically typed and compiled. It has quickly stabilized and is running head-to-head with C++, Java, C#, etc. (<a href="https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html" rel="nofollow">The Computer Language Benchmarks Game - Go</a>). However, a larger-than-expected portion of new Gophers is made up of dynamic/interpreted language users who tend to be seeking relief from the cruft in their current languages and/or a more clear future within the horizontally-growing landscape of modern computing.<br/>
    If you&#39;re building web apps, designing APIs, thrive on scalability, or you&#39;re simply curious about this fun new(ish) language, let&#39;s meetup.<br/>
    • Meetup resources are available at <a href="http://www.euggo.org" rel="nofollow">www.euggo.org</a> 
  id: jdbjkryznbdc
  local_date: Oct 22, 2019
  local_time: "2019-10-22T12:00:00-07:00"
  localizedcountry: USA
  localizedlocation: Eugene, OR
  name: Book Club
  state: OR
  thumbnailurl: https://secure.meetupstatic.com/photos/event/2/8/1/thumb_453660641.jpeg
  url: https://www.meetup.com/EUG-Go/events/jdbjkryznbdc
- city: Sunnyvale
  country: USA
  description: This is a private group for all organizers of Go Developer Meetups
    globally that are part of the <a href="https://www.meetup.com/pro/go" rel="nofollow">Go
    Developer Network</a> (GDN). Over time, we will establish a cadence of global
    online meetups on a monthly basis and in person regional meetups on an annual
    basis.
  id: "265601177"
  local_date: Oct 22, 2019
  local_time: "2019-10-22T12:45:00-07:00"
  localizedcountry: USA
  localizedlocation: Sunnyvale, CA
  name: GDN Lunch at GoLab in Florence at 12:45pm local time
  state: CA
  thumbnailurl: ""
  url: https://www.meetup.com/Go-Meetup-Organisers/events/265601177
- city: Norfolk
  country: USA
  description: |-
    This is a group for anyone interested in the Go programming language. Not just Go but anything that has to do with Go (i.e. Kubernetes, Docker, Terraform, etc). All skill levels are welcome.<br/>
    <br><br/>
    This community abides by the <a href="https://golang.org/conduct" rel="nofollow">Go Community Code of Conduct</a>.  
  id: "265405417"
  local_date: Oct 22, 2019
  local_time: "2019-10-22T18:00:00-04:00"
  localizedcountry: USA
  localizedlocation: Norfolk, VA
  name: Building Rest APIs with Go and TDD
  state: VA
  thumbnailurl: ""
  url: https://www.meetup.com/Norfolk-Go-Meetup-Group/events/265405417
- city: Canberra
  country: Australia
  description: Canberra Gophers will meet every month to talk about software development
    using the Go programming language. Please join if you have an interest in Go or
    if you are using Go in your work.
  id: "264916785"
  local_date: Oct 23, 2019
  local_time: "2019-10-23T17:45:00+11:00"
  localizedcountry: Australia
  localizedlocation: Canberra, Australia
  name: Canberra Gophers October 2019
  state: ""
  thumbnailurl: ""
  url: https://www.meetup.com/Canberra-Gophers/events/264916785
- city: Melbourne
  country: Australia
  description: |-
    We run fun and interesting events.<br/>
    If you want to organise events, let us know and we&#39;ll make you an event organizer.<br/>
    NOTE: We were formally called &#34;Melbourne Young Professionals&#34;, but since it doesn&#39;t represent who we are, the name has changed to &#34;Let&#39;s Go&#34;<br/>
     <br>
  id: "265628686"
  local_date: Oct 23, 2019
  local_time: "2019-10-23T19:00:00+11:00"
  localizedcountry: Australia
  localizedlocation: Melbourne, Australia
  name: Begin your fitness journey  - Self Defence Based Fitness -Thornbury
  state: ""
  thumbnailurl: ""
  url: https://www.meetup.com/letsgo-melbourne/events/265628686
- city: Jakarta
  country: Indonesia
  description: |-
    A meetup group to discuss the Go Programming Language in Jakarta. <br/>
    (from golang.org) <br/>
    The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It&#39;s a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
  id: "264707301"
  local_date: Oct 23, 2019
  local_time: "2019-10-23T17:00:00+07:00"
  localizedcountry: Indonesia
  localizedlocation: Jakarta, Indonesia
  name: 'AWS Pop-up Loft: Deploying Go Apps on the Cloud'
  state: ""
  thumbnailurl: https://secure.meetupstatic.com/photos/event/9/a/f/b/thumb_449379675.jpeg
  url: https://www.meetup.com/GoJakarta/events/264707301
- city: Paris
  country: France
  description: |-
    This is the Paris Chapter of Women Who Go: <a href="http://www.meetup.com/Women-Who-Go/" rel="nofollow">http://www.meetup.com/Women-Who-Go/</a> This group is an inclusive space for everyone.<br/>
    This group is for you if any of the following: <br>1. You identify as a woman, publicly or privately. 2. You have some interest in the Go programming language, or programming in general.
  id: "265751019"
  local_date: Oct 23, 2019
  local_time: "2019-10-23T19:00:00+02:00"
  localizedcountry: France
  localizedlocation: Paris, France
  name: Créer vos applications serverless sur AWS avec Go
  state: ""
  thumbnailurl: https://secure.meetupstatic.com/photos/event/2/d/3/b/thumb_480491579.jpeg
  url: https://www.meetup.com/Women-Who-Go-Paris/events/265751019
