Joe Ferguson
Software Engineer, Author, Open Source Maintainer, Speaker, Mental Health Advocate, Cat Dad, Space Geek, Drone Pilot, Husband. Always learning, always teaching.
How do you use PHP professionally?
The day job is based on PHP 5.6 LAMP stack and most of my side projects and open source work is focused on PHP or building systems to run PHP.
How and when did you get involved speaking or writing in the community?
php[tek] 2014 was my first PHP conference as an attendee. I found the hallway track and was hooked. I started speaking because its a rewarding way to give back and I learn a lot from preparing a talk. Plus, we’re lucky that most PHP conferences at least cover travel costs for their speakers.
What’s your best conference memory?
There are so many to name. At php[tek] 2014, meeting Ed Finkler was huge, as was php[world] 2015, my first national conference speaking event.
What advice do you have for someone going to their first conference?
Don’t be scared to talk to people. Just walk up and introduce yourself.
Tabs or Spaces?
Spaces. Because PSR-2 said so.
Do you know how to exit VIM?
Nuke it from orbit, it’s the only way to be sure
What’s your primary OS: Windows, Mac, or Linux?
I touch them all just about every day. MacOS for personal & work machines. Windows for gaming and Linux for everything else.
What’s a feature of PHP that you use a lot or appreciate?
Without Autoloading we would be writing VERY different code today.
Is a degree in Computer Science critical to be a professional programmer?
Depends on how you learn. If you can learn on your own from videos or documentation go for it. If you learn from a classroom setting then a degree may be your best route.
In your experience, what skill or ability do excellent programmers practice?
They are always learning, always teaching.
What’s one component or library that you find indispensable?
Composer!
MY SESSIONS
MySQL Room
Building to an Interface: Logging
MORE INFOMySQL Room
Data Pipeline & Visualization
MORE INFOMySQL Room
Manage Large Data Sets with Streams
MORE INFOMySQL Room
Static Analysis & Strict Types
MORE INFOMySQL Room
Caching on the Bleeding Edge
MORE INFOMySQL Room
Application & Service Architecture
MORE INFOMySQL Room
Mastering the Code Review
MORE INFOMySQL Room
Reduce, Reuse, Refactor
MORE INFOMySQL Room
Database 101: Queries & Prepared Statements
MORE INFOMySQL Room
Database 201: MySQL Table Design
MORE INFOMySQL Room
Producer / Consumer Programming
MORE INFOMySQL Room
Experiential Project Design
MORE INFOMySQL Room
Specification by Example
MORE INFOMySQL Room
Object-Oriented Collaboration
MORE INFOMySQL Room
Object Features & Error Handling
MORE INFOMySQL Room
When & Why: Interfaces, Abstracts, Traits
MORE INFOMySQL Room
Design an Algorithm in Your Head
MORE INFOMySQL Room
Dependency Management
MORE INFOMySQL Room
Dependency Injection
MORE INFOMySQL Room
Organization Patterns: MVC
MORE INFO