As tech permeates just about every industry and aspect of our lives, the number of decisions made based on software and directly by software — even without human input — unfailingly grows. It is our duty as software developers to understand the rapidly changing ecosystem we’re a part of in order to continuously adapt, create ethical solutions and write software we can be proud of.
GOTO Copenhagen is about more than just the technical aspects of software development — though we cover plenty of that too — this conference is your chance to take part in and be inspired by a global innovation movement full of explorers, pioneers and trendsetters.
We’ll dive into the technical topics while also considering the more human side of tech, including agile teams, developer productivity and UX. Traditionally UX refers to user interfaces, but one can argue that the user experience is and should be considered in every layer of software: whether you’re creating APIs, server architecture, web frontends or machine learning models, your work is part of what ends up in front of the user. UX is everywhere!
You’ll walk away from your time at GOTO Copenhagen equipped with practical lessons on a wide range of topics that will help you adapt to the constant changes we all face. The program, curated by a committee of developers, will include keynotes, sessions and masterclasses covering quantum computing for everyone, security & ethics, developer productivity, AI now and beyond, teams & DevOps, APIs, programming, agile, cloud native, microservices and more.
50 years ago, quantum computing was just a theory. Today, quantum programming is getting close to becoming the new reality for software developers.
Quantum computers have the potential for disrupting how we fundamentally store, process and utilize data and could provide significant breakthroughs in the optimization of complex systems, artificial intelligence and many other areas. It has actually been around for quite some time, and companies like Google, D-Wave, IBM, Microsoft and Rigetti Computing are researching heavily to make it available for everyone.
So, how we can we, as developers, get started with quantum programming? And what kinds of problems will quantum computers actually solve?
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 we are responsible for implementing state-of-the-art security in our systems, making it a first class citizen in all system architecture, but 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?
In the rapidly changing and evolving tech ecosystem, it is vital that you can add value, increase your development speed, and cut out as many of the cumbersome, boring and repetitive tasks as possible. Between tailoring your own strict schedule, eliminating distractions and preserving your mental health, what other habits, methods and methodologies will help developer productivity? Agile/Kanban, Git, command line magic, cloud tools, debugging mechanisms, etc.? Is there a be all end all method to upping developer productivity? Fact is, we must continuously adapt to constant changes.
In recent years, we have seen a huge increase in AI innovations prompted by vast amounts of data, the cloud, innovations in algorithms and more. There is still a stark contrast between the number of Data Scientist and the need for AI professionals. Therefore developers will have to implement AI technology in their professional and personal projects as it continues to permeate just about every industry. So how can developers begin to design AI applications that engage customers, optimize operations and transform products?
Where should you start? Get to know the different AI frameworks and APIs that will enable you to learn new skills and stay relevant in the work space.
You are following an agile development process, you are using containers and CI/CD pipelines, so you’re doing right. Wrong! We are in the ages where agile has turned into DevOps 2.0 and Chaos Engineering.
Agile and DevOps promise to deliver better software faster with shorter development cycles, increased deployment frequency and more dependable releases. The Three Ways of doing it: systems thinking, amplifying feedback loops and creating a culture of continual experimentation and learning. Please note the word culture. DevOps and Agile are much 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.
It would be almost impossible to build a modern application without APIs. With the rise of Mobile and IoT, more and more companies are offering public APIs to developers to create an integrated and seamless experience for their users. All microservices architecture rely on APIs. For modern enterprise systems, which are often distributed, good APIs are the glue holding it all together - making sure the right services have the right information at the right time.
The talks in this topic are filled with practical lessons to help you build, use and maintain APIs while enhancing application security.
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.
It can also be overwhelming, daunting or even impossible to understand all of the new programming languages coming up. Is this new language just hype, or will it actually help our team to be more productive?
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.
We know that agility means working with customer focus and short feedback loops. We also know the methodologies to choose from and the cultural and personal issues related to making this work. But often, when a company introduces agility, they forget to support the developers in their day-to-day job. How do they actually implement CD, pair programming, testing and architecture in agile development?
The next generation of Agile may not be called Agile at all - it will just be implicit that agility is part of software development. It all comes together: Agile, DevOps, Chaos Engineering and building effective teams. So, what do we need to get there? What can we do now to move beyond the existing methods and give our agility a boost?
Serverless has revolutionized the way we write backend.
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.
But how do we actually build serverless apps and run them successfully in production?
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 on swiftly, 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?
But microservices themselves are the easy part. The really difficult choices revolve around everything that surrounds the microservices systems as they are designed, built, run, managed, evolved, stressed and even retired in production. We must consider how to manage and optimize the processes, practices, people and technologies when migrating from a monolithic system to a Microservice Architecture.
As 360 degree developers we need to understand the world around us. The world is more global than ever before and software is affecting and controlling everything. We have national and international laws about software, just think of GDPR. Countries and states have National Tech Ambassadors and plans for digitialization at large scale, including federal plans for AI. At a global scale, the number of software developers doubles every 5 years. Can this go on? Software and politics melt together. How can we seek inspiration in the world around us?