March 13-15, 2019
Montreal, Canada

Top 20 sessions

Architecture & Design Patterns How 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.
Architecture & Design Patterns If 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.
Architecture & Design PatternsTests & Quality Hexagonal 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 IntelligenceMachine Learning Artificial 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 will explore various 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.
MobilePerformance In this session, we will cover extreme techniques that will blow your mind about Web Performance, including new compression algorithms, new image formats, Client-Hints, HTTP/2 antipatterns, QUIC, preload, and Reactive Web Performance Techniques.
Architecture & Design PatternsPHP As developers we write code every day, but we frown at it a week later. 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.
DevOpsTests & Quality Have you ever heard someone say “Don’t deploy on Friday”? I used to say that too!
Join me as I'll 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!
Architecture & Design Patterns You 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.
Architecture & Design Patterns REST API modeling may be hard, using and supporting large collection of APIs is even harder. GraphQL is an 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 they 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.
Cloud ComputingDevOps Kubernetes 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.
DevOpsManagement Engineering, DevOps, IT, Marketing, 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.
HTML & CSS For 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.
Security Keeping 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 & Quality In 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.
Artificial Intelligence This 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.
Cloud ComputingDevOps Containers 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.
PHP State of PHP talk
What's new?
Static Analysis with Phan
Profiling with phpspy
Management Agile/DevOps emphasize the autonomy, responsibility and self-organization of teams. Effective leaders create environments that allow such teams to thrive.
But what makes a leader an effective leader? Attend this talk to learn more about various leadership theories, how they can be applied in practice, and my thoughts on leadership based on experience as a tech lead and scrum master, and from military service.
JavaScriptTests & Quality Headless Chrome is an awesome tool in end-to-end testing and browser automation that I think everyone should have in their tool belt. In this talk I'll cover how to use headless Chrome and Puppeteer to build a basic suite of automated tests to make sure your sites are following generic best practices. We will dig into getting Headless Chrome up and running, programmatic control using Puppeteer, and how to start using Headless Chrome for testing.
DevOpsSecurity Web applications are getting more complex. A lot of effort has been deployed in web frameworks.
On the other side, the infrastructure used is rarely scrutinized by developers for potential vulnerabilities.
This talk will show you how the use of a cache server can introduce serious vulnerabilities to your web applications. It will cover Web Cache Deception, ESI injection and Cache poisoning. These attacks have all emerged in the past two years.