The Artisan Files: Eric Barnes
Published on by Eric L. Barnes
This is a special edition of the Artisan Files series. Over the past few weeks I’ve had several people ask me to be interviewed and it wasn’t something I even considered. For this interview Taylor Otwell volunteered to ask the questions and if you have a question that wasn’t asked just leave a comment.
Can you tell us about yourself?
I am 36 years old and live just outside of Charlotte, NC. Married to an amazing wife and have two daughters (5 and 4).
I got started into the world of development sometime between 1999 and 2001, my memory of the exact moment is vague. It all started for me when I worked at a motorcycle dealership and we needed an online presence. We originally hired it out and was a delivered a monsterous site that was entirely built with Frontpage and it’s extensions.
I took on the task of keeping the site updated and at some point I broke the Frontpage extensions. I believe I eventually fixed them but that started a pattern until I finally had enough and decided this site needed a database.
With no idea what I was doing I asked really dumb questions on various forums until I got the advice that PHP and MySQl would be the simplest to learn and would meet my goals.
I remember being so overwhelmed. You had to learn so much before you could start building an app that it was crazy. For simple CRUD app to manage inventory I had to get the basics of MySQL, PHP, Apache, HTML, FTP, and some sort of image editing app. Because I wanted to do this fast I found that Dreamweaver would build out PHP for you and even make integrating with the database easy.
I used Dreamweaver to build the first app and it actually worked! Deploying that first version and seeing it live on the web was so exciting and that is when I decided I wanted to do this as a job.
From here I continued to fumble around and still to this day have moments where I feel like I haven’t learned anything. Our industry is forever changing and very humbling. Even the people we look up to do not know everything, and never will.
Using Dreamweaver really shielded me from the code and at some point I did have to go into the source. I was lost. To remedy this I bought an intro to php book written by Kevin Yank. I don’t believe this title still exists but it was so basic and clearly written that it helped me understand.
I feel like if I started today the initial learning time would be reduced so much. I also think a lot of developers forget just how hard everything was in the beginning.
What inspired you to start a weekly Laravel newsletter?
I decided to start the Laravel newsletter back in May of this year. My inspiration came from the fact that I was sharing so many articles on the site that I felt the average person wouldn’t have time to keep up with them. So by creating a weekly digest subscribers can quickly skim the list and stay up to date with all the interesting information about Laravel.
Another goal I had with the newsletter is that I didn’t want it to be just a list of links. Without a doubt, that would be easier for me but I felt that didn’t add a lot of value for subscribers. So to make it a unique experience I try and write a personal anecdote each week and share things I’ve found interesting outside the Laravel community.
One thing I never imagined was the time it takes to keep this newsletter running. Because it’s weekly, I can’t just sit down and write several issues. The first few issues took me around 7 or more hours, mainly because writing is hard and I wanted it to be perfect.
Now I’m able to write one in about 2 hours. I still have writers block a lot of weeks but I’m working on getting better in that regard.
If you haven’t joined yet, please do. It would make my day!
What are your “must-have” Mac and iOS apps?I try and be as minimal as possible, but you wouldn’t know that by looking at my /applications folder. I have a weird issue where I must have every new shiny app. This list is my current “must-have” but it’s likely to change at any time.
- Ulysses III
- Sublime Text
- Sequel Pro
- Navicat for Postgres
- HipChat, Telegram, Mac Messages
- Day One Journal – For memories
- Houdini – Automatically hide apps not in use
- Sketch – Easier than PhotoShop
- Flux App – So my eyes don’t bleed
- Spectacle – Center my window
- Youversion Bible
- Day One Journal
- Sleep Cycle
My typical daily workflow is to start with PhpStorm, Terminal, and Chrome Canary for development. I use Safari as my default browser. Then if I need to go into the database or anything then I fire up the app I need.
I’d like to also note that I use the default Terminal with mac. I have iTerm2 but I’m far from a power user and either suits my needs. I do use ohmyzsh and couldn’t live without it.
Throughout the day I keep a check on Twitter with Tweetbot and save interesting links to Pocket. These are then typically reviewed at night and if it’s Laravel related and interesting I’ll create a new post on this site from it.
I stay up with other news from RSS and breaking information on Twitter by utilizing several topic lists.
For writing I’ve switched completely to Ulysess III on the mac and it’s companion app Daedalus Touch on iOS. Most of my writing is in the Mac app, and when I’m satisified with the text I export the markdown and paste into a new post. The iOS app is handy for when I’m walking the dog on my lunch break and I have some bright idea. I open it and just add to an “Ideas” page.
I review this list occasionally and if I want to pursue it then I move it to an omnifocus task.
My phone isn’t really used as a phone. Sure it makes calls but I talk on it less than an hour a month. When I’m on the go or walking the dog I use it for photos, social, reading, and playing games. In fact it’s the only camera own, I love the simplicity of just having everything I could really need in my pocket.
I do own an iPad but I only use it for reading, watching movies, and occosional writing. In my ideal world iPad’s would be more powerful for web development and it would get more use from me.
Name 3 things that you think makes a successful programmer.
This is a hard question for me. In my past work experience I’ve been pretty much the only developer. It wasn’t until I started working with you, Chris, and Ian that I got introduced to others.
Here are three things that I think are important:
- Team Player
- Giving back
Passion for the work you put out. This is really no different than any other job, if you have passion and enjoy your work it will show. If you hate getting up every morning and doing programming then find another carrer path. Life is too short to not enjoy what you are doing.
Being a team player is also huge. You can be a “rock star” or “expert” but if you are self centered then I wouldn’t want to work with you. If you make a mistake own it. If a co-worker makes a mistake and you catch it, help them.
Giving back is the final area that will help your grow as not only a programmer but as a person. This can be anything from helping others, contributing to your favorite projects, releasing open source, or writing about your experiences. As you become experienced you will be inspiring, and as a beginner you will gain guidance from others.
If you were going to build a fresh web application from scratch, which tools / libraries would you use?
I think this would depend on the scope of the app. I have a new app that’s been on mind a lot recently and I would use the following tools:
- Laravel for the backend
- Bourbon and Neat for the css.
- Angular for the frontend.
Then for libraries some of my favorites that I use on almost everything are:
What amazes me is that Laravel itself includes almost all the features you need for typical apps. From download to deploy is the tagline, that is literally true. Having to go outside of the core is rare and only when you have unique needs.
I know I mentioned Angular above but I’d also like to build an app using pjax or a turbolinks for PHP. I’ve seen a few big names championing this lately and I think it would be an interesting way of building an app.
What is your favorite conference talk you have ever heard and why?
This is difficult. I’ve always gotten more out of the people I meet at conferences than the actual talks.
Tech talks are inherintly hard because the speaker never knows the knowledge level of the attendees. If it’s a coding talk then it’s easy to leave people out by talking over their heads, and if it’s to simple then it bores the more advanced.
In my perfect world all talks would be turned into epic blog posts after the event. A lot of conferences do offer videos but I would much rather read it at my own pace than watch.
With that out of the way I would rank Greg ￼Baugues at Laracon as the best I’ve seen. The content didn’t apply to me directly but it was such a polished talk. He does have an advantage as this is a talk he has given a number of times before but you can learn so much by watching it.
The talk had a great story, he commanded the stage, and had the audience drawn to his every word. It was powerful.
My advice to speakers and those that want to get on the speaking circuit is to tell a story, inspire, and don’t use your slides as a crutch. Watch Greg’s and study the ways he delivers the content.
I know from my limited speaking experience that these are hard to get right. Especially telling a story about dry boring code topics :)
What is your favorite Laravel feature?
My favorite part might not be considered a feature, it’s the projects vision. I love the way Laravel is powerful, yet accessible. The syntax and api is also a huge feature. I think developers tend to forget to design for the end user first, this makes such a difference in user experience.
Now for a real feature…
I’ll just go on the record and say, “I LOVE THE FACADES”. Bring the hate, I don’t care. :) I also really like Eloquent and Blade. I guess it’s a toss up really.
I’d like to thank Taylor for doing this interview and you for reading. If you have a question that wasn’t answered leave a comment below. Consider this the first Laravel News AMA.