Top 20 sessions

Architecture & Design PatternsHow should I structure my code? What works best for object-oriented design? Is there an alternative to MVC? This talk will answer those questions and give an overview of common layouts and best practices to make projects testable, maintainable and easy to understand. We will also look at DDD and hexagonal / clean / onion architectures and go through a few different implementations of the same app to illustrate the pros and cons of each approach.

Artificial IntelligenceMachine LearningArtificial Intelligence is far more than just machine learning. There are a variety of methods that can be used to automate decision making. In this introductory course for software developers, we explore a variety of these methods. The goal is to give devs newer to the field a few "eureka moments" during a survey of AI methodologies. Experienced devs will gain a fresh perspective on the field of AI from a fellow developer, not a mathematician.

Architecture & Design PatternsPHPAs developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let's talk about growing, learning and improving our code with calisthenics, readability and good design.

HTML & CSSFor the first time in the history of the web, CSS is graced with tools for laying out web pages without hacks. Flexbox and Grid provide methods for creating responsive websites with designs not previously possible. CSS Calc and CSS Custom Fields give us a first chance to use math and variables within CSS itself, without requiring compiling. Together, these four new CSS modules work together to revolutionize CSS in modern evergreen browsers.

Architecture & Design PatternsIf you maintain a library, how can you innovate without breaking the projects that depend on it? Follow semantic versioning, add APIs conservatively, add parameters compatibly, use deprecation warnings and publish a deprecation policy, guide your users on how to upgrade, and make wise choices about when to break backwards compatibility. This talk describes API evolution in Python and C, with lessons for libraries in any language.

DevOpsTests & QualityHave you ever someone say “Don’t deploy on Friday”? I used to say that too!

Join me as I tell you about my experience. Using examples from my work on multiple real world projects, I’ll discuss resilience and operability, deployment strategies, pipelines and continuous testing. Discover the details of trunk based development, feature toggles, pair programming and other best practices, and gain the confidence to deploy any day of the week!

SecurityKeeping your web application secure and free from vulnerabilities is hard work, even if you know the OWASP Top 10. In this talk I will show tools, best practices and patterns to help you with this, so that you can find security issues before an attacker does and even prevent them in the first place.

JavaScriptTests & QualityIn our company we have a lot of data flowing from the user’s applications to the API, then this data is displayed in the web dashboard. How do we avoid accidentally breaking API contracts, while adding new features? We have started using json-schema convention and wrote a few tools around it to lock down our API protocols. Now we have full confidence in our elegant tests, and even major releases happen without any hiccups.

Architecture & Design PatternsTests & QualityHexagonal Architecture, Clean Architecture, Domain-Driven Design… You may have heard about them. Let's start from scratch in this session and go beyond the buzzwords. We'll go together though these ideas to understand how you can improve the maintainability of your projects', either greenfield or legacy.

Artificial IntelligenceThis simple technique that every programmer should know can simplify certain problems tremendously, allowing us to find an optimal solution to difficult problems quickly and easily using a process called Dynamic Programming. In this session, we will run through examples of using this technique to solve several problems, both "on paper" and in code, and apply that knowledge to build Artificial Intelligences that can make decisions on our behalf.

Artificial IntelligenceMachine LearningWhile we are a long ways out from machines that can perform artificial general intelligence (AGI) tasks, deep learning can be used for many narrow artificial intelligence (AI) tasks including image or audio classification, facial recognition, object recognition, image caption generation, and natural language processing. We will explore how developers can easily integrate open source deep learning models into their applications.

Architecture & Design PatternsREST API modeling may be hard, using and supporting large collection of APIs is even harder. GraphQL is a answer for some of these problems. It’s a query language for APIs which provides complete description of your data and gives clients the power to ask for exactly what the need in a single request. In this talk you will learn about GraphQL concepts, differences between GraphQL and WSDL/SOAP/REST/etc and how to add it to your existing stack.

JavaScriptSecurityThe concept of Cross-site Scripting (XSS) is over 20 years old, but the attack does not seem to go away. There is finally light at the end of the tunnel: Content Security Policy is a W3C standard that can effectively limit which JavaScript code a browser is allowed to run. In this session we will have a look at different features and versions of CSP, provide best practices for using this technology, and also analyze implementation strategies.

Architecture & Design PatternsYou may have heard Domain Driven Design is a tool to write readable and change-ready code. You may have heard it comes with a lot of talking, and modelling, and customers...

Come find out what DDD can do for you, tomorrow. We'll use value objects, entities and services to bring order to our mind and code. We'll see how naming things can guide us, but also trick us. And tomorrow you can tell your peers that, technically, you're doing DDD.

Cloud ComputingDevOpsContainers are all the rage these days. But... what are they? What exactly is a container and how does it work? Just how does a container differ from the “old” silver bullet, virtual machines?

This session will go deep on how computers work at a low level and build our way up to what containers really are, how they work, and what makes them so powerful. Containers mean more than just Docker.

Tests & QualitySoftware bugs are inevitable; some are especially difficult to track down causing you to waste countless hours before throwing your hands up in defeat. It doesn't have to be this way! Fatigue and wasted time can be avoided with strategies and techniques to break through those mental barriers. Attendees will learn how to combine these techniques with the right mindset and attitude in order to debug their code quickly and effectively.

DevOpsManagementEngineering, DevOps, IT, Marketing, ...you name it, there is a constant battle between going fast and doing it right. How can we minimize the friction of collaborating across teams and departments? FSGD distills many core lean (and agile) principles into an easy-to-remember and easy-to-communicate thinking tool you can use to make better decisions about the work you do.

JavaScriptSecurityUsing JSON Web Tokens (JWTs) for API Authorization can have awesome benefits over the more traditional session-ids approach: stateless verification/authorization, cross-domain and being client-side readable, but using JWTs on the web can be contentious. There is a lot of concern (and a lot of FUD spread) about using JWTs in web apps, specifically about storing the JWT in localstorage, but luckily there is a better way...

Cloud ComputingDevOpsKubernetes is a very powerful container orchestration platform that is quickly gaining traction and gives you lots of benefits in deploying, running and scaling your microservice web application. But it has also a steep learning curve.
In this talk I will introduce you to Kubernetes, and show you, based on a practical example, how to continuously deploy a web application into it.