X
    Categories: Insights from Interview With PHP MagiciansKnowledge Center

Jeff Reifman on Yii Framework and his influence in PHP

Today I’m honored to have Jeff Reifman on board for an interview at Cloudways Thanks Jeff for your time and all the efforts for PHP industry.  Jeff is an experienced technology consultant and former Microsoft Group Program Manager. He is a writer, activist, and yogi. He’s also the founder of Meeting Planner and author of the Envato Tuts+ series, Building Your Startup. Jeff is actively taking part in educating PHP developers via tutorials and speaking sessions He enjoys travel, photography, and snowboarding in his free time.

Cloudways: Hi Jeff How are you? It’s great to have you onboard for this interview. For a start, can you tell us how you get started with PHP development and what motivates you to be such an exceptional developer?

Jeff: I’m good, thank you for talking with me today.

My path to PHP coding is a long and winding one. At Microsoft, I helped manage the development team that launched MSNBC.com in 1996, but I didn’t do web development myself. Nor did I write code at my startup, GiftSpot, afterwards. But, some time later, I volunteered with a technology consulting organization for environmental nonprofits. I began working with ColdFusion there and was impressed with its power and potential. ColdFusion was a proprietary server technology and I wasn’t yet aware of the value of open source.

Through those connections, I launched a nonprofit of my own, building a broader suite of technology services on ColdFusion. It was funded by AspirationTech and the Omidyar Foundation, which led me to merge with Groundspring (now Network for Good). There, we began migrating our ColdFusion tools to PHP 5.x and honestly I struggled. I was fortunate to work with Kellan Elliott-McCrea the future engineering manager at Etsy — he will attest to my difficulty learning OOP.

But, as a side project, I’d hired my housemate’s younger brother, Garrett Moon, a high schooler, to build the beginning of CommonBits, a progressive media video sharing site based on BitTorrent. He wrote it in PHP and BoingBoing frequently promoted our Daily Show clips, which Jon Stewart had encouraged publicly. This was back in 2005 in the months after YouTube’s initial launch. After Moon went to college, I picked up the code from him and had to learn PHP in order to keep the site growing. It was easier for me to learn because it was more imperative, less object oriented and not MVC. Moon later went on to work at Apple.

Generally, I code because I have something I’d like to create that’s fun or solves a problem. For example, I wanted to create my own mail organizing service so I built an IMAP mail filter, SimplifyEmail. Recently, I coded Twitter bot @this_isnt_norml for a podcasting acquaintance. My motivation to work on Meeting Planner began as a way to make scheduling simpler, using technology to eliminate the frustrating back and forth emails. Writing for TutsPlus allowed me to share and write about the process, building momentum for the service. Today, I’m motivated by its potential, both in simplifying meetings and social meetups but also by its growth.

Cloudways: Your recent efforts have particularly been focused on development in the Yii framework. In your opinion, how is Yii evolving with PHP 7.x, particularly Yii 1.x and Yii 2.x. What are your favourite features within the Yii framework?

Jeff: Without Yii, I might have given up on programming a while ago. Yii 1.x made it possible to quickly and easily build secure, database-driven web services. Yii 2.x has built on that momentum and established a foundation for efficient, standard-compliant and performant PHP web services. As I’ve become more experienced with Yii2, I code faster, more effectively and generally in a well-structured easy to understand way.

Migrating to PHP7 has been relatively easy with Yii2. It’s scaffolding feature, Gii, makes it fast and easy to begin and extend all kinds of web services. Ditto with the Yii2 advanced template. Yii’s Bootstrap3 integration has been essential to helping me develop mobile-first, responsive skills.

With Yii’s built in localization support, I automated Google Translate so that Meeting Planner runs in 21 languages.

Cloudways: Mentors play a vital role in career development. Who were your mentors in the PHP world? Who would you recommend to follow within the PHP community, especially influencers working within Yii?

