From the Other Side of the Interview

Part of my job includes interviewing candidates for developer positions (Flex, Java, ColdFusion, etc.). In the past two weeks I've sat through some of the most painful ones I can remember; not because of the candidates' skills, but their presentation.

Some examples:

  1. One person came in with a one page resume. Five typos, including one in the title. They claimed to be great at communication and document creation. Uh-huh.
  2. During one of the longer interviews, the candidate openly stretched and yawned as he formulated the answer to a question. Sorry to keep you awake.
  3. One claimed to be an expert Java developer. I asked what a Singleton was. They are not an expert Java developer.
  4. Another claimed to be an expert at Flex communications. I asked what an AsyncToken was. They are not an expert at Flex communications.
  5. Yet another said they were a ColdFusion expert, but had not tried that new-fangled CFC stuff yet. They are not a ColdFusion expert.

So some gentle advice for those seeking employment from someone who's been on both sides of the interview table:

  1. Spell-check your resume. Then get someone to read it over for mistakes. Then get someone else to read it over for mistakes. Then get someone else to read it over for mistakes.
  2. Don't exaggerate your skill set. I'll see through it, as will any competent technical interviewer. And they'll likely be royally pissed if you wasted their time with any blatant dishonesty.
  3. Watch your manners. I know it's a nerve-racking experience, but you're presenting yourself to people for the first time and you've got one shot to make a good impression. Something like an open yawn is offensive on many levels.
  4. The interviewer wants you to do well in the interview. We want to fill a position and we hope you're the right candidate for the job. If you sense the interviewer does not have this attitude, think about whether this company is the right fit for you.
  5. The interview is a conversation, not an interrogation. Ask good questions about the company and your future role. We like that. But also listen carefully to our questions and answer them directly. If you don't know the answer, then say so. It's easier to overlook ignorance than dishonesty.

Hope this helps somebody. Hopefully the next person I interview;)

Oliver

Speaking at MAX 2008

I'm happy to announce that I've been asked to present a session on Advanced Flex Builder 3 Tips & Tricks for MAX 2008 in San Francisco this November. A topic near and dear to my heart! Hope to see you there!

An AsyncToken Primer

Do you know what an AsyncToken is?

Answer 1: The first thing I ask a Flex interviewee who claims to be proficient in Flex;)

Answer 2: The official docs describe it like this: "This class provides a place to set additional or token-level data for asynchronous RPC operations. It also allows an IResponder to be attached for an individual call. The AsyncToken can be referenced in ResultEvent and FaultEvent from the token property."

A bit confusing if you're not familiar with the asynchronous nature of remote calls in Flex. I've run into a lot of folks who don't know about this handy class so I'll try to shed some light.

Whenever you make one or more external calls from your Flex/AIR application, you never know if or when those calls will return results (or faults) nor the order in which they will return. Even though you call remote objects "RO1", "RO2" and "RO3" in order, they may return in a different order. You might want different handlers for these results as well.

One way to keep track of the calls is to assign an AsyncToken to each call.

Instead of making your remote calls like this:

myRO.myRemoteMethdod( )

You would do this:

var token:AsyncToken = myRO.myRemoteMethdod( )
(Make sure you import mx.rpc.AsyncToken)

You now have a variable, "token", which represents this particular call. Now you can assign token its own result and fault handlers like this:

token.addResponder( myResponderClass );

...where the myResponderClass class implements IResponder. Implementing IResponder simply means defining two methods with the following signatures:

public function result(data:Object):void
public function fault(info:Object):void

So you can set the result and fault handlers for your remote calls at call time rather than hard coding them into your RemoteObject, HTTPService or WebService tags. This is exactly the way Cairngorm and other microarchitectures operate.

A final cool feature of AsyncToken is that it's a dynamic class, which means that you can add properties to the token when you make the remote call, then read those properties back in the result/fault handlers.

Give it a try and let me know what you think!

New Toronto Group Now Hiring!

Looking for work in the Toronto area? New Toronto Group (my employer) is now hiring!

If you're a Flex developer, or a Java developer looking to get into the RIA space we'd love to hear from you. We're looking for consultants, developers and trainers, so if you're interested in any or all of these, please email a resume and cover letter to:

Ed Van Beilen
New Toronto Group
edv _at_ newyyz.com

Hope to hear from you soon!

Simeon Bateman's EasyMVC

Happy new year, Flexers!

I just came across Simeon's EasyMVC site at http://projects.simb.net/easyMVC/. EasyMVC is a Flex framework for those smaller apps which don't warrant a full Cairngorm implementation. I highly recommend that if you're struggling with learning Cairngorm or find it too heavy for your purposes, take a look at this framework. Once you understand it, you may find a transition to Cairngorm easier when you need it.

Great work, Simeon! Thanks for sharing this.

<mx:Shameless>
Of course, if you're really struggling with Cairngorm, take the new course from New Toronto Group (my employer), written by yours truly;)
</mx:Shameless>

BlazeDS!

For those who may have been hesitant to use LiveCycle Data Services, Adobe has just announced the release of BlazeDS, an open source version of LCDS (formerly FDS). They have also published the AMF spec. Check out both on labs:

http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs%5Fblazeds

I'm downloading now and will blog about the installation in a future post. The download even includes a Linux version.

Thanks, Adobe!

Flex Builder 3 beta 3 now on Labs

Get it while it's hot: http://labs.adobe.com/.

Update: Hey, where's the Linux drop? Waiting patiently...

Flex Runtime CSS

I got a couple of questions about this at Flex Camp so I thought I'd put together a quick example of using runtime CSS. The code is pretty simple. The key is to remember that the CSS you load at runtime must be compiled into a separate SWF file; one for each style sheet.

In Flex Builder, simply right-click on your CSS file and select Compile CSS to SWF.

Also remember that when specifying the style sheet in your StyleManager.loadStyleDeclarations() call, refer to the SWF, not the CSS file.

Check out this sample. View Source is enabled. NOTE: Ignore the error and select RuntimeCSS_mxml.html to see the main source code. Source code is downloadable from the bottom-left corner of the Vew Source screen.

Cairngorm Course Now Available

As stated in an earlier post, I've been working on a Cairngorm course for New Toronto Group (my employer). I'm happy to announce that we're now offering the course, with the first public class taking place December 6th and 7th, 2007.

I'll be teaching the first few classes myself and then pass it over to our excellent instructors. Being the largest Connect re-seller in Canada, it's a no-brainer that we'll offer the course virtually as well.

This is the first full course I've ever created and I was surprised by the amount of work required. I'm looking very forward to getting in front of an audience and seeing if I've timed things correctly. It's a two-day course with two labs at the end; one in which you add to an existing Cairngorm Flex app, and another where you build a simple app from scratch.

The course is not listed on our site yet, but you can contact our education rep and get more information.

Hope to see you in the next few months!

Toronto Flex Camp 2007

I'd like to thank everyone who attended Toronto Flex Camp 2007. It was a great success! Special Kudos to Mike Potter from Adobe and Ed Van Bilen of New Toronto Group for helping to make the event what it was. We were able to provide lots of SWAG, some food and drinks and lot of information about Flex, all for the reasonable price of $0!

Thanks also to our community speakers. There's nothing like hearing stories from the real world.

Attendance was much better than anticipated; we had to cap it at 200 but still had many on the waiting list. We gave away 3 iPods courtesy of our community supporters Octopz and hotbanana.

If you missed it, we'll be posting the recordings on the torontoflex.org site shortly.

We are already talking about another camp in the new year. Next time around: more food (you know who you are), more info on LiveCycle Data Services.

Let us know what you'd like to see in the way of content for the next one.

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.8.001.