Life of a Consultant: Renovations by Randy

“You’re talking about the nonsensical ravings of a lunatic mind!” - Dr. Frederick Frankenstein, Young FrankensteinLife of a Consultant

I always had a dream of being a writer. I latched onto that dream after my other dreams died horribly: actor, director, producer, singer, and king of the world. Then one day, I was asked to write a blog. As one might expect, I was mortified into inaction. Am I ready for my close-up, Mr. DeMille? Do I really want to do this? Be careful what you wish for, indeed.

Alas, here I am, offering advice to new contractors, young and young-at-heart alike.

“I see people going to college for 14 years, studying to be doctors and lawyers. And I see people getting up at 7:30 every morning, going to work at the drug store to sell Flair pens. But the most amazing thing to me, is I get paid for doing this.” - Steve Martin, “Let’s Get Small”

You may be wondering: who is this guy? Then again, you may not. Well, for starters, I am a recovering engineer who has spent a bit too much time with the great thinkers of my generation. You know, guys like Mel Brooks, Steve Martin, Gallagher, and Sam Kinison. I spent the early part of my professional life as a consultant in the environmental engineering field after spending what seemed like 14 years in various engineering schools. But I never worked in drug store or sold Flair pens.

“What would the world look like if we all became what we wanted to be when we were children? Imagine a world full of cowboys, firemen, nurses, and ballerinas.” - Lily Tomlin, Saturday Night Live

I was the engineer who was always tasked to tackle the information technology needs of a project. For me, that was always the fun part of being an engineer: working on the non-engineering IT issues of the problem at hand. It was fun for me, so much fun that I never thought of it as a career path. I was bent on becoming a Professional Engineer, not on enjoying my life’s work. Eventually, the engineering market I was in crashed, and I reached a crossroads in my life. Of course, I saw that crossroads approaching faster than a tractor-trailer in the oncoming lane. That was when I came over to the dark side of IT. I realized that fun is an integral part of building success in one’s chosen field. I needed to enjoy what I was doing.

Welcome to MATRIX, young Jedi.

“There is nothing new under the sun.” - King Solomon, The Book of Ecclesiastes

If I had a notch in my belt for every engagement I have had with MATRIX…well, I would not have a belt. That sucker would be shredded. But what have I learned through the years? Hmmm, good question.

In the world of IT, everyone pursues a better mousetrap, but a good hunter has timeless skills. If I spent every waking moment learning every new framework, platform, and methodology that crawled out from under some rock, I would lose my mind, my health, my house, 3 cars, and 4 cats. I have found that while new technologies can lead to a cool, slick solution, they really do not solve a problem. They are just the means to an end, not the end unto itself. Staying current in emerging technologies is generally prudent to keep one’s skills sharp, but no one can know everything about everything. I do not know everything, but I know people who do. Google and StackOverflow.com are my friends.

“For you, it will do anything you tell me to tell it to do for you.” - Gus Gorman (Richard Pryor), Superman III

The most valuable, enduring skill I think a developer can have is the ability to help a client articulate their problem. The best developers I know are equal parts technologist and therapist. One would be amazed at how many clients either do not completely know what they want or need, or worse, cannot articulate what they know they need. I am not saying that clients are stupid. They are not. They have money. Focus on the logical definition, and the technology will unfold in due course. One cannot automate what one cannot articulate, regardless of the technology of choice.

One thing that I have thoroughly enjoyed throughout both my engineering and IT careers has been the opportunity to learn about many different industries and business sectors, ranging from refining and manufacturing, to insurance, finance and investment banking, to e-commerce, and automated traffic enforcement. Learning about the nature of your clients’ businesses builds empathy for the problems they face. While the semantics of those various industries vary widely, they have and continue to share common problems with respect to their information technology needs. Identifying those repeating patterns has been invaluable to me. After all, variety is the spice of life, as the saying goes.

