Our Digital Tomorrow
GOTO Chicago 2020 will gather the pioneers and game-changing coders who shape our industry and radically improve the way we look at software. We’ll dive into core technical concepts and explore what quality code looks like in 2020 and beyond.
Whatever you’re working with — frontend, backend, mobile, cloud services, augmented reality, microservices, events, machine learning, maybe even upcoming technologies like quantum computing — it’s all based on solid fundamentals like programming languages, testing skills, scalability, stability and a focus on the end user. We believe that as developers, we ought to understand the whole stack in order to provide the right code and quality in the components we are working on.
In order to enjoy what we do and thrive as individuals and teams, we also need to occasionally step back from technology and look at the human side of coding. At GOTO we have multiple sessions that focus on the people behind modern software and how we can more effectively interact and perform.
Each keynote, session and masterclass is designed to deliver a blend of eye-opening ideas and the practical skills needed to write software you can be proud of.
Choosing a programming language is one of the most crucial decisions when developing software — the choice can influence the way you and your team think about your problem domain and how you model it.
As developers, we need to be aware of the languages topping the hype curve and focus on the production-ready ones that provide real functionality. We also need to understand the exciting updates to older languages like Java and how ones like C++ are still incredibly important in a newer era.
Some say data is everything, and a lot of companies are data driven or transitioning to become so. With the rise of AI, machine learning, predictive or real-time analytics, data takes center stage at an ever-increasing speed and volume. Software developers and system architects lay the foundation for gathering, formatting and transporting the data, and data scientists and analysts turn bits and bytes into information value and insight.
Every minute, Netflix delivers 694,444 hours of video and users post 277,777 stories to Instagram. Even though your project may be on a smaller scale, it’s a good idea to prepare your software to handle speed and volume, preferably at the same time.
Transporting data between systems and services can be a challenging task in several aspects. Keeping consistency, eliminating bottlenecks, staying flexible and at the same time catering for high quantities can seem like a daunting task. Selecting the right architecture, tools and framework is key to success. That’s why we want to talk to you about data, streams and pipelines at GOTO.
Microservices promise faster development, deployments, scaling and all the goodies you always wanted but never had. It’s all about outcomes, and the way your organization is structured has a tremendous impact on those outcomes. It’s easy to say “Conway’s Law” and then move swiftly on, but that’s not enough. Yes, a core characteristic of organizations successfully running microservices is that teams are organized around business capabilities, but there is so much more to discuss: How do we define a microservice? What does a microservices architecture require? How do we withhold or even increase your current level of security when moving to a fine-grained distributed architecture? What about serverless? Serverless applications offer more cost savings over bare-metal solutions through improved optimization of infrastructure resources. But how do we actually design serverless apps?
At GOTO we will discuss how to build, run and operate services at scale. We’ll dig into why GraphQL can be an alternative to REST APIs when it comes to serving data. We’ll touch on how to route traffic using a service mesh and how it integrates with API management, ensuring availability, scalability and consistency.
Tools won't fix your broken culture. And neither will hiring "a DevOps".
No matter how technical the job is, we still have to interact with other humans. Even after our Agile or Lean implementation or radical DevOps initiative is running, we have to be able to work effectively with people from different disciplines and backgrounds if we are to create truly high-performing teams.
We’re witnessing a shift from hierarchical ‘command and control’ management systems to flatter systems with more individual autonomy, and yet despite their benefits, these systems present new and unique challenges. We need to understand the importance of inclusion, diversity, psychology and all facets of working together. Add remote working, geography, time zones and cultural background to the equation, and you know why this has so much focus at GOTO.
DevOps is more than just tools and techniques. You can’t simply buy it or adopt it and without significant culture shift, you can’t just hire it. If you build it, you run it — but which skills and tools do you actually need to make the transition and run DevOps successfully? There is no one-size-fits all; it is very much about sharing experiences and finding the flavour that fits you and your organisation and culture. Continuous Delivery has been around for more than a decade. CD is very much about embracing constant change, and CD itself is living a life with constant change too, probably most obvious with architectural paradigms that keep coming from cloud, serverless, microservices, etc. The world of tech is constantly evolving, and CD has to be adapted to the times we live in. Continuous Integration is yet another dialect, people even start to talk about Continuous Everything.
What Melvin Conway taught us in the late 60s is still relevant for how we do software today. It is highly connected with teams and culture. At GOTO it all comes together.
Cloud native means building apps designed specifically to leverage cloud computing, often defined as container packaged, dynamically managed and microservices oriented. This architectural pattern allows systems to be self-healing, auto-scaling and highly available.
Organizations can radically reduce costs, leveraging the efficiency of cloud computing when using cloud native technologies. But which problems will adopting cloud native solutions actually solve? Where do we start and how can we best strategize for such a journey?
As a natural next step from cloud's "not on my machine" mantra, serverless applications offer more cost savings over bare-metal solutions through improved optimization of infrastructure resources.
All of the above call for new ways of designing systems, and still everything complies to good old architectural principles. Distributed systems of today may look different on the outside; newer paradigms like reactive behaviour may sound confusing, but at the end of the day, what you learned back in school about robust software still holds.
At GOTO we were very focused on solid software back in the 90s, now, more than two decades later, we still are.
On average, it takes a company 8 months to figure out it has been hacked. In a world where innovation and deployment is expected at an ever-increasing pace, security is often neglected. Security requires time, and this time is often not prioritized, imposing a challenge when new vulnerabilities are discovered and exposed every day.
As developers, how do we build inherently secure and maintainable code and infrastructure to protect our data and identities? How do we equip ourselves with tools to withstand intrusive and adversarial attacks and prepare for unforeseen security risks? Today, especially with help from AI, we face a new risk. Changing and replication data; constructing false data; all leading to fake news.
At GOTO we believe that the way we design, build and run our software is the major key to keeping data secure. Security at all levels within the software stack is more important than ever before, even including data science.