What makes up clean code? How does code turn out well? And how do you write really good code? In this workshop you will not only learn the answers to these questions. You will have the opportunity to immediately apply what you learn in a practical exercise. First, Sebastian Bergmann will show how Domain-Driven Design and Test-Driven Development can be used to solve problems. Needless to say that we will cover topics such as Clean Code and SOLID along the way. Coached by Sebastian Bergmann, you will then work in pairs on additional features for the software he developed during the live coding. We will round up the day with a review where you will get feedback on the code you created.
Imagine building an application without having to mess with a web browser, a REST client or a MySQL client. What if you could build full-blown functionality with realistic data operations within the comfort of a unit test harness? What if this meant shipping code earlier and more frequently than you ever have before?
You're a PHP ninja. You're a React god. You're a magician with Sketch. But if your code is assembling HTML to get delivered to a users' browser, how much do you know about HTML's semantics? Choosing the correct HTML elements rather than vomiting a "div" or belching out a "span" can greatly enhance the end users' experience, with no fragile extra code to write and maintain.
One of the co-editors of the HTML5.3 spec will take you on a magical treasure hunt around HTML, showing you marvellous gifts and hidden wonders that will also help future-proof your code, and turn you into a time-travelling Frontend Superhero, adored by millions*.
(* Actual number not guaranteed. But your users will be happy.)
Wenn zu viele Optionen existieren, fällt die Auswahl gar nicht so leicht. Was auf kleiner Featureebene leicht sein mag, wird auf Team-, Epic-, Produkt-, Bereichs- oder Organisationsebene schon schwieriger. Doch Vorsicht vor Standardisierung im aktuellen OKR-Hype. Es wird Zeit für einen Überblick über verschiedene Ziel- und Priorisierungssysteme und wie sie dir, deinem Team und deiner Organisation helfen können. Denn letztlich geht es darum, bessere Produkte mit größerem Nutzen für die Anwender zu entwickeln.
Was dieser Vortrag mit Dir zu tun hat:
OKR ist der aktuelle Hype am Managementhimmel und jeder springt auf den Zug auf (wir auch). Doch in der agilen Welt begegnen uns unterschiedliche Zielsysteme an vielen Ecken. Der Vortrag möchte einen Überblick und eine Einordnung geben über die verschiedenen Zielsysteme, die dahinter stehenden Denkmodelle und den Kontext, in dem diese Systeme den größtmöglichen Nutzen schaffen. Neben OKR befassen wir uns mit Sprintzielen, Portfoliosystemen, Kanban-Prinzipien, Kanban Flight Levels, Konferenz-Track-Goals, Lean-Start-up-Hypothesen, Product Vision und weiteren Möglichkeiten, um Fokussierung zu erreichen.
Und was sind die Konsequenzen, wenn wir Fokussierung verlassen? Mitunter: keine. Denn alles, was wir tun, ist eine Fokussierung auf etwas. Wir formulieren es meist nicht explizit. Doch wie bewerten wir, ob dieses Etwas auch etwas Sinnvolles für das Produkt/die Organisation war? Und wer entscheidet das?
Der Vortrag wird auf all diese und weitere Fragen Antworten oder Impulse geben, damit wir bessere Produkte mit größerem Nutzen bauen.
In den vergangenen Jahren haben sich zahlreiche Tools und Workflows entwickelt um den Design-Development-Workflow zu optimieren. Das Ziel besteht oft darin, Designern eine möglichst codefreie Gestaltungsoberfläche zu bieten und die Übergabe des Layouts an Entwickler zu perfektionieren. Doch ist das die Lösung für einen zeitgemäßen Designprozess? Die Frage ob Webdesigner auch HTML und CSS schreiben können müssen, hat bereits vor Jahren für kontroverse Diskussionen gesorgt … Frontend-Designer wissen schon lange, dass die Lösung nur in einem kombinierten Ansatz liegen kann: Sie schreiben Code um damit zu Gestalten. Leider schreckt dieser Ansatz viele Visual-Designer nach wie vor ab. In dieser Session werfen wir daher einen Blick auf verschiedene Lösungen, visuell zu gestalten, aber Production-ready-Code zu erhalten. Die perfekte Symbiose zwischen UI und Frontend-Development.
Explore effective methods to identify & avoid the most common and devastating security pitfalls in Web Applications.
When it comes to an enterprise's exposure to security vulnerabilities, one could easily argue that its web presence is by far its greatest threat. There are many ways to build vulnerable applications and a few effective ways to "build them right". We'll instrument you to stay on right side of this equation.
When Docker hit the scene, many developers (including me) started using containers as a lightweight alternative to virtual machines. It was promising to use Docker as a local environment for development which would closely match the software running on the production servers. But the cake was a lie, all sorts of practical issues spoiled the fun. In this session I’ll share what I learned throughout the last four years of using Docker as a development (and production) environment and how you can create your own set-up taking full advantage of the benefits containers provide.
Effective encryption is a vital component of a safe and secure internet, especially since the arrival of HTTP/2. Many sites and mobile apps still don't use TLS to encrypt their traffic, often citing some kind of fear over the complexity of it all, or if they do, they make a mess of it, resulting in a literal false sense of security. The basics of TLS encryption are straightforward, but the practical realities run into a bewildering forest of acronyms. This talk gives you a breadcrumb trail through the backwoods of TLS, OCSP, ECDHE, ALPN, HTTP/2, HSTS, HPKP, CT, and more, including the latest changes in TLS 1.3.
You'll get an overview of what problems TLS solves, how it works, its component pieces, how they fit together, where vulnerabilties and mitigations apply, and what tools and resources can help you get up to speed.
Before 2010, we created fixed websites. The only issue was IE. Responsive design arrived in 2010, and now it is a standard across many devices. However, this has led to many new challenges for developers: not only do we have to create a good user experience but a great one. Can we make a better design system to build websites? Yes!
Why should you use atomic design? Is it the future of webdesign? Atomic design is a system of fragments that can be connected to create reusable components, modules, and templates with space for client desires and developer creativity. In this talk, Marija will go over the concept of atomic design in responsive design and its elements: atoms, molecules, organisms, templates and pages. Marija will explore this concept by sharing examples, useful tips, and her working process, as well as her opinions about the future of atomic design.
Much of what good software architecture is about is to expose your intentions clearly and making decisions easy to change. Little architecture is about the same but keeping it lean and evolutionary. The concept is well put through uncle bob's post: https://blog.cleancoder.com/uncle-bob/2016/01/04/ALittleArchitecture.html. In this talk I'll do a TDD programming hands-on to build a hypothetical ATM software while using the little architecture and a mix of programming paradigms: object oriented programming, functional programming, aspect oriented programming. By the end of the presentation you will have a better idea on how to set up and grow a software that has the proper balance between quality and timely delivery and understand how software paradigms can work together and achieve a better solution.
In an API-driven world, being and staying reachable is a crucial success factor. And while, of course, misbehaving client applications and users could be dealt with by simply adding more servers and thus making your (cloud) provider happy, restricting the API access to reasonable rates may be a more cost efficient way. Learn how to limit access rates to your API without changing a single line of backend code!
Symfony 4 is here and it is better than ever. With Flex, it can be a micro framework and an amazing beast with any feature you want. What changed from version 3, what new best practices are and why Symfony is moving the PHP world forward once again, you can find in this talk.
Avoiding surprise-ducks at run-time ... PHP 7 has brought us improved support for types, making us less reliant upon annotations. Yet we still can't say function foo() : User What makes an array of users so special? What if we'd like to return a HashMap of a given key & value? We'll explore use cases for defining composite objects and leveraging generics to avoid repeating ourselves .In 2016, Ben Scholzen and Rasmus Schultz drafted an RFC for "Generics in PHP". Having worked with these constructs in Java and C# in past lives, I can offer several examples of practical use-cases for them, and help bolster a case for their adoption in PHP. In the end, we should arrive at how they would nicely complement the most recent enhancements to PHP 7's type system.
Influencer, Conversion, KPI, Brand Value, Viewthrough - SDK, Distributed Ledger, Container, Script Library I don't understand what they want from me. Two professional languages that reflect worlds of thinking that couldn't be more different. And even if the big goal, to create a successful product or company, should bring both groups together, this is often not possible. Either because the smaller goals don't match or because you simply don't understand each other's language or thinking. But agility demands exactly that. Namely that the various stakeholders sit down at one table and work together. How do we succeed, what are the prerequisites and where do we have to live happily with the differences, because at the same time they reflect discipline-excellence? We go in search of the truth.
Responsive Design und Media Queries sind per Definition eng miteinander verbunden: Die Media Query definiert einen Breakpoint, der wiederum dafür sorgt, dass das Layout an den gewünschten Stellen umbricht und somit den Wechsel von Smartphone zu Desktop meistert. Doch seit Ethan Marcotte 2010 seinen populären Artikel zum Thema RWD veröffentlichte, hat sich viel verändert. Heute stehen neue Technologien zur Verfügung und auch die modulare Denkweise im Designprozess hat viel verändert. Grund genug, sich anzuschauen, wie es besser gehen könnte. In dieser Session erfahren Sie, wann ein flexibles Layout ohne Media Queries sinnvoll sein kann, wie es technisch umgesetzt wird und welche Auswirkungen es auf den Konzeptions- und Designprozess hat.
When it comes to writing code, there’s nothing we take more seriously than authentication and security. Modern single page applications bring along new challenges. By using solutions like the OpenID Connect protocol and JSON Web Tokens, we can improve the user experience when authenticating with your apps, providing a seamless authentication process.
The type system and static code analysis can help to find bugs in our code at an early stage without writing explicit tests. This talk will show you the tools to get you started as well as the requirements your code must meet to get the most out of static code analysis.
So you must be the worst developer in the house, because you are the only one who does not understand that piece of elaborate, complex, carefully obfuscated code? Well, after some asking around, it turns out that nobody has a clue what that code does, or why it even exists. There might be opinions, but unfortunately there is more than one, so does the loudest developer's voice "win"? We will analyze where code that nobody understands comes from, understand why we cannot accept it, and discuss why you are not the worst developer admitting that you do not understand a piece of code, but may in fact be one of the smartest.
About a year ago, we started using Progressive Web Apps (PWAs). The idea behind PWA was to replace native mobile apps. In this talk, I will show you what is possible to build with PWA, what kind of limitations exist, and what we learned in our journey. Along the way, you will see where progressive web apps can be a good fit for your own projects.
The difference between hobbyists and professional developers, besides their ability to teamwork quite often, is their knowledge and familiarity with the tools used in modern software development. The presentation will have a look at which categories of tools are used today, why those tools are used, and how quality, understanding, and cooperation can be improved by using various tools. The presentation aims to provide an overview of the tools-landscape, and to rebut the often heard claim: "real developers just need a text editor".
Symfony 4 and the introduction of Flex put a focus on enabling developers to create microservice-style applications with Symfony. In a microservice architecture, delegating tasks to other services or distributing data between these services is a challenge most monolith applications do not have to deal with. The introduction of the Messenger component in Symfony 4.1 is aimed at this problem by allowing applications to send and receive messages to/from other applications or via message queues. In my talk, I want to give you an introduction to the Messenger component by showing how it can be introduced in an existing application and what concepts and principles it is built on. In a realistic scenario we will introduce a message based architecture, look at some of the challenges that arise and how to handle them and finally take a look at what other problems can be solved using a message bus.
Pair programming sounds simple, but there are a lot of different methods on how to do it, a lot of mistakes that can be made and it's not always easy to get started. With this talk, I want to give an introduction to the different ways of pair programming, talk about some myths – and facts – and give you some ideas on how to get started. After this talk, you will know the difference between strong and traditional styles of pair programming and why most people do pair thinking rather than pair programming.
The new font format Variable Font has entered the scene. Last year, we saw it transform from a technological novelty into a matured solution that solves real problems. Sounds enigmatic? No worries!
In her talk, Marianna will show attendees what makes axis-based fonts development so exciting. She will help you understand how they work and will explore the potential of Variable Fonts from useful workhorses to those experimental and fun. Finally, she will discuss the possibilities and challenges dynamic fonts [together with today’s fast developing technology] can pose for designers and developers, as well as what it could mean to the end user.
Developers need tools to be productive. In this session, Sebastian Bergmann presents an overview of the tools every PHP developer needs to know. For instance, we will have a look at dephpend, php-cs-fixer, phpstan, phan, and PHPUnit. Tools are not an end unto themselves, though. Therefore we will also discuss how these tools fit into your development process.
We will take a ride through the world of the web augmented reality, nowadays known as X Reality (X for extended). We will land on the planet named Three.js, meet 3D-models inhabiting the real world, will take a look at its satellite "A-frame" from Mozilla. And of course we will have a quick look on the AR side of Apple. So take a seat, fasten your seat belts and let's go!
Seit der ersten Stunde ist das Web ein flexibles Medium. Doch erst durch Ethan Marcottes Artikel „Responsive Web Design“ wurde das vermutlich klarer.
Dennoch ist aber jeder Webworker schon mal an Grenzen des Machbaren gestoßen. Gefühlt sind viele Designs weiterhin geprägt von CSS Frameworks. Mittlerweile sind die Möglichkeiten in Browser aber enorm gestiegen. Sven zeigt Beispiele, wie durch moderne Layouttechniken wie CSS Grids, Flexbox, CSS-Variablen (Custom Properties) sowie Variable Fonts wieder dynamischere Layouts im Webdesign entstehen können.
Technology-driven experiences allow people to simplify their life and make it even more emotional.
Indoor navigation is a valuable tool for modern airports, hospitals, offices, shopping malls and similarly large indoor areas, which are usually crowded, and where GPS is unable to help out. However, there is a tech solution that can optimize flows of passengers, employees, and visitors. Based on mobile Augmented Reality, it delivers a handy assistant right to their smartphones.
That's what the Session is about. Following our practical experience, it showcases our approach to building mobile indoor navigation solutions using Apple ARKit, making them modular and scalable, and overcoming existing technology constraints.
A Progressive Web App is more than just enabling a Service Worker for your application. If you bootstrap your project with Create React App you’ll get an initial structure consisting of a preconfigured Service Worker and a Web App Manifest. But this is only the starting point. After a few steps of customising your application it is ready to be installed on nearly every target device. With some more tricks your application is ready to go offline. To accomplish this goal you have to take care of data synchronisation and conflict resolution. Besides these rather popular features of a PWA based on React, you can access various browser interfaces to boost your application even more.
Automated testing is an important part of every web application. When building WordPress plugins, themes, and websites, there are a plethora of different frameworks for unit testing, integration testing, and acceptance testing. While many of these frameworks are useful, most of them are hard to use, ineffective at stopping regressions, not scalable to a team of developers, or not easily integrated with CI pipelines. WP Acceptance, is a toolkit that empowers developers and CI pipelines to test codebases using version controlled acceptance tests and sharable environments. This talk will explain the motivation behind WP Acceptance, how to use it, and why it’s the most effective way to test your WordPress applications.
Relational SQL has been abandoned in 1999. Since then, SQL has got many non-relational features for problems that are hard to solve with relational algebra. Today, SQL is turing complete, can process graphs, has semantic understanding of XML and JSON, is able to automatically keep historic versions, can analyze time series using regular expressions, and much more.This presentation demonstrates what modern SQL can do for you. It compares two different approaches to common problems: a purely relational one and the modern SQL approach. In this session, developers and software architects of all levels gain a better understanding of where SQL is today so that they are able to make more educated decisions. A lot has happened since SQL-92!
Everyone wants a good architecture, so most of us learned all about design patterns, microservices and all the other important things. But with the raise of DDD it is getting more obvious again: We need to focus more on understanding the functional requirements and specifications instead of thinking too much about the solution. This doesn't mean we need to go back to the "Big Design Up Front" days of waterfall, but it seems that agile made us forget that some planning is actually quite useful. Most of the time we haven't even understood the problem before we start coding. I want to show how Architectural Katas can help us train methods like events storming or to focus more on requirements in general.
You are still on PHP 5? If not, this talk is not for you. What exactly keeps you from deploying PHP 7 to production? If you already know, this talk will provide you with proven tactics to get your application ready for PHP 7 and migrate successfully. If you are not sure, what the shopstopper really is, you will learn how to analyze the status quo, develop a plan on how to migrate and sell the whole project to your boss or customer.
In the wake of Edward Snowden’s revelations we’ve seen a growing awareness of privacy issues . The 2015 collapse of the Safe Harbour agreement (making it illegal to store data on EU citizens in the US) was patched up with Privacy Shield in 2016, but that’s on shaky ground too. The EU’s tough new General Data Protection Regulation (GDPR) came into force in May 2018, raising privacy and data protection standards enormously, and increasing exposure and obligations for companies both inside and outside the EU. This will be tightened further in the electronic Privacy Regulation expected in 2019. All too often legal departments have no contact with developers, and the only time the right conversations happen is when something has gone horribly wrong and it’s too late. We need to fix this – developers and project managers need to be aware of legal and moral responsibilities because the primary line of defence between companies and terrible headlines lies at the implementation level.
We will cover what makes GDPR different, privacy by design, and what steps you need to take to comply.
Auch Jahre nach dem Wegfallen von Flash herrscht eine große Verunsicherung hinsichtlich der richtigen Technologien und Workflows, um überzeugende interaktive und animierte Inhalte für Web, App und digitale Publikationen zu schaffen, ohne zum Coder werden zu müssen. Dabei ist der Bedarf keinesfalls weniger geworden. In Zeiten, in denen User Experience immer mehr in den Vordergrund rückt, spielen gerade Animationen und Interaktivität eine immer wichtigere Rolle, um ein aktivierendes Erlebnis zu schaffen. In einer kurzweiligen Session wird Daniel zielführende Strategien anhand von Beispielen aus dem Praxisalltag erläutern, einen allgemeinen Überblick über den aktuellen Status quo in Sachen Webanimationen und Tools geben und mit Tipps und Tricks zeigen, wie trotz schmalem (Zeit-)Budget auch responsive, fesselnde Inhalte erstellt werden können.
No other role at your company spends time and effort evangelizing themselves. Developers aren’t making PowerPoints to explain to execs why it’s important to hire specialized, trained developers. QA isn’t holding meetings to ask for enough time to cycle through their complete and important process. It’s just us and it’s making us look weird and whiny. More importantly, it’s rarely working. This talk will examine the pitfalls of evangelism and what actions we can take instead. We’ll be focusing on who and how many UX experts we should hire, the role of UX managers and leadership, processes, workflows, tools, and improving collaboration between UX and our cross-functional teammates.
Using PHP and Laravel to build a Data Consolidation Framework sounds like the most amazing idea ever, we know. Considering obvious alternative Technologies like Airflow, Spark and so on, why did we decide two years ago to make this move from our previously used Hadoop System and venture into these unknown territories?
Let’s take this journey we were on for the last two years together. Revisit the dead ends and traps we ran into, how we changed directions more than once taking a completely different path than anticipated, got help from version upgrades and rethought how to use PHP and Laravel over and over again, to match our requirements. Evaluating the potential of our frankenbaby.
Kubernetes is an open source system for automating deployment, operations, and scaling of containerized applications. It currently is the most promising option you have for deploying your container-based applications to the Internet. In this session, you’ll get an understanding of the concepts of Kubernetes and the tooling you need to launch and maintain a PHP application in your own Kubernetes cluster. We will also take a look at topics like load-balancing, (auto-)scaling, persistent storage and typical fun killers which might spoil your Kubernetes party.
API development is fun! Everyone is doing it, from large organisations wanting to provide developer access to their systems, to small websites wanting to push web application business logic to the browser. Password security is boring. It’s also harder than you’d think. The number of reported system breeches is on the increase, with big names being hit by hackers. And when it comes to service oriented architecture, you have to secure multiple services. That’s just tedious. There are a number of solutions, but few that let you pretty much forget about security and access control. In this talk and demo, Ben will show how implementing an identity provider and using OAuth and OpenID Connect can allow you to ramp up your prototypes and MVPs with more ease and to concentrate on the core purpose of the APIs, rather than the layers of security that are a must in today’s digital world. Three takeaways: 1. You will gain an understanding of OAuth and Open ID Connect to authenticate and authorize a user. 2. You will learn about the use of claims and scopes to control access to certain features of a system. 3. You will see a live demo of how to integrate Auth0 with a common API platform.
You can do everything you want in PHP. So why not write a chatbot in PHP? It isn't easy, but I showed it several times before. There are possibilities to integrate Natural Language Understanding tools like RASA NLU in a PHP Application. There are also libraries to run PHP asynchronous, that means also in a reactive way. So then let us do it and build a chatbot in PHP.
In 2016, Slack began a migration of its multi-million line PHP codebase to Facebook's Hack programming language. As we say a bittersweet goodbye to the final lines of PHP in our codebase, this talk reflects on what was surprising, challenging, and beneficial in this migration. We'll cover some of the benefits and drawbacks of Hack, and places where the PHP community can draw inspiration.
"It’s not personal” but it so is! Code reviews are still one of the biggest sources of conflict in a team and can delay value delivery by days if not weeks. I’d like to tell you why that is but more importantly hand you a method that will let you focus on what’s important: the work. We briefly touch on the psychological mechanics at work during PRs, look at statistics to fuel decisions around commenting, and then combine those two perspectives to create a solid code review etiquette for your team so you can achieve truly async non-blocking code reviews.
This talk gives you a small introduction into AWS Lambda. You will learn how to get your PHP application running inside Lambda, including scaling, deployment and testing. The talk will also provide the best usage scenarios and explain how to calculate the costs for running the service inside AWS.
UX is driving Engineering and Product crazy, a black throwing off timelines and killing ideas. They’re too siloed and not collaborating well. UX doesn’t seem Lean, and popular Agile methodologies haven’t figured out how UX fits in, often suggesting that a Product Manager describing features in stories is enough for developers. Companies are figuring out that UX specialists and the User-Centered Design process are good investments that more than pay for themselves. Recent highly-publicized UX failures remind us that skimping on the UX process can alienate customers, create negative media attention, and burn millions of dollars. This session explains how the UX process fits into Agile, augments software development goals, and increases customer satisfaction. Learn how to save time, money, and sanity when UX does research, designs, builds rapid UX prototypes, conducts and interprets UX testing, and iterates… before developers write a line of code.
Gibt es heute tatsächlich noch ein Projekt, das ohne Open-Source-Software auskommt? Wann darf ich Open-Source-Software nutzen, wann muss ich meinen Source Code ebenfalls veröffentlichen? Wie verstehe ich die Vielzahl an Lizenzen und welche Feinheiten gilt es zu beachten? Hafte ich oder mein Unternehmen für die eingebundene Software? Und wer kennt das nicht: In Stack Overflow steht die Lösung für mein Problem, also füge ich das Codebeispiel in meinen Source Code ein - nur, darf ich das überhaupt? Der Vortrag gibt einen verständlichen Einblick mit detaillierten rechtlichen und technischen Hintergründen zu den geläufigen Open-Source-Lizenzen, Fragen in der Haftung, in lizenz- und urheberrechtliche Fragestellungen wie auch die prozessuale Einbindung in den Entwickler- und Unternehmensalltag in Build-Pipelines mit Lösungen wie Blackduck und Co.
As software engineers, we've gone a long way to learn and use object-oriented programming and patterns effectively. Data scientists, on the other hand, are more effective with functional programming applied on matrix-like data structures. Yet, they produce working software that we need to productize, maintain, and scale.
Qualität ist wichtig, da sind wir uns alle einig. Aber wie wichtig ist sie? Zehn Gründe (technologisch und Mindset), warum es in den nächsten Jahren immer weniger Tester geben wird und warum sich der Stellenwert der Qualität verändert.
Wir reden darüber, wie strukturiert (und langweilig) Testen sein kann, welche neuen Herangehensweisen sich über die letzte Zeit etabliert haben und warum in einer Welt von digitalen Projekten und Start-ups Qualität neu gedacht werden muss.
Technology continues its fast evolution as the apps on our gadgets demand more resources to run. We need to debunk the myth that everybody has high-end phones and everybody is using high-speed networks. More than half of the people on this planet are using slow or medium speed networks, hence average mobile devices usually struggle to load complex websites. From Progressive Web Apps to route based code splitting, service workers to image optimisation, there are various ways to create fast performing websites. Using your performance budget is the key to success. This talk focuses on how our web apps need to adjust in order to achieve user happiness in terms of mobile and web.
While PHPUnit is not difficult to set up and writing tests with it is easy, you will get better results and save development time if you know the tips and tricks to leverage PHPUnit more effectively. This session, presented by the creator of PHPUnit, teaches best practices you can use to ensure that your unit testing effort is efficiently implemented.
We cannot avoid mistakes. But with the right tools, we can make sure they don't hurt too much. Git offers many ways to undo, revert, recover and fix. We'll look at the bad things that can happen to you – and how Git can save your neck. In this hands-on session, we'll have a look at Git's various undo features. My intention is to give developers more confidence in their day-to-day operations when working with code: "mistakes can be undone" is something I'd like the audience to keep in mind. In the session, I will both talk about the theory and show the corresponding commands/tools in practice. I'll be using both Git on the command line and the popular GUI Tower to show how to deal with mistakes in real-world scenarios.
Nowadays, diversity is on everyone's lips. Although one cannot deny the importance of this topic, the debate around it is very sensitive and usually emotional, which doesn’t always foster a constructive discourse. Furthermore, the diversity conversation is sometimes focused only on race, gender and religion, as well as diversity in the workplace. In her talk, Martina invites attendees to participate in a journey of introspection and join her in scrutinising the inner cognitive aspects that play a role in building a constructive approach with difficult topics. The talk will also include a few practical exercises that we can all apply in our efforts to help shape more enriched, rather than fearful societies.
Think about PHP for a few seconds… What came to mind? It’s very likely you thought about your average product catalog, a blogging platform, or how the platform is inferior to things like Node.js. But wait, it’s 2019! What if I told you PHP’s huge ecosystem has way more to offer and PHP is not inferior at all to its evil cousin Node.js?
In this talk you will learn about the core concepts of async PHP and why you too should care about ReactPHP being a real thing. The talk has a strong focus on sparking the idea that PHP can be way faster and more versatile than you probably thought. Bring along an open mind, and through lots of interesting examples and live demos learn why what sounds crazy at first might soon be a valuable addition in your toolbox.
You’re already familiar with PHP and want to learn what ReactPHP is all about? Then this talk is for you! We will start from scratch and see what it takes to build an application that pushes data from your command line to your browser in real-time. You're invited to join the interactive demos or lean back and learn more about why an event-driven approach might be the next big thing in making your application faster and more responsive.
Curious about all the hype around machine learning and artificial intelligence? Heard of "neural networks" and "deep learning", but confused about what it really means? In this talk, you'll see what artificial neural networks (ANN) look like and how they can learn. And along the way, you'll discover how you can build your own ANN – with PHP of course!
In an event-driven world, asynchronous processing at scale is essential to guarantee a rapid execution of jobs. And seemingly impossible to do without a big tech stack – including bleeding edge frameworks, lots of tools and a complex infrastructure to run it all. In this session we’ll showcase how simple, plain and easy an asynchronous processing stack can be set up and implemented, using well known, almost boring technology.
All the developers know how important frameworks are, but after your team made more than 3 000 commits after the first release, the framework became the bottleneck of your application. In this talk, I’ll share my knowledge about how to keep using the framework as a tool and integrate DDD concepts to nail it.
As I write these lines here, my fan is running at full speed. Not because I am so badly equipped, no, it's because of the abundance of things that run alongside. For several open source projects, some docker containers are running; for a private project, a Kubernetes runs and purrs and provides scalability on the machine. And then there's the virtual machine for the customer project; somehow, this machine never really stops, just like the whole computer.
In addition, tests and builds are running in different CI platforms. Those tests and builds that start with a simple git push origin my_branch. A job for every aspect of my application or library. Of course, as a developer, I'm happy when those jobs turn green. And in case it happens that I forgot a few lines of code to commit: git add . && git push orgin my_branch. It's so easy. The CI will fix it; it costs me nothing.
Does it really cost nothing? Of course, depending on the type of CI platform, there will be hosting fees or other contributions. But these costs are only marginally noticeable in a large project. One price that I can't recognize so far is the price for energy consumption. The energy consumption and the production of the machines that support us are always accompanied by an ecological price. Can we create a kind of label for this price, a counter which helps us prioritize features not only according to development times and benefits?
Your CEO showed up and asked you whether your software runs "in the cloud". And while you think of your well tuned Hetzner setup – that has been running smoothly for seven years in a row now – you nod and say "Yes, it's running on a container infrastructure", because at least some of the newer things are dockerized. Why should you move to "the cloud" anyway? This talk discusses the different strategies starting with a simple EC2-based virtualization and ending with a full cloud-native replacement, their advantages and their drawbacks.
When it comes to web applications in Node.js, one library is almost always involved: Express. But it is by far not the only possible solution to create a modern web application based on Node.js. In this talk, I will introduce Nest.js, a modern framework inspired by Angular. It is written in TypeScript and follows a lot of patterns you already know from client side programming. I will show you how you can structure your application in order to get a flexible and future-proof layout of your application. Nest follows a modular strategy which allows you to add plugins and modules as needed. A typical example is the connection to a database. We will also have a look on how to extend your application with the help of some 3rd party plugins.
Christian is the founder of Ecosia, the search engine that plants trees. He launched Ecosia after a one-year trip around the world to help people in developing countries and become proactive about climate change. The Berlin-based search engine now has over fourty employees and the company generates millions in sales, which translates into a tree being planted every second. In his lecture, Christian shows how to set up a social enterprise and discusses the hurdles you'll have to overcome.
Eine der größten Herausforderungen in der Softwareentwicklung ist das Erheben und Sammeln der Anforderungen an das zu entwickelnde System. Ziel eines guten Requirements Managements ist ein Alignment der Anforderungen an die Bedürfnisse der späteren Nutzer bzw. Kunden. Hier kommen nun Methoden und Ideen aus dem Design Thinking zu tragen, um Anforderungen nicht abstrakt sondern anhand konkreter Nutzerbedürfnisse zu erheben. Besonders in der Entwicklung neuer und innovativer Produkte können Unternehmen mit diesem Vorgehen den Fokus auf Geschwindigkeit und Markttauglichkeit der Entwicklung legen.
Der Vortrag zeigt, wie mit der Job-to-be-done-Idee, Storytelling und einer Form von Story Mapping bzw. Event Storming Anforderungen kreativ und nutzerfokussiert erhoben werden.
Let’s connect our front door to the internet! What could possibly go wrong? Securing IoT is hard, and the last thing we want to do is let some stranger in. Let’s take a step back and consider other ways of securing that door, and granting access remotely, without connecting your door to the internet, while adhering to common protocols and data formats throughout. By mixing up a little near-field communication with JSON Web Tokens, sprinkling some rich communication services and a fairly simple native mobile app, we should be able to create and demonstrate an effective security process for letting the milkman in! Join me on this interactive journey and maybe when one door closes, another will, actually, open.
Is your team choosing the branching strategy from the beginning or is it switching after a while to better accommodate the current project stage? How does this affect you and what are the costs involved? Multiply this by the number of repositories, each playing a definite role in a large-scale project, and you will want to know how to minimize the impact. At the same time, some companies are migrating to monorepo, while others are running away from it and splitting their codebases into smaller repositories.
The branching model needs to be simple - so that everyone involved can grasp it quickly; flexible - so it can serve the needs of very different roles within the project lifecycle; and adaptable - when you have a particular unforeseen need, it should not be a barrier.
See what others are using already, ask a few questions that might drive an adaptation of your choice, and then choose wisely. Then let your team spend their time on coding rather than painfully switching strategies.
How to get your developers ready for today's challenges in security? How to write secure code? This talk gives a little introduction to the idea of security champions and how to introduce them in your organisation. Also related/supporting OWASP tools and guidance will be given.
Eine schnelle, offlinefähige Progressive Web App (PWA) kann man mit jedem beliebigen Toolset bauen - dieser Workshop zeigt, wie's geht! Die allen PWAs zugrunde liegenden Webstandards wie Promises, ServiceWorkers und Offline-Datastores sind Thema dieses Workshops, in dem die Teilnehmer alle Aspekte der PWA-Entwicklung nicht nur in der Theorie kennenlernen, sondern auch in einem großen Praxisteil selbst einsetzen.
Domain-driven design (DDD), CQRS and event sourcing: Big words that obviously require an equally big tech stack to be applied – with bleeding edge frameworks, lots of tools, and a complex infrastructure to run it all. Or not? In this workshop, we will create a solid, event-sourced web application from scratch. We will not rely on any frameworks or libraries to really get to the bottom of things.
This workshop provides an hands on overview of the so-called security header HTTP extensions. This workshop is for web developers, backend developers, DevOps, DevSecOps and technical leads to give some basic insights into those additional security features the protocol and user agents provide today. Beside the introduction of useful tools to check your applications, all headers will get reviewed, what they are for, when to use them and when not. Beside the dos and don’ts, useful insights are given, precautions to take and how the behavior of user agents and applications might change if used. So if you haven’t heard about security headers yet – this workshop is for you!