Now, go forth, be fruitful, and multiply contracts! Your AE is watching…

About the Author: 

Randy Reno is a .NET Architect for MATRIX Professional Services. Since 1997, Randy has provided IT development and architecture services to a wide variety of clients in the Atlanta area. He specializes in business process engineering, systems integration, analysis and design of information solutions, as well as delivery of same. He enjoys mentoring to and learning from peers of all levels. Randy holds degrees in Computer Science from Kennesaw State University and in Chemical Engineering from The University of Tennessee at Chattanooga.

Posted in: 
Job Seeker

Big Data’s Big Impact in 2014? Tech Hiring

For those of us who live in the tech world, big data has been the big buzz for the past two years. The problem is very few companies have really figured it out. We all know the potential is limitless. It will help us better engage our customers, better understand purchasing decisions, streamline our supply chains, cut costs through new efficiencies and grow profit margins. I have even heard it is going to make me a better husband and father.  Ok, not really, I made that one up. But seriously, for every case study you read on a company leveraging big data effectively there are at least 10 other stories about companies struggling to implement it successfully.Big Data

Despite much of the unfulfilled promise to date, we are poised to see big data make a big impact on tech hiring in 2014. And I’m not talking about just a few new jobs for data scientists and Hadoop experts. I’m talking about leveraging big data to mine existing human capital data sets scattered all across the web that return easy-to-manage, powerful results accompanied with a super slick UX. The way we identify tech talent is changing forever.

How does it work?

Over the last few years tech professionals have begun to do more and more work online. Websites like StackExchange and Github have changed the game. Individuals and enterprises alike are using these sites every day to collaborate on projects of all sizes. Every piece of code, each question posted and each question answered leave a fingerprint. Other services  like Gravatar allow techies to seamlessly engage on hundreds of tech blogs and discussion boards all across the world. By leveraging big data capabilities, all of this activity can be searched, filtered and reported on. Even tweets glorifying new JavaScript frameworks are traceable through big data. Unbeknownst to most, technical profiles are being created and techies are being ranked amongst their peers. This is the reality of human capital management combined with big data. I know. It’s crazy, cool and creepy all at the same time.

What does it mean for Tech Hiring Managers?

Your candidate pool just got much larger. Companies can only hire the talent they can identify. If I don’t know you exist, I certainly can’t recruit you. Even with mass adoption of social media in the past few years, many techies have remained hidden. This not only limits their social presence, but ultimately makes them an untapped vein of talent for hiring managers and recruiters. Last week, an executive from a major US job board told me their statistics show more than 30% of IT professionals in the US still do not have a LinkedIn profile. That’s a big chunk. In 2014, many of these candidates will now be accessible. For the right job, almost anyone is open to being recruited. Managers will increasingly have access to all candidates who are qualified rather than what candidates were found that are qualified. Campaigns to target and engage these newfound techies will be created and many of them will take new jobs that previously would have remained hidden. It’s a powerful shift powered by big data.

Find me on Twitter - @JTITRecruiter. Tweet at me how else you think big data will change hiring in 2014.

About the Author: 

Justin Thomason is the Director of Recruiting for the MATRIX Western region. His expertise includes hiring, training, and leading world class recruiting organizations. With a focus on innovative delivery strategies, Justin's recruiting teams specialize in leveraging social media to develop lasting relationships with talented IT professionals.

Posted in: 
Hiring Manager

5 Ways to Stand Out AFTER the Interview

Even in a candidate’s market, you must learn how to stand out to the interviewer. With the large number of consultants interviewing for each new position, establishing yourself so as to stand out in the manager’s mind has become quintessential to being offered the job.

So, I want to address a few ways to follow up with an interviewer, and keep your name in their mind. This element of the process is often overlooked, or even viewed as optional. Sure, you're not required to follow up, but they are not required to give your resume another look, either. Here are five ideas that I have personally used, and seen fruitful returns from.5 Ways to Stand Out AFTER the Interview

