Click here to Skip to main content
15,879,326 members
Articles / All Topics
Article

A Coder Interview With Elijah Manor

Rate me:
Please Sign up or sign in to vote.
4.73/5 (9 votes)
4 Apr 2012CPOL7 min read 19.5K   8   3
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 M

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.

My focus for the past couple years has primarily been on front-end web development only. My projects exclusively utilize the fundamental browser technologies of HTML, CSS, and JavaScript.

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.

Some of the JavaScript libraries that I use on a regular basis are jQuery, jQuery UI, AmplifyJS, Modernizr, Underscore.js, jQuery Mobile, and several of Ben Alman’s jQuery plugins (doTimeout, getObject, and Outside Events).

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.

What new tools, languages or frameworks interest you?

On a recent project I introduced CoffeeScript and SASS/Compass. It took a while to get used to the extra compilation step during development, but it quickly became an enjoyable process. There are many things that I enjoy about CoffeeScript, but I have come to the conclusion that in my next project I’ll stick to using plain old JavaScript instead.

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?

Code consistency is one of my big pet peeves. I’ve picked up the jQuery Core Coding Conventions and since then my feel for what JavaScript should look like is very specific. I feel compelled to change code that I see that doesn’t conform to that standard. Thankfully, the developers at appendTo typically abide by these standards so the code we check in has a very similar look and feel, which is nice.

As most of my development these days uses JavaScript, my preferred bracing style is K&R. Due to something called Automatic Semicolon Insertion in JavaScript, it can be dangerous to use the Allman style of braces. For an example of where you can get in trouble check out Dave Ward’s post In JavaScript, curly brace placement matters: An example.

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.

How has the developer community influenced your coding?

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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer CodeProject Solutions
Canada Canada
The CodeProject team have been writing software, building communities, and hosting CodeProject.com for over 20 years. We are passionate about helping developers share knowledge, learn new skills, and connect. We believe everyone can code, and every contribution, no matter how small, helps.

The CodeProject team is currently focussing on CodeProject.AI Server, a stand-alone, self-hosted server that provides AI inferencing services on any platform for any language. Learn AI by jumping in the deep end with us: codeproject.com/AI.
This is a Organisation

4 members

Comments and Discussions

 
Question"I would also encourage all developers to blog ..." Pin
Brendan Costigan6-Apr-12 0:20
Brendan Costigan6-Apr-12 0:20 
GeneralGood interview Pin
Slacker0075-Apr-12 4:46
professionalSlacker0075-Apr-12 4:46 
GeneralMy vote of 5 Pin
Justin Cooney5-Apr-12 4:34
Justin Cooney5-Apr-12 4:34 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.