Speakers & Talks
Keynote: Leadership as a Joke
Many moons ago, at the tender age of 14, Cal touched his first computer – a TRS-80 Model 1. Since then his life has never been the same. For the past 15 years Cal has worked with PHP and MySQL on Linux, OSX, and Windows. He has built a variety of projects ranging in size from simple web pages to multi-million dollar web applications.
Keynote: Community-Driven Development
Mihail is a web developer since 2003, passionate about PHP, testing and good coding practices. He works at SiteGround (a web hosting company) for over 15 years now. One of the founders of Bulgaria PHP user group, organizer of UG meetings, co-organizer of the BHPHP Conference 2015, 2016 and 2019. Husband and a father with too much hobbies for the amount of free time available. Some of them include homebrewing, photography, history, motorcycles, rock music. Aside from the IT stuff, due to his passion about beer, Mihail and his wife Petya own a small homebrew supplies shop in Sofia, Bulgaria.
Talk: CQRS and Event Sourcing Explained
Workshop: Code like a Pro
Even older digital watches would outperform Stefan Priebsch’s first computer. He has been an IT consultant for over 25 years, holds an academic degree in computer science, is the author of several textbooks, and a university lecturer on professional web development. He presents and keynotes at technology conferences around the world. Stefan is a consultant helping his clients to develop software successfully. He spends his free time playing electric guitar and researching agile home improvement.
Command/Query Responsibility Segregation (CQRS) and Event Sourcing might become new buzzwords in the PHP community. But what exactly is all the fuzz about, and should you care? This talk provides a comprehensive introduction, and will enable you to decide whether CQRS and Event Sourcing might be the right choice for you.
No matter how experienced you are as a developer: you can always improve. This workshop teaches advanced coding techniques through live coding. We will touch on domain-driven design, test-driven development, clean code and SOLID principles, and might even throw in a few design patterns. Every question will be answered!
Talk: Lessons Learned From 16 Years Of Testing PHP Code
Chris Hartjes has been building web applications of all shapes and sizes since 1998. He wants to help you learn how to test your PHP applications using PHPUnit and other tools so it leads to better outcomes. 4 days a week he works from his home office in the snowy wilds of southwestern Ontario, Canada for Mozilla helping to create automated tests for web services. On the 5th day, he works on building his Grumpy Learning empire.
Back when I was learning about how to test PHP code, I struggled to teach myself what I needed to know in order to succeed. Over the past 16 years (has it really been that long?!?) I’ve learned a lot about not just testing but about code and people. In this talk I want to share what I wished I knew back then so you don’t have to suffer like I did.
Talk: To be announced
Alexander is one of the core maintainers of Yii PHP framework for more than 7 years, its representative in PHP-FIG, active conference speaker and participant of various other OpenSource projects and organizer of PHP Russia.
The talk is going to be premiered at Bulgaria PHP Conference 2019 and is still in development.
Talk: How to tame a 🦄
Andreas helps solving problems at bitExpert, a german Software and MediaSolution provider. He sometimes even uses code for that. Besides his family, his work as jack-of-all-trades and contributions to different open-source-projects he still finds the time to run PHPUGFFM, the PHP-Usergroup in Frankfurt/Main and maintain PHP.ug.
You’ve got strange characters like “�” or “Ã¶” display in your application? Yes, handling non-English characters in application code, files and databases can be a challenge, to say the least. Whether that’s German Umlauts, Cyrillic letters, Asian Glyphs or Emojis: It’s always a mess in an international application. In this session you will see why that is and how handling characters evolved in computing. You will also see how handling characters in applications and databases can be done less painfully. And don’t worry when EBCDIC, BOM or ISO-8859-7 are Greek to you and your Unicode is a bit rusty: we’ll have a look at them too!
Talk: WordPress Through The Terminal
Milana has been developing with WordPress since 2010 and started contributing to its documentation the very next year. Over the past four years, she switched from being an opera prompter to full time WordPress developer, freelancing through Toptal platform.
She got deeply involved into community behind WordPress project as a developer but also as volunteer at various local WordCamps and organiser of WordCamp Europe. Also running free WordPress theme development workshops for local community.
Being a single mom in Serbia she developed the superpower of fighting the odds.
Remember the famous “5 minutes installation” process for installing WordPress? Let’s see how much time will installation from terminal take. Even better, let’s see what WP CLI can do in 5 minutes. And all that can happen in terminal in 40 minutes.
This is not your usual presentation talk. This is a live terminal commanding where fatal errors are expected; planned even. Building a WordPress website, or few, without doing anything in code editor nor dashboard. Join me in this dangerous overview of WordPress command line tool, also known as WP CLI.
Talk: Handling Exceptional Conditions with Grace and Style
Software Architect specializing in PHP-based applications. Advocates software development practices that ensure high quality and high maintainability, including Clean Code, Object Calisthenics, Hexagonal Architecture and Continuous Integration. Involved with the PHP community, writes about software development on his blog, and occasionally presents talks at meetups and international conferences.
Programmers naturally give more attention to a “happy path” – default scenario in application execution in which everything works as expected, therefore neglecting the opposite way things can go. Topics such as dealing with exceptional conditions, use of exceptions, error handling seem to have been insufficiently studied, and it is very difficult to find useful explanations and tutorials online.
This talk is an in-depth study about practices for dealing with exceptional conditions that promote code that is clean, consistent and convenient to work with. Special attention is given to applicable best practices for managing exceptions in a proper way, such as formatting exception messages, component-level exception type, exception wrapping.
To make the story complete, second part of the talk introduces a solution for establishing central error handling system that makes this critical aspect of the software stable, unambiguous and easy to maintain.
At the very end, some attention is given to testing exceptions and ways for keeping test code consistent and readable.
Talk: The Recording HTTP Proxy: Not Yet Another Messiah
Viktor is from Sofia and currently working as a Senior Web Developer at Siteground Hosting. He has experience with PHP for over 10 years. He is enthusiastic about object oriented design, dependency management and software testing. A really big fan of Heavy Metal music, history and japanese culture.
In our work we tend to believe in Messiah. A messiah can be the new magic tool which will solve all our problems, or a shiny framework, so much better than everything we have used before, or even a person in our team. We all know the messiah in software testing. It’s the Unit Testing. But is the unit test the one and the only way to test a software? The answer is no. This lecture will show you a new approach to software testing using a Recording HTTP Proxy and how it can help you achieve better quality of your software. Without proclaiming it as “The Great New Messiah”.
Talk: Using SOLID design principles to improve team performance
Software engineer and tech enthusiast. Co-founder of Adeva, a startup that helps global tech companies get easier access to world-class talent.
Leading Adeva has given me the opportunity to work with a passionate team, follow the latest tech trends and innovate. By working with various startups as well as Fortune 500 companies, I’ve gained valuable insights into different industries and mastered the art of remote working.
I stand for equality, inclusion, and giving back to the community, both personally and professionally. Actively take part in initiatives for women in tech, contribute to the local tech community, and volunteer as a mentor in different programs and initiatives.
Working with companies from early-stage startups to Fortune 500, I’ve experienced both the struggle of continuing someone else’s work and the joy of it. The difference is only in their approach towards the design of their code. It’s a minor effort if done on time, with a huge impact on the overall development of the software.
In this presentation, we’ll focus on what distinguishes a good developer from a strong one and learn how to stand out from the crowd. After this presentation, you’d understand how to incorporate the SOLID principles in your daily work and design your code for extendibility. You’d learn how to write code in a way that will make it easy to go back to a feature you developed a year ago and extend it with additional functionality in minutes, not hours.
Talk: More Than a Query Language: SQL in the 21st Century
Markus Winand is the SQL Renaissance Ambassador. He is on a mission to introduce developers to the evolution of SQL in the 21st century. His first book “SQL Performance Explained” is available in five languages and can be read for free on his website use-the-index-luke.com. Markus is currently working on his second book that is likewise available free of charge online (modern-sql.com). Markus can be hired as trainer, speaker and consultant via winand.at.
“Great News–The Relational Model is Dead” was a prominent comment on the release of the new SQL standard in 1999. The message behind the provoking statement was that SQL has evolved beyond the relational model. As much as this move was discussed at that time, it took decades until database vendors caught up with this idiomatic change. Many developers haven’t heard of it until today.
This talk provides the big picture on the evolution of SQL and introduces some selected modern SQL features by example. You will see that SQL has changed as much as our requirements have changed over the past decades.
Talk: Think like a hacker
Matt Brunt is a Developer with Helical Levity, a company educating and building the next generation of Cyber Security professionals.
When not tinkering with code he can be found reading comics, fighting monsters in dungeons and dragons, or drinking tea and eating jaffa-cakes.
Much in the same way that to secure a house it helps to know how to break in, knowing how to attack our systems will help us secure them. You have a lot of data in your organisations. Whether you think it’s sensitive or not, it has value. Whether an attacker wants data for profit, a grudge, or just for fun we need to ensure that we don’t just leave the door open for them to take what they want.
In this session we’ll start to think like a hacker. The what, why, who, where and how of an attacking mindset will leave you with practical steps you can take away and use to start protecting your systems a little better.
Talk: Learning the PHP-FIG HTTP Stack
Beau Simensen (@beausimensen, beausimensen.com) is a Technology Strategy Consultant and has been a professional polyglot programmer since 1998. He hosts Astrocasts (@astrocasts, astrocasts.com) and is co-host of That Podcast (@thatpodcast, thatpodcast.io). An active open-sourcer, he created Sculpin (sculpin.io) and helped create Stack PHP (stackphp.com). He is also a serving Core Committee member for the PHP Framework Interoperability Group (PHP-FIG) (php-fig.org).
The PHP-FIG has produced four PSRs relating to HTTP: PSR-7 HTTP message interfaces, PSR-15 HTTP Server Request Handlers, PSR-17 HTTP Factories and PSR-18 HTTP Client. Learn the differences between these PSRs and how they work together to enable a rich set of tools making it easier for applications and libraries to work with HTTP in PHP.
Talk: Design First API Development With OpenAPI And Friends
Imagine a world where the mobile development team is not constantly surprised by changing endpoints, where frontend developers don’t abuse your carefully crafted APIs and we don’t have to go back again and again to fix or change stuff. In this imaginary land we are able to leave the guesswork out by using API definitions to produce even better designs and automate parts of the process. Together we will explore OpenAPI as a standard way to describe APIs and see how it can help us get there.
Talk: IT’s a trap, or how to survive in IT (and avoid drama)
Good at making people do stuff.
Started a career in gaming development as a moderator 15 years ago, today Nadia is a Pro7 local Product Owner. Meanwhile she was involved with developing and publishing more than 10 games on the international market as a Product Manager, Head of Development Department and Chief Games Officer.
In her own opinion she is great at helping other people find their hidden extra potential. If you ask her teammates, she is opinionated, demanding and loud.
Nadia is also autism-awareness activist, proud mom and the most experienced escape room player around.
The talk is going to be premiered at Bulgaria PHP Conference 2019 and is still in development.
Talk: Escaping from OOP boundaries
Alexander is working at Alpari (RU), one of the biggest FX Broker, as the Head of Software Architecture. He is author and project leader of the open-source aspect-oriented framework Go! AOP and also a passionate FOSS PHP developer, speaker at conferences, guru in Enterprise Architecture. He likes to discuss complex systems and have a strong knowledge in computer science, electronics and of course in PHP. He likes to bring cutting-edge IT solutions to non-technical businesses for optimizing processes and solving complex issues.
His slogan is: nothing is impossible if you put your mind to it.
Most of developers are constantly teaching and discussing modern patterns, frameworks and libraries. But what if you think that you know almost everything about traditional OOP in PHP? I can bet that at some level of mastery you could notice that traditional object-oriented patterns do not solve all problems but introduce new questions instead. This is because OOP-way is not suited well for complex tasks.
Are you looking for the new food for thoughts about how such complex issues could be solved in PHP? For example how to make your existing method asynchronous just with one single word? Or how to reduce boilerplate code for feature toggles?
Join me and I will show you how to apply the most powerful aspect-oriented framework to escape from your existing OOP boundaries and teach you new patterns that can help you to keep your code clean.
Talk: Senior Developer Development
Szymon started coding when he was 11 and since then he had known he was going to develop software for a living. Currently, he leads a software development team at Schibsted. His responsibilities include (among others): advocating the best software development techniques, taking care of software quality, work satisfaction, and developers’ personal growth as well as translating business needs into technical tasks. Besides, he codes in PHP and he shares his knowledge – on blogs, at conferences, and at workshops.
Each developer is, was or (most probably) will be a senior developer. Many seniors wonder about choosing the right career path – one can become a manager, an architect or an engineering expert – just to name a few options. There is a bunch of non-technical skills which are very helpful or even essential if one thinks about progressing their career in any of those paths.
For almost 3 years I have been helping senior developers shape their career plans and work on gaining knowledge, skills and experience they need to grow professionally. In my talk, I recommend skills which every ambitious senior engineer should gain and I give advice on how to learn them efficiently.
Talk: The Web of the Future: Introduction to the Semantic Web
Software architect by profession but mathematician by education, Arnout has his interests on the boundary between the two, where formal modelling and logical reasoning meet practical problems and pragmatism. He works at Moxio, where he solves complex information management problems with innovative software, and aims to grow a culture of learning and quality. In his free time he contributes to a number of open source projects, like PHP_CodeSniffer, Symfony and the PHP core, and maintains a number of packages himself.
What if we could evolve our web of individual documents and data to a web of interlinked knowledge, a web where machines can automatically combine data from multiple sources and draw conclusions from it? The Semantic Web technologies from W3C enable us to make sense of the data wilderness on the web and unlock the full potential of the data treasures hidden in it.
In this talk, we will see how RDF enables us to formally describe the meaning of data and how such data can be queried with SPARQL. We will look at how OWL lets us make more expressive statements about the world, so that a computer can logically reason about it and infer new information. We will demonstrate these technologies by showing how they can be used to query seemingly incompatible data sets as if they were one and letting a computer draw logical (and perhaps surprising) conclusions for us.
Contains: ‘retro’ technology, linked data, fundamental properties of the web, and Donald Trump’s opinion on PHP frameworks.
Talk: HTTP/3: It’s all about the transport!
Benoit Jacquemont fell in love Web development in 2000 after a previous experience in Point of Sales software development.
From Java to PHP, from Oracle to MySQL, from management software to eCommerce website, he works mostly on projects with a high dose of OpenSource, at Smile Group.
He becomes CTO of Smile Group in 2009, at a time where the company had 450 employees.
In January 2013, he co-founds Akeneo, with Frédéric de Gombert, Nicolas Dupont, and Yoav Kutner.
Then the startup adventure begins for him, as Akeneo’s CTO.
The announcement of HTTP/3 at the start of November 2018 may have come as a surprise for a lot of us.
Indeed, compared to the 18 years that separated HTTP/1.1 et HTTP/2, this announcement came only 4 years after the release of HTTP/2.
But the biggest surprise is under the hood, with a replacement of the transport layer.
In this talk, we will explain why this version 3 of the HTTP protocol has been designed, especially around the latency topic.
We will cover as well how technically this version works, and what it will bring to our applications, and what are the challenges that will need to be addressed, in order to fully benefit from this new version of the protocol that runs the Web.
Talk: The Secrets of Hexagonal Architecture
Nicolas Carlo is a web developer at Busbud, maintaining a web application to search, compare, and book intercity bus tickets in 80 countries around the world. Born in France, he moved to Montréal, Canada in 2018.
He embraces Software Craftsmanship and loves to share his passion with people by teaching, organizing local meetups and speaking at conferences.
Hexagonal Architecture, Clean Architecture, Domain-Driven Design… You may have heard about that. Let’s start from scratch in this session and go beyond the buzzwords!
I’ll guide you through these concepts, cut the crap and tell you everything you need to understand about it. After this talk, you will know how you can improve the maintainability of your projects, either greenfield or legacy.
Talk: Exploring Async PHP
Daniel has been working with PHP for over 10 years and contributed to and created numerous questionable open source projects of including Phpbench and Phpactor. He enjoys talking at user groups and can occasionally be using VIM in cafes or cycling around Europe. He works for Inviqa in Berlin.
As PHP programmers we are used to waiting for network I/O, in general we may not even consider any other option. But why wait? Why not jump on board the Async bullet-train and experience life in the fast lane and give Go and NodeJS a run for the money. This talk will aim to make the audience aware of the benefits, opportunities, and pitfalls of asynchronous programming in PHP, and guide them through the native functionality, frameworks and PHP extensions though which it can be facilitated.
Talk: Lua as a second language
Passionate about being a developer, teacher and mentor for newcomers into world of programming. Organiser of @webcampzagreb conference. Enjoys playing and watching sports that Croatians find odd and unpopular.
Being fast, lightweight and embeddable, Lua got its reputation through game engines and desktop applications. With rise of microservice architecture popularity in building web applications, Lua is also becoming an important player in web development.
After quick introduction to microservices, we’ll show how Lua fits in backend development and how it can be used in Redis and Nginx.
Talk: Effortless Software Development
I am a web developer, testing and refactoring expert, Pluralsight author, speaker and former conference organizer. I enjoy realizing seemingly impossible things. I have been coding since 1997.
Software development can be an eternal struggle, or it can be code that pretty much writes itself. In this talk, we’ll look at how simple acceptance tests and a few diagrams help us dive right into the code, which we in turn outline using DDD, This allows us to have a clean and testable design without worrying about implementation details. Code can be then implemented without developers worrying about stepping on each others’ toes, while still be confident that everything will work once put together. Discover how my team can build features faster than the client can sign them off.
Talk: Looking into the Illuminate Container
When he isn’t building or maintaining web applications (usually APIs) for a variety of contract clients or helping organize AustinPHP meetup and Longhorn PHP Conference, Ian’s probably at, or biking to or from, one of Austin, Texas’s 24-hour coffee shops, or opining some aspect of transportation infrastructure.
If you use Laravel , you’re taking advantage of a feature-filled, somewhat complex depedency injection container. In this presentation we’ll pull back the curtain on the magic behind the container’s auto-wiring, contextual binding, and other such features, stopping along the way to highlight upgrades that the package has gotten over succesive versions of Laravel since 5.5. If you aren’t a Laravel dev and need to dependency-inject your application, you might even come out of this presentation deciding that the Illuminate container is the best solution for your particular use case!
Talk: Automatic Web Page Optimisation in Pure PHP
Performance-obsessed freelance PHP developer, using and creating open source software to fulfil clients’ needs.
We all know slow sites suck. According to research by Amazon, customers buy more when a site is responsive. Google ranks fast sites better.
Using a WordPress case study, I’ll take you on a journey through the jungle of web page performance. You’ll learn to discern the many factors that are important in performance. I’ll show you the techniques, tricks and tools used to overcome slowness.
You’ll learn about image, script and stylesheet optimization, roundtrip minimization and why it’s important. In addition, you’ll discover a unique tool that allows you to do all that automatically.
After this talk you will be able to confidently measure a website’s performance, and diagnose the reasons for it being slow. You’ll know what to fix and how, and make your customers happy.
From a technical perspective, there are a lot of highly entertaining surprises regarding what can be done with PHP features, such as output buffering and HTML parsing, as well as in the browser: reordering DOM events and changing the way scripts and stylesheets are loaded.
Lochemem Bruno Michael
Talk: Functional Programming in PHP
I am Lochemem Bruno Michael, a caffeine-fiend and USIU-Africa alum who regularly turns coffee into usable PHP code. I am passionate about Open Source Technology and recently authored a book titled Functional Programming in PHP.
PHP is a multi-paradigm scripting language with a large following. This subscribership, a product of twenty-two years of simplicity and evolution has not only produced more robust versions of PHP but also more potent community libraries. First-class function support implies a malleability of functions suitable for higher-order function creation – a cornerstone functional programming principle. Furthermore, the interoperability of PHP’s community modules hosted on Packagist and installable via Composer, suggests a profound usage of PHP packages among which are functional programming libraries such as bingo-functional and funcitonal-php.
Functional programming is the current zeitgeist in programming and has pervaded through the programming realm. Irrespective of preferred programming language, the tenets of immutability, referential transparency as well as function purity have found ways to feature prominently in programming conversations. The simplicity and cognitive burden reducing capabilities of said principles add to the allure of functional programming – therein lies the gist of my proposed presentation, a simple primer on functional programming in PHP.
The presentation themed Functional Programming and PHP, is one whose intention is to offer a brief description of functional programming, an enumeration of its benefits, and a demonstration of its potencies – the ones supported by PHP.
Talk: Event driven development
Workshop: Hack this workshop!
Chris is a freelance consultant based in York, Uk with experience working in the public sector, small and large companies throughout North Yorkshire. Chris has over 10 years experience with PHP and has a keen focus on both software architecture and none functional requirements such as security, performance and maintainability. In his free time, Chris can often be found producing or playing with experimental libraries and contributing to Zend framework.
Much of the software we write is built to support a business process, this generally means validating and storing user data into a database. Often this is a mismatch with the actual business process, which is more reactive and task oriented. In this talk we’ll look at using business events to drive the evolution of our software design and see how we can build a model which better reflects the businesses processes.
In this workshop we will take a look at common security failings from a new perspective: that of the hacker. You’ll be provided with a set of different sites each exhibiting a different security flaw, the challenge will be to find and exploit it and in doing so learn how to protect your own sites.
All the sites will be run locally inside docker containers so don’t worry about breaking any laws! Obviously this means that you will need to bring a laptop which is capable of running docker containers in order to participate in this workshop.
Talk: Compiling the world to WebAssembly
Boyan is a software architect and developer, thinking human-first when writing software. He likes experimenting and talking about technology and its application to solving everyday problems. Prefers working solutions to concrete frameworks and languages. Boyan believes technology needs more storytelling and he tries to convey such. In his free time he performs improvised comedy with his group.
Talk: Mission possible: Oblivious Transfer
I am a passionate person, a speaker who likes when things are happening. Working with PHP since 2011, currently, I am responsible for all the developers at FFW Agency office in Veliko Tarnovo (working with Drupal, creating large scale projects) and doing my Ph.D. related to Biometrical Data security and working remotely with researchers from [COSIC] I am involved in the **Bulgaria PHP User Group**, **Programmers Club Veliko Tarnovo** and in the organization of different developers’ events like the hackathon Code4VTU, weekly meetups, and different seminars.
Have you ever wondered how biometric data transfer works? You want to check whether do you have a match in a database but without revealing your identity to the database? It is possible if you know what to use. Guess what, it is not as hard you think! Even better now it is available in PHP. Choosing one of two options without letting the other party to know you what you choose, pretty easy and secure. Also possible to implement all of this with PHP without having to know in depth the protocol itself.
This could be used in plenty of cases, the idea of the talk is to introduce the audience to a cryptographic primitive that could be used in different scenarious by making a custom PHP extension and then a library that could be used by other people.
Talk: Hardware connectivity on the progressive web
Majid Hajian is a software developer has developed and architected complex web applications since 2007 after he graduated as a software engineer. A software developer at heart, Majid is passionate about web platform especially hardware connectivity and performance and in particular Progressive Web Apps. He loves sharing his knowledge with the community by writing on his blog majidhajian.com and tweeting @mhadaily, speaking at conferences, visiting developers to help them, contributing to open source and organizing meetups and events. Majid is the author of “Progressive web app with Angular” book published by Apress and “Progressive Web Apps” video tutorial published by PacktPub and Udemy. He is (co)organizer of a few meetups in Norway dedicated to frontend and mobile in Oslo including Mobile meetup and Vue.js Oslo and Angular Oslo, Framisa and an Organizer of Mobile Era and ngVikings which are the main Nordic conferences for mobile and Angular.
The browsers can actually take control of physical devices in the real world like lightbulbs, robots, printers, NFC tags, toys, and even drones by providing new web standard hardware connectivity APIs such as WebBluetooth, WebUSB, WebNFC and etc.
On the other hand, Progressive web apps open a new era to build a web application that works offline and resemble a native application. Hence, every day we are getting closer to run web apps only on browsers that don’t need to be installed from any app store and it will take control of hardware around us.
In this session, I am going through some of the web capabilities to connect devices into a progressive web app and show how the web could go beyond the browsers and take control of our devices around us.
Talk: Rethinking What You Think You Know
Paul M. Jones is an internationally recognized PHP professional, working in that language since 1999, and programming in general since 1983. He has held roles from junior developer to VP of Engineering in all kinds of organizations (corporate, military, non-profit, educational, medical, and others). He is a regular speaker at technical conferences worldwide.
Paul takes a special interest in promoting high-quality, high-maintainability coding practices. This interest is reflected in his books on Modernizing Legacy Applications in PHP and Solving the N+1 Problem in PHP, as well as his white paper on the Action Domain Responder pattern.
His current major open-source project is the Atlas ORM for PHP. Paul’s historical open-source work includes being the project lead on the Aura for PHP libraries, the architect of the Solar Framework, and the creator of the Savant template system. He has authored a series of authoritative benchmarks on dynamic framework performance. He was a founding contributor to the Zend Framework, now Laminas (the DB, DB_Table, and View components).
Paul past community leadership involves having been a founding member of the PHP Framework Interoperability Group, where he was the driving force behind the PSR-1 Coding Standard, the PSR-2 Style Guide, and the PSR-4 Autoloader recommendations. He was one of the first elected members of the PEAR Project. He was also a member of the Zend PHP 5.3 Certification education advisory board, and wrote some of the questions on that test.
The talk is going to be premiered at Bulgaria PHP Conference 2019 and is still in development.
Workshop: Best practices for crafting high quality PHP apps
James is a consultant, trainer and developer at Roave. He is a prolific contributor to various open source projects and is a Zend Certified Engineer. He also founded the UK based PHP Hampshire user group and PHP South Coast conference.
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 applications, it’s imperative to focus on good practices. The solution is to improve the whole development life cycle; from planning, better coding and testing, to automation, peer review and more. In this tutorial, we’ll take a deep dive into each of these areas, looking at how we can make positive, actionable change in our workflow.
This workshop intends to improve your skills in planning, documenting, some aspects of development, testing and delivery of software for both legacy and greenfield projects. The workshop is made up of multiple exercises, allowing dynamic exploration into the various aspects of the software development life cycle. In each practical exercise, we’ll brainstorm and investigate solutions, ensuring they are future-proofed, well tested and lead to the ultimate goal of confidence in delivering stable software.
Talk: Transpiling PHP
Workshop: Command and event patterns
Veteran of PHP affairs, BDD practitioner, devops enthusiast
I started using PHP as a student, back in 1999. At first I worked as a one man band web developer and from there I progressed, via focusing on PHP development in a team environment, to be a senior dev, tech lead & technical analyst.
I found much more happiness doing backend stuff so I focus on scalable backends and devops tasks this days.
PHP as a language can’t rapidly follow the needs of the developers: we should look at other languages that decided to build custom DSLs over existing platforms/languages like TypeScript or Elixir. Both languages were born for different reasons, solving different problems and having unique takeaways on developer communities at large.
After a rather short introduction to them, I will cover benefits and pitfalls of these concepts with some examples from our community on how and what would be solved easily with preprocessing to PHP like generics, immutable structures and so on.
There are already some initiatives building upon this idea but they are not being widely recognized and I would love to introduce you to them and some of my work as well (which I have done as proof of concepts).
Idea behind commands is to encapsulate all of the information needed for an action: making our domain less fragile and simple. Event pattern help us decouple code and make it easily extendable: without modifying user registration process we can easily add more features like send ‘welcome SMS’ or ‘notify support to check new user’.
Goal of this workshop will be to build a small app using commands and events and show you how nice and cool it is!
Talk: The journey to a stress-free release
Tosho is a tech consultant with extensive experience in working with startups and leading enterprises. Co-founder and Chief Technology Officer at Adeva – an exclusive, on-demand developers network that connects the world’s best engineers with leading enterprise organizations and startups.
Over the years, Tosho worked with various companies on setting up cross-cultural, inclusive distributed teams. Tosho believes that remote work is the future of work and he is working on empowering companies to adopt it.
Leading multiple development teams over the years, I found releases to be the most stressful part of the software development lifecycle. Many teams find it difficult to fix the release process, increase the quality of the software they develop and get their weekends free. I will prove them wrong.
Talk: Backwards Incompatible Tales
Marco “Ocramius” Pivetta is a software consultant at Roave.
With over a decade of experience with PHP, he is part of the Zend Framework CR team, Doctrine core team and is also active in the community as a mentor and supporter.
When not coding for work, he usually hacks together new concepts and open source libraries or simply provides Q&A on community channels.
A long time ago, in a land far away, lived a software wizard that was capable of grand magic. They built gardens, libraries, temples, castles. They created life where there wasn’t, and cleared the path where it was unsafe.
And then they disappeared, and even though they left behind books and notes, none of their apprentices were able to learn the craft. Since then, nobody was able to use any of the tools of the great mage, and the creations kept working for only a few years, when finally even the last stone that was placed crumbled into sand.
Sounds familiar? Software often feels the same: we’re all magicians that force a piece of sand into semi-rational thought, but what will happen when everyone moves on, and nothing works as expected anymore?
This talk explores the problems that arise from breaking compatibility with existing tools, how to prevent those breakages from happening, and what to look for as a software maintainer.
While I cannot guarantee that you will build indestructible magical fortresses with my tips, I can at least help you make sure that your work will live on with other people picking it up, and hopefully appreciating the stability that you worked towards.