1. The Classic "Thank You" Letter (or Email)
It seems almost too easy. A simple thank you card that reviews what you talked about, and why you feel optimistic about the position and/or company. The personal touch that you add to this will be what sets you apart from the 20-100 other applicants. The interviewer will also be impressed that you paid attention to the small details of the process. While less personal, an email would also work in some instances. If you like playing hard-to-get (which I do not advise), an email could suffice, especially if you include a question that may need to be answered quickly.

2. A Phone Call
Interestingly enough, following up 1-2 times a week during the interview process lets the manager know that you REALLY WANT the position. When I started my first position with the Atlanta Hawks, my manager told me that I gotten the job because I showed him how much I wanted it. He even laughingly said that it got borderline annoying at times. I was not insulted at all by this statement. The hardest workers in the world tend to be a bit pushy, but only because they know what they want, and will do whatever it takes to get it.

3. The Personal Touch
This has been my "go-to" since I started searching for jobs after college. During the interview process, pay particular attention to what you talk about. Does the manager like sports? Do they like music? Do they enjoy literature? Whatever it is, FIND OUT. Once your second or third interview is complete, put something together that he/she would appreciate, and would tell them that you cared enough to be attentive to the small things. This creates a link between yourself and the manager, and something that could set you apart in the end.
 Eg. For one position in particular, I was 1 of 2000 resumes competing for 10 jobs. It was surprising enough that I got the interview, but when I went in to speak with them, the interview was a 3-stage, 5 candidate interview process. I knew that I had to do something drastic. I had asked one of them about some literature that I could be reading that would prepare me for the position, and they suggested a book called “From Fantasyland to the Rat Race.” I then bought a small stuffed mouse, and made a jersey for it. I sent it to the manager with a note that simply read “I hope my rat race starts with the (company name).” I know how corny this sounds, and it may not work with EVERY manager, but try to get a feel for how intense the gift needs to be. This went over very well, and I ended up with the job offer.

4. Ask Questions (that you didn’t ask in the interview)
ALWAYS be prepared to ask questions. Better yet, do research so that your questions show that you know things that you shouldn't yet. This can be very impressive to managers, because it shows that you put in the effort to learn the company or industry. Nothing says “dedicated to this opportunity” more than putting personal time and funds into it.
That said, we all have a tendency to forget things when the moment arises. This is another reason that the follow-up is so important; you can ask those questions.
Plus, these managers do not want to be pressured to make the final decision too quickly. By devising a set of comprehensive and fact-based questions, you can add something to each call. Be honest. Tell the manager that you forgot to ask, or that you came across a new bit of information that you thought was interesting. This keeps your name in the manager’s head, and lets them know that you are still very focused on earning the position.

5. Do What You Say You Will Do
This will be, by far, the most important follow up. If you say that you will call them at 3, call them EXACTLY at 3. Nothing is more annoying than doing someone a favor, and having them thank you by wasting your time. I have personally seen managers ignore calls because they were 5-10 minutes late, and have no intention of calling them back.
Not only this, but when a manager hires you, he is expecting to get what you presented yourself as in the interview. Nothing is more frustrating to a manager than for a person to rave about their dedication, hard work, and organization, then having none of it when they begin the job. The best thing you can do is be honest in an interview, because the truth will come out. I know what you’re thinking; “But Kane, if I’m honest they won’t hire me.” Maybe it’s time to make yourself worth being hired, then. It is impossible to be what you told someone you would, if you do not believe it yourself.

Remember this: “Hard work beats talent every time if talent doesn’t work hard.”

About the Author: 

Kane is a former Technical Recruiter with MATRIX and freelance copywriter. He previously worked for the Atlanta Hawks and is a huge baseball fan, outdoorsman, and musician.  Connect with him on LinkedIn or like his page on About.me

Posted in: 
Job Seeker

How to Predict the Candidate’s Success on the Job