Jeff: I began programming in basic when I was eleven on my TRS-80 Model III (see raised at Radio Shack). I learned assembly language programming in Radio Shack classes and was fortunate enough to be able to find and afford private tutors for deeper Z-80 and 6502 learning. I learned Visual Basic at Microsoft and coded some prototypes but I’ve never considered myself a professional developer. I’m primarily an entrepreneur and a product manager.

Learning web development came later. I haven’t had traditional PHP mentorship except perhaps Alexander Makarov who we’ll speak about in a moment.

It was Elliott-McCrea who introduced me to dedicated server hosting and Linux. He taught me to how to host my own email and I wrote a tutorial that went viral on Slashdot. All of my DIY system administration experience began with him — and perhaps the joy of tutorial writing began there too. (I had nothing to do with Clinton’s email server, okay, maybe I did.)

I developed most of my PHP skills working on NewsCloud (now called Community Starter. With grants from the John S. and James L. Knight Foundation, I was able to hire a small team to build the first Facebook news applications. Nothing develops your coding skills like keeping up with the frequent changes of the new Facebook API.

I was fortunate to convince Russell Branca to work for nonprofit grant pay as a software developer (he’s now at IBM Cloudant). I learned a lot about coding from him. The NewsCloud news application helped me lead searchers to finding Wired Magazine’s missing writer, Evan Ratliff, in its Vanish contest. Branca tried to teach me Ruby on Rails but I never got very good at it. The efficiency and expertise I’ve gradually developed with Yii has surprised me, as it shares Rail’s MVC architecture.

Clearly, my learning curve to PHP and Yii has been slow. Sometimes you have to learn a little at a time and it’s okay to ask for help.

I want to mention Alex Knight, who’s mentored me on projects for the last ten years. He’s an Apple and Microsoft veteran and one of the wisest people I know. He’s been actively involved with Meeting Planner.

While I’ve shared a lot today, I hope you get a sense of my humility as a programmer. I’ve learned from others and my successes are often built on others’ contributions. Appreciating the help of others and being willing to offer yours in return is important. In 2017, I’ve been mentoring a friend who’s becoming a WordPress consultant. It’s been fun to see his skills grow.

Cloudways: I noticed you are working with Alexander Makarov at Lookahead. How has your experience been in working with him directly? What key pain points is lookahead addressing for customers in the software market?

Jeff: As I wrote more and more Yii tutorials for TutsPlus, Alex regularly answered my questions about Yii to assist my role in educating others. This continued while writing the startup series for TutsPlus about Meeting Planner. Eventually, I asked to him to join Meeting Planner in a more formal advisory role. He’s been a great help and I am incredibly appreciative of him.

With regards to Lookahead Consulting, I offer high level technology consulting on occasion but have mostly been focused on my own startup, Meeting Planner.

Cloudways: I have been avidly following your tutorials since 2016 and you are doing excellent job on Tutsplus! In your opinion, how do such advanced tutorials help developers in kickstarting their apps? Can you and I co-author an article on Tutsplus 🙂 ?

Jeff: Thank you so much. As I said, programming is not my primary skill, so I regularly google and visit StackOverflow et al. in search of solutions and answers. I didn’t know much about Bootstrap and responsive development before Meeting Planner. The Bootstrap Your Home Page tutorial is a good example of how I googled my way to requirements for a better home page design.

Not knowing how to do things often makes me better at writing tutorials to teach people about what I learn.

Recently, I gave a meetup presentation on how I built the JQuery popup calendar for Meeting Planner. The date and time picker widgets I was using confused customers. Frankly, I didn’t think I had the skill to build a responsive, scrollable, popup calendar with drag and drop and sliders. Then one day, I just began breaking the tasks down and googling on line for one challenge at a time.

How do you build a responsive, scrollable table with fixed headers and columns? How do you do drag and drop with table cells? How do you get mobile touch events to work with JQuery UI? It took a week or so and a couple of overnight hacking sessions, but the results has made Meeting Planner incredibly faster and easier to use.

I wouldn’t be able to do this work without Google and the generous openness and willingness to share of programmers around the world. I feel even more appreciative of open source contributors (there are some excellent Yii extension offerings). Recently, I wrote about the open source foundation that Meeting Planner relies on.

It’s also been a privilege to work with Tuts to share my learning process with its readers. I think Tuts frequently invites new contributors. Unfortunately, the general pay for technical writers isn’t great and there’s no office, benefits or healthcare with tutorial writing. But, it can be very rewarding and lead to connections … you found me through my Tuts’ tutorials and invited me to be interviewed.

Cloudways: Jeff, while researching on you I came to know that you diagnosed with brain tumour while pitching the idea of “Building your startup series”. How do you tackle such hard moments and achieved the milestone?

Jeff: I had actually written a handful of episodes and written some code when I received my diagnosis. I immediately dropped everything related to Meeting Planner and my ongoing consulting roles. My time at Microsoft left me with the privilege where I could face brain surgery without worrying about money. I was able to stop working … but most Americans cannot do that without negative impacts.

I wouldn’t have made it without the support of my best friend and the amazing work of great medical professionals. People often assume my neuro surgeon was male, but she was a woman and a person of color. Diversity is so important. My first few postoperative ICU nurses were men.

Technology played a huge role too. In addition to my craniotomy, I received cyberknife radiation administered by Lenore the robot (while cared for by a handful of thoughtful specialists).

Eventually, about a year later, I got back to primarily a work orientation.

The key lesson I’ve learned from all this is the importance of empathy for other people, especially the vulnerable. For a more complete answer, I encourage you to read What You Can Learn From My Brain Tumor and The Gift of Brain Surgery.

Cloudways: Here comes my favorite question for you! How do you manage your workflows when working on multiple development projects? What tools and resources do you use in your developing your workflows?

Jeff: I multitask to a fault. I have a lot of creative ideas and want to do them all. As a one person startup, I get away with less structure. I use iOS Notes and Google Docs for To Do lists, they are unstructured and easy to access (horrible, right?). I’ve been known to script Google Sheets to generate HTML. When I do paid consulting, I use Freshbooks as a workplace timer and for invoicing. For Meeting Planner, I use Asana for tracking features and Bugs. I use Github in all my projects.

Cloudways: Enough technical questions. Let’s talk about life! How do you like to spend your spare time? What are your favorite hobbies?

Jeff: I love writing. I’ve written about everything from dating to heartbreak and Microsoft’s tax dodging to Amazon’s impacts on Seattle. I enjoy snowboarding, as long as snow lasts in the anthropocene. I also love to travel and enjoy taking photos. I practice yoga and have volunteered teaching to struggling teens.

Q10. Pictures of senior developers’ workstations greatly inspire budding developers. Can you please share some of the pictures of your workstation for your fans?

Jeff: I do have a standing desk at home, but I don’t use at much as I’d hoped to. However, almost daily, I carry my Macbook Pro with my GoldTouch ergonomic travel keyboard, GoldTouch foldable laptop stand and Apple Magic Mouse. These have been essential to me for good posture when on my laptop. The keyboard’s ability to fold in the middle helps the shoulders stay in neutral posture instead of forward bend. The stand is super portable and light, and keeps my head and neck tall and upright. See photos and links.

Cloudways: Jeff, What do you think about managed hosting solutions like Cloudways that provide a features-packed and highly optimized PHP stack enabled with Yii and other applications? Have you tested cloudways for Yii application hosting yet?

Jeff: As a solo entrepreneur, I’ve not yet had the resources to focus on higher level hosting management. As Meeting Planner grows, I’m sure we will consider migrating. Your focus on security is so important. Just as Yii helps close many common vulnerabilities, cloud-based server hosting runs the risk of reopening them. I also appreciate your API which offers flexibility in usage and scaling for the cloud era.

Thank you so much for promoting PHP as a premier platform and interviewing its community members and advocates so we can learn from each other.

Shahroze Nawaz: Shahroze is a PHP Community Manager at Cloudways - A Managed PHP Hosting Platform. He’s always in search of new frameworks and methods to implement them. Besides his coding life, he loves movies and playing soccer with friends. You can email him at shahroze.nawaz@cloudways.com