29-30 Sep - Rebouças Convention Center - São Paulo City
If you need recommendations on Hotels, Flight Ticket Reservations, Rent a Car, and more check out our Travel partner "Feiras & Congressos".
São Paulo is a huge city. If it's your first time here, check a good guide such as WikiTravel. You'll stay mostly around Downtown.
The goal is to implement a truly "International" programming-focused conference in Brazil. Meant to introduce Brazilian programmers to the world - and hopefully Latin America in general next time.
We already have many great Brazilian conferences, but all of them are meant just for the Brazilian Audience.
The problem: we only speak Brazilian Portuguese in Brazil. So no one else in the world can see what we are doing.
The solution: it is about time we present in the tech industry lingua-franca: English. Let's start showing off what we are capable to a larger audience.
Day 1: September 29th - Friday
OPENING KEYNOTE - to be defined
"Serenata de Amor" is a project willing to use only open data to detect suspicious transactions in government spending. Since we are not willing to use closed databases in the models, we face tech challenges in a weekly-basis. Many of the cool Machine Learning models just don't work well in our domain. Let's walk through them and proposed solutions being explored by researchers world-wide.
WebVR is an open standard that makes it possible to experience VR in your browser. There are some limits to use this technology in browsers but it is already possible. Lets see how to start VR studies, produce content to use within, some possibilities that it brings and how to enjoy it right now.
Asynchronous Programming goes far beyond Promises and Async/Await. In this talk we will:
- Explain how it used to be done with callbacks
- Review how Promises work
- Look at the benefits of Async/Await;
---> Reactive Extensions, as in C#
---> Channel-based programming, as in Go
---> Actor-based programming, as in Erlang and Elixir.
This talk is an expansion of an article of mine: http://bit.ly/2qf4pB6
Business is a fast moving landscape. At the end of the day, doesn't matter how performant or clean or cool your code is when it doesn't bring real value to your customers before the competition. We should strive for a marathon.
As engineers that worth our salt, we have to play smarter, not harder. Following the "Code as Data" mantra, let analyze its implications lifting our information model and treating it with the same precision that we used to deal with data itself, whereby we shorten the gap between prototyping and production, increase the opportunity for collaboration and ultimately reduce our time-to-market.
Everyone talks about Big Data, Machine Learning and AI these days. In fact, it would appear that you just need to bunch these three terms together with a half baked idea and a crazy name and you can raise any amount of money in the Valley these days. But how can you actually make your data really work for you, deliver value in meaningful ways to your users and dodge the countless pitfalls awaiting the unwary data explorer (data swamps, overly complex setups, etc.) ?
Here, you'll learn about how you can solve real world problems like realtime analytics with the Lambda Architecture, create a working Data Lake and how to create data-driven features in your applications that your users will actually use and appreciate.
Kotlin is taking over the world! As the language was announced as official for Android development by Google during I/O '17, a lot of developers got curious about this new language made by JetBrains. But Kotlin is actually not that new, so why the buzz right now?
In this talk we're going to learn how Kotlin can help you to be more productive, the benefits of it compared to other JVM languages, how you can start to use it for Android and backend (or even iOS in a near future!) and Pinterest, Uber, Gradle, Evernote, 99, Nubank, Google, Trello and many other companies are already using it in production!
During the talk we should also realize why concepts as laziness and immutable data are the cornerstone of high throughput threaded systems and how its guarantee reliability and performance.
By the end of the day you should know by heart the main monads and how to use them solve different day-by-day problems and deeply in love with functional programming.
Chatbots came with it's promise to be a revolution in the way we interact with software, communicate with brands and commit with tasks. It's the last big change in user experience since the touch screen's arrival with the iOS. Here we will see some experiences and challenges designing user experiences for chatbot users.
It's not rocket science and not much technical, but we will know about how it began, the status quo of the chatbots market and what we can expect for the next years (or months.... ok, maybe days).
-Where did it came from?
-Chatbots until this day (this minute).
-Interactive vs Conversational chatbots.
-Our challenges designing our chatbot and it's user experience.
-Caveats and problems to avoid.
-The future of chatbots.
Telegram bots are a major revolution for messenger apps. They make app more practical and useful. A simple pool bot can make group decisions easier and developing them using Python is another easy task.
During this talk you will learn what are the best Python frameworks, the best GitHub repos to take as example, the best resources and where to deploy your bot.
I also intent to build a simple To Do List bot and show some examples of useful bots.
One of the most common problems developers starting with functional programming face is the lack of understanding on the mechanisms for composition, abstraction and polymorphism offered by functional languages. Those mechanism differ quite a bit from the ones employed in object oriented (e.g. inheritance and interfaces) & imperative languages (e.g. templates).
This lack of abstract & polymorphism ends up yielding imperative programs disguised in a "not-so-functional" shell: which is even worse than a fully imperative alternative.
In this talk, we are going to present the concept of Protocols (Elixir & Clojure) and/or TypeClasses (Haskell & friends) and relate them to alternatives in other languages (e.g. Mixins in Ruby and Extension Methods in C#).
We will learn how to tap on the advantages of associating "data & behavior" we're already familiar in oop -- but only where it makes sense! -- in functional programs.
One of the defining features of the Go programming language is its first class support for concurrency. Features such as channels and goroutines have been widely publicized as some of the most powerful aspects of the language. As with most well designed features, concurrency in Go is easy to start and hard to master. In this talk, we'll explore several idioms and patterns applied in real world software running Go, starting from the basic syntax all the way to complete programs and blueprints for how to do new code that works concurrently, using all of the power of the language and the underlying hardware.
If everytime you need to publish an app on the app store you pass for bad moments, I have to tell you something: You are suffering for free!
In this talk I want to show you how you can publish an app from you development machine without all the bureocracy of certificates, passwords, provisioning profile, etc. you just need to commit and a push your code and that's it! Your app will be on the store, with no pain.
This is not a talk about React or React native. You can do all of I will show with any mobile development framework. I just React Native because I like React.
CLOSING KEYNOTE - to be defined
Day 2: September 30th - Saturday
So, you're a programmer, software developer, or something like this. Your main work is to develop software to add value to the company you work for. But for sure, your company expects more from you, and that's always many opportunities to add value that maybe you're not observing carefully.
On this talk, I'll tell you a story about introducing Elixir at Globo.com while doing my daily job. From this story and others from my career, I extracted some patterns to share with you, about how to identify these opportunities, create something valuable and convince the company that this is the right move for them.
Many of you, like me, have the dream to create a game, but today we have a hard decision to make, what platform my game will run...
With Unity3d you can deploy the game created to any current cell phone OS and a lot of game consoles.
But creating a game is hard and requires a lot of dark magic right? Wrong!
I'll show you that with your current knowledge and a small help of this framework, you can start creating some simple games.
The proposal of this talk is to show you in a little less than 1h that you can create a game, and as a side effect, you'll probably have no real life for the next months working on your super duper game.
Just do not forget to send me a copy when your game complete!
Conversations around code consistency seem to spark either cheers or jeers from developers. In this talk, I'll explore the good, bad, and the ugly of code style consistency as illustrated by the (sometimes drama-filled) history of Shopify's 13-year-old codebase. Highlighting strategies to help you evaluate when to push for better code consistency; you will hear about our techniques, tools and guides to enrich developer experience without compromising productivity and how to ultimately make code consistency important across the organization.
Battleplans is a real time strategy game for Android and iOS, but backed by an Ruby on Rails server.
In this talk I will share my experience maintaining the backend of the game and some tricks that let a 3 servers only Ruby on Rails app become viable for a real-time strategy game that runs only on mobile devices.
By the time I’m writing this abstract NPM has 425,989 packages. Tomorrow an average of 764 new ones will be published. In this talk, I will not complain about it. Instead, we will study this phenomenon in depth and see what can we learn from JS Fatigue and how to deal with it without headaches.
The whole reason of JS Fatigue is not the huge amount of modules we’ve got available, the real issue is the mindset we have when writing code.
In this talk, I won’t talk about the language itself and I won’t talk about frameworks. I will talk about what how this ended up happening and why we should see it as a positive thing from a software engineering point of view. For a very long time we have been talking about componentization and reusability and now that we’ve got it we started complaining about it, how did that happen?
We will talk about Unix Philosophy, about the current state of open source software development and about our role as software engineers, after all, we’re not paid to write code, we are paid to solve problems.
Ride with me on the journey of architecting and deploying a secure, production ready (and PCI-DSS compliant) infrastructure of a credit card processing company using 100% infrastructure as code.
Most examples of IaC on the internet focus on small deployments of toy projects to demonstrate a certain tool. Here we will have an in depth look on a real world example of creating an entire infrastructure from ground up using only code and automated tools, with all the gotchas and things that no one tells you.
* AWS (EC2, Lambda, etc)
It's funny to think that software development, like in the fashion world, somehow, works in cycles. Trends come and go all the time and as a result new programming languages, frameworks, services, libs are born but just a few remain relevant enough to mature and keep a community growing stronger and healthier.
Go is a open source programming language created at Google by Robert Griesemer, Rob Pike, and Ken Thompson whereas Ruby was conceived in the nighties, by Yukihiro Matsumoto. Both, Ruby and Go, are strongly growing and becoming go-to programming languages choices for developers/companies around the world.
In this talk we will compare the languages against each other and see how a Rubyists can start and become productive with Go.
Let's see how Elm and functional reactive programming can be a very good fit for web game development.
* Elm's architecture
* Why does it fit on game development?
* The consequences of controlling and storing your state explicitly
* Have fun
* Play Flappy Bird functional style
Do you want to start in the world of Infrastructure as Code with a useful case? Let's go creating a multicloud Docker Swarm cluster to run your microservices as a good starting point, using Terraform to provision servers and Ansible to install and configure Docker to run in Swarm mode.
* Infraestructure as a Code: a developer overview
Probably we, as developers, already listened about the concept but we don't have much interest because operation guys talk about it. In this little topic, I will explain it in a developer point of view based on my experience as a programmer.
* Terraform: manage resources in the cloud
A introduction to Terraform, how we can provision server instances, databases, virtual networks, DNS zones and other stuff writing code as recipes. I will use my current project - https://github.com/salizzar/terraform-recipes - as a base to create the infrastructure that will be used on my keynote.
* Docker Swarm: run containers in a cluster
A brief introduction to Docker Swarm and their features to run containers distributed in a cluster, with special attention to the concept of Stacks (a group of containers running as services inside the cluster).
* Ansible: configure servers with ease
A practical overview of Ansible and good practices focused in how to setup Docker to run in Swarm mode (project source code under development).
Some people used to say that the Internet video streaming is the future of the TV if that's the case, the core of this evolution is the video compression.
In this talk we're going to learn how video compression really works, using simple but cohesive examples, it's fun and at the end, I wish we all will know why and how h265 can compress more than h264.
The main topics we'll talk about are:
# Basic terminology
* From a single pixel to a video
* How our vision system is tricked to see "less"
# Compression is all about removing redundancy
* In time
* In Space
# How a video CODEC works
* Picture partitioning
* Entropy coding
And if there is more time I can even talk about the Globo's live stream architecture which is able to scale for millions of simultaneous users.
DevOps is a type of culture. It is not a role neither a team. In this session, we want to share Nubank's history looking for sanity and balance between Dev and Ops under a microservices architecture.
We will present how we matured from an engineering team with no one dedicated to infrastructure to a balanced team accountable for the evolution of the horizontal platform, keeping squads responsible for their own services operations.
Scaling non-trivial software can be complex. When your core business depends on custom communication protocols, you may end up having to get your hands dirty and write custom system services. In this talk I’m going to show how we can leverage the modular Caddy HTTP server and implement a Git reverse proxy bundled in it. You may also learn a few things about Git internals you never had the chance to ask anyone about.
Challenges building a stack of applications that handles localization in one of the largest real estate portal in Brazil. How we use Scala & Akka to solve business and technical requirements to build the ground of the revolution of real estate search experience.
We can take a glimpse at our applications or we can truly see them. We have a choice.
Our path is laden with problems and, when they arise, the first place to run is the log. The log is straightforward when the systems are small, but when we start to scale… the more users we get, the more data we will have to go through, and finding what we need is like staring at a well-stocked library, looking at the book titles, wondering which one could possibly have the information we need.
I’d like to suggest an alternative: the combination of StatsD, a platform that collects data to build statistics, and Grafana. It allows us to create beautiful, interactive dashboards that support pluggable panels.
This talk is not only focused on the theory behind these tools but also in the experience we had with them at Youse. I will present the tools (and the alternative tools too), explain how to use them and show the code we need to measure the events we want to track. A chart will be build from scratch, starting with an event on the system and ending in a beautiful dashboard.
I'd like to talk how has been our experience in development microservices with Scala, our pains and joys. What our team has been learning with Scala. I intend answer questions like: which scala points have benefited us and not? are we using Scala in the best way? Is it a good language for microservices?
CLOSING KEYNOTE - to be defined