Wouldn’t it be wonderful if success on the job could be predicted and bad hires could be avoided all together? The truth is, there are some things that hiring managers can do to forecast the candidate’s future success, but it takes some planning to know what to look for during the interview. Let’s begin with the job analysis. How to Predict the Candidate’s Success on the Job

1.  Conduct a job analysis.

The purpose of a job analysis is to gather and organize information about the job that you are preparing to fill. The information you gather will be used to prepare a detailed job description, determine pay rate, and help you decide on training needs, as well as summarize expectations for successfully handling the job. As you prepare to conduct a formal job analysis you will want to be sure to avoid some of the major mistakes along the way that include:

•    Asking or requiring an untrained person to conduct the analysis
•    Not allowing enough time to complete the task
•    Using an unreliable process to collect data
•    Failure to involve the incumbent in providing information
•    Not getting upper management’s support in a commitment of resources to complete the analysis

2.  Prepare a list of job-related criteria.

After you have completed the job analysis you will be able to prepare a list of job-related criteria. These are the skills and qualities that a successful candidate must possess in order to meet the specific requirements of the job. This list should include “technical” requirements as well as non-cognitive criteria such as: leadership capabilities, interpersonal skills, objectivity in decision-making, and skills in problem solving. For non-exempt positions you may have criteria such as: computer skills, people skills, organized thinking and ability to get along well with others. Once you have identified the criteria against which you will measure candidates, you are ready for the next step.

3.  Develop questions that are related to the job criteria.

As you decide which questions you will be asking for each position, think in terms of which questions will elicit the information you need as related to each criterion. What you hear will not only help you make a sound and defensible hiring decision, but it will also help you predict future success on the job.

4.  Develop a simple candidate rating form so that you can quickly and easily evaluate each candidate against your specific job criteria. The form should include:

•    The job title
•    The candidate’s name
•    Date of the interview
•    A list of the job-related criteria
•    The specific things you are looking for as you evaluate the candidate against the job criteria. For example, if creativity is one of your criteria you may be looking for examples of creative endeavors on behalf of the candidate. You will probe for specific examples to support his or her claim of being a creative individual
•    Room for recording notes
•    A rating system which can be as simple as P for a positive rating, A for an average rating, and N for a negative rating. Or, you might assign point values to candidates as you rate them against each criterion. Your rating scale could be one to three or one to five.

5.  Don’t forget that past behavior is a predictor of future behavior. The more recent the past the more reliable the information.

This point is critical for predicting success on the job. Therefore, you will be asking for examples from the candidates’ recent past that show you that they can do what they claim. Many hiring managers find themselves short on information about the candidate because they don’t ask behavior-based questions that delve into the past. Instead, they ask hypothetical questions which in effect, invite candidates to fabricate their answers. Some hiring managers limit their questioning to what’s on the surface and they never attempt to probe deeper for the reasons behind the candidates’ decisions and actions.

6.  Keep in mind that the behavior that you are observing during the interview represents the candidate at his or her best.

If you are not happy with what you are seeing and hearing, it’s not going to get any better. A candidate who is dressed inappropriately or who has a difficult time answering your questions should raise a “red flag” in your mind. As you evaluate each candidate, recognize that he is putting his best foot forward. If that effort is not good enough, keep looking until you are satisfied that the individual you choose is the best person for the job.

About the Author: 

Carol Hacker is the former Director of Human Resources for the North American Division of a European manufacturing company, Employee Relations Manager for the Miller Brewing Company, and County Office Director for the US Department of Labor. Headquartered in Atlanta, GA, Carol has been the President and CEO of Hacker & Associates since January 1989. She specializes in teaching managers, supervisors, team leaders, HR professionals, and executives how to meet the leadership challenge. Carol is the author of over 400 published articles and 14 books including the bestseller, Hiring Top Performers-350 Great Interview Questions For People Who Need People. She earned her BS and MS with honors from the University of Wisconsin. She can be reached at www.carolahacker.com or 770-410-0517.

