The list of presentations is subject to change without notice.
"With microservices every outage is like a murder mystery" is a common complaint. But it doesn't have to be! This talk gives an overview on how to monitor applications. We dive into system metrics, application logs, uptime monitoring, application metrics, and request tracing. Putting all the pieces together, so you get and keep an overview of all the moving parts in a complex system.
Ever wondered why OCTober has an 8 in the name but it's the 10th month? Why some clocks from the late 19th century have two minute hands? And what's up with Easter anyhow?
This entertaining talk covers thousands of years of the history of calendars and clocks, exploring how emperors, kings, and whole nations wrestled with technical and cultural headaches that are surprisingly similar to what we deal with in the worlds of tech and development.
As an experienced, developer, I am way too busy not to use an IDE with code completion, refactoring tools and step-debugging (and so much more). PhpStorm is a fantastic IDE to help the skilled developer get stuff done quickly and correctly.
Prepare yourself for a fast-paced look at 43 tips and tricks for PhpStorm, some that you may never even know existed. Note taking equipment is strongly advised -- how many do you already know?
The standard Java JDK offers an abundance of libraries to express concurrent and parallel algorithms. But picking the right one can be difficult if you don’t know their strengths and weaknesses – let alone their existence! From primitive threads to the modern Java 9 reactive library, this talk will compare performance, programming complexity, abstraction level and context suitability of nine concurrent & parallel JDK libraries from Java 1 to 9.
CSS is becoming more and more powerful and nowadays it allows a lot of possibilities. This talk is a compilation examples for more advanced tips and techniques to add to your CSS skills. Have you ever wanted to curve text around a floated image? Or maybe style broken images? How about using attribute selectors more effectively? Then this talk is for you.
Learn about the different levels of concern within SOA and where to implement different frameworks within enterprise architectures. These are advanced system integration concepts with a focus on high availability using open source frameworks in a service-orientated architecture. It will cover best practice tips for implementing/architecting ESB, mediation router, and messaging in infrastructures needing large scale, high transaction capabilities.
How do you mix SQL and NoSQL worlds without starting a messy revolution?
David will start from a RestX, Hibernate and Postgresql/MySQL based application and will add a complete integration of Elasticsearch, all live from the stage during his presentation.
Learn how to choose between two different Apache Frameworks for messaging. With the traction Kafka has gotten in the last year and the old reliable ActiveMQ, it can be hard to know when to choose one over the other. We will walk through the strengths and weaknesses of each framework. Describe how each framework solves common implementation details from concurrent consumers and high availability to persistence. Choose your side wisely.
As humanity continues to industrialise and advance technologically, deposits of accessible minerals are being exhausted,leading to concerns of global shortages of rare materials over the next 40 years. But many minerals that are rare on Earth are abundant in space,and space-based-solar is an order of magnitude more productive without night or atmosphere.
Will the industrialisation of space solve our resource and energy shortages of the future?
Successful remote teams are hard, not impossible, but they are hard. Successful remote agile teams are even harder. We went outside of the box to combine our testing strategy to encompass a new idea - the creation of a regression testing team to augment feature teams, one that works in parallel, handling the testing regression cycle while the feature teams—developers and testers—do new development. Mike will show how to make this work for you
You’ve mapped it out in Visio, put in place all the caching and gateways possible, flip the switch…and nothing. Your beautiful microservice architecture fell on its face! In this experience report, we’ll look at a failed microservice implementation and how we fixed it, from the ground up.
As Concurrency in Java is generally a complicated topic where many had a difficult time switching to ThreadLocal from regular Threads, the idea of Future and CompletableFuture which refers to asynchronous computations is even more difficult.
In this talk, the speaker will attempt to make asynchronous programming using Java 8/9 more compelling by approaching the topic with clear examples and references to other languages.
Biometrics is all the rage. It has been touted as the best of all possible authentication methods. Very soon, your customers and standards boards will be requiring you implement some sort of biometric factor for authentication. Before you head down that road, you need to know the pitfalls to avoid before becoming the next big breach in the news. Learn a few tricks to help safely secure biometrics to protect your users.
Syntax Tree is an underlying structure of a programming language. These structures can be used for understanding, transforming, formatting, linting or minifying code. In this talk you will learn about working with syntax trees. You will also learn how to apply this knowledge in practice with some live examples.
Are you ready to continuously deploy every commit to production 25 times a day? No?
We all know it's not quite that easy. You can't take an existing house-of-cards monolith and just start treating it like a unicorn, as much as everyone would like to.
This session focuses on practical ways developers can make inroads towards a better DevOps story for existing software. From architecture, process, deployment pipelines, and even culture.
Health data is some of the most private information your app can collect. You have a duty to your users to keep that data private, secure and encrypted. You also need to adhere to strict laws protecting that privacy, including HIPAA in the USA, the Data Protection Directive in the EU and PIPEDA/PHIPA in Canada.
You'll learn about Protected Health Information (PHI) and how to protect it on Amazon Web Services.
Bots and conversational apps give you the opportunity to bring your apps to your users right where they are. Users can interact with you via various messaging services, including text messages. Not only does this mean they don't need to install yet another app, they can access the information and services they want directly, without navigating a UI. This session will show you how to get a bot up and running quickly using Bot Framework.
Do you have data you need to analyze to find patterns or make predictions? Sure you can learn R and Python and create your own neural networks, but let’s face it, we coders are basically lazy. We don’t want to write more code than necessary! In this session I will show you how to use Azure Machine Learning Studio, a drag and drop tool you can use to execute machine learning experiments and deploy trained models as web services
In modern web environment, there is plenty of XSS protection mechanisms. Web browsers are providing client side filtering for XSS. Chrome, Internet Explorer and Edge are providing filtering to defend their users. What are the limitations of each? Frameworks are also adding proactive mechanisms. Can we rely on them?
There will be no 0-day bypass for web browser bypass. In will be instead, the presentation of the general heuristics for each.
I will demonstrate what the top 5 accessibility barriers are for screenreader users. We will interact with problematic code with a screen reader to get a good idea of what the issues are. We will discuss simple rewrites to improve accessibility. We will compare improved and old code behaviour. We will go through problematic alternate text, poorly labelled forms, lack of headings, badly formed data tables, and keyboard navigation.
In some ways, clean code - like beauty - is in the eye of the beholder. Clean code qualifies as being efficient, well structured and even elegant in its simplicity. Learning how to write clean code takes practice, criticism, and more practice. There are many things that contribute to clean code. Learn some (personal) insights how to write good, clean code to increase the overall quality of your code base.
One of the most challenging pieces of a code path to automate is email delivery or workflows that are triggered by email receipt. In this talk, we will discuss configuration and code techniques that allow us to fully automate this flow. Rather than polling third party vendors like Mailinator or Guerilla Mail, we will use POSTFIX and custom transports to set up our own email pipeline that is fully testable.
This prototype works, but it’s not pretty, and now it’s in production. That legacy application really needs some TLC. Where do we start? When creating long lived apps, it’s imperative to focus on good practices. The solution is to improve the whole SDLC; from planning, better coding and testing, to automation, peer review and more. In this talk, we’ll take a quick look into each of these areas, looking at how we can make actionable changes today.
In this session, you'll learn the correct way to write the HTML for a form to make sure it is accessible, understandable, and shows up correctly in the browser. You'll learn how to validate form data and provide useful error messages. You'll see some tricks for using CSS to make your forms look great on the screen. And you'll find out what you need to do to make sure your forms work correctly and are easy to use on mobile devices.
Are you looking to build a cutting edge responsive web app? Instead of using heavy frameworks that take time to learn, maintain and replace, #UseThePlatform and leverage new web platform primitives to build a better web!
You’ll learn how the Polymer library is fundamentally different than other frameworks. You’ll get to hear how Comcast is building its next generation single page apps for millions of customers using the latest browser APIs.
Mobile app testing tools come in different flavors. Some are aimed at non-programmers, and code-oriented tools with test scripts in a high-level language. Creating automated tests is the first step in reducing total testing time and increasing release velocity. With the move to Continuous Integration, automating the automated tests, so that they are executed automatically based on project activities can increase velocity and reduce errors.
You've toiled hard on your code, tested it locally, and you're confident it's ready to go. But for some teams, it can be months or even years before you see it in production! With a great deployment pipeline and some clever architecture, there's a better way.
In this session, I'll walk through the realities of a no-touch deployment pipeline that you can trust all the way to production.
Design Thinking encourages a user centric approach to creating products. Developers often get too attached to a solution centric approach to product design and have the mindset of "build it and they will come" (if it's a good product). Combining Design Thinking methodologies and the Lean approach for startups allows a developer/entrepreneur to have a strong grasps on market demand and user problems before jumping to development.
Developers often have to make decisions that will affect the usability of the finished site, such as choosing appropriate input types, maximizing performance, and including accessibility features. Learn to think like a user and uncover usability problems that might not be apparent at first glance. Hear some tips make your site more usable and accessible. User experience isn't just for designers to think about.
How many fantastic SW developers have you met that came from a non-traditional background? Did they all have a CS degree? Should CS degree really be a prerequisite for all SW engineering roles? With the rise of coding bootcamps & self-taught programmers around the world, maybe its time we start giving some serious thought to engineers with diverse backgrounds. Chloe Condon - Theater/TV/Movie actress turned Software Developer tells her story.
While Streams and Optional interactions have been well discussed for the past few years, many people forget what drives all these new Functional capabilities – Functional Interfaces.
In this talk, default Functional Interfaces will be explained along with how they can be customized, covering some of the most promising new open-source libraries which expand Functional programming in Java beyond its current limits.
Engineers spend hours online trying to find out where to begin, the internet is full of overwhelming tutorials and no one has the time to go through all of them to figure out what the next step beyond the typical “Hello World” docker sample app. Chloe Condon, Dev Evangelist at Codefresh, will show you how to get started with Docker. Come and learn how working with Docker can make it easier for your team to collaborate.
Are you worried that your REST API may be the next victim of an attack by ruthless hackers? Don't fret. Utilizing the same standards implemented by OAuth 2.0 and OpenID Connect, you can secure your REST API. JSON Object Signing and Encryption (JOSE) is the core of a truly secure standards based REST API. Let me show you how you can ensure the data sent too and received from your API is as safe and secure as is reasonably possible.
Modularity has finally come to Java with project Jigsaw. With it comes new syntax, new ways to structure your code and an escape from Jar Hell. But Java modularity will disrupt your code base and you’ll need effective migration strategies - or else end up in Module Purgatory. This talk will present the new syntax, demonstrate how to build modular apps and offer ways to migrate your code base.
The .NET Garbage Collector (GC) is really cool. It helps providing our applications with virtually unlimited memory, so we can focus on writing code instead of manually freeing up memory. But how does .NET manage that memory? What are hidden allocations? Are strings evil? In this talk, we’ll go over the base concepts of .NET memory management and explore how .NET helps us and how we can help .NET.
So you've got that big pile of (hopefully) useful code. There are plenty of reasons to extracts some parts to gems, but do you know how to do it? In this talk, I will show you step by step how I extracted a gem from a production application and how I published it.
Creating objects in Java using `new` keyword was a no brainer before IoC / DI questioned the approach! Managing dependencies is yet another topic we tend to think we have sorted out with Maven central. Yet it's far from perfect! So may be it's time to challenge that approach too? What if we move from hardcoded artifacts to artifact discovery based on well defined contracts? Can that be done today? What are the issues? How we get there one day?
Generators allow developers to write functions which can be paused and resumed at will. Sound too futuristic? Chrome, Firefox, Node - even Microsoft Edge - all of these have added support for generators! When used well, they can create simple async workflows that look synchronous, entirely avoiding callback hell. This session will cover basic generators and the "yield" keyword, then how we can use them to create better async workflows.
This talk is a 40 min live coding session targeted to PHP developers who wish to get started with Symfony quickly. While coding a small demo application from scratch, I'll explain the most important concepts of Symfony 4 such as Symfony Flex, autoconfiguration, HTTP request handling, URLs routing, Doctrine and Twig integrations and the famous debugging tools. If you're already familiar with Symfony or just a beginner, this talk is right for you!
Data Science and machine learning is a hot topic In this session you will learn why data science is a big deal, and the steps involved in the data science process. I can’t take you from zero to hero in 45 minutes, but at the end of this session you will have a clear sense of the next steps you should take to become a data scientist
In his book describing the GTD time management system, David Allen promotes the "Art of Stress-Free Productivity". After too many New Year's Resolutions and too much procrastination, it's time for you to finally implement it. You'll discover that it's not just another collection of self-motivation techniques, but an actionable set of rules to re-gain control of your life and your to-do list again. This is an intro that's hoping to get you hooked!
I had always known that Ruby's metaprogramming tools were amazingly powerful, but I've never had a project where lots of fancy tricks wouldn't just make things harder to understand.
Recently I got the chance to work on a large complex project where I could use the magic of Ruby to help make things much more manageable.
This talk shows how Ruby's unique power and elegance turned a potential code nightmare into something like poetry.
Being a developer of a third-party script means not only that you battle
browser discrepancies and bugs, but also non-conforming code that exists on the page. We have spent countless hours debugging issues, only to learn that the culprit was an overwritten method or property that behaves differently than its original native. I'll share with you the tools and
methods we use to identify and workaround these party crashers.
Wanna transform your documents on the fly before indexing them into elasticsearch? Node ingest is built for you.
The talk will also cover the reindex api, which can be used in combination with ingest pipelines to modify data while reindexing.
Last but not least, I'll tell you how to write your own Ingest processor in Java as a plugin! Our own processor will convert postal addresses from/to geo points.
Java EE 8 was released in July of 2017. Java EE 8 includes many exciting new features, HTTP/2 support, security enhancements, JSON-P, JSON-B, CDI 2, and Bean Validation 2. This session will provide an overview of all of the new features along with code samples and the current status of container support.
Apache Kafka is a message broker that offers not only massive scalability and fault tolerance, but also unique guarantees around message ordering and delivery. Relaying billing information, detecting security-related events, storing information at high-throughput - Kafka greatly simplifies it all and gives developers a chance to rethink the data flows between components, moving information interchange into the center of their architectures.
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.
What do you do when you've reached the senior level and want to grow further? The only real answer to this question has long been that of joining the management track. Many technical resources however, don’t want to be a person manager. Instead they leave, becoming technical nomads. The Guru Track in our org, gives senior resources a way to continue growing and gathering the three career R’s: respect, responsibility and remuneration.
TaskWarrior is a free, open source, command-line tool for managing task lists. We'll explore:
- Getting started with a simple workflow
- Setting up useful reports
- Managing multiple projects
- Integration with github, JIRA, and Trello (and more!)
- Putting your task-list in your shell prompt
- Writing your own TaskWarrior extensions
Everyone is talking about microservices these days! To help you make the right decisions, this talk will first focus on explaining complexity - the problem microservices claim to solve. It then concentrates on modular architecture and how it compares to microservices! Live demo shows how to modularize exiting JEE Glassfish EJB/JSF style application through SpringBoot and OSGi to reach a distributed system with a portal as front-end.
Mobile app monitoring has moved beyond crash detection -- that's table stakes. Now developers monitor user sessions, performance, installation and deletions. Learn about tools that enable mobile app monitoring, from free and open source to commercial, and see how adding these SDKs to your mobile app project provide mobile app intelligence, beyond why the app has crashed, to business answers like what users are do in the app, how often, and more.
Everyone who's worked in tech has had a day when something unexpected goes wrong. Sometimes these problems are obvious and easy to fix. Other times though they take some work to track down and even more work to verify you actually fixed the bug. In this talk we'll use Stackdriver to find and fix some subtle errors in an example app. You'll leave the tools you need to use Stackdriver on your own projects.
MySQL Replication is a widely used but little understood way of ensuring you have multiple copies of your database information. This session start with simple master/salve replication, walk through the row-based versus statement-based options, and build up to a highly available cluster using MySQL Group Replication. Find ways to tune your setting for peak efficiency while protecting your data.
New systems are always interesting targets since their security model couldn’t mature yet. NoSQL databases are no exception and had some lurid articles about their security, but how does their protection actually look like? We will take a look at three widely used systems and their unique approaches: MongoDB, Redis, and Elasticsearch.
Everybody is consuming or producing NuGet packages these days. It’s easy, right? We’ll look beyond what everyone is doing. How can we use the NuGet client API to fetch data from NuGet? Can we build an application plugin system based on NuGet? What hidden gems are there in the NuGet server API? Can we create a full copy of NuGet.org?
Nothing gets DBAs more riled up than a developer infatuated with an Object-Relational Mapper. ORMs work great at mapping from relational to objects, but can be a crutch. If you want to make your DBA (and your users happy), you’ll want to use your ORM intelligently. In this session, we’ll look at application patterns, ORM features and more to discover the right way of using your ORM.
Do you work with legacy code? Are there scary areas no one wants to touch, or dependencies no one fully understands? Is there low, spotty, or unknown automated test coverage? Is it tempting to wish for “subject matter experts”? If any of this sounds familiar, join me to hear what I’ve learned about legacy code risk mitigation strategies such as code stewardship, team shadowing, knowledge management, test coverage analysis, and culture change.
While a lot of people consider regexes to be black magic, used appropriately they're an awesome power-tool in your tool-belt.
This talk will show you how to build effective regular expressions, introduce you to some of the more advanced features and teach you some useful tips and tricks.
AWS is the perfect platform to run a Rails App at scale. In this talk, you'll learn how to host and deploy your app using Elastic Beanstalk with the following features and technologies: SSL termination at the ELB load balancer (including a free SSL certificate), caching using Redis on Elasticache, and a database running on RDS.
In today's world, security is of utmost importance. Breaches round the world have shown the sheer amount of data that is at risk every day.
In this session, Spencer will demonstrate authentication strategies for your systems, from tokens to OAuth to ASP.NET Identity. We'll also touch on common security flaws such as XSS and CSRF and how ASP.NET Core addresses these.
Join us and learn how to avoid being the next story on Have I Been Pwned!
Security best practices are often generic and language agnostic. This makes the life of a developer much harder than it should be. In this talk, a survey of the most common vulnerabilities in .NET context will be presented. Different vulnerability classes will be explored including XSS, injections and application misconfigurations. This will be done through live demos using open-source vulnerability finding tools specialized for .NET.
AWS has Lambda, Azure has Azure Functions, Web Jobs, and App Service. Whether you want to script pay-by-the-drink web endpoints or build more traditional micro services. Come join us for this code-focused look at architecting, coding, and deploying serverless resources in C# and .NET Core.
Design patterns are conceptual solutions to solve common redundant problems in software engineering. However, learning them is not easy as litterature or tutorials on the Internet often introduce them with theorical examples. This talk gives you a slightly different approach by introducing design patterns with practical code samples to solve real world problems. The talk focuses on the Factory Method, Decorator and Composite patterns.
When facing a big, complex and critical problem, there is a way to mitigate risk and get enough knowledge with limited resources: spikes! Following some guidelines, you’ll improve your ability to make better decisions and move forward. You will learn:
- What is a spike
- When to make one
- How to set its scope
- How to prioritize
- How to document progress
- Its definition of done
Varnish is an open source, high performance http accelerator that sits in front of a web stack and caches pages. It is highly configurable and can be used for static or dynamic content equally. It can improve the performance of your website without requiring any code changes. If you haven’t heard of Varnish, or have heard of it, but haven’t used it, This talk is for you! This talk will guide you through configuring Varnish for the first time.
string(406) "While var_dump driven development is great when your 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 powerful tool when you know how!"
Natural Language Processing is an interesting but complicated field of
computing. The way humans use language is nuanced and deeply context
sensitive. This talk will give an introduction to the field of NLP using
Ruby. It will cover the history and unique challenges of this field and
then give a demonstration of tools that exist that make NLP available to
When bits and bytes convert into a source of income and remote working becomes part of one’s life; there is little choice but to jump head first into freedom by taking on the road leaving everything behind.
This is a cautionary tale on the remote working movement and work-life balance as we know it — as told by a digital nomad who gave up the posh lifestyle and the trendy appartment for a 1972 Volkswagen bus and a pair of wet socks.
So you think you know PHP ?
We all compare and test data on every other line in our code, be it input validation, if-statements, a switch or determining what to display and how. So of course we are all experts on how to do this…. Or are we?
No matter whether you are a beginner or an expert, come and join in the fun, test your knowledge and learn about defensive programming and the quirks of a loose type programming language along the way.
Throughout their career, developers and managers will face many projects which appear to be impossible to deliver on time, within budget or within other constraints.
In this presentation, you will discover the secret steps that need to be taken in order to successfully bring back on track any projects. Most important of all, you will find out how to stay cool, keep a healthy mindset and to break through tough situations like a superhero.
PostgreSQL is well known being an object-relational database management system. In it`s core PostgreSQL is schema-aware dealing with fixed database tables and column types. However, recent versions of PostgreSQL made it possible to deal with schema-free data. Learn which new features PostgreSQL supports and how to use those features in your PHP application.
This is a story of mimic, an open source tool for seamlessly imitating server responses on client-side. A story about the technical challenges we faced trying to make an unobtrusive dev-tool that lives inside an application, as well as an overview of real-life problems we had, have and will have by making it open-source.
Public APIs have been waning in popularity these last few years; now most companies are phasing them out. Yet, data is POWER. And come to think of it, the entire data available online IS available to you with enough will and effort. In this presentation I will show how to scrape the internet; practically any site using JSoup, OkHttp and Threads.
I will also cover anti-scraping strategies we face and how to circumvent them.
Ever wondered how Entity Framework and NHibernate translate even the most complicated of LINQ queries to SQL? The answer is simple – expression trees.
In this session, Spencer will unravel the mysteries of expression trees. Attendees will learn what expression trees are, how to create them, and how some of our favorite libraries use them to perform routine tasks.
Using native browser APIs including server-timing, user-timing, and service workers (and some browser hacks) you can dynamically adjust the content you serve each user based on their real-time conditions. There is no improvement without measurement - and the most valuable measurement is real-user measurement (RUM). To provide the best possible experience to each user, it is necessary to collect actionable RUM data throughout the entire web stack.
Developing cutting edge experiences for IoT is challenging. With hundreds of new IoT products added every year developers need a better way to build front-ends for constantly evolving backends and products, but how? At Comcast we’re working on solving this problem with Web Components. Come learn more about what web components, why they are great for micro services, and critical for mobile development.
Have you heard the buzz? .NET Core 1.1 is released, and .NET Core 2.0 is on the horizon. Want to get started and don't know where to look? Or played with some old betas and want to get restarted? Come journey with us through the fundamental principles of .NET Core, look at how these evolved during the development of .NET Core, and see how you can get started today building and deploying .NET Core products.
Obtaining test data is certainly not the most glamorous part of the software development lifecycle. However, it can take a lot more time and cause a lot more headaches than it needs to if you don't plan for it. I'll share a list of 10 questions about test data that are useful to ask when starting a new project - usually just a bit of planning can be a big help in helping you avoid wasting time or missing test coverage later on.
Only 2 percent of developers have formal training in structured query language, relational theory, or even simple sets. Yet they use a database to store data and wonder why their queries are so slow. This session covers what really happened when you submit a query, why you can not visually tell a poor query from a good one, how to skip the 'N+1" problems, and more. Do not be a slave to slow queries! Learn to become a minor database deity!
Despite PHP's reputation of being old and antiquated, it has slowly but surely modernized over the years and many frameworks have followed as well. My, and thousands of developers' around the world, current framework of choice is Laravel.
This talk will go through some of the main features of Laravel as well as some of the more hidden gems that it contains, as well as show how Laravel helps write clean, modern, testable, quality code.
Convert your entire database structure into a graph using reverse engineering on the database (foreign keys, indexes, etc). Why? The process opens up a whole world of possibilities from automating API exposure, Faceted Search, CRUD panel automation as well. It takes away atleast 1/2 of the workload off compared to traditional back-ends. I will walk you through the process AND show the benefits. Potential unveiling of a framework called Backrub!
A story about building modern software and the empowerment of software developers with the use of Zombies.
This talk is a description of how to scale a game in the first few months as demand for the game increases. It outlines how to tackle tough issues and when to automate around processes.
Scaling is not all about automation; and there is focus on all the soft skills needed to truly meet users demands on systems.