If you have been to any of the North American Drupal Camps, chances are you recognize Amber Matz. She is the production manager and a trainer at Drupalize.Me. Drupalize.Me is a site for Drupal tutorials and trainings. Amber, along with Joe Shindelar, travel to the various Drupal Camps and DrupalCons and currently run Drupal 8 Theming workshops.
How long have you been working with Drupal & what version did you start with?
My name on Drupal.org Amber Himes Matz and my account is about ten years old. I started with Drupal 6. I had been working in a non-profit organization in the webmaster’s office. I was doing a lot of PHP in MySQL and I was processing a lot of forms by hand - I was doing a lot of hand coding of forms and processing scripts. After about my 150th form I thought, “Someone must have figured something out by now. I'm sure I'm not the only one processing forms this way and getting sick of it.” That's how I found Drupal. I was completely blown away, and so excited because there was this starting point that was something where I didn't have to worry about user login in and authentication. I didn't have to worry about processing forms in the same way that I had been doing. What got me into Drupal is my disdain for writing PHP scripts to process forms.
How has your role in Drupal sort of evolved over the years?
I discovered Drupal because I was working in web development, and it seemed to be a good direction. Right about the time that I recommended that our organization adopt Drupal, I actually switched careers. I had been working in web development for about six and a half years. I went to massage therapy school in the evenings and worked full-time and moved away to Southern Oregon. I worked as a massage therapist in this little hippie town in Oregon called Ashland. I did freelance web development (WordPress and Drupal) for small sites and some business card design.
I was a massage therapist for about four and a half years and I moved back up to Portland. Basically, I stayed in massage therapy for another couple of years and then I just got tired of being poor. The economy had crashed, things were expensive, and income was really tight, especially in the spa industry. It had experienced the first downturn in 12 years, so that was kind of bad timing.
I decided I wanted to revisit Drupal, but I had been doing it wrong. For example, I wrote a search engine within a template file which is the big no-no, but it's was the only thing I knew how to-do. I discovered a Lullabot module development DVD; this was back when they did DVDs, and that just blew my mind. Drupal 7 had just come out as brand-new and Lullabot was doing the Webchick tour. It was Angie Byron and Joe Shindelar and maybe some other folks. They were doing workshops introducing people to Drupal 7, what changed from Drupal 6, what the new features were, and DBTNG which was the new way to access the database which was for me - as a PHP and MySQL developer - a big deal because it just made my life a lot easier. It just made doing dynamic content easier, so I decided to just bite the bullet. Even though I was feeling pretty poor at the time I thought “I have to get a flight down to LA and go to this workshop”. That kind of put things in motion that whole year.
That year, the Drupal Association moved to Portland. At this point, I had been on my own. I was a freelancer, and I was completely isolated from the community. I had seen the forums and seen the issue queue, but I just assumed those people were some kind of special breed of people. I felt like a total outsider; I had an embarrassing moment in IRC, and I didn't know how to interface with these people. When I found out that the Drupal Association had moved to Portland, I did some Googling for “Drupal in Portland” and I discovered that there was a local user group. This was on a Tuesday and it was the fourth Tuesday of the month which is when they have their informal meet up at a local pub.
I proceeded to have a major anxiety attack about going, showing up to this Meetup, totally new. I talked myself into it, and made it down there. I met a person, Dan Muzyka, who works at Phase2 now. Before that, he was working at this other place and they were hiring. I got an interview, I then subscribed to Drupalize.Me and totally binged on site building, views, and theming videos; you know, Netflix style binging, so that I could be conversant for the job interview. I was honest about what I did and didn't know, but at least I could talk about it. I could say, yeah, I know views to this point, but I don't know beyond this.
Anyway, I got the job. Six weeks later I was making views and working with clients. They put me on the phone with a client right away, because I could talk to people. That's always a great skill for a small agency to have, it’s like “oh you can talk to a client” okay… here, you’re a project manager, now you’re a developer. That was like two years of intense on-the-job skill building, and I learned everything from site building to really advanced views and theming. Our agency got a gig to theme the 2013 Portland DrupalCon site. My first contribution to Drupal.org was making those commits for the theme for the 2013 DrupalCon.
After two years of that intense job, I saw the opening at Lullabot. A former coworker had gotten a job there and he had been really trying to push me to apply. Of course, I was completely intimidated by that. It took maybe three or four months of convincing, and this job opening for a Drupalize.Me trainer popped up. This was my dream job because they had done so much for me and helped me get a job as a full-time Drupal developer. I loved the platform and I had used it - and I had used it to great success to get a full-time job. It liberated me from the economic situation I had been in, so I was very thankful for it.
That was four and a half years ago. I was focused on creating content and back then we did only videos for Drupal 7. Drupal 8 we do both written and video. I create the content, but I also manage our production pipeline and work with our Video Editor and QA.
2014 was when I really started getting involved with the local community and with event planning. My involvement with Drupal has gone from "desperate to get a better job" to getting involved with the local community. That's really where I’ve thrived. After getting this job with Lullabot, and then Lullabot Education, which is now a sister company, speaking at DrupalCons... That has really helped me emerge as a community at-large leader instead of just in the local community. So, that's kind of how my evolution is taking place. I know it's a long story but I love it, because it really got me out of the these jobs that I really hated to something that I really, really love. I'm still kind of pinching myself. It took 20 years to find a job that I really love, but I'm very thankful for it right now.
When did Drupalize.Me start training others on Drupal 8?
Right when Drupal 8 came out. The year before it came out, in fact, we weren't quite sure when it was going to come out, but we knew it was going to be "soon."
We made a decision to set aside five hours a week to learn Drupal 8, so we had that learning time and, out of that, you needed to come up with a blog post. We were really trying to write a lot of blog posts about Drupal 8. This was, you know, using Drupal 8 in some beta version or even maybe an alpha version, but I think once beta came out we started really hitting the blog posts pretty hard. Three weeks or so after, very soon after a Drupal 8 was officially released, we released our configuration management series. We wanted to be training as soon as possible.
We made a decision to do written tutorials, as well as video, because we wanted to commit to keeping our tutorials up to date. It's really expensive and hard to keep video up to date, so we could produce more content and have the ability to keep it up to date, especially with the semantic versioning and these minor releases coming out every six months, we needed that structure in place. It's a lot easier to copy and paste, it's actually possible to copy and paste, code examples from written tutorial than from video.
What have been YOUR favorite components to teach?
I think theming is a lot of fun. I love using Twig. What I like and what Drupalize.Me likes, it's really tight... I don't even know where the separation is at this point. I really enjoyed learning the Responsive Images module, that was really kind of gnarly, because responsive images are kind of gnarly. That was fun to try and untangle that. I got some help from various people, but that was kind of a fun puzzle to do.
What are some of the advantages of working with Drupal 8 over the versions you've worked with previously? Are there any tools that you find more helpful than others?
Theme development in Drupal 8 is much easier with out-of-the-box configuration than it was with Drupal 7. With Drupal 7, you needed some contributed modules and it did some funky overlays, so you could see what the template suggestions were. The interface was there, but it was really quite overwhelming, and it was really hard - especially as a beginner - to figure out what template to use. It just felt tricky and magical. With Drupal 8 and Twig debug, being able to just view the source of the page and see where this chunk of code is coming from, this is which template is being used, these are the theme hooks suggestions, these are the template names you could use - it's just right there, it's just brilliant to have that. I just think it just makes it so much easier with your setup of your site. You set up your settings, and then you have the information you need. You don't need a contributed module. It just makes it easier to teach and easier to learn it from any level, so I just love that.
If you could improve anything in Drupal 8 what would it be?
Right now, I am working on project with Jennifer Hodgdon called “Help Topics”. It's a sandbox project that we're trying to get into Drupal core. I’m trying to refactor it. She originally wrote it with config using configuration entities. We got some feedback from the community and I did a talk about it in the core conversation track at Drupalcon. The feedback was that we should be using the plug-in system. So, I decided to take that on. I've read a lot about it, I feel like I'm familiar at a high level with the plug-in system, but I really wanted to write the code. Because I’ve spent all my days now, for the last five years, writing tutorials, I don't do a lot of coding anymore, so I wanted to kind of get my chops back up.
There's a lot of abstractions in Drupal 8, it's a steep hill to climb at first, but once you get over that hill, it becomes easier. It feels like a juggling match and I still miss the hook system. Object-oriented programming is super fancy, and super great, and it definitely has a place in a big enterprise level robust system such as Drupal. But, sometimes you just want to implement a hook and be done with it. But, also, I've seen thousands of module files that are thousands of lines long and that's kind of a huge mess to deal with, so I see both sides.
As a PHP developer who learned on pseudo object-oriented code and had a break from that at a time when it was really emerging and then now has to go back and learn proper object-oriented PHP, it's challenging. It's hard. It's time-consuming. I understand why, but sometimes the abstractions get a little bit tiresome because it’s a hard thing to learn. I understand why it exists, and why it was implemented, and it does make some things easier once you know how to use it. It's just getting to that point that can be challenging; a little brain melting at times.
What advice do you have for those who have not made the jump from Drupal 7 to Drupal 8?
When you're planning a migration, you're trying to see if this is a viable thing, like can we migrate this Drupal 7 site to Drupal 8? Let's list all the modules, and let's find out if there's a Drupal 8 counterpart. You can find out some information that way, but there isn't going to always be a straight replacement for it in contrib. There may be a better way to do it in Drupal core, there might just be a completely different approach, or you don't need to use this contributed module anymore and that requires a lot more digging.
I think that it's probably different depending on what role you're in. If you're a site builder, or administrator type person, you're just trying to figure out what modules have been ported and want to know how to configure the site, so they can run this migration. Whether or not that's viable or not is a different process than if there are PHP developers or module developers on the team who can write custom code, who can see how they might implement it differently without needing a contributed module. I think there's just a different process and there might be a perception that their site isn't ready to migrate to Drupal 8. Maybe they feel Drupal 8 isn't mature enough for them, but it might just be a misperception or there's a gap in skills on their team to be able to do it successfully and that's valid. I think it's complicated.
Any migration is difficult, but there is a really great migrate system now in place and a great API. It's not easy-peasy, but there is a lot of help there and some things are really straightforward. But, with every Drupal site there's always the edge case. It's the mantra, this works for 80% of sites, but there's 20% that's that takes the longest to figure out and you know that's the sticky part.
What’s next for you?
I’ll be at GovCon with Joe in August, and we’ll be presenting our beginning Drupal 8 Theming Workshop. I’m reviewing some new tutorials and updates to our configuration management series which will include tutorials on deployment workflows. Also, Tim Millwood is writing some content moderation tutorials for us this summer. Content moderation is new to the latest version of Drupal so that should be exciting.
Drupal GovCon is August 22-24 at the Natcher Conference Center, National Institutes of Health in Bethesda, MD.