Posted in: 
Hiring Manager

Looking for an Innovative SPA Framework? Meet Durandal

With so many SPA-style frameworks emerging in the last couple years, you may wonder what makes Durandal unique or different. Why would you want to choose it for your next project? I’d like to share a few key points to that end…Durandal

A Natural Alliance
Rather than re-invent the wheel, Durandal starts by combining and building on top of three existing libraries. Each of these libraries is very mature, has a large, active community and was strategically chosen because it meets one specific need very well. First, we start with jQuery. In some ways you can think of it as a better DOM or the “missing JavaScript core library”. Next, we add in RequireJS, which gives us rich, declarative JavaScript modules. Finally, Knockout provides us with powerful two-way data-binding.

With these three libraries as a foundation, Durandal constructs a thin integration layer and transforms them into a powerful SPA framework. In addition to strategically connecting these libraries, Durandal adds new functionality. Some things Durandal adds are: a client-side router, rich view composition, screen state management, pub/sub, simple conventions, modals/message boxes and more.

Maximum Skill Reuse
If you’ve worked with any of the three libraries listed above, then you already have skills you can leverage on a Durandal project. You already know part of the framework. This makes it relatively easy for existing web developers to get started. The time you’ve invested learning the three core libraries on prior traditional web projects translates directly to Durandal apps. Choosing Durandal is almost a “no brainer”.

Suppose you’ve never worked with jQuery, RequireJS or Knockout. Is Durandal worth your time to learn? Why not pick a different SPA framework that is “all inclusive”? The simple answer is YES, it is well worth your time. Here’s the longer answer: Almost every major SPA framework has a way to work with the DOM, create modules and declare data bindings. No matter what framework you pick, you are going to have to make the effort to learn these things both conceptually and in terms of the chosen library’s API. The difference with Durandal is that we get those capabilities from other libraries which were originally designed for traditional web development. That means that when you learn those things in the context of Durandal, you are also learning things you can directly apply to traditional web development too. It’s a huge return on investment.

Powerful Modularization
All Durandal code is modularized based on the AMD standard, which is supported by our use of RequireJS. To my knowledge, Durandal is the only SPA framework based on this de-facto standard for JavaScript modularization. As a result, Durandal’s capabilities in this department far outshine everything. Because we use the AMD standard, there is no presentation-framework-specific code required to create modules. This not only keeps your own code clean, but also makes it more portable: You can write a Durandal module for use both in a SPA and in a traditional web application where Durandal itself is not even used.

But that’s only the beginning of the advantages…

The AMD spec is pluggable via the notion of loader plugins. These plugins can acquire and transform any resource in any way and supply it as a module dependency. Want to load some JSON data? You can do that declaratively. Want to load CoffeeScript? You can use a loader to compile it on the fly if you want. You can write loaders to do just about anything. Most of Durandal’s view engine is in fact supplied by the text loader plugin. What’s the really awesome thing about loaders? They can execute code both at runtime and at build time. This means you can have a loader optimize content as part of a build process, but not have to change your application code at all. It’s extremely powerful.

Speaking of the build process….RequireJS supplies a build tool called r.js. It essentially takes a list of modules as inputs and spits out 1-n optimized files. For a small or medium-sized application, you might choose to build to one optimized file. For larger apps, you might choose to build a shell with each feature area optimized into its own file…and download features on the fly based on live user usage. That and many more deployment scenarios are what this tool was designed for. On top of that, there are many higher level build tools that work with RequireJS. You can use Grunt, Mimosa or even Durandal’s Weyland to automate the process.

