-
Zero to Jenkins: Automatic builds + deploys
In late 2016, Jenkins finally made it to version 2.0 which brought a huge number of improvements. In this talk, we’ll go from an empty machine to a Jenkins install...
In late 2016, Jenkins finally made it to version 2.0 which brought a huge number of improvements. In this talk, we’ll go from an empty machine to a Jenkins install that automatically detects repos, branches and pull requests and builds them according to the Jenkinsfile in each branch. We’ll be running tests, linting and packaging applications in parallel where possible, and even auto-deploying our application once our pipeline passes!
Watch video
-
Zero to API with Lumen
Do you want to build an API? You’re not alone. Several tools exist to help you prototype an API with minimal effort on your part. In this talk, we’ll make...
Do you want to build an API? You’re not alone. Several tools exist to help you prototype an API with minimal effort on your part. In this talk, we’ll make use of PHP and Laravel’s Lumen framework to build an API using all of the bells and whistles of a framework without all of the full stack stuff we don’t need. By the time attendees leave this talk, they’ll have an overview of how they can use Lumen to create an API that they’ll love maintaining and that users will love using. They’ll also have an overview of API design best practices as well as a sprinkling of service-oriented architecture.
Watch video
-
Working with Webhooks
In an increasingly connected world, APIs are key to great tools and effective workflows. What is better than an API? A webhook of course! Webhooks are a key building block...
In an increasingly connected world, APIs are key to great tools and effective workflows. What is better than an API? A webhook of course! Webhooks are a key building block of a modern application, allowing systems to exchange data in response to events. This session gives examples of webhooks currently in use ““in the wild””, and examines both when a webhook is useful and the internal design and structuring of webhook payloads. We’ll discuss how to work with webhooks in a scalable way regardless of technology stack; how to recieve and process incoming webhooks from an external system and how to design and publish your own for use by partners or consumers. Recommended for anyone wanting to teach their applications to play nicely with others.
Watch video
-
What You'll Miss on AWS & How To Find It
AWS is exciting & provides a boost to your app’s availability, scalability and security. But moving from traditional hosting to the cloud can change how you develop, deploy & manage...
AWS is exciting & provides a boost to your app’s availability, scalability and security. But moving from traditional hosting to the cloud can change how you develop, deploy & manage infrastructure. We can use old & new tools to smooth the migration, getting the power of the cloud without the pain! In the talk we will look over 9 things you’ll miss on AWS and how to get them back. We’ll cover auto scaling, load balancing, networked file systems, PHP opcache, Lambda functions, databases, logging, & queues - giving you a pathway to AWS operation with minimal changes to your application, keeping the cost down and the productivity high!
Watch video
-
Urban Legends: What You Code Makes You Who You Are
If you were a carpenter, would your skills at building be more important than the tools you use to build? Skills, right? Tools are just a means to an end....
If you were a carpenter, would your skills at building be more important than the tools you use to build? Skills, right? Tools are just a means to an end. So why do developers think the language they use defines the problems they solve?
This talk will take a look at misconceptions across the board, some experiences, both positive and negative, people have had crossing barriers to new languages, and show some of the benefits thinking of one’s self as a coder and not a “Ruby coder” or a “PHP dev” can have on being a better problem solver.
Watch video
-
Things I Wish I Knew When I Started Playing 'Developer'
I’m a gamer, and some of my favourite articles to read about computer games are those click-bait posts that read “Ten Things I Wish I Knew When I Started Playing...
I’m a gamer, and some of my favourite articles to read about computer games are those click-bait posts that read “Ten Things I Wish I Knew When I Started Playing Pac-Man!”. When you’re playing computer games, it’s easy to miss things that are obvious to others, and these posts can help you to understand a simple game mechanic that you’d otherwise have not used. It got me thinking about the things in my own career that I found out about too late, or didn’t fully understand until much later than I needed it. We’ll cover both the technical and the conversational, so join me, as I introduce you to Things I Wish I Knew When I Started Playing “Developer”.
Watch video
-
Theming WordPress
Want to create your own custom design for WordPress, but don’t want to rebuild all the awesome features that your favorite theme already has? Need to create something unique, but...
Want to create your own custom design for WordPress, but don’t want to rebuild all the awesome features that your favorite theme already has? Need to create something unique, but need to stay upgrade safe? You need a child theme! Learn the benefits and gotchas of a child theme as well as learn how to set up a child theme as we create a custom child theme step-by-step during this talk.
Watch video
-
The secrets of Cryptography
Alice and Bob have secrets they want to talk about without Eve being able to listen in. Worse yet, the mischievous Mallory delights in changing messages sent between parties. In...
Alice and Bob have secrets they want to talk about without Eve being able to listen in. Worse yet, the mischievous Mallory delights in changing messages sent between parties. In such a hostile environment how can Alice talk to Bob without their messages being overheard and how can she be sure that it was Bob that sent the message in the first place? This talk will take a brief look at historic codes and ciphers before taking a look at modern day Cryptography. If you want to be able to know the difference between a block cipher and a stream cipher or get a glimpse into the mathematics behind public key Cryptography this talk is for you.
Watch video
-
The Why and How of Moving to 7.x
With PHP 7.2 recently released and PHP 5.3 and 5.4 still accounting for over 40% of all production environments, it’s time to paint a clear picture on not just why...
With PHP 7.2 recently released and PHP 5.3 and 5.4 still accounting for over 40% of all production environments, it’s time to paint a clear picture on not just why everyone should move to 7.0 (or 7.1), but on how to get code ready for the latest version of PHP. In this talk, we’ll look at some handy tools and techniques to ease the migration.
Watch video
-
Service Workers and their role in PWAs
Progressive Web Applications have gained unparalleled momentum in the tech world and are currently one of the hottest trends in Web Development. Find out how PWA attempts to combine features...
Progressive Web Applications have gained unparalleled momentum in the tech world and are currently one of the hottest trends in Web Development. Find out how PWA attempts to combine features offered by most modern browsers with the benefits of mobile experience and how service workers make them fast, reliable & engaging. In this session we dive into what’s in store beyond providing the offline experience, push and background sync features. This talk examines how Service Workers fill the gap between web and native, and how they give better performance and user experiences.
Watch video
-
Performance optimisation: how do I go about it?
Every developer should be confident that their code is efficient and safe to run in production. But it can be hard to get started. What tools to use? What do...
Every developer should be confident that their code is efficient and safe to run in production. But it can be hard to get started. What tools to use? What do the graphs mean? What to look at first? In this talk, we will analyse and optimise the performance of a simple PHP application. By demonstrating how to use some of the excellent open source projects such as xdebug, xhprof or ApacheBench, I hope to give you a good idea of where to start with analysing and optimising your PHP code.
Watch video
-
MySQL 8 -- A New Beginning
MySQL 8 is a major redesign of the most popular database on the web. it will have a true data dictionary (no more .frm, MYI, or other little files) which...
MySQL 8 is a major redesign of the most popular database on the web. it will have a true data dictionary (no more .frm, MYI, or other little files) which means you can have millions of tables within a schema. Windowing Functions and Common Table Expressions are available, multi plane character support (because you need emojis in your data), user roles, more JSON functions, and big optimizer improvements. And there will be a better ‘out of the box’ user experience. And you will learn what happened to MySQL 6 and MySQL 7.
Watch video
-
London Calling: Creating a customisable, multi-tenanted i18n solution
Buycraft is a multi-tenanted gCommerce platform for Minecraft. Having supported over 500,000 servers around the world, it needs to support a whole range of languages. Centralised i10n sucks - users...
Buycraft is a multi-tenanted gCommerce platform for Minecraft. Having supported over 500,000 servers around the world, it needs to support a whole range of languages. Centralised i10n sucks - users can’t customise it, if the application doesn’t have a language file then you can’t use that language, and users cannot add their own strings to translate. This is exactly how Buycraft worked - what’s a dev to do? Join Liam to find out how Buycraft investigated, hacked and ‘borrowed’ code to solve this problem to provide a fully flexible, i10n layer for all their customers.
Watch video
-
Inversion of Control Containers Beyond Constructor Injection
Did you know your IoC container can do a whole lot more than just constructor injection? It’s packed with features. In this talk you will learn to leverage the container...
Did you know your IoC container can do a whole lot more than just constructor injection? It’s packed with features. In this talk you will learn to leverage the container to write loosely coupled code. Well designed code put together by your container will make your apps decoupled from the framework!
Watch video
-
Introduction to PHP Extensions
In this presentation, we take a first look at writing PHP extensions. Using step-by-step examples, we’ll take a function written in PHP and convert them into a loadable extension using...
In this presentation, we take a first look at writing PHP extensions. Using step-by-step examples, we’ll take a function written in PHP and convert them into a loadable extension using C. We’ll then test both versions and compare the results. After seeing the size and scope of the benefits that can be realized with only a few minor changes, you’ll want to try it out for yourself. You’ll also understand why we start with simple things, and not try to rewrite all of Symfony in C.
Watch video
-
Introduction to GraphQL
Since GraphQL was announced by Facebook in 2015 it has started to gain quite a bit of traction with many companies such as Github looking to adopt it to either...
Since GraphQL was announced by Facebook in 2015 it has started to gain quite a bit of traction with many companies such as Github looking to adopt it to either replace or complement their existing REST APIs. GraphQL provides a powerful way for the frontend to be able to query data sources and your business logic, giving and receiving only the data that they need, without having to always have custom designed endpoints for every use-case. As a consumer of third party APIs it probably won’t be long before you’re consuming a GraphQL API; and as a designer or creator of APIs, GraphQL can sometimes provide a better alternative than a REST API. Join me for a tour of what GraphQL looks like, what it works well for, how to consume a GraphQL API, and how to easily design and create one in PHP.
Watch video
-
How Doctrine Caching Can Skyrocket Your Application
When people talk about Doctrine (or any ORM for that matter), the performance issue always comes up fairly quickly. Besides the fact that Doctrine will help you develop faster, so...
When people talk about Doctrine (or any ORM for that matter), the performance issue always comes up fairly quickly. Besides the fact that Doctrine will help you develop faster, so a little overhead doesn’t really matter, there are numerous options to increase the performance of the application. By understanding how the system works in the first place, a lot of issues can be avoided right away. When you have done everything to avoid these pitfalls, you can bring in the big guns: caching. Doctrine has different caching mechanism and since Doctrine 2.5 “Second Level Cache” was added to our toolbox. After this talk, you should know what the impact is of every cache and how to use it.
Watch video
-
Goodbye Drush Make. Hello Composer!
One of the main outcomes of Drupal 8 was “getting off the island” with third-party code included in core and adopting modern best practices from the wider PHP ecosystem -...
One of the main outcomes of Drupal 8 was “getting off the island” with third-party code included in core and adopting modern best practices from the wider PHP ecosystem - including Composer, PHP’s dependency manager. Included to manage core’s dependencies, it has also gained traction in the contrib space with the creation of the Drupal Composer project, and the Drupal Packagist and now native endpoints on Drupal.org exposing contrib project metadata. In this session, we’ll learn how to fully manage a Drupal 7 or Drupal 8 website including contributed modules and themes and external libraries with Composer.
Watch video
-
Going Backstage on Community Trends: Bug or Feature?
Over the years, the PHP community has enjoyed an increase in events. This has given us more choice than ever over what we attend. At the same time, some of...
Over the years, the PHP community has enjoyed an increase in events. This has given us more choice than ever over what we attend. At the same time, some of our favourite events have come to a close.
As the community recalibrates, needs have changed and events are repeatedly being challenged. Organisers are burdened with finding the solutions, but is there a way for us all to help?
With change comes an opportunity for growth. This is our chance to grow richer and stronger as a community.
Watch video
-
Getting started with Kubernetes
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...
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, why you would want to use it and all the tooling around Kubernetes with the help of practical examples.
Watch video
-
Get Rolling Fast with Symfony Flex
Unsure where to start with your next application? Are you sure you want full stack Symfony eventually but not sure you can commit to the extra work upfront? Afraid if...
Unsure where to start with your next application? Are you sure you want full stack Symfony eventually but not sure you can commit to the extra work upfront? Afraid if you start with a micro-framework like Silex you’ll end up needing to migrate to full stack Symfony anyway? Enter Symfony Flex. Symfony flex brings all of the power of full stack Symfony with the upfront requirements of a micro-framework. Choosing Symfony upfront not longer commits you to the overhead you might expect from a traditional Symfony project. See how quickly a new project can be started and how it can evolve over time.
Watch video
-
From zero to multi-platform Chatbot with BotMan
Chatbots are the friendly new helpers that arise in every industry. How will they help you? How can we develop them? How can tools like natural language processing help the...
Chatbots are the friendly new helpers that arise in every industry. How will they help you? How can we develop them? How can tools like natural language processing help the user experience? Let us find out how to create an intelligent chatbot using BotMan - the PHP chatbot framework.
Watch video
-
Debugging PHP with Xdebug
Debugging in PHP can be tedious and prone to error when using var_dump and echo statements. Learn how to debug more effectively and get better insight into an application by...
Debugging in PHP can be tedious and prone to error when using var_dump and echo statements. Learn how to debug more effectively and get better insight into an application by using Xdebug. See how to setup PhpStorm, Xdebug, and the browser to enable debugging that will let you step into code and see variable values live. Extend those debugging capabilities into cli, APIs, and SOAP clients to increase the code that can be debugged with ease.
Watch video
-
Database Schema Migrations with Zero Downtime
Does your application or service use a database? When that application changes because of new business requirements, you may need to make changes to the database schema. These database migrations...
Does your application or service use a database? When that application changes because of new business requirements, you may need to make changes to the database schema. These database migrations could lead to downtime and can be an obstacle to implementing continuous delivery/deployment. How can we deal with database migrations when we don’t want our end-users to experience downtime, and want to keep releasing? In this talk we’ll discuss non-destructive changes, rollbacks, large data sets, useful tools and a few strategies to migrate our data safely, with minimum disruption to production.
Watch video
-
Creating a dashboard with Laravel, Vue and Pusher
Building a realtime dashboard is probably something every developer wants to do at one point. In this talk I’ll explain how we leveraged both Laravel 5.5 and Vue to build...
Building a realtime dashboard is probably something every developer wants to do at one point. In this talk I’ll explain how we leveraged both Laravel 5.5 and Vue to build the dashboard. After demonstrating the dashboard itself we’ll take a deep dive in the code. We’ll take a look at the entire flow: the grid system, how events are broadcasted using Pusher, some cool Vue mixins and much more. After this talk you’ll be able to setup your own dashboard using our open sourced code.
Watch video
-
Content Security Policy to the Rescue
Developing web applications with security in mind is very much important in today’s world with the increase in online attacks and fraud. Content Security Policy is a defense-in-depth mechanism which...
Developing web applications with security in mind is very much important in today’s world with the increase in online attacks and fraud. Content Security Policy is a defense-in-depth mechanism which can help in mitigating Cross-Site Scripting vulnerabilities. In this talk, we’ll see a live demo of an intentionally vulnerable web application and how Content Security Policy can prevent attacks. I’ll also talk about some success stories where companies successfully deployed CSP. We’ll discuss some common bypasses available for CSP and how CSP can be used to prevent other sets of issues like clickjacking, HTTPS migration, secure form submissions.
Watch video
-
Command and (e)mission Control
Using event dispatchers and command buses in applications is becoming common place, but are we using them in a way that aids understanding? With the rise in popularity of Domain-Driven...
Using event dispatchers and command buses in applications is becoming common place, but are we using them in a way that aids understanding? With the rise in popularity of Domain-Driven Design to drive meaning in applications, and our applications becoming increasingly small and “hexagonal”, the concept of defining the difference between an Event and a Command is becoming more important. This talk explores using command buses and event dispatchers in combination to clearly segregate the structure, and uses an example of how to use these to create clean CQRS-based applications.
Watch video
-
Climbing the Abstract Syntax Tree
The new Abstract Syntax Tree (AST) in PHP 7 means the way our PHP code is being executed has changed. Understanding this new fundamental compilation step is key to understanding...
The new Abstract Syntax Tree (AST) in PHP 7 means the way our PHP code is being executed has changed. Understanding this new fundamental compilation step is key to understanding how our code is being run. To demonstrate, James will show how a basic compiler works and how introducing an AST simplifies this process. We’ll look into how these magical time-warp techniques* can also be used in your code to introspect, analyse and modify code in a way that was never possible before. After seeing this talk, you’ll have a great insight as to the wonders of an AST, and how it can be applied to both compilers and userland code.
(*actual magic or time-warp not guaranteed).
Watch video
-
Building Websites with Zend Expressive 2
Zend Expressive 2 is the ideal framework for building PHP applications of all types. Its easy-to-understand architecture makes it ideal for projects of all shapes and sizes. In this talk,...
Zend Expressive 2 is the ideal framework for building PHP applications of all types. Its easy-to-understand architecture makes it ideal for projects of all shapes and sizes. In this talk, I’ll show you how to build an Expressive application than can scale with your needs. We will look at how Expressive’s middleware system leverages the upcoming PSR-15 specification to create easily understandable and flexible applications. We will cover application setup, routing and error handling before diving into some thoughts on how architect an Expressive application. By the end of the session, you will be equipped to create Expressive applications yourself.
Watch video
-
Building Cloud-Native Applications
In this talk we will review best practices developing and operating cloud native applications and discuss when and how to use containers, including a demo how to do cloud native...
In this talk we will review best practices developing and operating cloud native applications and discuss when and how to use containers, including a demo how to do cloud native PHP apps using OpenShift, Red Hat’s enterprise Kubernetes distribution.
Watch video
-
Build, provision & deploy in the Cloud with Packer, Ansible & Terraform
In a continuous integration and continuous delivery context, it is hard to reliably deploy code to an environment. When code commits also imply changes to your stack, it gets even...
In a continuous integration and continuous delivery context, it is hard to reliably deploy code to an environment. When code commits also imply changes to your stack, it gets even more tricky. In this presentation I’ll show you how to build vendor-agnostic cloud images using Packer and how to provision the necessary software dependencies using Ansible, including your PHP code. Once the image is in place, we’ll use Terraform to deploy these images and create loadbalanced computing instances on various cloud environments in a single configuration format.
Watch video
-
Behaviour Driven Development and Behat: Telling Stories Through Code
Stories? Scenarios? BDD? Are these just more words in the ever-growing list of jargon that developers have to know? Or are they something more important than new terms to memorise?...
Stories? Scenarios? BDD? Are these just more words in the ever-growing list of jargon that developers have to know? Or are they something more important than new terms to memorise? In this session we’ll look at how BDD fits into the software development work-flow, how to tell user stories through features, and how to automate them in Behat. These techniques will help to ensure you’re writing well designed and tested software that focuses on what the users want from a system.
Watch video
-
Automatic PHP 7 Compatibility Checking Using php7cc
Running PHP 5 and ready to upgrade to PHP 7 but want to check your code for compatibility? Learn all about using php7cc to automatically check code for PHP 7...
Running PHP 5 and ready to upgrade to PHP 7 but want to check your code for compatibility? Learn all about using php7cc to automatically check code for PHP 7 compatibility, including installation, syntax, options, and how to run the tool. Discuss the commonly seen incompatible code and see how to fix the code to be compatible with PHP 7. Leave with the tools and knowledge needed to upgrade any PHP 5 project to PHP 7.
Watch video
-
Testing complex applications for PHP7...
Wayfair is one of the world’s largest online destinations for the home. Our storefront is a very large PHP application – 3.5M LoC interacting with a wide array of extensions...
Wayfair is one of the world’s largest online destinations for the home. Our storefront is a very large PHP application – 3.5M LoC interacting with a wide array of extensions – that serves 2M daily visitors. So we were delighted when our upgrade to PHP7 went without a hitch. It worked so well because of a test plan that covered a wide range of strategies and tools. This case study will combine a walkthrough of this project with a practical tour of PHP testing tools, from PHPUnit to GDB.
Watch video
-
Introduction to SOLID
It is pretty common to hear people talk about “SOLID code” in talks, blogs and podcasts these days. For the object-oriented programming novice who hears this term for the first...
It is pretty common to hear people talk about “SOLID code” in talks, blogs and podcasts these days. For the object-oriented programming novice who hears this term for the first time, the Wikipedia article gives a high-level overview, but advice and information about what ““SOLID”” really means on a practical level can be hard to come across. This talk aims to clarify what the SOLID principles are and how you can apply them in your work, with the aim of producing easier-to-maintain, de-coupled code with fewer smells. I’ll show you PHP examples of each of the five SOLID principles, talk about when and how to implement them in your applications and give you a few other hints about ways you can improve your OOP design.
Watch video
-
I Think I Know What You’re Talking About, But I'm Not Sure...
Recursion, instantiate, lexical scope - where do these words come from?! If you’ve ever been in conversation with other developers and thought, “I think I know what they’re talking about,...
Recursion, instantiate, lexical scope - where do these words come from?! If you’ve ever been in conversation with other developers and thought, “I think I know what they’re talking about, but I’m not sure…”, you’re not alone. Let’s delve into the weird and wonderful parlance that computer scientists and developers have created for themselves. Whether the words are borrowed or just plain made up, I’ll uncover how they made their way into the vocabulary of the modern programmer. In this session, you’ll learn everything from etymology to history to broader definitions, all of which can help you understand what the heck that person’s rambling about. So, the next time you’re in conversation, you’ll be the one discussing dependency injection versus inversion of control with ease.
Watch video
-
I saw the future, and its web servers were written in PHP
PHP’s stateless execution model is still based on the mechanics of CGI: request in, response out. This simplicity also means overhead on each request from frameworks starting up; applications also...
PHP’s stateless execution model is still based on the mechanics of CGI: request in, response out. This simplicity also means overhead on each request from frameworks starting up; applications also cannot interact with the request body during transmission, e.g. for streaming the body or handling upgrades to Websockets. That’s why all other web languages now offer production ready web servers implemented purely in each language: Jetty, Puma, Gunicorn and friends use a modern process model and standardized middleware protocols. PHP 7 finally brought some necessary engine changes like catchable fatal errors, so there now is no longer a need for Apache or Nginx: event based HTTP components from projects like ReactPHP or Icicle, brought together by a server like Aerys or PHP-PM, start a framework once, and handle requests in a loop. The result is a massive gain in performance especially with frameworks like Symfony, and the potential for new features that previously were not possible with an external web server in front of an application. Let’s explore the current state of affairs, the solutions other programming languages found, and the bright new future that’s ahead for PHP, which, as always, will require sacrifices to be made.
Watch video
-
Hopping in the Clouds: migration between cloud providers
Today there are a lot of cloud providers, with a wide range of offers. Web projects usually have continuously changing needs: what worked well yesterday may not be enough today....
Today there are a lot of cloud providers, with a wide range of offers. Web projects usually have continuously changing needs: what worked well yesterday may not be enough today. These two facts became quite obvious for us while migrating a large PHP application from Rackspace to Amazon. In this session I’d like to share this experience highlighting infrastructure and code evolution, migration steps, cost analisys, issues.
Watch video
-
Drupal8 for Symfony Developers
Drupal8 modernization (new object-oriented base) and adoption of many Symfony components is a huge step in connecting these two amazing communities and amazing projects. Drupal8 is not powered by full-stack...
Drupal8 modernization (new object-oriented base) and adoption of many Symfony components is a huge step in connecting these two amazing communities and amazing projects. Drupal8 is not powered by full-stack Symfony and there is still many differences between these two relatives, but still, Symfony developers should master it easily. This talk is for Symfony developers who don’t have experience with Drupal8. It will guide you through routing, controllers, hooks, events, Drupal Console, DI and many other interesting elements that power Drupal8 under the hood. It will also show how to build custom modules Symfony way.
Watch video
-
Driving Design through Examples
Modelling by Example is a set of practices that combine BDD (Behaviour Driven Development) and DDD (Domain Driven Design) techniques to create a workflow that directly drives code from a...
Modelling by Example is a set of practices that combine BDD (Behaviour Driven Development) and DDD (Domain Driven Design) techniques to create a workflow that directly drives code from a starting point of user requirements. We will see how a simple feature can be defined via conversation with stakeholders, captured as automatable requirements, and expressed directly in the object model using tools such as Behat and PhpSpec.
Watch video
-
Code Review Beyond Code Style
Reviewing code can feel like a secondary task. Discussing code can be easy though, if you leave out syntax details. Following a couple of guide lines for pull requests can...
Reviewing code can feel like a secondary task. Discussing code can be easy though, if you leave out syntax details. Following a couple of guide lines for pull requests can make code reviewing much easier. Some code style rules can drastically reduce the mental overhead needed to understand code changes. Furthermore this talk will give some general guidelines on how to give feedback on PRs as a peer developer or coworker. These rules are not to keep for yourself, share them with your peers and your life will get easier.
Watch video
-
Build a Trivia game using Amazon Alexa and AWS Lambda
Growing up with Knight Rider I was sure that we’d all be talking to our computers in no time. Imagine my disappointment when I first tried a dictation app in...
Growing up with Knight Rider I was sure that we’d all be talking to our computers in no time. Imagine my disappointment when I first tried a dictation app in the 90s - gruesome. Things have changed and now we’re all able to have something resembling a conversation with our cell phones. But you couldn’t teach it any new tricks unless your work for Apple, Google or Microsoft - how frustrating. Now with Amazon Alexa we as developer can finally create voice interfaces for our own applications. I’d like to show you how to do just that by creating an Alexa Skills Kit using an AWS Lambda function and a RESTful API to have our very own voice based Trivia game.
Watch video
-
Using Open Source for Fun and Profit
10 years ago I was a lonely developer sitting in a small room quietly turning out code between 9am and 5pm, Monday to Friday. Fast-forward to now and you’ll see...
10 years ago I was a lonely developer sitting in a small room quietly turning out code between 9am and 5pm, Monday to Friday. Fast-forward to now and you’ll see me standing in front of audiences all around the world talking to developers about numerous topics.”Why are you bragging like that at me?” I hear you ask. Because it could happen to you too. The question I always ask myself is ““How the hell did that happen?!?!””. The truth is that the only reason I’ve managed to advance my career so far in a decade is because of the people that make up the communities of open source projects. Not only do open source projects save you time and money, but the friendships and support groups that can be made within these communities is, frankly, staggering. Join me as I chart my journey from wage slave to conference speaker, and look at how you can leverage the power of open source to make real friends, real money, and real happiness.
Watch video
-
Unit Testing by Example
Everyone tells you that you need to test. You know the theory, but you don't know where to begin. What to test? What cases to write? Through realistic and pragmatic...
Everyone tells you that you need to test. You know the theory, but you don't know where to begin. What to test? What cases to write? Through realistic and pragmatic examples, this presentation will take you away from var_dump and ease you into the testing business until you're ready to do TDD. All this without losing sight of the tight deadlines.
Watch video
-
Towards a frameworkless world...
Decoupling, abstracting and ungluing your applications has been something that people have been talking about for years. Ultimately though, most packages still have dependencies and creating a library-abstract bundle is...
Decoupling, abstracting and ungluing your applications has been something that people have been talking about for years. Ultimately though, most packages still have dependencies and creating a library-abstract bundle is still hard but it’s getting easier. How far are we from having the ability to package re-usable web-focussed widgets that can be composed into applications? What would a world where libraries were all non-framework specific that could be glued in look like? Lets have a look at how far we’ve come as an industry and what the future could hold.
Watch video
-
To authentication & beyond!
Tokens are widely used to identify resources and try to add some security to insecure environments, but sometimes the management of those identifiers can get a bit complex - even...
Tokens are widely used to identify resources and try to add some security to insecure environments, but sometimes the management of those identifiers can get a bit complex - even more on distributed systems. What if we could have an intelligent token, one that simplifies the way things works without losing integrity or security? In this talk we present Json Web Tokens as an alternative for smart and self contained tokens, explaining how to use each claim and giving some common use cases.
Watch video
-
The Road to continuous deployment
It’s a situation many of us are familiar with: a large legacy, monolithic application, limited or no tests, slow & manual release process, low velocity, no confidence… A lot of...
It’s a situation many of us are familiar with: a large legacy, monolithic application, limited or no tests, slow & manual release process, low velocity, no confidence… A lot of refactoring is required, but management keeps pushing for new features. How to proceed? Using examples and lessons learned from a real-world case, I’ll show you how to replace a legacy application with a modern service-oriented architecture and build a continuous integration and deployment pipeline to deliver value from the first sprint. On the way, we’ll take a look at the process, automated testing, monitoring, master/trunk based development and various tips and best practices.
Watch video
-
Taking Care of Backups with Laravel
Thanks to all the excellent resources on server management many developers are now setting up and administrating their own servers. If you are one of them you can’t count on...
Thanks to all the excellent resources on server management many developers are now setting up and administrating their own servers. If you are one of them you can’t count on anybody else but yourself to backup the data of your clients. We’ll cover the backup issues presented when using modern hosting such as Linode and DigitalOcean. Then we’ll review some enterprise grade solutions. Finally we’ll dive deep into implementing a backup system using Laravel 5’s filesystem abstraction.
Watch video
-
Static Analysis Saved My Code Tonight
Static analysis tools checks PHP code without running them. Fully automated, they bring expertise to review the code, enforce good practices when programming, keep code ready for the next PHP...
Static analysis tools checks PHP code without running them. Fully automated, they bring expertise to review the code, enforce good practices when programming, keep code ready for the next PHP version. PHP 7 has developed tremendously our capacity to audit code - thanks to AST and return types, it is possible to go deeper and prevent more bugs. During this session, we’ll review the current state of static analysis tools, learn what they can find for us, and how to integrate it in the development cycle - security bugs, migration incompatibilities, directives recommendations. Simply said, better PHP coding.
Watch video
-
State of the PHP Community...
PHP is sitting at an all time high for usage, with it running over 80% of the world’s websites. But how healthy is the PHP Community? In this talk we...
PHP is sitting at an all time high for usage, with it running over 80% of the world’s websites. But how healthy is the PHP Community? In this talk we will examine the good and the bad of the PHP community and talk through some of the pain points that we may have experienced. But we’ll leave understanding the power of the community when it works together and understand why (and how) you should be helping to grow the community circle larger.
Watch video
-
Smoke Tests...
Today it’s crystal clear why we need unit tests. Even integration and acceptance tests are quite common but who is making sure that your pages are working in production environment?...
Today it’s crystal clear why we need unit tests. Even integration and acceptance tests are quite common but who is making sure that your pages are working in production environment? I’d like to show in detail how smoke tests will help achieving this goal and why you should try to burn down your production server.
Watch video
-
Silo Based Architecture for HA Applications
High availability is becoming a de-facto requirement of today’s applications. Customer-facing IT failures mean directly losing customer revenue and trust, as users have grown accustomed to easily switching service providers...
High availability is becoming a de-facto requirement of today’s applications. Customer-facing IT failures mean directly losing customer revenue and trust, as users have grown accustomed to easily switching service providers for more reliable ones. Lack of internal systems availability block employee productivity and add to the financial burden. Thus, it is critical to have a healthy, performant, resilient IT structure serving as a backbone of conducting your business. But there are no textbook solutions to achieving five 9s availability. Data redundancy, computing clusters, load balancing, fail-over mechanisms, each of these individually addresses one potential issue, but none treats systems in your organisation holistically for maximising business revenue. Silos are a clever method of grouping servers in such a way that they can be scaled both horizontally and vertically, depending on the actual application needs. Most importantly, it frees you from over-optimizing the architecture upfront, by allowing fine adjustments easy to integrate in your Agile workflow.
Watch video
-
Serving 30,000,000 Requests an Hour in the Cloud...
You’ve written an application and now the worst thing that can happen to you has come about - People are using it! You now have load spikes to deal with....
You’ve written an application and now the worst thing that can happen to you has come about - People are using it! You now have load spikes to deal with. You can scale up to deal with the excess traffic, but what do you do when your load is variable? How do you do that, and stay on budget? This session is a case study on getting an App Engine app to scale to serve 30,000,000 requests an hour. It will take you through the architecture, the code changes and the technology trade offs to get to that level of traffic. And how to make sure your app scales down so running infrastructure to deal with potential traffic doesn’t drown you.
Watch video
-
Real Time Communication to Simplify Your Life
An implicit goal of developing applications is to increase level of communication. A connectivity is becoming an integral part of IoT projects. What would you think if you have the...
An implicit goal of developing applications is to increase level of communication. A connectivity is becoming an integral part of IoT projects. What would you think if you have the connectivity wherever your IoT sensor is, your own independent cloud based network, extremely scalable and globally distributed. Nowadays SIM cards and endpoints can be easily managed in real-time via an intuitive user-interface or an easy-to-integrate API. The developing process, security issues and key features will be discussed together with lots of real working IoT use cases based on PHP.
Watch video
-
Progressive Apps in the Wild
Progressive Web App provides a term to encompass what a modern web site can and should be. It builds on the foundations of web and enforces its best practices while...
Progressive Web App provides a term to encompass what a modern web site can and should be. It builds on the foundations of web and enforces its best practices while allowing sites to adopt advanced features that previously required a native app. We will look at how to build a fast and secure web app while progressively layering in offline support, push notifications, and adding to the homescreen… and all beautifully standards-compliant.
Watch video
-
Preparing your Dockerised Application for Production...
You’ve got your application dockerised for development. That process is working smoothly, and you’re gaining a lot of the benefits that docker gives you - environments are trivial to setup,...
You’ve got your application dockerised for development. That process is working smoothly, and you’re gaining a lot of the benefits that docker gives you - environments are trivial to setup, independent of platform, and they are consistent for everyone on your team. How do you go about taking the next step so that your application is deployed into a scalable and reliable production setup? How do you create deployment artefacts which are built with consistency and transparency? How do you manage environment variables between staging and production environments? How do you perform actions / schedule processes in one environment and not another? In this talk we will discuss what you need to do to get your dockerised application ready for deployment into a production environment.
Watch video
-
Kicking off with Zend Expressive and Doctrine ORM
You’ve heard of Zend’s new framework, Expressive, and you’ve heard it’s the new hotness. In this talk, I will introduce the concepts of Expressive, how to bootstrap a simple application...
You’ve heard of Zend’s new framework, Expressive, and you’ve heard it’s the new hotness. In this talk, I will introduce the concepts of Expressive, how to bootstrap a simple application with the framework using best practices, and finally how to integrate a third party tool like Doctrine ORM.
Watch video
-
Its All About The Goto
Don’t worry, this is not about the goto keyword. In this presentation, I am showing you some of the inner workings of PHP. We are going to look at how...
Don’t worry, this is not about the goto keyword. In this presentation, I am showing you some of the inner workings of PHP. We are going to look at how different language keywords and constructs are handled internally. Basically, everything is converted to goto, but the how and why, is not as simple as it seems! This is a very in depth talk, mostly interesting to people that want to know how PHP works internally. Expect lots of wonkyness, a form of assembly, and trees.
Watch video
-
Introduction to application scaling
At one time or another, every developer comes across the same problem - their application starts getting slower, then starts falling over, then isn’t available at all. Often, this comes...
At one time or another, every developer comes across the same problem - their application starts getting slower, then starts falling over, then isn’t available at all. Often, this comes down to too many users, too much stored data - in other words a scaling problem. Looking at a range of options, from horizontal and vertical scaling, to caching, sharding and optimisation, Liam will discuss approaches to scaling that can be used on new applications, and also some that can be retro-fitted to existing applications.
Watch video
-
Integrating React.js with PHP Projects
Is React.js a library or a framework? In any case, it is a new way of working that represents a revolution in the way of building web projects. It has...
Is React.js a library or a framework? In any case, it is a new way of working that represents a revolution in the way of building web projects. It has very particular characteristics that allow us, for instance, to render React code from the server side, or to include React components from Twig tags. During this talk we will present React.js, we will explore how to take advantage of it from PHP projects and we will give answers to practical problems such as universal (isomorphical) rendering and the generation of React.js forms from Symfony forms without duplication of efforts.
Watch video
-
Building Restful APIs with Symfony Components
Built around the HTTP specification, Symfony components provide a rock solid foundation for building RESTful APIs, whether we are using the full framework or not. In this session we will...
Built around the HTTP specification, Symfony components provide a rock solid foundation for building RESTful APIs, whether we are using the full framework or not. In this session we will see how to successfully deal with problems such as how to adapt our models to the desired representations back and forth, authentication strategies, some tips and tricks to test effectively our APIs and also how to apply these concepts to migrate effectively a legacy application, based upon real use cases.
Watch video
-
Whirlwind tour through the HTTP2 spec
The HTTP protocol has come a long way since its first version HTTP V0.9 in 1991 and with the final release of the HTTP2 spec at the beginning of 2016...
The HTTP protocol has come a long way since its first version HTTP V0.9 in 1991 and with the final release of the HTTP2 spec at the beginning of 2016 a whole next chapter of web development is ahead of us! After a quick tour through the protocol history, we will mine the gems from in HTTP/2 spec and see why this is an awesome step for a modern web. What can you already use today? And why today’s best practices are tomorrow’s antipatterns?
Watch video
-
What To Expect From PHP7
We have a new major release of PHP! But what does this mean for PHP developers in the Real World (TM)? This talk has everything you need to know to...
We have a new major release of PHP! But what does this mean for PHP developers in the Real World (TM)? This talk has everything you need to know to be the expert. Find out how the remarkable performance improvements could look on your own system, and see the shiny new features in this major release of the web’s favourite scripting language. Get advice on how to upgrade your application, making use of the new features and avoiding the backwards compatibility traps. Developers and technical leaders everywhere who want to use better PHP will benefit from this session.
Watch video
-
Version Control - tips, tricks and good citizenship
Are you nervous of version control even if you don’t admit it? Have things got harder since your team expanded? Don’t panic! you’re not on your own. I’ve put together...
Are you nervous of version control even if you don’t admit it? Have things got harder since your team expanded? Don’t panic! you’re not on your own.
I’ve put together a run down of some of my tricks, tips and ‘good citizen’ techniques to avoid the worst kinds of conflicts and deal with the remaining ones as efficiently as possible.
Join me on a journey through some of the causes of version control pain after which we will visit some social and technical solutions. I’ll lead you via branching policies, basic conflict resolution, to more tricky conflict management. We will spend time with some of the lesser known features of version control and command line hacks to stay in charge of multiple branches.
As a bonus we will discover how version control can be integrated with other tools having many positive knock on effects for your team and wider business: How forcing commit message formats and automating your change log can help your release process or apps to streamline code reviews can avoid some unnecessary context switching. Triggered notification of interested parties helps keep everyone in the loop especially for breaking changes.
Watch video
-
From Vagrant to Production
You heard all these great stories of people using tools like Vagrant, Puppet, Composer and Phing. Each of these tools can massively improve your development workflow. But how to combine...
You heard all these great stories of people using tools like Vagrant, Puppet, Composer and Phing. Each of these tools can massively improve your development workflow. But how to combine them to get the best out of it? This session will guide you through the process of setting up the toolchain to build the “perfect development stack”(tm).
Watch video
-
The Code Manifesto
The Code Manifesto is a set of values, created in hopes of guiding our community towards a place that is welcoming, safe, and empowering to all. Currently, our communities are...
The Code Manifesto is a set of values, created in hopes of guiding our community towards a place that is welcoming, safe, and empowering to all. Currently, our communities are greatly lacking in diversity, and sometimes outright hostile towards the minority members that we do have. In this talk I try to illustrate that problem, and also cover WHY it matters, and finally what we can do to help fix it.
Watch video
-
Step Into Debugging
While var_dump driven development is great when you’re starting, at some point every developer wants more. Step debugging is the answer.
In this session we’ll cover the fundamentals of...
While var_dump driven development is great when you’re starting, at some point every developer wants more. Step debugging is the answer.
In this session we’ll cover the fundamentals of installing and configuring Xdebug, configuring PhpStorm to listen to Xdebug, and then actually step debugging some scripts to find our problems. Step debugging PHP is an incredibly easy and powerful tool when you know how!”
Watch video
-
Simple Machine Learning
Want to separate the signal from the noise, but have too much input to deal with? Fed up with reading everything yourself? Mechanical Turk got you down? Then perhaps you...
Want to separate the signal from the noise, but have too much input to deal with? Fed up with reading everything yourself? Mechanical Turk got you down? Then perhaps you need to apply some machine learning! In this talk, Christopher will cover some basic approaches to machine-learned classification as well as demonstrate a real-life application of it in PHP.
Watch video
-
SilverStripe - the open source PHP CMS for teams
The PHP-based CMS space is a highly competitive one. Incumbents with large communities vie with new entrants to battle it out in this contested space. And yet despite this, most...
The PHP-based CMS space is a highly competitive one. Incumbents with large communities vie with new entrants to battle it out in this contested space. And yet despite this, most of them just aren’t very good.
If you want to have a CMS that you actually enjoy using - no matter whether you’re a developer, a designer or a content administrator - you should probably be using SilverStripe.
Join Hamish Friedlander, CTO of SilverStripe, as he explains why what you’re currently using is awful, and how we can make your life better again.
Watch video
-
Security Theatre
This is not your normal security talk. Sure we talk about secure communication and the importance of hashing and encrypting (and why rolling your own is never a solution). We...
This is not your normal security talk.
Sure we talk about secure communication and the importance of hashing and encrypting (and why rolling your own is never a solution). We might even get frisky and cover some more interesting topics like true randomness, timed attacks and social engineering.
But what we’re really interested in is understanding what that hacker is trying to do on your site, what the motivation is and, using this, understand where you need to be vigilant.
We’re also going to talk about the results from an ongoing 4 year project to see just how vulnerable the average consumer website is. Theodore Sturgeon famously said 90% of everything is crud, we’ll get to see just how close we come to that number.
So if you’re ready to see how scary the dark depths of security can be and just how scary it is when you look up and see all the leaky boats above us is, this is for you.
Watch video
-
Real-Time Data Pipelines
Taking a data-driven approach to application management starts with instrumentation, but storing, analyzing, and distributing that data to the people who need it introduces a unique set of problems. Discover...
Taking a data-driven approach to application management starts with instrumentation, but storing, analyzing, and distributing that data to the people who need it introduces a unique set of problems. Discover how one of the world’s top digital media platforms handles the massive stream of analytics pouring in from millions of consumer devices. We’ll dive into the technologies that allow us to collect, route, store, and find meaning in data at 20 MB/s.
Watch video
-
PSR-7 HTTP messages in the wild
PSR-7 describes common interfaces for representing HTTP messages. HTTP messages are the foundation of web development. Web browsers and HTTP clients such as cURL create HTTP request messages that are...
PSR-7 describes common interfaces for representing HTTP messages. HTTP messages are the foundation of web development. Web browsers and HTTP clients such as cURL create HTTP request messages that are sent to a web server, which provides an HTTP response message. Server-side code receives an HTTP request message, and returns an HTTP response message.
This talk will explain the interfaces defined by PSR-7, how they define the future of interoperability between frameworks and tools. After that there will be a showcase of several implementations and tools such as zend’s diactoros package, Guzzle v6, php-http and other packages that show the real power of shared interfaces for HTTP objects. As most projects are ongoing, this talk will also show how PSR-7 and these other tools can already be used today in existing projects.
Watch video
-
Welcome to the new age: porting extensions to PHP 7
While PHP 7 largely managed the delicate juggling act of maintaining backward compatibility for userland developers, extension developers will find that many of the APIs they’ve relied on since PHP...
While PHP 7 largely managed the delicate juggling act of maintaining backward compatibility for userland developers, extension developers will find that many of the APIs they’ve relied on since PHP 4 have either changed significantly or been replaced entirely in PHP 7. In this talk, I’ll discuss porting PHP 5 extensions to PHP 7, techniques for maintaining compatibility between both versions, and the best ways to test across a matrix of PHP versions.
Watch video
-
From PHP to Machine Code
What exactly happens when you run php example.com
? I wanted to answer this, so I decided to build my own PHP interpreter. Let me tell you what I learned...
What exactly happens when you run php example.com
? I wanted to answer this, so I decided to build my own PHP interpreter. Let me tell you what I learned and what does fancy words like opcodes and bytecode cache mean.
With now two main rivals the standard PHP and HHVM from Facebook, there are plenty of choices to run your code fast. But they are both complicated projects, making it hard to understand the inner workings. Rather than relying on them to magically do the right thing, understand the principles of programming languages.
Watch video
-
MySQL 5.7 + JSON
With the newly added JSON support in MySQL, you can combine the flexibility of NoSQL with the strength of a relational database. In this session, Morgan will explain the new...
With the newly added JSON support in MySQL, you can combine the flexibility of NoSQL with the strength of a relational database. In this session, Morgan will explain the new JSON datatype, and the new set of functions for handling JSON documents, available storage and indexing options. In addition, he will present benchmarks showing how much one can expect from the MySQL server in different use case scenarios.
Watch video
-
Mocking Dependencies in Unit Tests with Phake
Reports of the death of TDD have been greatly exaggerated. All but the most trivial of applications make use of the OOP principle of composition and as such require mocking...
Reports of the death of TDD have been greatly exaggerated. All but the most trivial of applications make use of the OOP principle of composition and as such require mocking of dependencies in unit tests. While PHPUnit has become the de facto unit testing framework for many projects, its bundled mocking API can leave something to be desired. This presentation is an introduction to Phake, an alternative mocking library with a more concise and intuitive API and a more substantial feature set that removes the headaches from mocking.
Watch video
-
Mentoring: Change the World One Hour at a Time
It’s a tough world out there. There are so many new things to learn, and the list of need-to-know’s changes every day. How do you keep up? How do you...
It’s a tough world out there. There are so many new things to learn, and the list of need-to-know’s changes every day. How do you keep up? How do you move ahead? Find a mentor - but wait! Isn’t this a dog-eat-dog field where admitting you don’t know something is the death of your career? Maybe back in 1995, but this is the new age of open source. Collaboration and sharing of information reigns. Find a mentor to help you excel, but more importantly, find someone to mentor. Being a mentor is challenging, rewarding, and keeps you on your toes. Learn what it takes to find a mentor, be a good mentor, and what tools can help you build your mentoring relationship.
Watch video
-
Magento Done Right
Building and deploying Magento in Modern Web environment, using composer, continuous integration and deployment, hubot and slack all fully tested. Separating out your themes on a different release cycle. Stubbing...
Building and deploying Magento in Modern Web environment, using composer, continuous integration and deployment, hubot and slack all fully tested. Separating out your themes on a different release cycle. Stubbing your themes for faster iteration. We will also cover what’s new in Magento 2.0 and why you should start using it now.
Watch video
-
How I learned to stop worrying and love Regular Expressions
This session will cover Regular Expressions from the basics to the darkest corners of this arcane art. Regular Expressions at the core come in handy to achieve validation and text...
This session will cover Regular Expressions from the basics to the darkest corners of this arcane art.
Regular Expressions at the core come in handy to achieve validation and text manipulation tasks. In the day to day life of a developer, becoming comfortable with them opens up many more use cases.
As one of the tortured souls that actually enjoys writing - and reading - regexes, Jordi will share his passion so that you too can see there is no reason to worry.
Watch video
-
Large-scale websites performance optimisation tricks
Practical lessons learned while revamping a US airline website to resist huge Black Friday and Cyber Monday traffic values. Using HTTP status codes and PHP cleverly, we have made parallel...
Practical lessons learned while revamping a US airline website to resist huge Black Friday and Cyber Monday traffic values. Using HTTP status codes and PHP cleverly, we have made parallel requests possible, so that the user experience is greatly enhanced, and we pre-cache resource-consuming user searches. All on a solid Symfony2 foundation.
Watch video
-
Kubernetes at the Home Office
At the Home Office we had a problem. Hundreds of lines of infrastructure, everyone doing their own thing, and reinventing the wheel. During this talk I’ll tell you how we...
At the Home Office we had a problem. Hundreds of lines of infrastructure, everyone doing their own thing, and reinventing the wheel. During this talk I’ll tell you how we are attempting resolve that using Docker, Kubernetes and changing developer culture.
This talk consists of 3 parts. In the first I will introduce you to docker and talk about how to use it to create reusable infrastructure components, then I will talk about how to deploy and manage those components with the open source PaaS Kubernetes, and finally I’ll talk about changing our culture using tools and techniques to ensure we keep reusing into the future.
Watch video
-
Introducing Zend Framework 3
ZF3 is the framework that took the opportunity to learn from the previous 4 years of ZF2 and be even better than that! Today’s PHP projects are built of components...
ZF3 is the framework that took the opportunity to learn from the previous 4 years of ZF2 and be even better than that! Today’s PHP projects are built of components installed via Composer and ZF3’s architecture reflects this approach; its core components have also been greatly improved in both usage and performance from older versions of the framework. If you’re already running a ZF2 application, you’ll be able to upgrade your existing application and there will be some excellent support for doing so - we love it when developers get to use new things. We’ll also look at how PSR-7 and middleware has been embraced. If you want to learn what’s new in the world of Zend Framework, then this session is for you.
Watch video
-
Imposter Syndrome and Individual Competence
This talk will focus on how Impostor Syndrome and the Dunning-Kruger effect work to undermine our estimation of our individual skills as developers. Who do these cognitive biases affect? And...
This talk will focus on how Impostor Syndrome and the Dunning-Kruger effect work to undermine our estimation of our individual skills as developers. Who do these cognitive biases affect? And how do they collectively shape the face of the software development industry? The impact of these biases on personal and professional relationships among individuals and groups will be examined, along with what can be done to diagnose and cope with them.
Watch video
-
HHVM and MongoDB — the perfect combination
In this talk we will discuss using HHVM and MongoDB together. In the last months I have written an HHVM extension for MongoDB, that mimics the API of a similar...
In this talk we will discuss using HHVM and MongoDB together. In the last months I have written an HHVM extension for MongoDB, that mimics the API of a similar PHP extension. On top of each extension we have a layer in PHP that provides the more user friendly aspects of the driver. The PHP part of the driver gets accelerated to nearly the same speed as the extension written in C++, while being vastly easier to update and maintain.
We will dive in to the architecture of the whole setup, HHVM’s JIT and extension APIs as well as some comparisons between running your app on PHP+MongoDB and HHVM+MongoDB.
Watch video
-
Got 15 minutes? Then give something back!
Many of us have great intentions for giving back to the developer community, yet not all of us act on these charitable aspirations. Using some real-life examples, we will look...
Many of us have great intentions for giving back to the developer community, yet not all of us act on these charitable aspirations. Using some real-life examples, we will look at several ways you can contribute and make a difference to our community without needing to have hours of surplus time to spare.
Watch video
-
Git Workflow and Comic Book Continuity
When helping companies improve their development practises, there are often conceptual sticking points - for example, rebase can be hard to understand and many people are wary of it. To...
When helping companies improve their development practises, there are often conceptual sticking points - for example, rebase can be hard to understand and many people are wary of it. To help us better understand and communicate our workflows, I will illustrate Git concepts in the language of comic books, followed by a practical demonstration of the techniques.
This session has something to offer all Git users - from newcomers trying to get their heads around it all, to veterans trying to communicate a workflow to their colleagues. It should certainly spark an interesting discussion!
Watch video
-
Every Millisecond Counts: Performance & UX
How do you lose 900 million dollars in 100ms? Or 8 million visits in just 4/10 of a second? User expectations are higher than ever when it comes to web...
How do you lose 900 million dollars in 100ms? Or 8 million visits in just 4/10 of a second?
User expectations are higher than ever when it comes to web performance, so much so that we’ve created an entirely new application architecture just to make it feel like our websites are faster than they actually are.
This talk will look at how we can improve our users experience at any scale through performance optimizations at every layer of the stack, from backend to browser.
Watch video
-
Elastic scaling in a (micro)service oriented architecture
Splitting an application up into multiple independent services can be a good way to keep it scaling and ensure stability and developer productivity in larger, growing teams. But just splitting...
Splitting an application up into multiple independent services can be a good way to keep it scaling and ensure stability and developer productivity in larger, growing teams. But just splitting the codebase, creating APIs and deploying the code on some servers is not enough, somehow your services need to know where and how other services are accessible. Classical approaches like hardcoding everything in every service or having a central load-balancer can quickly lead to problems in terms of scalability and maintainability. In this talk I’ll show how we at ResearchGate tackled this challenge. With the help of tools like Consul and haproxy we created a setup that allows us to quickly boot and shutdown services. This ensures that all servers are utilized optimally and load spikes can be reacted upon quickly and automatically.
Watch video
-
Eating spaghetti with Symfony
Big-bang migrations hardly ever work and usually take significantly more effort than expected. It’s also hard to convince the stakeholders there’s any value in the whole operation. It’s much more...
Big-bang migrations hardly ever work and usually take significantly more effort than expected. It’s also hard to convince the stakeholders there’s any value in the whole operation. It’s much more effective to make gradual improvements. It’s also more rewarding to celebrate success after every sprint.
Learn how to leverage Symfony to move away from an Old School PHP Spaghetti Project™ to a modern Symfony based application. Release after the first iteration and keep improving the code base, delivering value in the same time.
Watch video
-
Doctrine ORM Good Practices and Tricks
Doctrine ORM is a complex tool that enables development of very advanced applications, but are you actually using it correctly? What if you have been using the ORM incorrectly or...
Doctrine ORM is a complex tool that enables development of very advanced applications, but are you actually using it correctly?
What if you have been using the ORM incorrectly or in an inefficient way?
We are going to inspect the advantages and disadvantages of various approaches to application design with this Data mapper, and come up with a set of best practices that will be useful for your projects.
Watch video
-
Docker & PHP - development and deployment
Docker has recently been one of the hottest words in the web technology world. But why is it so? Isn’t it just another “hyper tool” that will be forgotten in...
Docker has recently been one of the hottest words in the web technology world. But why is it so? Isn’t it just another “hyper tool” that will be forgotten in a year?
I’ve been using Docker for one year to develop and deploy both professional and pet projects. During this year I worked out my very own set of best practices to deal with Docker, that I’d like to share with you.
Why is Docker so popular? Is it hard to use it? How to use it to develop PHP applications and how to deploy them into the cloud? What are the main threats of Docker? Is it worth to use it? If you ever thought about any of these questions, this presentation should be interesting for you.
Watch video
-
Dip Your Toes in the Sea of Security
Security is an enormous topic, and it’s really, really complicated. If you’re not careful, you’ll find yourself vulnerable to any number of attacks which you definitely don’t want to be...
Security is an enormous topic, and it’s really, really complicated. If you’re not careful, you’ll find yourself vulnerable to any number of attacks which you definitely don’t want to be on the receiving end of. This talk will give you just a taster of the vast array of things there is to know about security in modern web applications, such as writing secure PHP web applications and securing a Linux server. Whether you are writing anything beyond a basic brochure website, or even developing a complicated business web application, this talk will give you insights to some of the things you need to be aware of.
Watch video
-
Behind the Scenes of Maintaining an Open Source Project
The open source world is made out of human interactions as much as it is made of code. During this session, Jordi will be sharing his experiences as the Composer...
The open source world is made out of human interactions as much as it is made of code. During this session, Jordi will be sharing his experiences as the Composer Project lead. He will show you glimpses into what it means and feels like to be the maintainer of a popular open source project. By sharing his experiences, Jordi hopes that you will gain a better understanding of the human factor in the open source community.
Watch video
-
Automation Automation Automation
A good rule of thumb to have as a developer is that if you have to do something three times or more, you should automate it. Imagine that a task...
A good rule of thumb to have as a developer is that if you have to do something three times or more, you should automate it.
Imagine that a task takes you a minute to do, twice a day. Now imagine that you could write something that does it for you, but it would take an hour. Initially, you’ll have lost an hour, but after the first month you’ll be breaking even, as you’ve saved those two minutes per day. Then after the second month, you’ve essentially gained a free hour.
Automation is a developer’s best friend. Some things are easier to automate than others, but almost anything can be automated. In this talk, we’ll take a look at what can be automated, what tools are available to help us and crucially, if we should automate it. Surprisingly, sometimes the answer to the question “should we?” is “no”.
Watch video
-
All the cool kids...
The PHP world is spinning quite fast these days. There’s a lot to keep up with. You can’t be an expert in all subjects, so you need a way to...
The PHP world is spinning quite fast these days. There’s a lot to keep up with. You can’t be an expert in all subjects, so you need a way to find out what’s relevant for you and your team. Which approaches to software development would be useful? Which programming paradigms could help you write better code? And which architectural styles will help your application to survive in this quickly changing world?
In this talk I’ll help you answer these questions by taking a bird’s-eye view. I will quickly guide you along some of the most fascinating topics in modern PHP development: DDD, BDD, TDD, hexagonal architecture, CQRS, event sourcing and micro-services. We’ll see how these things are related to each other, and how understanding and applying them can help you improve your software projects in many ways.
Watch video