Michael Moussa

Comments

(Show Details)
(Hide Details)
Rating: 5 of 5 
(10.Oct.2013)
Opening Keynote
Rating: 5 of 5 
(10.Oct.2013)
Introducing Tests in Legacy PHP Applications
I really enjoyed this talk and it is very relevant to what I'll be working on in the weeks to come. This was my first exposure to Behat/Mink beyond "hey, you should check out Behat/Mink" and I'll definitely be utilizing pinning tests in my upcoming refactoring. The only thing I would suggest is to perhaps go into a bit more depth with Behat/Mink - perhaps with live code samples.
Rating: 5 of 5 
(10.Oct.2013)
Doctrine ORM and Zend Framework 2
Excellent job! I've been using the Doctrine ORM/ODM modules for close to a year now and still managed to learn some new things from this talk. I would love to see a more in-depth talk in the future aimed at developers who have already had exposure to Doctrine and want to get an idea of what else is available besides the typical use cases.
Rating: 5 of 5 
(10.Oct.2013)
Business Logic Security
Great presenter! Fast, but perfectly happy to stop and elaborate when necessary. I felt that a lot of material was covered in a short period of time. The Session Security, Data Access Management, and Logging segments were especially useful.
Rating: 5 of 5 
(10.Oct.2013)
Testing Essentials: Mock Objects Explained
Great presenter with very detailed, high-quality slides and code examples!
Rating: 5 of 5 
(21.Feb.2014)
Code Review for Security
One of the best talks I attended at this conference. Anthony was a very clear and focused speaker, and his presentation was very hands-on. The code snippets and real-life open-source projects he selected for examples demonstrated a lot of the topics he covered. I learned quite a lot!
Rating: 4 of 5 
(21.Feb.2014)
Workshop: Improving QA and PHP Development Projects
There was plenty of good material covered, and I found Michelangelo very easy to understand. I think this workshop would benefit from more interactive examples in the future, though, whether it's him demonstrating these tools running on different sets of example code or having attendees install the tools themselves and try things out. The talk finished early, so there would have been plenty of time for this.
Rating: 5 of 5 
(21.Feb.2014)
ZF2 Modules Workshop
I caught the end of this talk after another had finished early, but I can tell the rest of it was excellent based on the part I did catch. Even somebody already experienced with ZF2 modules would have something to gain by attending.
Rating: 5 of 5 
(21.Feb.2014)
Development, By The Numbers
Great stuff! I knew a bit about code metrics going into this but now I'm armed with a lot more knowledge that I can use to assess quality in my new work. Thanks!
Rating: 5 of 5 
(21.Feb.2014)
Building Testable PHP Applications
He was not grumpy at all and didn't sound very Canadian. Possible impostor? :) Nevertheless, great and very informative talk. I will be pushing his books and videos hard on my team because I think they'll be a huge benefit if they're anything like this talk. Very well done!
Rating: 5 of 5 
(21.Feb.2014)
PHP
My 2nd Rasmus talk and it was great as expected. The portion about deployment was very interesting and very well-timed as we've been discussing it recently at my job.
Rating: 5 of 5 
(21.Feb.2014)
Browser Eyeballing != Javascript Testing
I already test the heck out of my PHP code but haven't done much with Javascript yet, so this was very informative. I was also very pleased to see that I wasn't the only one who thought Coffeescript was an abomination. :)
Rating: 5 of 5 
(21.Feb.2014)
APIs: Dead Reckoning
While others have commented that this seemed out of place as a keynote, I think that's exactly what made it a good keynote - it was informative and described a concrete solution to a real life problem, rather than just being an hour or so of entertainment. Maybe I'm a little biased, but I'm excited about where Apigility is going and seeing all of the new capabilities since it was originally introduced at ZendCon. +5 from me!
Rating: 5 of 5 
(21.Feb.2014)
Advanced Date/Time Handling with PHP
The more I learn about timezones and date/time handling, the more I hate dealing with them! :) Glad to be armed with more information on the subject for the next time I have to think about it.
Rating: 4 of 5 
(21.Feb.2014)
Redis Everywhere
Redis is completely new to me so I got a lot out of this talk. I would have liked to see code examples and possible caveats, though. Great nevertheless!
Rating: 5 of 5 
(21.Feb.2014)
Going Pro
Super entertaining and great way to wrap up. Thanks, Cal!
Rating: 4 of 5 
(21.Aug.2014)
Refactoring Legacy Code
Excellent talk! I think it would benefit from some more explanations of the "whys", though. A developer already experienced in refactoring and modernizing legacy application knows why one would want to take advantage of autoloading, adherence to the PSRs, dependency injection, and so forth. One who does not have such experience, however, may understand what should be done and how, but may not know the reasoning behind it. Preceding the examples with a brief "autoloading is better than include/require, and here's why" or "PSR-4 is better than Foo_Bar_Baz, and here's why" would not take very much extra time and would likely help less experienced developers get more out of the talk. As-is, the talk is very suitable for an intermediate or advanced audience. Great job!
Rating: 4 of 5 
(31.Oct.2014)
Opening Keynote
While we don't currently use Zend Server as part of our Production infrastructure, I fully enjoyed the showcase of Z-Ray and intend to try to work it into my Development workflow. I liked the fact that it was a live demo of the product and not just a series of slides and marketingspeak. Well done, Andi.
Rating: 5 of 5 
(07.Feb.2015)
PHP and teams, it's good chemistry!
I am all over that Vagrant box and have already begun planting the upgrade seed at work. Thanks for another great keynote, Rasmus!
Rating: 5 of 5 
(07.Feb.2015)
Tuning Nginx And PHP-FPM The Right Way
Fantastic talk - had a blast and learned a lot. While I rated the talk a 5 (because it was so good), I think it can be improved with some examples (or perhaps demos?) of performance improvements before and after the various tweaks. Yeah yeah... benchmarks lie, but since they'd be comparing Nginx against itself with a different configuration, I think there'd be some value.
Rating: 5 of 5 
(07.Feb.2015)
Queues And The Giant Beanstalkd
Great info! The material of this talk is very helpful to people getting started with job queues. The live demos were an excellent touch and critical for topics like this IMO.
Rating: 5 of 5 
(07.Feb.2015)
Composer The Right Way
This talk should be mandatory for anybody wanting to use Composer!
Rating: 5 of 5 
(07.Feb.2015)
Same Thing Happens Every Time.
Very well prepared and delivered. I was thoroughly entertained! Great job!
Rating: 5 of 5 
(07.Feb.2015)
HHVM Basics
Fantastic talk. I'm excited to dig in to Hack
Rating: 5 of 5 
(07.Feb.2015)
Wrangle Cross-Cutting Concerns With Event Driven Programming
Very well done presentation. The example code was really clear and illustrated the benefits of using events rather than continuing to cram logic into service methods. Great job!
Rating: 0 of 5 
(21.Oct.2016)
Introduction to graph databases with Neo4j
@BRANDON thanks for the honest feedback. I'm not sure if you were in the room for the entire talk, but I did cover several use cases where it makes sense to use this tool at the beginning (driving directions, social networking graphs, financial fraud detection, etc). You can read more about those use cases on the GraphGists site that I linked to at the end of the talk (here's a good one on credit card fraud detection: https://neo4j.com/graphgist/122cdc26-ee79-4d30-ab17-540eb5218a5f) Please do note that the objective of this talk was not to convince anybody to use Neo4j specifically, but rather to show them what it is and give them enough information to decide on their own if there is any use for it in their organization.
Rating: 3 of 5 
(22.Oct.2016)
keynote
The delivery was good and the historical content was interesting from an academic perspective. The future stuff would have been interesting / exciting for laypeople, but as developers, I'm sure many of us have already imagined how much more sophisticated smart devices will eventually be or have even seen it portrayed in sci-fi, so it seemed a bit speculative and didn't really seem to fit. My favorite part, actually, was the very brief GraphiQL example. I've heard GraphQL mentioned a lot in recent months and never really looked into it, but the very, very short demo was enough to get me to think "oh, cool. I'm definitely going to check this out." It shouldn't be surprising that the most technical portion of a talk was the portion I liked best, given that this is a developer conference. I'd really love to see more of that sort of thing in keynotes!
Rating: 5 of 5 
(22.Oct.2016)
10 things you didn't know you could do with Composer
Great talk! As a long time Composer user, I came into this talk thinking "10 things *I* didn't know I could do with Composer? Oh really? Let's see about that!" Even though a lot of it wasn't new for me (not the speaker's fault, I've been using Composer a LONG time), but I still got A LOT of useful stuff out of this that I didn't know about before like --classmap-authoritative, conflict/replace/provides, and show/why/why-not, so I'm glad to chose to attend this talk. If the speaker hasn't already built a talk around the "10 Things You Already Knew..." intro slide for complete beginners to Composer, he absolutely should!
Rating: 5 of 5 
(22.Oct.2016)
Building tools people love to use
Major kudos on the abstract. I could have stopped reading after the first sentence and known this talk was for me because the popularity of tools that don't look as good "under the hood" as they do on the outside has always baffled me. As for the talk itself, I don't consider myself a pure perfectionist, but I'm a lot closer to that than to a pure pragmatist, so a lot of the content gave me some more perspectives to consider that I hadn't before. I've always started building components by building out some interfaces/skeletons/etc because that's the way I've always done it and it's the way I know it's going to look... so the whole approach of coding out how the syntax for the different ways to use it would look like first, then worrying about implementation details, is something I'll definitely keep in mind to try first from time to time to see how things turn out differently. I hope the slides will be made available for this, as I'm not the best note-taker and there are a few things I want to refer back to. :)
Rating: 5 of 5 
(22.Oct.2016)
Keynote
I think my throat would have gone dry from all the opportunities to say "I told you so!" to some former colleagues/managers this talk generated. Keeping developers happy and motivated is so, so easy and so many organizations drop the ball and fail to pick it back up before their best people leave, and their "not the best" people always stick around way too long and slow the progress of their careers. IMO, this presentation should be required viewing for all of the "Powers That Be" at any organization, as well as for anybody who has been working at the same company longer than a handful of years "just in case". Well done!
Rating: 5 of 5 
(22.Oct.2016)
Keynote
Fantastic talk. This is the type of keynote I'd like to see more of at technical conferences. I've watched it before on YouTube, but getting a live refresher was great.
Rating: 4 of 5 
(22.Oct.2016)
High availability PHP
The speaker was very knowledgeable on the subject, understandable, articulate, etc..., but I think the slide deck being as text-heavy as it is might have hurt the delivery of the talk. If I've got text in front of me, it's hard not to read it, and reading it means I'm not able to pay full attention to the speaker. The slides are excellent reference material which would serve well as post-talk notes / summary that could be shared, but I think tweaking them to be less wordy during the talk so as to not draw attention from the speaker would help a lot. Also, this talk felt like more of a high-level look at building a highly available PHP application but didn't dig TOO deeply into any specific thing, which is not what I would have expected after reading "[...] and how to build one" in the talk abstract. So, both the speaker and the raw content of the talk are perfectly fine, but I think tweaking the packaging, delivery, and expectation-setting via the abstract would make this a really, really excellent presentation.
Rating: 4 of 5 
(22.Oct.2016)
Containing chaos with Kubernetes
I think I could have easily rated this talk a 5 if I had a good depth of experience with Docker already and I was sitting in the first row, but neither of those things were the case. The first issue is not really the speakers fault, as the talks this time around did not have the target audience skill level or prerequisites listed, so I didn't realize it would be more for intermediate-level containerizing folks. The second issue is, but can easily be fixed I think. I have perfect eyesight and was seated around the middle of the room, and some of the content on the slides, as well as some of what is shown in the demo, was really small and difficult (sometimes impossible) to read for me. Struggling to try to see or to try to determine if what I'm NOT seeing is a big deal to be missing tends to be a distraction. However, those same slides and portions of the demo also had a lot of whitespace on them... so expand to fill! If some of the demo content can't be magnified, then perhaps either move those portions to the slide deck, or if it must be part of the demo, have some screenshots available as a bit of a "OK, I know this part is hard to read. I can't resize the real thing, but this is what it looks like *shows screenshot*." Great talk overall, though. I'll be sure to attend it again after I've gained more experience with Docker and have the background to get more out of it.
Rating: 3 of 5 
(22.Oct.2016)
Wrangling order from chaos: Practical approaches to OSS compliance
The talk was very content-rich and covered a broad range of topics within the OSS compliance space, but I think attendees would benefit more from a deep-dive into the few most common licenses that we see in popular OSS projects on GitHub, as well as a lot more translation from the "quasi-legalse" language you find in licenses to plain English. I typically go with MIT for my open source projects mostly because I can't be bothered to try to read and understand the massive wall of text that stuff like BSD or GPL are in comparison, so something like that would really help. The speaker is clearly very knowledgeable on the subject and has many years of experience dealing with it, so I think it's easy to miss the fact that the scope might have been too broad for people new to the topic to digest, hence my suggestion to approach it from more of a "deep dive into the common / important things" versus "let me teach you everything".
Rating: 5 of 5 
(22.Oct.2016)
Curing the common loop (with collection pipelines)
I've always found some people's "semi-dogmatic" obsessions with things like avoiding if statements, immutability, strict FP, etc.. "just because" to be a little off-putting, so seeing "never write another loop again" in a talk description would have normally resulted in an eyeroll and me moving on to a different talk... however, I attended an excellent talk by this speaker at a different conference and decided to give him the benefit of the doubt and take a look anyway. I'M GLAD I DID! (and you should too, if you happen to be reading past talk ratings to help you decide if you should see this talk at whatever other conference it's being given). The majority of this talk is a flawless live demonstration of refactoring a deeply-nested, difficult to test, horribly unreadable disaster of a function. The speaker takes you step by step throughout his thought process as he refactors it, and continues to show along the way that the end result remains the same after every incremental change. He could keep the talk exactly the same next time and the time after that and it'd still be a 5 star talk; HOWEVER, I think there are a few improvements that could be made to address some of the criticisms raised by other reviewers. 1. Terminology: Some people may not be familiar with terms like "map", "reduce", "pluck", "flatten", and so on, and might see those terms used and consider the code unreadable because they don't know what it's supposed to do. I've seen those terms before in different contexts so it wasn't hard for me to follow, but someone hearing them for the first time might have trouble understanding the examples, even if you define the terms for them before proceeding. Maybe a little "reference block" of comments off to the side, or perhaps make the editor window a little smaller in order to fit a cheatsheet on the screen at the same time? That way someone can always look back and say "ah ok, that's what pluck does. OK, now what's he doing..." 2. Performance: Refactoring to collections is absolutely going to impact performance - there is no avoiding that. Readability and maintainability trump performance micro-optimizations IMO, though, so I suggest nipping the "this is going to make my site slow" criticism in the bud. Maybe bootstrap a simple Laravel / Expressive / Symfony quickstart application, create an endpoint for the original version of the function and another for the fully refactored version, and do a benchmark to demonstrate "yes, collection pipelines are slower. this example adds 1/10 of a millisecond to your 100-200ms pageload time. can you read and understand the original version in less than 1/10 of a millisecond? no? then stop worrying." You can even use a prepared slide with the benchmark results already on it, since that wouldn't be terribly entertaining to watch live (and it's not really relevant to the talk other than "see? i told you so"). 3. Debugging: People said the refactored version is harder to debug than the original monstrosity. Prove them wrong - add some strategically placed bugs and compare how you'd debug them in the collection pipeline approach versus with the original approach. I won't be seeking out and destroying all loops and conditionals in my application (or refusing to add new ones) after this talk or anything, BUT I now have a new tool in my tool chest, and I'll be sure to wield it whenever I think it makes sense to do so. (oops, i typed too much...)
Rating: 4 of 5 
(22.Oct.2016)
TDD with phpspec
Good talk. I'm an undying PHPUnit fanboy myself, but I'm glad I was able to get some exposure to phpspec from someone who has more proficiency with it in order to see how the tools differ. The "recorded coding demo" is a great substitute for a live demo if a speaker isn't comfortable doing one, but there was a bit of awkward pausing/waiting while the videos played and we were just watching the code be typed out in order to move on. During a live demo this is OK because, obviously, a speaker isn't going to be able to type instantaneously (or, they can talk to the audience while typing to make it less awkward), but that's not the case with a video. I would suggest either speeding up the video to superhumanly fast typing speed to help move things along. Either that, or do the opposite - slow them down a bit, but talk through the process and pause where needed (i.e. "ok first you foo the bar and then bar the baz, oh *pause*, yes, what's your question?" Only other thing is that normal sized text with dark backgrounds on a projector screen is death to readability by anyone other than people with perfect vision in the front row. I'd suggest either enlarging everything as much as possible, or doing everything with a white background.
Rating: 3 of 5 
(22.Oct.2016)
Modernize your app with Zend Expressive
There seemed to be a lot of background info being covered leading up to the example. This is normally OK for me if we get past it quickly, but it took up a lot of time at the beginning of the talk. The speaker was definitely knowledgeable on the topic, but didn't leave much time to demonstrate a lot of the ways one might have to bridge between a legacy system and Expressive. Basically, too much focus for too long on the WHAT and the WHY and not enough on the HOW, which is what I think the people typically attending this talk would be looking for.
Rating: 5 of 5 
(22.Oct.2016)
Test driven Laravel
I confess that I'm not a Laravel developer, and I attended this talk solely because I love live demos and I know this speaker does them well. :) That said, this was indeed a fantastic talk, and someone with a Laravel background wanting to learn TDD absolutely must attend this talk if they have the opportunity.
Rating: 5 of 5 
(22.Oct.2016)
Event sourcing: The good, the bad, and the complicated
I've been interested in event sourcing (from a "people are talking about it, so I want to see what it's all about" perspective) for a while now, and it was great to see a practical example of it in action that I could easily wrap my head around. This talk gave me enough background information and reference material to play around with it on my own. The speaker is extremely knowledgeable about this topic and other relevant topics that tie in to event sourcing, so this talk is bound to end with a good Q&A session if the crowd is large enough. Even if you don't have a use case for it now (or do, but it wouldn't be practical to switch it over), you should still attend this talk in order to learn what it's all about so that you can be able to decide to use it or not when the opportunity arises. Fantastic talk!
Rating: 5 of 5 
(22.Oct.2016)
Groupies, Roadies, Rockstars
I tend to be biased towards wanting keynotes to be more and more technical just like the rest of the talks at conferences, but for closing keynotes, it's always fun to sit back and watch Cal do his thing, regardless of what he's talking about. I'm amazed he was able to pick this concept of rockstars/groupies/roadies and somehow manage to make the connection between them and the different types of players you'll find in the open source community. Even more amazed that he managed to hit the nail on the head for probably all of it, AND be entertaining in the process. Speaking from the perspective of both an author of a few projects nobody uses, and as someone who was recently bestowed with the honor of maintaining one of my favorite open source projects, there absolutely is a TON of value that so-called "Groupies" and "Roadies" can provide, regardless of how little time they have or how much technical ability they have. I'd love to give my "nobody uses them" projects some more attention, but just don't have the time, so I'm sure anybody in that same situation would welcome these types of contributors. On the other end of the spectrum, existing Groupies and Roadies have made settling in to becoming a maintainer and getting through issues and PRs so much easier because of the attention to detail they give to this project, despite having no real obligation to do so. If you're a "Roadie" who is finding yourself "shoveling shit" with no appreciation, or a "Groupie" who never gets to go backstage because you're not worth the time to the "Rockstar", find a new band. There are plenty of us out there, and we'd love to have you. Thanks for great closing, Cal.
Rating: 3 of 5 
(22.Oct.2016)
How to use SELINUX (No, I don't mean turn it off)
I was drawn to this talk specifically because the extent of my experience with SELinux is indeed simply figuring out how to turn it off. Unfortunately, it just didn't really sink in, but I think this talk has a lot of potential to be a very good talk on a very important topic. I hope the speaker will get some more feedback and make improvements. The main issue that made it difficult for me to really grok this was the overall flow of the live demo. The speaker definitely knew what he was talking about and was very confident in what he was saying, but the flow of the demo felt a bit clunky. Things like Vagrant misbehaving a bit, the general pace, and so on. I might have had an easier time of this if I already had a good background on SELinux, but I assumed that knowing how to spell it and how to turn it off were the only prerequisites for this talk. Maybe I was mistaken? I would definitely give this talk another shot if I did a little bit of research into SELinux on my own in order to go in having some context already. Just being able to have some better quality Q&A time with the speaker once I have a bit more background would be very valuable, even if I wouldn't be able to rate the talk higher next time.
Rating: 5 of 5 
(06.Feb.2017)
Time Management For Grumpy Programmers
I was going to leave a longer comment, but I don't have enough time!
Rating: 5 of 5 
(06.Feb.2017)
Tales from the Crypt: Cryptography Primer
I really enjoyed this talk, and was happy to see that it validated a lot of the things a former colleague and I decided to do (and NOT to do) in a previous project. Would have loved to see it delve a bit into more technical implementation details of the various algorithms, but that's probably beyond the scope of this talk.

Events They'll Be At

No events so far

Events They Were At

Lone Star PHP 2017 Apr 20, 2017
SunshinePHP 2017 Feb 02, 2017
ZendCon 2016 Oct 18, 2016
SunshinePHP 2014 Feb 06, 2014
ZendCon 2013 Oct 07, 2013
php[tek] 2017 May 24, 2017
SunshinePHP 2016 Feb 05, 2016
SunshinePHP 2015 Feb 06, 2015
© Joind.in 2017