Language support for AMD is also great. If you are using CoffeeScript, you’ll quickly notice that it’s function and block syntax makes defining modules really clean. But an even better  experience is had when using TypeScript because it has direct language support for the concept of modules. When you compile your TypeScript code you just tell it that you want AMD modules and it will spit out JavaScript ready to work with RequireJS. But that’s not the end of it. The work on TypeScript modules, RequireJS and the AMD spec has been influencing the next version of JavaScript directly. RequireJS is already planning to provide a direct migration path for code written with it today to the native module implementation of the JavaScript of the future.

Beyond Unobtrusive
Because Durandal relies on AMD modules and a lite set of conventions, you actually don’t see Durandal itself in your code very much. Yes, you use its APIs to configure the framework and set up your application’s router, but beyond that you don’t invoke Durandal much at all. You won’t be calling into Durandal to create modules, controllers, models or anything else. You don’t need to inherit or extend from any special classes or objects. Most code in a Durandal application is vanilla JavaScript and you could take it out and use it without the framework at all. It’s particularly powerful when used in combination with the observable module, which allows you to also remove all traces of Knockout code.

Flexible Composition
Not only do you need the ability to break down complex applications into small modules, but you need to be able to “compose” these small pieces together again at runtime. The declarative features of the AMD specification enable you to do this with your JavaScript objects in much the same way that you would leverage IoC and even simple name-spacing in other languages. The result is powerful and flexible object composition right out of the box.

But you don’t just need to compose objects, you need to compose views. Fortunately, Durandal has the most powerful, declarative view composition engine available in any framework today. Here’s a short list of some things you can do declaratively:

  • Statically/Dynamically compose a child view into a parent, allowing the binding context of the parent to be applied to the child.
  • Statically/Dynamically compose a child view with it’s own binding context into a parent view.
  • Statically compose a model with a dynamically changing view.
  • Statically compose a view with a dynamically changing model.
  • Statically/Dynamically compose in a view while overriding parts of the view with custom HTML on a case-by-case basis in the parent. It can have it’s own binding context or inherit its parent’s.

These are just a few examples of what can be done. Keep in mind that in all these cases the composition can be configured with transition animations, optimized per composition site to cache views or be driven entirely by static or dynamically changing data.

Elegant Asynchronicity
Building rich clients usually involves asynchronous requests for data or other resources. Durandal was designed to handle this with elegance from the very beginning. To that point, Durandal uses promises throughout. Durandal’s own API exposes all potentially asynchronous commands via promises. Internally, Durandal also understands when you use promises and it can therefor cause the binding system, router and other key features to respond appropriately. Out of the box, our promise implementation is provided by jQuery. However, existing site documentation explains how you can switch that out in favor of your favorite promise library, such as Q.

If you are targeting an ES5 browser, you can then enable the observable module. When this module is active, it teaches the binding system to data-bind directly to promises. The result is that you can set up a foreach binding over a promise for an array of data. In your own code, you don’t have to handle the promise yourself at all.

Navigation & Screen State Management
Durandal’s router is perhaps the most powerful router available today. It is configured with simple route-to-module mappings but can also be configured for convention-based routing. It automatically handles bad routes, supports hash and push state navigation and provides a lot of capabilities around data driven routes such as parameters, optional parameters, splats and query strings. Additionally, we support the notion of “child routers” allowing you to structure and encapsulate entire areas of your application, reducing the overall complexity of the navigation structure.

In real applications you need more than just routing though. You need something which is occasionally called “screen state management.” What is that? Imagine you’ve got a customer filling out a form in your application. Before they save, they attempt to navigate to a new screen. The current screen is in a “dirty” state and the application may want to prevent the user from navigating away…or at least temporarily halt the process and ask the user what it should do with the data. In Durandal, the router supports something we call the “screen activation lifecycle” which allows any screen to synchronously or asynchronously control flow into and out of screens. But this functionality is implemented so that it’s decoupled from the router itself, thus Durandal also uses it to handle the lifecycle of its modal dialogs. In fact, you can use it anywhere in your app, even controlling fragments of a screen and individual component activations. This is a complex bit of functionality to get right but it is critical in real applications. Most frameworks just ignore it entirely, but not Durandal.

