La liste des présentations est sujette à changement sans préavis.
An obscure but ubiquitous design pattern in PHP development is known as Funky Caching. Using real architectural examples as a lens to look at this one simple PHP design pattern, we see how we can design web architectures that are "organic, democratic, and lasting"
Une entreprise sans bons développeurs, c'est comme du code sans test unitaire : à un moment ou à un autre, ça ne fonctionnera plus.
Aussi devient-il impératif, d'attirer les meilleurs d'entre eux, mais également de savoir les garder au sein de son entreprise. Si cela est simple à dire, réussir à le faire correctement et à maintenir un tel contexte attractif n'est pas chose facile. Venez découvrir les 10 méthodes pour les rendre heureux!
Web accessibility is not only the responsibility of developers. Designers also play an important role in creating an accessible product. You can use color, images, icons, videos, animation and a fancy layout and still designing an accessible product. This talk is an overview of what designers should know about accessibility.
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.
By the end of an internship, an intern should have identifiable accomplishments, gotten a realistic view of what a full-time job at the company is like, had a meaningful impact on their team, and learned practical new skills. These are ambitious goals for 10-12 weeks and mentors must prepare and guide them to meet those goals. I'll share my experiences from both sides, as an intern and a mentor, and present a formula for success.
While we are a long way 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.
You need to reach every last customer, but for many, the web is not an easy place to be. Your target audience contains people who need visual or motor assistance whether they have a specific condition that affects them or are just part of the very large and aging generation. Learn some tips for evaluating the accessibility of your site, and find out how to broaden your site's appeal while making the web a more accessible place for everyone.
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.
We all know not to poke at alien life forms on another planet, right? But what about metrics, do you know how to pick, measure and draw conclusions from them? In this talk we will cover various Site Reliability Engineering topics, such as SLIs and SLOs while we explore real life examples of defining and implementing metrics in a system with examples using Prometheus, to demonstrate the practical implementation.
In this talk, we’ll explore the simple yet complex realm of rate limiting. We’ll go over how to decide on which resources to limit, what the limits should be and where to enforce these limits – in our app, on the server, using a reverse proxy like Nginx or even an external service like CloudFlare or Azure API management. The takeaway? Know when and where to enforce rate limits so you can have both a happy application as well as happy customers.
This is a DevOps talk by someone who hates "DevOps". Instead of focusing on tools and cool tech we need to focus on our teams building the best software they possibly can. Sometimes this means not playing with the "bright, shiny" or building it just because we can. Our workloads live at different levels of abstraction, and we should understand how to run them with the minimal amount of DevOps work. Avoid the yak shave and dev only the right ops.
Balancing technical prowess and soft skills is always a challenge, but whether you are discussing business requirements for a product or sitting in on a hiring loop, asking the right questions is essential to effective communication. Communication breaks down when one or both parties make assumptions of the other, and learning to ask better questions in these situations can help alleviate the stress and even improve the efficiency of your team.
What is legacy code? Did I just write more of it? ASP.NET rebooted itself to make it more maintainable and performant. Let's learn to build highly maintainable code as well. We'll look at the low-hanging fruit to get you on a path to avoiding the common pitfalls and reach for the easy wins. You can avoid legacy.
Async and await are now common elements of .NET ecosystem. Do you know how they work, what is synchronization context, how to wait for async void methods or how to implement custom task scheduler? In this talk I show internals of async and await. I present state machine created by the compiler, typical deadlock scenarios, synchronization context implementations and how to await for async void methods.
You’ve probably seen how a ASP.NET Core application works, but authentication and authorization are a different cup of tea. Microsoft completely re-did a large part of these security features in ASP.NET Core.
We'll look at the different case of doing authentication for your application, with ASP.NET Core Identity or by using a token service (STS). When that's done we'll dive into the authorization part which is also completely overhauled.
Testing frontend applications does not need to be a pain. Especially testing react applications can be quite easy if you follow some rules.
We will discuss the rules you need to follow and I will demonstrate patterns on how testing most parts of your applications will be straight forward.
TDD allows you to proceed with confidence that you're building the right thing. It provides you with imminent-horizons that you can meet and measure. TDD gives developers the confidence to go faster, secure in the knowledge that what they break they will fix and be able to improve. In this talk, join Spring Developer Advocate Josh Long (@starbuxman) as he looks at how to test Spring applications and microservices.
Jack is the lead engineer for the Sport Places API at Decathlon. Let’s explore how to store path, areas and points with GeoJSON and generally speaking how to build an API on Ruby.
In this presentation, I will show you how to build a spring boot application that implements the event-sourcing pattern using Axon. I will also be covering how to write JUnit tests in this context. In addition, I will be demonstrating how to use snapshots to increase the application performance. Finally, you will learn how this pattern helps in capturing business events and generating analytics.
Ever wondered how IDE’s are built? In this talk, we’ll skip the marketing bit and dive into the architecture and implementation of JetBrains Rider. We’ll look at how and why we have built (and open sourced) a reactive protocol, and how the IDE uses a “microservices” architecture to communicate with the debugger, Roslyn, a WPF renderer and even other tools like Unity3D. We’ll explore how things are wired together. Let’s geek out!
Amrit will go through how and why Hockey Community has been building hybrid apps as opposed to native for the past five years.
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.
This talk shows how we did set up our Continuous Integration and Continuous Deployment at Flare Systems. We will walk through how to build our docker image, run tests, collect the results and deploy the service, all while talking about the gotchas and ways to speed up everything. While the presentation relies on the free Gitlab runners, the concept should be applicable to other CI services such as CircleCI or TravisCI.
In enterprise software, we see more and more of the cloud native technologies, especially container orchestration and service meshes, slowly taking over the market. Developers are facing the challenge which technology to choose for a cloud native setting. Java EE has been used for software solutions for a long time and its APIs are well-established. However, is it possible to develop cloud native, service-meshed Java Enterprise applications?
Machine Learning, Data Science, Artificial Intelligence. These are all big words we hear coming into our businesses lately - but what does it really mean?!
Microsoft has created a set of simple and scalable tools that any developer can use and integrate into their applications super quickly!
This session will focus on the various Cognitive Service offerings and show you plenty of demos on how to use them in your apps!
Votre compagnie a le vent dans les voiles, votre équipe prend de l'expansion, mais votre vélocité diminue et vous avez l'impression que vos nouvelles recrues sont un peu laissées à elles-mêmes ? Voyons ensemble comment réduire les frictions et rendre vos employés fonctionnels au jour un. Avec quelques astuces et un peu de planification, vous pouvez rendre l'expérience agréable pour tout le monde.
Is your online service live and starting to generate traffic, but you still have a backlog of things to do and are lacking the right context to prioritize them? What if you could create profiles based on user behavior? In this presentation, we will explore the user data required to extract insight and create profiles. After introducing the python work environment, we will present techniques of data exploration, including clustering.
Within this talk we’ll cover a service-oriented architecture approach to writing HTML and CSS, including Sass, and keeping our code modular and performant. Geared towards designers and front-end developers, we’ll discuss at how to best structure and write front-end code for maintainability and reuse, as well as how to properly package these styles to be used within different development environments.
In this session, we'll bridge the real and the virtual. We'll first explore how to build a simple Android Things powered robot. This simple robot car uses both off-the-shelf and 3D printed parts.
Then we'll close by building a simple Augmented-Reality remote control app. We'll be using Google's ARCore and Sceneform libraries.
Some familiarity with Kotlin and OpenGL is helpful, but not required.
Software 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.
With TensorFlow.js developers can embed pre-trained deep learning models directly within a Node.js or web application. Deep learning can be used for many tasks including image or audio classification, facial recognition, object recognition, image caption generation, and natural language processing. TensorFlow.js enables inferencing on deep learning models at the edge, removing the dependency on potentially slow and unreliable network API calls.
It has become increasingly easy to connect with talent across the globe. With the ubiquitous nature of the internet in increasingly remote locations, your team may even consist of people you’ve never met. While this is enticing, it comes with its own set of challenges. Learn to navigate and preempt potential issues and utilize effective tools for achieving a smooth means of delivering solutions for your customers.
Chat bots continue to be all the rage in application development. But is there really anything special about a chat bot? Is there anything a chat bot can do that a normal application can't?
Turns out a bot is really just an application with a different interface. And this new interface requires a new set of design skills.
Come see what chat bots can and can't do, and how to integrate NLP and ML to create a compelling user experience.
Flatter organizations mean fewer steps on the traditional career path. Emergent design redefines the role of architects and senior staff. Balanced teams challenge us to share rather than horde specialized skills we've spent years developing. Expecting to continue grow in a model measured by increases in power and authority is bound to leave us disappointed, or worse yet frustrated as our organization's goals seem in direct conflict with our own.
The talk will cover how to architect your ASP.NET Core Web APIs. The talk will cover a clear decoupling of the API endpoints, Data Access (Synthetic or Production) and finally the Data Domain classes. Discuss how the API Endpoints (Controllers) have no knowledge or responsibility of Data Domain and behind it Data Access. Finally, Data Access segments of the architecture can easily be switched out without impacting the Domain or API Endpoints.
Accessibility isn’t just about blindness and screen readers or running through a typical section 508 checklist. There are many other important facets of accessibility. In this session, we'll discuss in detail what we mean when we say "accessibility" that includes vision, hearing, motor, and cognitive needs. We will break down basic accessibility development guidelines, browser support, and how to best raise awareness on your team.
Event Storming is a lightweight modeling technique to quickly explore complex domains and problems. Using Events, we can discover and model processes and systems, as well as bounded-contexts, commands or read models, in a very short period of time. In this talk you will learn about Event Storming core concepts, patterns and best-practices you may apply in your next complex project.
How many fantastic SW devs have you met that came from a non-traditional background? Is a CS degree really be a prereq for all SW engineering roles? It's time we start giving some serious thought to engineers with diverse backgrounds. Chloe Condon- actress turned Software Developer tells her story.
DLL Injection sounds like some black magic used only by hackers. However, it is used widely in the Windows ecosystem by multiple antiviruses and system utilities. During the presentation I show how we can use it to change 3rd party applications, how to write simple keylogger in 20 lines of code, and how to inject both native and managed code into other applications. We will see memory management on x86 and some Windows internals.
We use Scalable Vector Graphics (SVGs) every day, but how well do we really understand it? More often than not, we are merely scratching the surface of a large and complicated discipline. Most developers and designers don’t realize how powerful and useful SVGs are, learn about the advanced techniques you can use to delight users; you will be surprised at how deep the rabbit hole goes.
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.
What happens when the code for your Entity Framework LINQ queries looks good, but your app is very slow? Are you looking in the right place? Don’t be afraid to start looking at your database. Knowing how to investigate and debug what your LINQ queries are doing in SQL Server is as important as the actual LINQ query in your .NET solutions. In the end, learning to be an Entity Framework detective will make your project sound and snappy.
Chances are we’ve all had a manager we weren’t fond of, making everyday at work a bit more difficult. What’s worse, is being this manager and not knowing it. Building a team, developing trust, and aligning everyone to organizational goals is easier said than done. In this talk, for new and experienced managers, we’ll discuss trust, engagement, and the alike. Equipping you to be a great manager.
MySQL 8 has many new features including a true data dictionary so that you can have millions of tables within a schema, resource groups to dedicate processors for classes of queries, historgrams to provide better query plans, invisible indexes, a contention aware transnational scheduler, better locking granularity, and more! This session is aimed at developers who could benefit from more perfrormant queries from their database.
Recent releases of Java have taken asynchronous programming and data streaming capabilities we know from Java 8 to the level that allows us to write truly modern, reactive applications. In this live-coding session, we explore JDK 9-11 features enabling all the aspects of reactive programming - updates to the Stream and CompletableFuture APIs, Reactive Streams publish-subscribe framework, HTTP/2 client, and more.
Le développement d’application mobile laisse plusieurs possibilités en termes de technologie, le développement en natif pour de bonnes performances mais avec l’inconvénient de devoir développer deux applications (Android et iOS), ou les frameworks hybrides comme ionic / ReactNative / Xamarin / … souvent au détriment d’une expérience utilisateur fluide.
Découvrez la puissance de Flutter lors de cette session de live coding.
Join us on a tour of Blackfire.io, a profiling tool for PHP. You will get a brief look at what profiling means and why it is important. You’ll see how to create, read, and analyze performance profiles. You’ll also take a look at more advanced functionality like performance management automation.
Experience with security is a useful and even profitable skill for every technical and non-technical employee in IT. Contrary to common stereotypes, security is far more than black hoodies, math and crypto. It's also humans and communication skills. Attendees of my talks regularly ask me how to get started. Let me introduce you to diverse areas of info sec and point you to books, online courses, talks, and other resources to get you started.
Every month, we hear about a new data breach and billions of user passwords are being shared as we speak. How can we stop this? There is a simple solution, let’s stop using passwords! From email links to biometrics, more and more technologies are available to help developers handle different types of credentials. During this presentation, the attendees will learn about some of the alternatives and how to implement them.
Symfony is a modern framework that allows you two write sustainable PHP applications.
I will show you an approach on how to develop Symfony applications that are not tightly coupled to symfony and HTTP. This approach will allow you to implement controllers that can act as HTTP endpoints and message queue endpoints, and which may easily be migrated to the next generation of PHP framework in a few years.
As Uncle Ben used to say, “with great power comes great responsibilities”. From his experience as a founder of a start-up to his position as a CTO of a multinational, Alex will share with us his insights on the roles of developers in the sport industry.
Engineering, 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.
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 that if you start with a micro-framework like Silex you’ll end up needing to migrate to full stack Symfony anyway? Enter Symfony Flex. Flex brings all of the power of full stack Symfony with the upfront requirements of a micro-framework.
Find out what a graph database is and how it can transform your applications and data! We will explore creating, querying, and displaying data and learn how to use simple tools to interact with the database. We will cover the whiteboard-friendly model and the basics of the Cypher query language. Live demos will show developers how to interface with the database and the data in it. Learn how graph databases can improve the data world!
In this talk we'll explore the best practices to integrate your app with the Kubernetes ecosystem.
Attendees will learn:
* what the caveats are when running the JVM in a container, and how to avoid them
* what Kubernetes objects to use to deploy your application (Deployment, Service)
* how to integrate your application with Kubernetes monitoring (Prometheus)
* how to package your application for Kubernetes : Helm or Operator ?
You see your website every day. You know exactly how it works, and so does the rest of your team. Your team knows exactly how each function was made (and often, whose fault those decisions were). So how you do you get your team to look at the site with fresh eyes and include usability when planning new features for the site? Come and learn some simple tips you can implement to get your team talking.
Volume of data is continuously growing bigger and traditional storage and tools are not capable of catching up. Distributed technologies have been able to accommodate commodity hardware in distributed environments to achieve faster and more reliable performance. Apache Spark, a distributed processing engine, has simplified distributed computing in many ways. In this talk we will cover the essentials of Apache Spark and its usage.
Ever wanted to get started with Big Data? But maybe you don’t have a big data set to play with. Or you don’t have a big data tool. Or you just don’t know how to get started. Did you know you can download FAA airline statistics? That’s pretty big data! Come see how to take some big data, put it into Splunk, and do your own analysis of it! In the near future, we all need to know how to work with big data sets. Start here!
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.
Learn how graph algorithms can help you predict real-world behavior and why an averages approach fails. Find out which algorithms to apply for various types of data analysis. This will come alive through a live demo, where we look at what kinds of decisions you can make based on results from different algorithms. From this session, you will gain the knowledge to recognize whether you have a graph analytics problem and how you can get started.
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.
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.
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.
WebAssembly provides a way to run code written in multiple languages on the web at near-native speed, with client apps running on the web that previously couldn’t have done so. You will learn how to reuse .NET Standard application and C# code to make your applications run across all browsers and all OS with WASM. You will also learn how to create apps using C# and XAML that can work on WASM but also on iOS, Android, Windows.
"A picture is worth a thousand words." But what if your clients can't see the image? Worldwide, there are 39 million people who are blind and 246 million who have impaired vision. How can you post images on your website and still reach everyone? In this session, I will show you how to make various types of images conform to the Web Content Accessibility Guidelines (WCAG). I will also share a variety of free tools to validate your images.
If you code, at some point you are going to need to demonstrate code to someone else. It might be a meeting, a lunch and learn, or a conference. In this session, we will see some tips, tricks and tools to help you deliver great demos!
In this session we’ll see where weird characters like “?” or “Ã¶” come from and how we can avoid them. Along the way we’ll tackle the history and the oddities of character handling at all relevant levels. May that be code, database or files. And in the end you’ll be able to tame all emojis ????
Based on our study across thousands Heap dumps, most enterprises waste 30 - 70% of memory due to inefficient programming. In this session you will learn effective programming practices, techniques and tricks to write memory efficient code. Memory efficient code facilitates to deliver top performance, reduce cloud hosting bill (significantly) and of course eliminate memory leaks.
In an era where morally flexible corporations impose their (un)ethical practices, it's more important than ever to establish our ethical practices and values to preserve our fundamental human rights, reduce inequalities and stay aware of the sociological impact of technologies.
Thoughts, possible solutions and case studies to awaken us to our role as actors in the field of technology.
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!
Remember when setting up an auth system was easy? Me neither. From the signup form, the login form, password reset form, and all the validation in between it can easily take weeks if not months to get something basic up and running. Then you have to deal with all the security considerations. No thanks. During this presentation, the attendees will be introduced to OpenID and OAuth and learn how to use them to make more secure apps.
This year Shopify launched in 6 new languages. In this talk, you’ll gain insight about how international is forcing them to fundamentally shift their way of thinking. In the same way mobile disrupted a once desktop-only internet, international is disrupting the way we think about commerce. Learn about the principles & tooling we’re using to take on meaty challenges to drive forward a large scale product that previously only supported english.
You can’t spell “introvert” without “IoT”, which is why Chloe is here to show us how she used Azure IoT services to help her get out of not-so-fun social situations. In this talk, she’ll walk through how you can use a simple Flic button and Azure to save yourself from your next awkward convo.
With the recent introductions of ARKit on iOS and ARCore on Android, developers are using augmented reality to create a new wave of innovative applications... as well as a lot of stupid apps no one uses.
In this talk we’ll look at where augmented reality came from, where the technology is today, and where the AR industry is headed. Finally, we’ll look at how you can participate in the AR revolution and start building apps for yourself.
The Internet of simple textual requests and responses is done. Finished. Obsolete. The modern web is a web of binary, persistent connections like WebSockets, WebRTC, HTTP/2 and QUIC. Today's Internet is a strange place where things are received before they are requested (Server Push) and a web application work without the Web (offline support with Service Worker). This presentation is going to be your map to this new terrain.
Jakarta EE is picking up the baton over Java EE as a community effort in the Eclipse Foundation with the focus on enabling community-driven collaboration and open innovation for the cloud. The transfer of the Java EE technologies to Eclipse Foundation also opens up for very interesting synergies and collaboration with the Eclipse MicroProfile projects.
Java bouge désormais très très vite. Mais de nombreuses fonctionnalités des versions précédentes restent pourtant méconnues.
Faisons une petite mise à jour ensemble pour parcourir ce que vous pourriez avoir manqué.
Ensuite, nous vous initierons aux tout nouveaux Java 9, 10, 11 et 12.
La nuit vous vous réveillez en sueur en criant "OSGi!" Depuis Java 9 vous ouvez maintenant varier les cauchemars et crier "Jigsaw!", le nouveau système de modules.
Pas d'inquiétude, je suis là. On va regarder ça ensemble pour comprendre un peu mieux comment ça marche et ce qui pourrait vous être utile. Paisiblement. Parce que bien dormir, c'est important.
In this session we'll look at client-side identity, API, and token security, exploring token downscoping methodologies, key management tools, and security on the client.
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.
From IoT thermostats to self-opening windows, there's an off the shelf product out there that will allow you to control your home. Proprietary hubs in the cloud allow you to control your home from anywhere, but also gives the vendor full control!
In this talk, Ben discusses tools and components available today, to create your own home automation system. Keep control over your data, and still turn off the oven from the other side of the world!
Il existe plus de 1600 "coins". Certains sont mort-nés, d'autres promis à un bel avenir. La plupart se focalise sur un cas d'utilisation bien précis. En dehors des classiques monnaies d'échange telles que le Bitcoin, quelles applications concrètes existent pour les autres projets de blockchain (logistique, stockage, IOT, partage de ressources, applications décentralisées, prédictions, etc.)? Quel est l'enjeu du minage et l'impact écologique?
Regardless of your job title or level of experience, you have amazing potential to impact your workplace, community, and beyond.
In this talk, I’ll share a few candid stories of my career failures… I mean… learning opportunities. We’ll start by debunking the myth that leadership == management. You’ll walk away with some essential leadership skills I believe anyone can develop, and a good dose of encouragement to be more awesome!
Before doing any data science, machine learning or AI, you need to get your data right. As the volume of data grows, having a reliable, available and scalable data pipeline becomes a challenge.
In this talk we will share our learnings from running a data pipeline in AWS infrastructure using technologies like Apache Spark, gRPC, Protocol buffers.
How do you justify the introduction and long-term use of Automated Testing in your project? What measurable goals and KPIs can you set, track and report so you transparently show its ROI? What prioritization approaches can you use to achieve maximized benefits recognized by the project team and management?
I'll share my experience with examples, ideas and approaches that worked well for long-term initiatives I have been responsible for.
Over the years, people have questioned if PHP is a good choice for building web services. In this talk, I will share how we use PHP on the backend for Glu Mobile’s flagship mobile game Design Home, enabling it to regularly rank amongst the top free mobile games in the Apple App Store and the Google Play Store. We will deep dive into the thought processes, development, testing, and deployment strategy, showcasing what we have achieved with PHP.
Tsunami waves travel at the speed of 500 - 600 miles/hr, where as normal waves at 5 - 60 miles/hr. Due to technical limitations, even massive Tsunamis are hard to detect & forecast. In recent times, hyper sensitive micro-metrics measuring technologies are employed to forecast Tsunamis. Similarly, it's hard to forecast production performance problems. Learn the micro-metrics to measure in dev/test that forecast problems with high accuracy.
MySQL can now be used as a schema-less NoSQL JSON document store database. No more embedding ugly strings of Structured Query Language in your beautiful code. Plus the CRUD operations follow modern programming designs and work better with modern program flow. And you can also access old structured relational tables too so you get the best of both worlds built on proven MySQL technology. Lots of coding examples so you can start using it today!
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.
IoT has been, and still is, a very hot topic. Same for security. Mix the two, and we get all sorts of scary news headlines.
In this talk, Ben will discuss ways in which you can improve the security of your IoT applications, using a live demo around automatic doors as an example.
Every developer should be confident that their code is efficient and safe to run in production. But it can be hard to get started. How do we find out what load our app can handle? How do we prove it's not leaking memory or how do we identify the areas to optimise? What tools to use? What do the graphs mean? Let’s answer those questions by analysing a simple PHP app using some open source projects and tools.
Struggling to get your website to load in less than 5 seconds on a mobile phone? This talk will cover the architecture for Xfinity xFi, an enterprise PWA for Comcast, built with Google Polymer. We’ll then dive into the Chrome performance tools to optimize xFi loading time down by more than half. You’ll walk away knowing what it takes to create a successful PWA and how to find slow downs in your app startup.
State of PHP talk
Static Analysis with Phan
Profiling with phpspy
We will start with the basics and I will guide you through 4 parts of writing tests using PHPUnit.
- Part 1: Unit Testing
- Part 2: Integration Testing
- Part 3: Acceptance Testing
- Part 4: Smoke Testing
After this session, you'll have a good understanding of all 4 types of tests, how they should be structured and in which cases they are used. On top, you'll get a lot of examples and exercises for each type.
En 2018, Décathlon a ouvert sa première boutique à Montréal. Nous avons travaillé avec Algolia pour déployer localement, puis dans d'autres pays (Décathlon est présent dans plus de 45 pays) un moteur de recherche sur un catalogue produit unifié et mondial.
Dans cette présentation, nous verrons les étapes de création de l'index pour le moteur de recherche, jusqu'à l'intégration de l'instant search et la navigation à facettes dynamiques.
The EU new General Data Protection Regulation (GDPR) came into force in May 2018, significantly raising privacy & data protection standards. Its effects are being felt around the world, helping users to regain control of their own data outside of Europe too. As part of this, privacy by design provides a primary line of defence between companies and terrible headlines. Learn what developers & project managers need to know about GDPR in this talk.
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.
Modern OS and CPUs come with a variety of APIs for monitoring. Ptrace based commands like strace are easy to use but slow. Perf allows lightweight profiling. SystemTap is a powerful toolkit plus DSL to instrument probe points inside the Kernel as well as static SystemTap/DTrace markers in libs and languages like Java, PHP, and Python. In my talk I'll show and compare various low and high level tools as well as visualization (e.g. flame graphs).
In this presentation, I will show you how to use OpenAPI generator to increase backend and front-end engineers collaboration in developing and consuming Rest APIs. I will also share some tips on how we integrated this tool into our CI/CD pipelines to automate and unify Rest API client generation across all teams within our organization. Although OpenAPI generator supports 30+ languages, Java will be used as a programming language in all examples.
Ever feel like the design to development process is a drag? Recognize the benefits of rapid prototyping to increase communication and collaboration on your project teams. There are a number of great rapid prototyping tools out there today. In this session, we’ll focus on Vue.js as a rapid prototyping tool to quickly implement functional design concepts and streamline the designer + developer relationship.
Over the past year, we've been implementing a cross-platform chat application using React Native for Android and iOS, while trying to keep it as close to real React JS code as possible. In this talk, we'll help you avoid the pitfalls we ran across in cross-platform (and even cross-model) behavior, as well as sensible theming, navigation, and state management techniques.
Spring Framework 5 is here! It introduces the Spring developer to a growing world of support for reactive programming across the Spring portfolio, starting with a new Netty-based web runtime, component model and module called Spring WebFlux, and then continuing to Spring Data Kay, Spring Security 5.0, Spring Boot 2.0 and Spring Cloud Finchley. Sure, it sounds like a lot, but don't worry! Join me, your guide, Spring developer advocate Josh Long.
SignalR for ASP.NET Core is here. It's quite a lot different than the "old" SignalR. After a short introduction of what SignalR is I'll show you how to build real-time functionality into every ASP.NET Core application by diving into the code of a demo application showing you the server- and client-side. When your app's ready there are scalability issues to consider.
When the session is over you'll be able to deliver your own real-time web app!
Most database lovers have heard of memcached for application-level data caching, but many haven't had the opportunity to play with Redis, a powerful in-memory data structure store. In this presentation, we explore Redis data structure operations through a number of patterns: key-value storage, leaderboards, membership, counters and message queues. To keep things fair, we'll provide database versions for comparison as well.
Legacy code is code that makes money. But we have an opportunity to refactor when tickets and feature requests come in. How are we going to make sure we don't break things?
Using a test first approach we will turn this dumb data container into a rich and meaningful domain model. This gives us the confidence to tackle new challenges, without fear of regression. If you know about tests but don't know how to get started, then this is for you.
JSON is the de facto standard for web and mobile applications, but more often than not, data is neither 100% structured nor 100% semi-structured. With JSON supported in relational databases, we can move to hybrid relational/JSON data models. In this session, we’ll discuss when and where it makes sense to use JSON in a relational database, and walk through 20+ code examples showing how to create and query a hybrid relational/JSON data model.
Releasing open-source libraries is more than sharing your Github URL with the world. There are many considerations and steps involved especially for successful and long-lived projects.
In this talk we’ll cover the principles behind creating, releasing and maintaining high-quality libraries. Topics will include structuring the repository, implementing modern PHP standards, maintaining changelogs, using CI tests, releasing new versions and more.
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.
Everyone fears the review of his own code. And to start with, there is no time. Because, what will happen once we have found something to detail? In fact, a good code review means being ready to discuss a mere few lines, assess the context and evaluate an alternative, or not. Using automated tools that are not scared by volume, we’ll keep everything under control, without anyone else knowing about it.
Applying for a new job or for a new role in your current company? Trying to convince management that your project needs time regularly spent on refactoring? Or about to found your own start-up? In many cases like these good sales skills could help a lot for achieving success. In this talk I'll present some of the main approaches and principles for successful sales - and will map these to different scenarios in the IT professional's life.
A natural platform for AR solutions is becoming a reality with the WebXR APIs, following new devices with space recognition cameras, new OSs with 3D recognition, machine learning, and new browsers. We will analyze the WebAR and WebXR proposals with live demos on stage with different devices such as Hololens, VR headsets and mobile phones, including what options are available today with current APIs for mobile devices.
Server-Side Rendering (SSR) can offer huge benefits to initial page load performance and SEO, but most SSR techniques require you to change the way you write your front-end web apps to accommodate the SSR. We've created a technique to use Node.js to SSR your app without changing your source code and it works with any framework: React, Angular, Backbone, even legacy jQuery apps. Learn how it all works and start SSR'ing your SPAs and PWAs today!
This session presents a gentle introduction to serverless and FaaS, what it means for developers, and why it is important to understand this paradigm. It then turns to solutions available for developing serverless applications, or functions, with Java.
The session is a mix of slides and live code demos.
Faster, Better, Cheaper - the beating drum for software developers. This talk will cover how Comcast front end teams are tackling these challenges. We’ll look at how we’re using Web Components to share code between sites and if they can be used to share components between frameworks. I’ll go over how we’re sharing data between codebases with Redux. Lastly we’ll talk about Shared Flows; pulling out complicated reusable logic into its own microsite
Today it's crystal clear why we need unit tests. Even integration and acceptance tests are quite common. However, none of these tests is generally run in a production environment. Well, are you sure that all your web pages are working in production after your newest feature was deployed? Discover SmokeTests (as well called sanity or availability tests) and why every web development team should have them set up.
"The Mythical Man-Month" is one of the seminal books in the field of software project management. It was written in 1975, based on experience from the 1960s. Is it even still relevant?
Yes it is, yet too often we forget its lessons these days. This session will present a modern overview of the ideas presented by Brooks and a look at what we can still learn from them even today.
I'm tired of solving the wrong problem. As technologists we like to tackle challenges and discuss solutions. However, when the solution does not lead to the expected outcome, we assume we came up with the wrong solution. Rather than quickly jumping into solution mode, how about we discuss the problem? In this presentation, you will learn how companies are using Design Thinking methodologies to address this issue.
Swoole is an event-driven asynchronous and concurrent networking communication engine for writing high-performance HTTP and WebSocket services in PHP. It changes the way how we write and build PHP applications. With supports of coroutine, non-blocking IO, connection pool, and many more, we can build better scalable and fast web applications. In this talk, I will dig into technical details and demonstrate how Swoole breaks the limit of PHP.
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.
Tout le monde doit un jour ou l'autre travailler dans un patrimoine (legacy code). Nous sommes souvent démunis alors que des techniques existent.
Cette présentation focalise sur un outil à ajouter à son coffre: les tests de caractérisation. Variante des tests unitaires, ils servent avant tout à découvrir ce que fait le code et à guider son refactoring bien plus qu'à tester!
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.
So many things can go wrong with a registration form that your customer doesn’t really feel welcome or safe. In this session we will debug a few real-life examples from a user-experience Point of View. And you don’t need to be a coder to see why and how to improve your next registration form.
What makes an excellent technical talk when presenting to a technical audience? Most aim for a comprehensive presentation, but unfortunately achieve a jumble of acronyms and ill-defined concepts. Sometimes less is more. Learn how to focus your topic, deal with Imposter Syndrome, build your talk gradually, show rather than tell, and remember it's not about you. Make your next talk a truly memorable and educational presentation.
The talk will describe my role as an AI engineer in the transformation of Decathlon from a sport retailer to a sport platform. I will describe the challenges involved in the development of an AI-driven platform, detail the projects (image recognition to create a marketplace, personalization to improve user experience and retention) where AI has created the most value and describe the contribution of external developers to our projects.
Using 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...
In this talk I will demonstrate how to analyze user experience from a purely human perspective in order to facilitate the expression of human reactions to every and any content. I will take 3 different use cases and show you how to improve the ability to respond. In practice this has led to impressive improvements on user engagement. Data is the new gold! Learn how to harvest it.
A sure way to make data and ML work for you in a 10x manner is to start with low-hanging fruit: a recommender system. It's been a useful application of data science to the consumer-facing web since the early days of the internet. This talk explains how one was built to recommend colleges to prospective high school students, the application of popularity tables and collaborative filters, as well as other approaches and the reasons for doing them.
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.
Is it possible to analyze a reaction without manually reading and pouring over files? In this session we will look at how Cognitive Services can be used to analyze sentiment from text or to read emotions from an image. Analyze reviews, tweets, comments and find out how your audience feels about you!
In this presentation we will look at how to deal with time zones, and two calendars: natural year, and ISO8601. We will see how it is hard to make assumptions on how they work, and explain how they came into existence. We'll focus mostly on how to handle them from within PHP, as well as how we (should) store them in databases. We'll also have a quick look at date manipulation when querying data.
MongoDB 4.0 now supports multi-document transactions. We will explore the ins and outs of this functionality, and various approaches to conquering eventual consistency. You will learn about replication and transaction internals, and how to apply these concepts in your applications.
This session will help you get a jump start on that 30% and start coding in TypeScript.
Nous connaissons tous un développeur frontend qui est devenu plus efficace grâce à des solutions comme Angular, Vue ou React. On connait également des développeurs backend qui développent de manière architecturée grâce à Spring Boot pour Java ou ASP.NET Core pour .NET Core. Et côté NodeJS? 99% utilisent Express, qui est loin d’être un équivalent… Pourtant il existe NestJS qui propose des facilitants pour créer des APIs REST ou GraphQL au top!
Everyone fears the review of his own code. And to start with, there is no time. Because, what will happen once we have found something to detail? In fact, a good code review means being ready to discuss a mere few lines, assess the context and evaluate an alternative, or not. Using automated tools that are not scared by volume, we’ll keep everything under control, without anyone else knowing about it.
Terraform has changed the way many organizations deploy to the cloud. With a clear configuration language you can manage countless services (providers in Terraform) and ensure they are kept in sync with your deployment needs. Learn how to build out some of the most common patterns and infrastructures against AWS, and start writing your infrastructure as code today.
The QA team is the last frontier before your customers get their hands on your latest product version. Assuming your testing team has already completed testing there’s still one piece of the puzzle: visual UI testing of your app front end.
In this talk, I will take existing functional tests and add AI-powered visual testing capabilities to them. It takes just 8 lines of code - I promise.
I used to get heartburn all the time, but is it "chronic heartburn"? To find out, I built an "Internet of Tums" device to automatically record when I was feeling the burn. I started with a cheap microcontroller, a button, some batteries, and a box of antacids but ended up with a detailed list of my symptoms. Learn about how I used IoT to solve my problem, and how you can leverage it to solve yours.
Instant updates are an essential part of modern applications where developers want to sync across platforms, systems, and users. Change streams give developers access to MongoDB's internal event logs to react to relevant data changes immediately. This session introduces change streams. We will dive into use cases and explore how to make good architectural decisions around this new functionality.
When you test a program as a "black box", you send it in and out pops the result, like toast. But network code has I/O at two ends: the API and the network. If we only test the API, we don't test its wire protocol or error-handling. We need a "black pipe" test, which tests the API while messaging over a socket. I’ll present a handy library and advise you when to use black pipe tests.
The Open Web Application Security Project (OWASP) curates a list of the top ten security risks for web applications and how to mitigate them. The ever changing world of web development created a challenge for the 2017 list, which needs to combine both existing approaches and modern trends in web development. We will have a look at each item in the list, see what can go wrong (with code!), and make sure that this won't happen in our web sites.
This isn't going to be a talk but an open panel. I want to hear everybody who thinks they are, have worked with, know, have heard of a 10x developer. I want to know how they do it. And we will all contribute into understanding what is a 10x developer by contributing stories and exchange instead of me presenting on the subject! Come! Be opinionated! I want to hear you :)
DevOps solutions are tying together increasingly complex tools that can be hard to manage and monitor. To check on the health of your processes you need to be dialed in to your source code, artifact management, continuous integration, delivery and deployment, static code analysis, security analysis, monitoring health, infrastructure and test automation, just to name a few. Come see how to aggregate your view of the DevOps world in practice.
TLS encryption is an important part of websites, service and app deployment, and plays a vital role in protecting data in transit. TLS 1.2 has been around since 2008, and it's being replaced by the excitingly-named TLS 1.3. This talk will give you a rundown on the shortcomings of TLS 1.2 and earlier versions, how and why 1.3 changes things, and what changes you may need to make in your deployments to take advantage of the 1.3 enhancements.
In this talk, I would like to discuss some of the tools available to us with which we can build serverless applications. Additionally, I would like to break down a simple application into its pieces and examine the role of each AWS service offering and how we wired them together. We will discuss service responsibilities and configuration of API Gateway, Lambda, S3, DynamoDB, SNS, SQS and more.
10x more effective application architecture!!!
Are your feature files gigantic and unreadable? Do they break every time you add a database column or change a completely unrelated piece of code? Do you have too many scenarios? Do you need to breathe through your nose just to summon the courage to open them up... again? This talk will guide you through some real-world Gherkin monstrosities and how we made them short, readable, and fewer, all by increasing their relevance and coverage.
In this live-coding session, we’ll explore several features in Java 9, 10 and 11 enabling us to create cleaner code. We’ll take a look at factory methods for collections, extended streams, updates to Optional, try with effectively final resources, local variable type inference, and HTTP/2 client. We’ll also talk about best practices and patterns for using these features in the context of modern applications.
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.
Your bot is doing well but what if you add some more intelligence to it such as speaking? Or speaking and translating at the same time? Isn't this great for your clients or your employees?
Come and see how to add Microsoft Speech API to your bot and what to add more to find your business requirements for speaking and translating bot!
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.
The software world moves faster than ever. In order to stay competitive, new software versions need to be rolled out as soon as possible, without disrupting active users. Many enterprises have moved their workloads to Kubernetes, which has been built with production-readiness in mind. However, in order to achieve real zero-downtime with Kubernetes, without breaking or loosing a single in-flight request, we need to take a few more steps.