[
  {
    "num": 66,
    "season": 2018,
    "datetime": "2018-11-22T19:00:00+02:00",
    "place": {
      "name": "The von Stackelberg Hotel Tallinn", "loc": "https://goo.gl/maps/bKgbrTmjPkP2",
      "addr": "Toompuiestee 23, Tallinn 10137", "url": "https://www.vonstackelberghotel.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/k9dDDESnDY9hNHg8A"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["astalnuhhin"], "edit": ["klinnik"]},
        "youtube": ["78NkIgTN1NI"],
        "speakers": [
          {
            "names": {"*": "Jouni Huttunen"},
            "titles": {"*": "@ Solita"},
            "image": "jhuttunen.jpg"
          }
        ],
        "titles": {"*": "Hardening web app security, or how to pass security audits with flying colors"},
        "descr": {
          "en": [
            "Simple steps to harden web app security. The story behind this is that we had a project with strict security demands and an audit. Usually, significant issues are found during the audit, but we passed it with praises. This is a story about how anyone can repeat it."
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["astalnuhhin"], "edit": ["klinnik"]},
        "youtube": ["PkWRwG6ZTTo"],
        "speakers": [
          {
            "names": {"*": "Ali Baloi"},
            "titles": {"*": "@ Mindworks Industries"},
            "image": "abaloi.jpg"
          }
        ],
        "titles": {"*": "What helps developer on the way of becoming a project manager"},
        "descr": {
          "en": [
            "The goal of my speech is to encourage more developers to try project management role.",
            "As a former developer I'll be talking about my own experience; pluses and minuses that developer has at the start; own insights and lifehacks that helped me; and of course f2ckups.",
            "If you are a developer and think that IT project management might be your new career switch, then this talk might be useful for you."
          ]
        }
      }
    ]
  },
  {
    "num": 65,
    "season": 2018,
    "datetime": "2018-10-31T19:00:00+02:00",
    "place": {
      "name": "The von Stackelberg Hotel Tallinn", "loc": "https://goo.gl/maps/bKgbrTmjPkP2",
      "addr": "Toompuiestee 23, Tallinn 10137", "url": "https://www.vonstackelberghotel.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/jk8eUGuXSTtV5CbT7"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["gbeskin"], "edit": ["klinnik"]},
        "youtube": ["DiRul-yHI3Y"],
        "speakers": [
          {
            "names": {"*": "Megha Bangalore"},
            "titles": {"*": "Firebase Technical Lead @ Google"},
            "image": "mbangalore.jpg"
          },
          {
            "names": {"*": "Shannon McCabe"},
            "titles": {"*": "Firebase Developer @ Google"},
            "image": "smccabe.jpg"
          }
        ],
        "titles": {"*": "Introduction to Firebase"},
        "descr": {
          "en": [
            "We will discuss what's new in Firebase and for all who interested organize Getting started with Firebase introductory talk."
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["gbeskin"], "edit": ["klinnik"]},
        "youtube": ["p-W8W0B_oVM"],
        "speakers": [
          {
            "names": {"*": "Megha Bangalore"},
            "titles": {"*": "Firebase Technical Lead @ Google"},
            "image": "mbangalore.jpg"
          },
          {
            "names": {"*": "Shannon McCabe"},
            "titles": {"*": "Firebase Developer @ Google"},
            "image": "smccabe.jpg"
          }
        ],
        "titles": {"*": "Firebase Machine Learning Tutorial"},
        "descr": {
          "en": [
            ""
          ]
        }
      }
    ]
  },
  {
    "num": 64,
    "season": 2018,
    "datetime": "2018-09-20T19:00:00+03:00",
    "place": {
      "name": "Codebourne office", "loc": "https://goo.gl/maps/hRdFRaurnmrGuAgW6",
      "addr": "Sepise 8, 11415 Tallinn, Estonia", "url": "https://codeborne.com/#contact"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/aaoijLNdh6kE517i9"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["ijaama"]},
        "youtube": ["gZet0weosq4"],
        "speakers": [
          {
            "names": {"*": "Erik Jõgi"},
            "titles": {"*": "@ Codeborne"},
            "image": "ejogi.jpg"
          }
        ],
        "titles": {"*": "Messaging. A different perspective"},
        "descr": {
          "en": [
            "This talk has no description on purpose."
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["ijaama"]},
        "youtube": ["HQDiP8Ef8QQ"],
        "speakers": [
          {
            "names": {"*": "Anton Keks"},
            "titles": {"*": "@ Codeborne"},
            "image": "akeks.jpg"
          }
        ],
        "titles": {"*": "Kotlin puzzlers"},
        "descr": {
          "en": [
            ""
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["ijaama"]},
        "youtube": ["5lNjDdGKEAY"],
        "speakers": [
          {
            "names": {"*": "Anton Keks"},
            "titles": {"*": "@ Codeborne"},
            "image": "akeks.jpg"
          },
          {
            "names": {"*": "Andrei Solntsev"},
            "titles": {"*": "@ Codeborne"},
            "image": "asolntsev.jpg"
          }
        ],
        "titles": {"*": "Pair-programming demo"},
        "descr": {
          "en": [
            "Are you aware of how pair programming actually works? Don't they annoy each other? Aren't they too noisy? How do they read news and facebook at work?",
            "We at Codeborne use pair programming as everyday practice. We find it really effective. We will make a short demonstration of pair programming. You will see how it actually happens in real life."
          ]
        }
      }
    ]
  },
  {
    "num": 63,
    "season": 2018,
    "datetime": "2018-08-23T19:00:00+03:00",
    "place": {
      "name": "The von Stackelberg Hotel Tallinn", "loc": "https://goo.gl/maps/bKgbrTmjPkP2",
      "addr": "Toompuiestee 23, Tallinn 10137", "url": "https://www.vonstackelberghotel.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/bERpLsXDRmb6YrkS8"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["astalnuhhin"], "edit": ["astalnuhhin"]},
        "youtube": ["VPyZomjVqcs"],
        "speakers": [
          {
            "names": {"*": "Peeter Marvet"},
            "titles": {"*": "Data Protection Officer @ zone.ee"},
            "image": "pmarvet.jpg"
          }
        ],
        "titles": {"*": "Chiropraxis PHP - let me feel the stress of your application and make it perform again"},
        "descr": {
          "en": [
            "Peeter has been solving the problems of webapps that come to him with the usual diagnosis \"server is slow\" - and it is almost never the server that is slow. What are the signs of lazy code, depending too much on external services, not-very-intelligent db architecture choices and other common faults that take websites down? Examples are mostly from PHP+MySQL world, but the problems are presumably same everywhere."
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["astalnuhhin"], "edit": ["astalnuhhin"]},
        "youtube": ["AtfoXYi9h88"],
        "speakers": [
          {
            "names": {"*": "Ervin Weber"},
            "titles": {"*": ""},
            "image": "eweber.jpg"
          }
        ],
        "titles": {"*": "Hacking on emails"},
        "descr": {
          "en": [
            "Let's talk about how and where emails go and how to alter it. Let's talk about spamming the right way. Toggl have grown big, like \"We send over 1M emails a month\" big. The talk will cover what needed to be fixed along the way and what needed to be learned."
          ]
        }
      }
    ]
  },
  {
    "num": 62,
    "season": 2018,
    "datetime": "2018-07-10T19:00:00+03:00",
    "place": {
      "name": "The von Stackelberg Hotel Tallinn", "loc": "https://goo.gl/maps/bKgbrTmjPkP2",
      "addr": "Toompuiestee 23, Tallinn 10137", "url": "https://www.vonstackelberghotel.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/cQUfgMcTWA5SeCFs5"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["astalnuhhin"], "edit": ["klinnik"]},
        "youtube": ["OD9AtWk6SnE"],
        "speakers": [
          {
            "names": {"*": "Kirils Solovjovs"},
            "titles": {"*": "IT security expert @ Possible Security (Latvia)"},
            "image": "ksolovjovs.jpg"
          }
        ],
        "titles": {"*": "Reverse engineering basics"},
        "descr": {
          "en": [
            "Kirils will do introduction to reverse engineering and the basic principles of it."
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["astalnuhhin"], "edit": ["klinnik"]},
        "youtube": ["wkOt9PX4FE0"],
        "speakers": [
          {
            "names": {"*": "Misha Beshkin"},
            "titles": {"*": "Founder @ KosherDev"},
            "image": "mbeskin.jpg"
          }
        ],
        "titles": {"*": "Mobile text recognition from image"},
        "descr": {
          "en": [
            "The project I founded some time ago uses text recognition from image. So, I decided to share some ideas about my experiments with various services. Lecture includes real Android code with running through emulator to check the text recognition from image."
          ]
        }
      }
    ]
  },
  {
    "num": 61,
    "season": 2018,
    "datetime": "2018-06-05T19:00:00+03:00",
    "place": {
      "name": "Topia office", "loc": "https://goo.gl/maps/xRxZ8CFDwhY8mskc7",
      "addr": "Lõõtsa 12, 11415, Tallinn, Estonia", "url": "https://www.topia.com/contact-us"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/MdeQ3jsLYl2pMlod2"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["QUguetwm9YU"],
        "speakers": [
          {
            "names": {"*": "Sara Robinson"},
            "titles": {"*": "Developer Advocate @ Google’s Cloud Platform team"},
            "url": "https://2018.geekout.ee/sara-robinson/",
            "image": "srobinson.jpg"
          }
        ],
        "titles": {"*": "Text analysis: from pre-trained APIs to custom models"},
        "descr": {
          "en": [
            "Most applications deal with text data in some form: from chat messages to product reviews to comments and more. Making sense of large amounts of text data manually is difficult and time consuming. Luckily, advances in natural language processing (NLP) have given us a variety of tools to help analyze text. Whether you’re new to ML or you’ve already built your own custom model, by the end of this talk you’ll know how to get started adding NLP to your own application. I’ll begin by introducing the Cloud Natural Language API, which lets you utilize a pre-trained model to get insights from your text with a single API call. Then I’ll discuss how to build a custom model trained on your own data using TensorFlow and Cloud ML Engine, with lots of live demos along the way."
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["Dezr4FL_K04"],
        "speakers": [
          {
            "names": {"*": "Chris Thalinger"},
            "titles": {"*": "Software engineer"},
            "url": "https://2018.geekout.ee/chris-thalinger/",
            "image": "cthalinger.jpg"
          }
        ],
        "titles": {"*": "Twitter's quest for wholly Graal"},
        "descr": {
          "en": [
            "Software engineer working on Java Virtual Machines for over 13 years. Twitter is a massively distributed system with thousands of machines running thousands of JVMs. In any similar big system a small change in performance and CPU utilization is multiplied thousandfold and results in big savings. Electricity costs, cooling costs, and possibly reduction of server farm size. One way to improve Java performance and reduce CPU utilization is to simply generate better machine code. Simply is obviously not trivial but doable. Twitter is going down that road and experimenting with Graal to generate better code and reduce cost."
          ]
        }
      }
    ]
  },
  {
    "num": 60,
    "season": 2018,
    "datetime": "2018-05-15T19:00:00+03:00",
    "place": {
      "name": "The von Stackelberg Hotel Tallinn", "loc": "https://goo.gl/maps/bKgbrTmjPkP2",
      "addr": "Toompuiestee 23, Tallinn 10137", "url": "https://www.vonstackelberghotel.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/73bf4lgiutq5vZl63"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["ijaama"]},
        "youtube": ["phG-X-vGOHw"],
        "speakers": [
          {
            "names": {"*": "Miguel Caron"},
            "titles": {"*": "Head of Baltic Studios @ Gamesys"},
            "image": "mcaron.jpg"
          }
        ],
        "titles": {"*": "Building a culture that can survive any obstacle"},
        "descr": {
          "en": [
            "Sharing experience and thoughts on building strong teams and people value subject."
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["ijaama"]},
        "youtube": ["yPetzD32fCQ"],
        "speakers": [
          {
            "names": {"*": "Peeter Marvet"},
            "titles": {"*": "Data Protection Officer @ zone.ee"},
            "image": "pmarvet.jpg"
          }
        ],
        "titles": {"*": "I checked your code and you not gonna believe what I found there"},
        "descr": {
          "en": [
            "About real attacks from Locked Shield to Juice Shop to CTFs."
          ]
        }
      }
    ]
  },
  {
    "num": 59,
    "season": 2018,
    "datetime": "2018-04-26T19:00:00+03:00",
    "place": {
      "name": "Vaimo office", "addr": "Tartu maantee 13, Tallinn"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/OkJT8LElt1b1mcij1"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["ijaama"]},
        "youtube": ["yqesH8ymE1s"],
        "speakers": [
          {
            "names": {"*": "Aleksandr Panshin"},
            "titles": {"*": "Backend Developer @ Vaimo"},
            "image": "apanshin.jpg"
          }
        ],
        "titles": {"*": "Being framework agnostic"},
        "descr": {
          "en": [
            ""
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["ijaama"]},
        "youtube": ["Gmzga4BeHRI"],
        "speakers": [
          {
            "names": {"*": "Kirill Linnik"},
            "titles": {"*": "Senior Software Architect @ Topia"},
            "image": "klinnik.jpg"
          }
        ],
        "titles": {"*": "GDPR and kittens"},
        "descr": {
          "en": [
            ""
          ]
        }
      }
    ]
  },
  {
    "num": 58,
    "season": 2018,
    "datetime": "2018-03-20T19:00:00+02:00",
    "place": {
      "name": "The von Stackelberg Hotel Tallinn", "loc": "https://goo.gl/maps/bKgbrTmjPkP2",
      "addr": "Toompuiestee 23, Tallinn 10137", "url": "https://www.vonstackelberghotel.com"
    },
    "org": {"mod": ["agritsevski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/ISoCVswSPl58XgS23"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["mKuecb_ggtI"],
        "speakers": [
          {
            "names": {"*": "Gabriel Schölander"},
            "titles": {"*": "Software Architect @ Throne Gaming"},
            "url": "https://www.linkedin.com/in/gabriels/",
            "image": "gscholander.jpg"
          },
          {
            "names": {"*": "Magnus Tüll"},
            "titles": {"*": "Software Architect @ Throne Gaming"},
            "url": "https://www.linkedin.com/in/magnus-t%C3%BCll-b117126",
            "image": "mtull.jpg"
          }
        ],
        "titles": {"*": "Building a game recommendation service with machine learning in a cloud micro service architecture"},
        "descr": {
          "en": [
            "Throne Gaming is dedicated to build an architecture that scales in a multi-brand and multi-country business environment. In this presentation we will give you an overview how we solves the technical and business challenges with an hands on problem like giving the customer a recommendation of what games he may like."
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["RkLvg8wF1FQ"],
        "speakers": [
          {
            "names": {"*": "Julia Jolkin"},
            "titles": {"*": "Founder of IT Talent"},
            "url": "https://www.linkedin.com/in/juliajolkin",
            "image": "jjolkin.jpg"
          }
        ],
        "titles": {"*": "Getting started with IT recruitment"},
        "descr": {
          "en": [
            "Julia Jolkin is the founder if IT Talent, one of the top IT recruiters in Estonia. She has a black belt is sourcing and recruitment in social media. Julia is also training recruiters, runs in-house IT recruitment trainings for HRs and team leads/lead developers. Exactly! Why not training lead developers sourcing, so they can find great talents and take care of building their own teams themselves?! Is your company hiring developers? Are you tired of interviewing inappropriate candidates or lack good applicants? Let the smart recruiter explain how you can help your HRs to hire smart colleagues.",
            "Julia will reveal some top recruiters’ secrets and show you some lifehacks which will help you source developers in Stackoverflow, Github etc. What if you are not hiring? Therese is something for you as well! You will get a good understanding how recruiters find you. You will learn analyze your profile and polish your toolkit accordingly."
          ]
        }
      }
    ]
  },
  {
    "num": 57,
    "season": 2018,
    "datetime": "2018-02-27T19:00:00+02:00",
    "place": {
      "name": "Adcash office", "addr": "Kentmanni 4 (6th floor), Tallinn"
    },
    "org": {"mod": ["sgorski"]},
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["anu4CZL4CrI"],
        "speakers": [
          {
            "names": {"*": "Anthony Rouillot"},
            "titles": {"*": "Infrastructure Architect @ Adcash"},
            "url": "https://www.linkedin.com/in/rouillotanthony",
            "image": "arouillot.jpg"
          },
          {
            "names": {"*": "Agu Aarna"},
            "titles": {"*": "VP of Engineering @ Adcash"},
            "url": "https://www.linkedin.com/in/agu-aarna-a3631626",
            "image": "aaarna.jpg"
          }
        ],
        "titles": {"*": "Architecture for Scale"},
        "descr": {
          "en": [
            "Adcash is operating at an unprecedented scale within the region. As such, there are several topics that pose an interest in terms of how to build a sustainable system within dynamic, quickly changing scaling constraints. This is an overview of what the technological organisation of Adcash believes is important to grasp in order to successfully execute, and meet business and customer expectations."
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["zi9_5-HkXeU"],
        "speakers": [
          {
            "names": {"*": "Ilja Nafigin"},
            "titles": {"*": "Java Developer @ Swedbank"},
            "url": "https://www.linkedin.com/in/ilja-nafigin-8362a030",
            "image": "inafigin.jpg"
          }
        ],
        "titles": {"*": "Adaptive Backend APIs"},
        "descr": {
          "en": [
            "Nowadays REST is deemed as a standard for creating APIs. However, can it really adapt to ever-changing requirements from mobile applications and other consumers? Let's take a look at GraphQL and see how it's gradually becoming a new standard."
          ]
        }
      }
    ]
  },
  {
    "num": 56,
    "season": 2018,
    "datetime": "2018-01-25T19:00:00+02:00",
    "place": {
      "name": "Taxify office", "addr": "Vana-Lõuna 39/1, Tallinn"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/JR2RNNGdxgvaLUOr2"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["48QYAX5qWmI"],
        "speakers": [
          {
            "names": {"*": "Sergei Müttü"},
            "titles": {"*": "Backend Developer @ Taxify"},
            "url": "https://www.linkedin.com/in/sergey-m%C3%BCtt%C3%BC-23b34a1",
            "image": "smuttu.jpg"
          }
        ],
        "titles": {"*": "Dynamic Pricing @ Taxify"}
      },
      {
        "lang": "en",
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["EAwC6dsSyJc"],
        "speakers": [
          {
            "names": {"*": "Renno Reinurm"},
            "titles": {"*": "Automation & Tools Engineer @ Pipedrive"},
            "url": "https://www.linkedin.com/in/rennoreinurm",
            "image": "rreinurm.jpg"
          }
        ],
        "titles": {"*": "DevOps Practices @ Pipedrive"}
      }
    ]
  },
  {
    "num": 55,
    "season": 2018,
    "datetime": "2017-12-19T19:00:00+02:00",
    "place": {
      "name": "Park Inn by Radisson Meriton Conference & Spa Hotel Tallinn", "loc": "https://goo.gl/maps/AJbuvwDS7co",
      "addr": "Toompuiestee 27/Paldiski mnt 4, 10149 Tallinn", "url": "https://www.parkinn.com/hotel-meriton-tallinn"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/gjvhYwH6uDLMOwpu1"],
    "speeches": [
      {
        "lang": "en",
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["yRAocYnNQ54"],
        "speakers": [
          {
            "names": {"*": "Vadim Trifonov"},
            "titles": {"*": "Senior Software Developer @ Swedbank"},
            "url": "https://www.linkedin.com/in/vadimtrifonov",
            "image": "vtrifonov.jpg"
          }
        ],
        "titles": {"*": "Pure Dependency Injection"},
        "descr": {
          "en": [
            "Dependency injection is probably one of the most misunderstood and confusing topics in software engineering. Do you really need complex frameworks to make use of it? Can a number of first principles applied with a proper technique help you unlock object graphs?"
          ]
        }
      },
      {
        "lang": "en",
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["oFbE2GH2NfU"],
        "speakers": [
          {
            "names": {"*": "Jevgeni Goloborodko"},
            "titles": {"*": "Architect & Founder @ Digital Magic Ltd"},
            "url": "https://www.linkedin.com/in/jevgeni-goloborodko-65a048a",
            "image": "jgoloborodko.jpg"
          }
        ],
        "titles": {"*": "Monitoring your applications"},
        "descr": {
          "en": [
            "A story about monitoring tools and techniques I’ve used since late 90-s up to modern times. Why hardware metrics is just not enough. How to collect service statistics without inventing your own bicycle (demo included)."
          ]
        }
      }
    ]
  },
  {
    "num": 54,
    "season": 2017,
    "datetime": "2017-11-21T19:00:00+02:00",
    "place": {
      "name": "Playtech Estonia OÜ", "loc": "https://goo.gl/maps/VKtUZz2biJ32",
      "addr": "Lõõtsa 5, 11415 Tallinn", "url": "http://www.playtech.ee"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/8imlUDi6GStjanui2"],
    "speeches": [
      {
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["pHPl6DTVTbs"],
        "speakers": [{
          "names": {"*": "Dmitri Dorofejev"}, 
          "titles": {"*": "Java team lead @ Playtech"},
          "image": "ddorofejev.jpg"
        }],
        "titles": {"en": "Cross-platform protocol design with Google Protocol Buffers"},
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["w4z4uYmn688"],
        "speakers": [{
          "names": {"*": "Joonathan Mägi"}, 
          "titles": {"*": "Technical Lead @ MOVE Guides"},
          "image": "jmagi.jpg"
        }],
        "titles": {"en": "From 0 to 60 with Kubernetes and Istio"},
        "descr": {"en": ["Setting up a cluster and running your first micro-services on Kubernetes and Istio."]},
        "lang": "en"
      }
    ]
  },
  {
    "num": 53,
    "season": 2017,
    "datetime": "2017-10-12T19:00:00+03:00",
    "place": {
      "name": "Transferwise Ltd Estonia", "loc": "https://goo.gl/maps/fXmz146K1SD2",
      "addr": "Veerenni 24, 10135 Tallinn", "url": "https://transferwise.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/3QxhtVZ8AsBz5Pc42"],
    "speeches": [
      {
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["3I8kY-UfFDI"],
        "speakers": [{
          "names": {"*": "Dmitry Zhukov"}, 
          "titles": {"*": "Product engineer @ TransferWise"},
          "image": "dzhukov.jpg"
        }],
        "titles": {"en": "Apache Spark 1.6-2.2: Testing in Production"},
        "descr": {
          "en": [
            "In our last DevClub talk we shared the challenges of detecting fraud in TransferWise. Since then we went a long way of revamping our models to adopt latest Machine Learning techniques. We will share how we use Apache Spark models in production, which challenges we faced and how we solved them. It would be interesting for people who want run machine learning models in real-time production flows."
          ]
        },
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["Z9qIDr8hVAE"],
        "speakers": [{
          "names": {"*": "Filipp Keks"}, 
          "titles": {"*": "Software engineer @ Wolf3D"},
          "image": "fkeks.jpg"
        }],
        "titles": {"en": "Horrors of mobile graphics"},
        "descr": {
          "en": [
            "According to mobile manufacturers modern devices recently reached the level of gaming consoles in terms of hardware complexity. Can we reach the level of real-time graphics on mobile devices similar to consoles too? You will find out about some unexpected traits of mobile graphics development with modern APIs like OpenGL ES and DirectX, about common problems and their solutions. You will feel the struggle of developers fighting for every millisecond and get a glimpse of the bright future with new generation graphics like Vulkan and Metal."
          ]
        },
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["XE5PPtrSNQ8"],
        "speakers": [{
          "names": {"*": "Erkki Alamäe"},
          "titles": {"*": "Senior System analyst @ Nortal"},
          "image": "ealamae.jpg"
        }],
        "titles": {"en": "What can you do with data?"},
        "descr": {
          "en": [
            "You will get an overview of what methods are actually used by data scientists to extract value out of data: preprocessing, clustering, visualization, anomaly detection, prediction etc. Examples will be given about when to use which method and what are their pitfalls. By the end, you should have a gut feeling of a) what is doable with data today, and b) what is not ...yet."
          ]
        },
        "lang": "en"
      }
    ]
  },
  {
    "num": 52,
    "season": 2017,
    "datetime": "2017-09-13T19:00:00+03:00",
    "place": {
      "name": "MOVE Guides", "loc": "https://goo.gl/maps/ajGHj3bWLRs",
      "addr": "Valukoja 8, 11415 Tallinn", "url": "https://www.moveguides.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/8w2AULJdPqpzQuqj2"],
    "speeches": [
      {
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["JhM2NvcfnVY"],
        "speakers": [{
          "names": {"*": "Steve Giles"}, 
          "titles": {"*": "VP Engineering"},
          "image": "sgiles.jpg"
        }],
        "titles": {"en": "Technical challenges of building SaaS software for Fortune 500 customers"},
        "descr": {
          "en": [
            "What's it like selling a transformational, disruptive technology to Fortune 500 companies? What are the differences to consumer products or more traditional tech products? How does tech influence the sales cycle? Once the contract is signed, what can you expect next? These might sound like distant business topics, but they have a very tangible impact on you as a software developer: what does your architecture have to support, what you can and can not do when building, what are the security expectations, even what tools you can use. We share some experience and lessons on the way from startup to accepted SaaS vendor to the largest enterprises."
          ]
        },
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["6KzMYkxTo20"],
        "speakers": [{
          "names": {"*": "Hendrik Kaju"}, 
          "titles": {"*": "Front-end engineer"},
          "image": "hkaju.jpg"
        }],
        "titles": {"en": "Componentized Frontend Architecture"},
        "descr": {
          "en": [
            "Discussions around FE development are usually focused on frameworks and less on principles, but the latter is often more important to successfully building large web apps. Component-based architecture is a pattern for building applications that are scalable and maintainable even as they grow bigger and more complex. This quick talk gives an overview of how we have applied this approach at MOVE Guides/Teleport and what we've learned from it."
          ]
        },
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["iz6MJ2QGBg0"],
        "speakers": [{
          "names": {"*": "Joonathan Mägi"}, 
          "titles": {"*": "Tech Lead"},
          "image": "jmagi.jpg"
        }],
        "titles": {"en": "Security in the Age of Containers"},
        "descr": {
          "en": [
            "Container technologies like Docker and Rkt have radically changed the way that applications are being developed and deployed making shipping new features or code faster than ever before. While containers are great for DevOps, they also present risks that have been traditionally tackled by Ops and Security teams. What are the things to watch out for and are there any quick wins to implement in your environment."
          ]
        },
        "lang": "en"
      }
    ]
  },
  {
    "num": 51,
    "season": 2017,
    "datetime": "2017-08-30T19:00:00+03:00",
    "place": {
      "name": "Park Inn by Radisson Meriton Conference & Spa Hotel Tallinn", "loc": "https://goo.gl/maps/AJbuvwDS7co",
      "addr": "Toompuiestee 27/Paldiski mnt 4, 10149 Tallinn", "url": "https://www.parkinn.com/hotel-meriton-tallinn"
    },
    "org": {"mod": ["sgorski"]},
    "speeches": [
      {
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["KDcEOhdGAF0"],
        "speakers": [{
          "names": {"*": "Kirill Slavetski"}, 
          "titles": {"*": "Product designed and researcher @ Jobbatical"},
          "image": "kslavetski.jpg"
        }],
        "titles": {"en": "Using design sprint method in a product company"},
        "descr": {
          "en": [
            "The design sprint is a five-day process developed at GV (previously Google Ventures). The process helps find answers to critical business questions through design, prototyping, and testing ideas with customers. The approach allows to shortcut the endless debate cycle and compress months of time into a single week. In his talk, Kirill will give an overview of the sprint structure, and will share some experience of using this approach in Jobbatical product design team."
          ]
        },
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama", "vsiilbek"]},
        "youtube": ["yHd06oUVXSg"],
        "speakers": [{
          "names": {"*": "Andres Ivanov"}, 
          "titles": {"*": "Head of Infrastructure @ Inbank"},
          "image": "aivanov.jpg"
        }],
        "titles": {"en": "Infrastructure as code with AWS CloudFormation"},
        "descr": {
          "en": [
            "Average AWS account for a small startup has over 100 resources, creating and designing them manually removes any possibilities for fast scaling and recovery.",
            "Code, continuous delivery and scripts are not the only things to version control, Infrastructure can be written down and versioned same way.",
            "Andres will demonstrate how to automate the infrastructure at AWS and explain benefits of it.",
            "He also will guide through possible problems discovered from Infrastructure automating and explain solutions for them."
          ]
        },
        "lang": "en"
      }
    ]
  },
  {
    "num": 50,
    "season": 2017,
    "datetime": "2017-07-04T19:00:00+03:00",
    "place": {
      "name": "Wabadus", "loc": "https://goo.gl/maps/7ya5Znk3Vv62",
      "addr": "Vabaduse väljak 10, 10146 Tallinn", "url": "http://www.wabadus.ee"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://goo.gl/photos/9KqbKgNioXzCi8TBA"],
    "speeches": [
      {
        "info": {
          "ru": "Встреча не снималась на камеру. Видео нет.",
          "en": "No meeting recording on camera. No video.",
          "et": "Kohtumise salvestamine kaamerasse ei toimunud. Videot pole."
        },
        "speakers": [{
          "names": {"*": "Martin Kiuru"}, 
          "titles": {"*": "CTO @ Make IT Work"},
          "image": "mkiuru.jpg"
        }],
        "titles": {"en": "How to become an entrepreneur: the story of a software developer"},
        "descr": {"en": ["About choices, opportunities, obstacles and dangers on a way to own company."]},
        "lang": "en"
      },
      {
        "info": {
          "ru": "Встреча не снималась на камеру. Видео нет.",
          "en": "No meeting recording on camera. No video.",
          "et": "Kohtumise salvestamine kaamerasse ei toimunud. Videot pole."
        },
        "speakers": [{
          "names": {"*": "Kalle Volkov"}, 
          "titles": {"*": "Head of Server Services @ Starship Technologies"},
          "image": "kvolkov.jpg"
        }],
        "titles": {"en": "From 3000 to 500 (ms) - nature to action"},
        "descr": {
          "en": [
            "About achieving 500 millisecond timing from image in nature to operator panel to action that robot fulfills."
          ]
        },
        "lang": "en"
      }
    ]
  },
  {
    "num": 49,
    "season": 2017,
    "datetime": "2017-05-18T19:00:00+03:00",
    "place": {
      "name": "Pipedrive OÜ", "loc": "https://goo.gl/maps/squwGHdRPMB2",
      "addr": "Paldiski mnt 80, Tallinn 10617", "url": "https://www.pipedrive.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/a8cs6YuJznD6eAKYA"],
    "speeches": [
      {
        "org": {"cam": ["ijaama", "vsiilbek"], "orig": ["https://www.youtube.com/watch?v=jJ3Q5DSGMFI"], "origViews": 73},
        "youtube": ["jJ3Q5DSGMFI"],
        "speakers": [{
          "names": {"*": "Kristo Kaiv"},
          "image": "kkaiv.jpg"
        }],
        "titles": {"en": "Pains & Gains of microservices"},
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama", "vsiilbek"], "orig": ["https://www.youtube.com/watch?v=nlEnnddGIc0"], "origViews": 43},
        "youtube": ["nlEnnddGIc0"],
        "speakers": [{
          "names": {"*": "Konstantin Root"},
          "image": "kroot.jpg"
        }],
        "titles": {"en": "How to start running: myths and data science"},
        "lang": "en"
      }
    ]
  },
  {
    "num": 48,
    "season": 2017,
    "datetime": "2017-03-23T19:00:00+02:00",
    "place": {
      "name": "Transferwise Ltd Estonia", "loc": "https://goo.gl/maps/fXmz146K1SD2",
      "addr": "Veerenni 24, 10135 Tallinn", "url": "https://transferwise.com"
    },
    "org": {"photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/vwB7WWbc3j5CsXDWA"],
    "speeches": [
      {
        "org": {"cam": ["ijaama", "vsiilbek"], "orig": ["https://www.youtube.com/watch?v=ziQZD-wehPE"], "origViews": 174},
        "youtube": ["NjefBzv9L50"],
        "speakers": [{
          "names": {"*": "Anton Arhipov"},
          "image": "aarhipov.jpg"
        }],
        "titles": {"en": "Inadequate Java interview"},
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama", "vsiilbek"], "orig": ["https://www.youtube.com/watch?v=hTCt1Pyh9ic"], "origViews": 317},
        "youtube": ["SxRfRi8Xs90"],
        "speakers": [{
          "names": {"*": "Erik Kaju"},
          "image": "ekaju.jpg"
        }],
        "titles": {"en": "Cards & payment methods lead @ TransferWise"},
        "lang": "en"
      }
    ]
  },
  {
    "num": 47,
    "season": 2017,
    "datetime": "2017-02-23T19:00:00+02:00",
    "place": {
      "name": "The von Stackelberg Hotel Tallinn", "loc": "https://goo.gl/maps/bKgbrTmjPkP2",
      "addr": "Toompuiestee 23, Tallinn 10137", "url": "https://www.vonstackelberghotel.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/MkQY1faaSohkzZ118"],
    "speeches": [
      {
        "org": {"cam": ["ijaama"], "orig": ["https://www.youtube.com/watch?v=44EO0ICnw9Q"], "origViews": 50},
        "youtube": ["1oTgz-1kx4A"],
        "speakers": [{
          "names": {"*": "Artur Schaback"},
          "image": "aschaback.jpg"
        }],
        "titles": {"en": "Development Security for Peer to Peer Marketplaces"},
        "lang": "en"
      },
      {
        "info": {
          "ru": "По просьбе докладчика видео не снималось.",
          "en": "No video by speaker request.",
          "et": "Video puudub kõneleja soovil."
        },
        "speakers": [{
          "names": {"*": "Benjamin André Micolon"},
          "image": "bamicolon.jpg"
        }],
        "titles": {"en": "GraphQL: what it is, why use it and how it helps us at Palleter"},
        "lang": "en"
      }
    ]
  },
  {
    "num": 46,
    "season": 2016,
    "datetime": "2016-10-27T19:00:00+02:00",
    "place": {
      "name": "The von Stackelberg Hotel Tallinn", "loc": "https://goo.gl/maps/bKgbrTmjPkP2",
      "addr": "Toompuiestee 23, Tallinn 10137", "url": "https://www.vonstackelberghotel.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/zFbZmbTXY4AphJnVA"],
    "speeches": [
      {
        "org": {"cam": ["ijaama"], "orig": ["https://www.youtube.com/watch?v=wi1d1YgSAcE"], "origViews": 192},
        "youtube": ["2Ov5yehFuOc"],
        "speakers": [{
          "names": {"*": "Matti Jagula"},
          "image": "mjagula.jpg"
        }, {
          "names": {"*": "Raido Kaldma"},
          "image": "rkaldma.jpg"
        }],
        "titles": {"en": "Developing a desktop application in Javascript"},
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama"], "orig": ["https://www.youtube.com/watch?v=MANmZ1ZwCfI"], "origViews": 180},
        "youtube": ["Jwy5_98Z-QI"],
        "speakers": [{
          "names": {"*": "Konstantin Root"},
          "image": "kroot.jpg"
        }],
        "titles": {"en": "Securing website with HTTP headers"},
        "lang": "en"
      }
    ]
  },
  {
    "num": 45,
    "season": 2016,
    "datetime": "2016-05-31T19:00:00+03:00",
    "place": {
      "name": "Playtech Estonia OÜ", "loc": "https://goo.gl/maps/VKtUZz2biJ32",
      "addr": "Lõõtsa 5, 11415 Tallinn", "url": "http://www.playtech.ee"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/wbSaSM6NXafyfkp38"],
    "speeches": [
      {
        "org": {"cam": ["ijaama"], "orig": ["https://www.youtube.com/watch?v=F9kTzGaTmok"], "origViews": 143},
        "youtube": ["opwxpjbLXXg"],
        "speakers": [{
          "names": {"*": "Tõnis Pihlakas"},
          "image": "tpihlakas.jpg"
        }],
        "titles": {"en": "Weaving Web Applications with Apache Tapestry"},
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama"], "orig": ["https://www.youtube.com/watch?v=jk_uvt9zP7g"], "origViews": 82},
        "youtube": ["xxkab1PSNUc"],
        "speakers": [{
          "names": {"*": "Villu Vaimets"},
          "image": "vvaimets.jpg"
        }],
        "titles": {"en": "Implementing an intelligent form engine"},
        "lang": "en"
      }
    ]
  },
  {
    "num": 44,
    "season": 2016,
    "datetime": "2016-03-23T19:00:00+02:00",
    "place": {
      "name": "Transferwise Ltd Estonia", "loc": "https://goo.gl/maps/fXmz146K1SD2",
      "addr": "Veerenni 24, 10135 Tallinn", "url": "https://transferwise.com"
    },
    "org": {"mod": ["sgorski"]},
    "speeches": [
      {
        "org": {"cam": ["ijaama"], "orig": ["https://www.youtube.com/watch?v=9mXO6-nN4sU"], "origViews": 423},
        "youtube": ["TPdlULD-DCo"],
        "speakers": [{
          "names": {"*": "Erko Risthein"},
          "image": "eristhein.jpg"
        }],
        "titles": {"en": "Risk@TransferWise"},
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama"], "orig": ["https://www.youtube.com/watch?v=x6MUptcLB7g"], "origViews": 696},
        "youtube": ["AN1kbLAnOyQ"],
        "speakers": [{
          "names": {"*": "Dmitry Zhukov"},
          "image": "dzhukov.jpg"
        }, {
          "names": {"*": "Maksims Juvcenko"},
          "image": "mjuvcenko.jpg"
        }],
        "titles": {"en": "Fraud Detection in PHP: Ascending from Hell"},
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama"], "orig": ["https://www.youtube.com/watch?v=9hz2HlClZaw"], "origViews": 160},
        "youtube": ["Pii2EHcmsHI"],
        "speakers": [{
          "names": {"*": "Stanislav Gorski"},
          "image": "sgorski.jpg"
        }],
        "titles": {"en": "AWS Lambda in Your Stack"},
        "lang": "en"
      }
    ]
  },
  {
    "num": 43,
    "season": 2016,
    "datetime": "2016-02-16T19:00:00+02:00",
    "place": {
      "name": "Pipedrive OÜ", "loc": "https://goo.gl/maps/squwGHdRPMB2",
      "addr": "Paldiski mnt 80, Tallinn 10617", "url": "https://www.pipedrive.com"
    },
    "org": {"mod": ["sgorski"], "photo": ["klinnik"]},
    "photo": ["https://photos.app.goo.gl/acfDVkXzsgnFx2Vn8"],
    "speeches": [
      {
        "org": {"cam": ["ijaama"], "orig": ["https://www.youtube.com/watch?v=jHpnU8eDH9o"], "origViews": 2693},
        "youtube": ["y2Dpj4QElv4"],
        "speakers": [{
          "names": {"*": "Martin Tajur"},
          "image": "mtajur.jpg"
        }],
        "titles": {"en": "Queues, queues, queues. How RabbitMQ enables reactive architectures"},
        "lang": "en"
      },
      {
        "org": {"cam": ["ijaama"], "orig": ["https://www.youtube.com/watch?v=BcnnOfpPiN0"], "origViews": 390},
        "youtube": ["wlOcp_-4280"],
        "speakers": [{
          "names": {"*": "Anton Keks"},
          "image": "akeks.jpg"
        }],
        "titles": {"en": "Digital Signatures: Estonia vs The World"},
        "lang": "en"
      }
    ]
  }
]
