Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Elijah Manor, a Senior Architect at appendTo, speaker, blogger and former web dev newshound specializing in ASP.NET MVC and jQuery development.
Who are you?
My name is Elijah Manor and I’m a Christian and a family man. I work for appendTo as a Senior Architect and the Director of Training. The whole company of appendTo works remotely, so I am able to continue and live in Nashville, TN where my family is currently rooted. I enjoy blogging and I’m very active on Twitter.
What do you do?
Since I’ve worked at appendTo I’ve been a part of several different types of activities ranging from front-end architecture reviews, performing on-site and virtual jQuery trainings, and working with various clients focused on front-end consulting.
For the most part appendTo has drawn a line at the Web Service layer and its developers focus on the front-end portion. This gives freedom to our clients to use whatever technology they see fit in the back-end such as ASP.NET MVC, Ruby, Python, PHP, etc.
I’ve worked on several projects since working at appendTo, but I’ll highlight a couple of them here.
One project that I’ve probably been involved with the longest is a rewrite of a program to build HTML E-mails. In the new version you can build the document by dragging and dropping the various components that you desire, you can make inline edits as you would see it, and lots of other goodness. For advanced users we also support editing these components using a code-like editor. This project has been a lot of fun and also very challenging due to its complexity.
Another project I’ve worked on recently is a jQuery Mobile application to help employees accept signatures from clients when at remote locations. They needed something that was simple, but also provided offline support. Initially we used the HTML5 Application Cache to handle the static files and Web SQL to keep track of records that were added since the last sync with the server. To make dealing with Web SQL a little easier we ended up using PersistenceJS as an ORM around the database tables. As it turned out, the client needed tighter integration with the actual hardware so we switched to using PhoneGap as a wrapper around the jQuery Mobile application, which meant we didn’t necessarily need the HTML5 AppCache anymore.
What is your development environment?
My development machine is a MacBook Pro with a 2.66 GHz Intel Core i7 processor, 8 GB RAM, and a 500 GB Hard Drive. It is currently running Mac OS X Lion 10.7.3. The primary tools that I used to develop are Google Chrome, iTerm 2, Sublime Text 2, CodeKit, and Virtual Box.
I’ve been using jQuery Mobile a lot lately. During development I tend to use the jQuery UI Widget Factory quite often to build rich, stateful, and reusable plugins.
I’m starting to look into the following frameworks: Backbone.js, RequireJS, and KnockoutJS. Unfortunately, as of now most of my knowledge of these is purely academic as a result of reading articles, watching presentations, and reviewing documentation regarding them. I hope to start kicking the tires soon with these libraries and integrating some of them into my daily development practices.
What is your coding pet peeve?
How did you get started programming?
For the longest time I always thought I would be a Chemist. Somehow the thought of mixing all of those chemicals in flasks and tubes over a bunsen burner was appealing to me. As I was looking for an elective in High School I noticed they had some programming classes, so I decided to take a QBasic class. I ended up enjoying the class and decided to take Pascal during another semester.
After entering college and taking Organic Chemistry I soon became aware that I really wasn’t very good at lab work. As careful and exact I tried to be, my percent yield was consistently poor and as a result I became very frustrated.
In organic chemistry we memorized tons of chemical reactions. As the course progressed we would regularly map out a multi-step process taking a simple compound through various chemical reactions to create a new complex compound. I realized then that it was the logic of chemistry that I found enjoyable, which is why I liked the programming classes from High School so much.
Since I couldn’t see myself as a chemistry teacher and I couldn’t cut it as a chemistry researcher, I changed my major to Computer Science instead. This ended up being a great decision because I got to focus on the logic component that I loved, without the frustration of messy labs.
The developer community has greatly influenced my coding. I first started by following the blogs of developers that I respected such as Scott Guthrie, Scott Hanselman, and many more.
I was already scouring the internet for good technology resources and decided to share this information with others on Twitter. I started sharing daily tech news to those that might be interested. That eventually grew into something that I continued to do diligently for a long time.
Several years ago I started speaking at local events and then slowly made my way to region and national conferences. As of recently, I’ve slightly redirected by attention from gathering tech tweets to writing more content on my blog. For me the process of speaking and blogging forces me to dig deeper than I may have otherwise. The community is good about providing feedback and keeping things real.
What advice would you offer to an up-and-coming programmer?
I would encourage any new developer to find some technology that they love, find people that love the same thing, and then start asking questions and engage that community.
I would also encourage all developers to blog. Many developers don’t think they have something to share, but they do. If nothing else, you have yourself as an audience. My memory isn’t the greatest, so if I can blog a solution to some problem I had for a couple days then I can go back to my post to help later. Hopefully others find value from the posts as well, but if nothing else it helps log your progress and provide a history of your journey as a developer.
If you need more encouragement then you should try watching a video by Scott Hanselman entitled Social Networking for Developers - Part 1 - Every Developer Needs a Blog.