Enterprise Ready

Consistent Testability

SPA’s can be complex code-bases and such projects need to be tested. Durandal has this area covered well. Because we’ve built on RequireJS and all of your code is built as AMD modules, you can easily fake, mock, or stub any part of the system. This applies both to your code as well as all of Durandal’s modules. The test strategy is consistent.  In fact, if you want to see how to write unit tests for your application, all you have to do is fork the Durandal test suite, change some file paths and you are up and running with a test setup for yourself. If you are interested in testability, keep an eye on the site. Our upcoming release will contain additional documentation showing multiple strategies for testing.

SEO Optimization

From the beginning of work on Durandal 2.0, SEO was considered. Interestingly, much of this work has to be handled on the server for a SPA. That said, Durandal supports all the necessary client-side hooks and configuration options to enable full Google crawling of your application. Our next site release, coming this week, will show you how to do it.

Globalization and Localization

Modern applications need to be made available to diverse people groups. Today Durandal is being used by companies all over the world who are rolling out apps to multiple cultures. Since Durandal was designed to be pluggable, it actually only takes a few minutes to plug a localization solution into the binder. With just a few lines of code centralized in one part of your code-base, you can ensure that everything displayed on the screen is properly localized; no hassle, no fuss. As part of our release this week, you’ll see some new documentation showing you just that.

Responsible Versioning

The Durandal project follows Sematic Versioning with great rigor. APIs do not break on minor or patch releases. Minor releases contain only additions and patches contain only bug fixes. Only major version changes signal potential breakage. Those aren’t going to happen very often. When you depend on Durandal, you know exactly what the version numbers mean and what you can expect when updating. The docs from previous versions are made available perpetually and conversion guides are provided for major version changes. We handle integration of the dependent libraries for you as well.

Commercial Support and Training

Durandal has an active community that is happy to help you learn the framework as you work through your application’s unique challenges. Much discussion is taking place already in our Google Group as well as on Stack Overflow. However, if that is not enough for you, or if you or your business need a safety net, Durandal has a few options available to you.  First, we have commercial support. This is a monthly subscription you can cancel any time and is priced based on the team size. We usually have clients purchase the commercial support for the few months they are working on the project and then discontinue after a successful rollout. It’s a great bargain compared to traditional consulting prices and turnaround time is very good. Additionally, my company provides customized training either delivered in person at your place of business or virtually through a series of web meetings. Pricing is usually negotiated on a case by case basis depending on the depth, time length and number of students. Finally, in the next couple of months you are going to start seeing official video training become available. Some of this will be free and some of it will be available for a reasonable price, providing you not only with a way to learn directly from me, but also to financially support the project.

Conclusion
While there are several SPA frameworks available today, only Durandal has all the benefits and characteristics listed above. But not only is it one of the most powerful and flexible options today, it also provides you with a great return on investment for your non-SPA web work. On top of all that, it’s enterprise ready and the kind of training and support you would expect is readily available. And this is just the beginning. Wait until you see what’s next…

About the Author: 

Rob Eisenberg is a JavaScript expert and .NET architect working out of Tallahassee, FL and he is the President of Blue Spire Consulting. Rob got his start with computer programming at the age of nine, when he thoroughly fell in love with his family's new Commodore 64. His fascination with programming started with the Commodore Basic language, then moved to Q and QuickBasic and quickly continued on to C, C++, C# and JavaScript. Rob publishes technical articles regularly at devlicio.us and has spoken at regional events and to companies concerning Web and .NET technologies, Agile software practices and UI engineering. He is coauthor of Sam's Teach Yourself WPF in 24 Hours and is the architect and lead developer of the Durandal and Caliburn.Micro frameworks. When not coding, Rob enjoys swing dancing, making artisan cheese and playing drums. Follow him on Twitter @EisenbergEffect

Posted in: 
Development