Working effectively with legacy code isn’t all about creating test harnesses before refactoring algorithms. The “safety first” strategy doesn’t always apply. Not if the code you’re looking at is LYING IN YOUR FACE anyway. In this talk I’ll show you what brutal refactoring is. I’ll show you the red glowy eyes of the Churn. And …
Continue reading “Brutal refactoring, lying code, the Churn, and other emotional stories from Legacy Land”
This session will explore various setups and case studies from my attempts at hosting sites used by global audiences, from Packagist to Teamup, a calendar web app used around the world. There are many ways this can be achieved with different levels of success, budgets and global-ness. The talk will touch on Terraform, AWS, global …
Continue reading “Building global web apps with multi-region hosting”
Some languages (C, C++, Go, Java, C#, …) requires compiling your whole code base before being executed. This could be seen as a counter-productive required step, taking time and that must be performed for any single code change. It has, however, the benefit of analyzing the whole code and may not complete because of many …
Continue reading “Code Robustness with Phan”
Integrating multiple API endpoints into a single application can be challenging. In this talk I will go over a lot of problems and how the can be solved. Going from easy authentication to locally caching calls via middlewares and using webhooks (or callbacks) for notification, this talk covers it all (or at least tries to).
Kubernetes is very powerful in orchestrating where your services are running, but building docker images, writing and updating all the necessary YAML files and applying them to your cluster can still become an annoying maintenance overhead. In this talk you will learn how to create a fast, low friction development workflow with Kubernetes and tools …
Continue reading “Creating a fast Kubernetes Development Workflow”
We always start with the best intentions when we create a new project. But over time we might end up with parts of our code that are hard to read or/and understand. Here we will take you through a series of exercises you can apply to your day to day coding. These should help you …
Continue reading “Defensive PHP programming”
Ever been to a conference, get inspired, try to bring what you learned back to the office, only to be stymied by co-workers who aren’t interested in rocking the status quo? It turns out that people tend to resist change in patterns, and like any pattern they can be overcome by using other people’s experiences …
Continue reading “Driving Technical Change”
REST 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 …
Continue reading “GraphQL, different way to think about APIs”
When you want to guarantee code quality, do continuous deployments or any other automation you will need a good continuous integration server. While there are many great (hosted) solutions like TravisCi, CircleCi, etc … when it comes to **full control** or the need for private hosting, **Jenkins** is the right candidate. However, Jenkins could be …
Continue reading “Jenkins Automation”
Docker is a tool that allows you to package your application up into a single-runnable, distributable, binary; which is great for deploying your applications to production … but what about local development? Allow me to introduce you to Docker and it’s fundamentals, before quickly moving on to crafting great development environments, with Docker Compose, that …
Continue reading “Kickass Development Environments with Docker”