How Recruiters Can Hire Flex Developers

The following article is for both recruiters, and interviewers. After doing hiring, getting hired, and helping facilitate others getting connected, there seems to be a lot of confusion in our industry about how Flex Developers work. The following article describes the different types of Flex Developers, their rates, and how to interview & hire them.

Please keep in mind the following is full of (accurate) generalities to make things more concise and easier to understand.  The Flash/Flex community is very diverse, and as such there are many exceptions to the below.

Nomenclature

W2: You’re employer takes taxes out of your paycheck.

1099: You are responsible for all taxes owed on your revenue.

W9: Like 1099 for companies working with other companies (as opposed to an individual like 1099). Also know an as Corp to Corp/C2C.

What is a Flex Developer?

A Flex Developer is a programmer who utilizes the Adobe Flex SDK to create either web based applications, often called Rich Internet Applications, that run in Flash Player or desktop applications running in the Adobe AIR runtime.  They code in the ActionScript 3 programming language, and often utilize Flash Builder 4 as their IDE.  Their work usually ends up being a SWF file that runs in the Adobe Flash Player, and is accompanied by a little HTML and JavaScript.

A lot of Flex developers come from traditional programming/computer science backgrounds, as opposed to art/design agency backgrounds like Flash Developers do.  Combined with the fact that the Flex community is diverse as well as continuing to utilize other technologies, many will utilize other IDE’s or a combination there of.  These include Flash Develop, FDT, Emacs, and IntelliJ amongst others.

They also utilize MXML and CSS in their work, and sometimes utilize other design tools such as Adobe’s Photoshop and/or Illustrator to integrate designs into their work.  A select few make use of Flash Catalyst to integrate complex designs into their Flex work.

Flash is not Flex

While Flash Developers also code in ActionScript 3, and deploy SWF’s to the Flash Player, they are not Flex Developers.  Flash Developers will utilize the Adobe Flash IDE, traditionally a design & animation tool turned hybrid programmer tool.  While many are capable of creating many of the same applications that Flex Developers can create, the clientele, not the developers are the defining factor here.

Flash Developers tend to work on smaller projects with shorter time frames, and often have a lot more design.  The projects’ development span from 1 day to 6 weeks.  Most do not have experience creating Enterprise applications.  Enterprise applications refer to the length of development, often from 4 months to 18 months or more.  This deadline differentiator belies a significant amount of skill sets that Flex Developers tend to have more often than Flash Developers (not always which adds to the confusion).  Famous keywords include OOPContinuos Integration, TDD/Test Driven Development, Design Patterns, Frameworks, et al.

To add more to the confusion, many Flash Developers employ many of the same technologies & methodologies Flex Developers utilize.  These include using alternative IDE’s, using the mxmlc compiler included in the Flex SDK, and utilizing frameworks such as Cairngorm/PureMVC/Swiz/Robotlegs.

If a client asks you for a Flex Developer and you send them a Flash Developer, you are making a huge mistake.

It all comes down to the typical clientelle the develeper gets.  If their past projects last 4 months or longer, they can probably cut it.

Different Types of Flex Developers

There are basically 4 types of Flex Developers.

  1. Junior
  2. Mid-Level
  3. Senior
  4. Architect

A Junior is often someone with little experience, whether that’s in Flex, or in just programming in general.  Fresh out of school, or just starting a new career.  They’ve never done professional Flex Development, or little of consequence.

A Mid-Level Dev is often someone with some good experience, but either requires direction, or does not currently lead a team in development.  Leading a team here doesn’t mean management; it means providing technical & architectural direction to the rest of the team to ensure the project moves along smoothly.  Often times, you’ll have senior/architect developers from other languages who are learning Flex for the first time.  While they bring their often vast experiences, Flex is a new runtime and programming model, and as such, they are considered mid-level, and should not be leading a team.  Either way, they only have a couple projects under their belt, or a lot of projects not in Flex.

A Senior Dev is someone with a lot of experience and is familiar with current, best practices.  They have a long list of projects under their belt and a lot of experience.  They can be depended upon to develop Flex software successfully if setup to succeed.

An Architect is someone who could design the entire application, from scratch, correctly.  Often, these individuals will do back-end technologies as well to ensure they have the whole picture of how everything works together.  They can either lead the development team, or share leadership duties with other senior level devs.  There is crossover between Architects and Senior devs.

How Flex Developers Work

Flex Developers work just like any other normal person.  Some are W2, some are 1099, and some are W9.  You can also find all 4 skillets doing all 3 payment types.  Most Junior and Mid-Level are W2.  Most Senior and Architect’s are either employed at large companies that can afford their rates, or are through one of the larger consulting firms.

That said, finding a good W2 Flex Developer is extremely hard.  Most Senior and Architect level developers are 1099.  That, or they are working with consulting firms who often keep them busy.  Thus, getting them to lower their rates so your firm can take a higher cut to work on a potentially not so savory project is hard.  While the larger consulting firms do not always provide the top projects, because of the brands they develop, it’s easier for them to find the work that would interest Senior/Architect Flex Developers.  This is yet another challenge for recruiters.  The best thing you can do is be as concise and truthful (NDA’s nonwithstanding) as you can.  If you find a Senior developer between projects, they need to eat just like Junior’s do, thus this is a great time to strike.

Remember, even if they aren’t a fit, they may know someone who is.  The Flex industry is small, and it’s all about timing.

Where Flex Developers Work

With W2, it’s implied you’ll work on-site.  As long as the company has benefits, W2’s are sometimes willing to relocate.

This is complete opposite with 1099/W9 developers, especially Senior/Architects.

Most Senior and Architect 1099/W9 developers prefer telecommuting.  Many aren’t willing to relocate, although many are willing to do some travel.  Sending an email asking for W2/relocation is a sure fire way to get your email/LinkedIn/Tweet ignored by such individuals.  If you can find out that those individuals are in fact senior, (via Blogs/Twitter/LinkedIn) a phone call is often better because you can more quickly respond that “1099 can be worked out”.

The telecommuting part is tricky.  Almost all clients, especially those large enough to afford Senior/Architect Flex devs, will not blindly accept telecommuting.  Often, the engagement is of a consulting nature, and many non-progressive companies view remote with insecurity, and thus not solving their immediate cluster fire.

Rather than state that the position does not support telecommuting (unless you know for a FACT it does not), explain to the potential hiree that it’s up them to negotiate telecommuting terms.  There aren’t many Enterprise sized Flex projects that are 100% remote.  It’s MORE than reasonable for a client to expect a Senior/Architect to be on-site for the first 2 weeks, during milestones, and then towards the end of the engagement.  That’s 15 days over the course of 4 months: completely MORE than reasonable.  A freelancer/consultant almost can always work out those agreements with the client.

That said, it is a major risk, and I’ve seen people walk away from gigs 2 weeks in because these terms couldn’t be worked out which then puts your firm in an uncomfortable position.  I recognize that educating the client on such things is challenging.  Usually talking to the person running the project directly ensures you can get an unofficial yes to assuage your potential Flex candidate.

Rates

Rates are all over the map.  That said, the cream of the crop has extremely high expectations, especially those who live in coastal cities like New York and Los Angeles, or who are just in the know of what the going rate for their skills are.  Here are some good metrics I’ve seen.

Those who work with consulting firms, or have experience as such, will sometimes expect higher rates.  As such, they build up a common perception that they’ll never get work from recruiters, so just keep this mind.

Prima Donnas?

By this point, you may have developed the opinion that high-end Flex Developers are Prima Donnas.  That isn’t true.

This is what is true: First, they know they are rare.  It’s way easier to be a rockstar in the Flex world than the Java world.  As such, some recognize the rules of supply and demand, and capitalize on it.

Second, the Flex community is small in comparison to the Java, .NET, and JavaScript ones.  This close knit nature allows the free exchange of gigs, recruiters, and general news.  Since Flex developers have an easier access to others in the Flex community through Twitter and Facebook, and it’s easier for them to find gigs, W2/1099, on their own without the need of a 3rd party.  This expectation, real or not, affects their communication with those offering sub-optimal rates with sub-optimal conditions (W2, on-site, etc).

Third, Flex is hot and new.  This means that clients adopting it tend to have an ounce of progressiveness somewhere.  Therefore, if you pitch the position as anything beyond hot and new, Flex devs will listen to the alarm bells going off, warning them that their attention spans may not surivive, and thus look for more lucrative offers.

What’s a Recruiter to Do?

As a recruiter, there are a few things you can do.

First, recognize the community is small, and pitch this to your client.  Unlike Java where you have to weed through hundreds of unqualified individuals, Flex has a way smaller pool.  Yes, it’s growing, but it’s still small in comparison.

Second, recognize that you only need to establish a good relationship with 1 known Flex Developer to gain access to the rest.  No, I’m not talking about those using Monster/Dice, I mean the Senior/Architects you’d kill to give to your clients.  Often these people participate in some fashion with the social networking scene.

Third, and yes, I recognize this is hard: you need to sell the project.  Using a bunch of adjectives in a long email has the opposite effect of what you’re looking for.  Instead, see if you can get some more real details that HR people from large companies will never give you.  I don’t care how you do it, just do it.  An example could include calling up the company HR:

“Yes, hi, this is Jamie from Tech Recruiting.  I was hoping to get some more technical details that weren’t included on your candidate sheet.  Could you perhaps let me ask the Director of Engineering 2 questions I had a variety of potential candidates ask me?”

This gets you to the person who’s hiring, and hopefully can get him/her to deluge you with the technology stack they using.  THESE are the keywords you want to put in your emails.

“Large company doing cool, new things with Flex” == pathetic.

“Real-time data using Blaze DS with extremely custom UI created in Catalyst” == fuck yes!

They wouldn’t call it work if it were easy.

Conclusions

Hopefully the above gives you an idea of what a Flex Developer is, how they are different from Flash Developers, and how you can lure them in.  Flex Developers tend to build Enterprise Applications where as Flash Developers do not.  Ensure that the candidate has past clients/work that lasted longer than 3 months.

A lot of the senior Flex Developers that are known in the industry are 1099 only, and many only want to do 90% telecommuting.  These things are all about timing and who you know.  You can’t help the first excluding being early.  For the latter, try to get as close to a “negotiable” as you can to lure potential hiree’s in.

While rates are often out of your control, it’s important to set your client’s expectations.  Flex Development is still new and lucrative, and the rates some people charge are outrageous.  The recession helped a little… but not much.

A lot of Flex Developers know the above.  Remember, you just have to develop a good relationship with 1 to have a gateway to the rest.  Use small emails with enough details of what you’re offering.  Copy pasted, 1 page or longer emails from the HR of the job with your company’s template is exactly what you shouldn’t do.  For the record, you shouldn’t have to capitulate to a bad attitude.  Everyone who was good that I worked with had a good attitude.

Anything you can do to get more technical details about what the team is actually doing makes it way easier to sell the gig.  It also makes you extremely attractive for a Flex Developer to talk to you since you seem to know what you are talking about, and thus seem to feel that the potential hiree is right for the job vs. a blind “I found on you Google/LinkedIn/Your 6 year old Monster/Dice post with keywords in it and it’ll take 4 emails over 4 hours to figure out wtf the gig is”.

Finally, if you’re bold, get them to answer my 8 Flex Developer Interview Questions (skip #8 unless you know what you’re doing).

Good luck!

11 Responses

  1. Great article, Jesse! I actually clicked on it with a bit of skepticism in mind (like, “Oh yeah, let’s see how this article underestimates the expectations of good devs/architects.”). I guess I’m conditioned to expect that these articles are written “in-the-box” from a W-2, HR employee perspective. But, you got it all. 1099, telecommuting, high rates, interesting work, etc. And, you also get that we’re nice people (we just know the supply-demand economics and put that knowledge to work … our ability to use our knowledge doesn’t magically stop at our I.T. knowledge).

    One difference in my experience is that I no longer like the idea that I should negotiate the telecommuting arrangements. I used to agree to do that, years ago. But, that always put the onus (and the risk) on me. Fortunately, it usually worked out. But, I no longer want that to be my responsibility.

    There are now companies such as Gorilla Logic and Universal Mind that attract talent by offering things such as a telecommuting right up front. To me, it is actually a way of separating the wheat from the chaff. If a company is worth their salt, they have negotiated telecommuting before even trying to fill the position. It’s just a good sign that, if the company will go to bat for you before they even recruit you, they’ll probably go to bat for you in the future, as well. If they’re leaving it up to you to negotiate things with the client now, they’ll probably be leaving you on your own in the future, too.

    We can deal with it either way. However, we know that there are companies out there that value us and will go the extra mile. Why would we accept less when there are better companies out there?

  2. Anda

    don’t really get #8 of the 8 Flex Developer Interview Questions. Can you explain how this point makes sense?

  3. Stray

    Great contribution Jesse.

    I know you did put a ‘usually’ clause on that comparison between Flash Devs and Flex Devs, but I just wanted to reiterate that some of us Flash Devs can play with the big kids.

    I happen never to have had a project that needed the flex framework. I code pure AS3 and the designers on the team make pretty stuff in flash which gets embedded through stylesheets.

    That said, I wouldn’t write code in the Flash IDE if you paid me. I’m compiling in the command line, a TDD nut, using project sprouts and ruby to automate my processes…

    And my projects are usually big / long. Enterprise. Modular.

    If someone says they need “Flex” that implies to me that they’ve already determined that the mxmlc component thang is what they need. If we start using Flex/Flash to simply categorise the size or complexity of projects, or the skill level of the developer, that would be a bad thing – don’t you think?

    Whether there’s a realistic way for recruitment agencies to work out which technology they need is a tricky question though! Most emails I get from recruiters seem to want 15 years experience in all of 20 different technologies, for the kind of rate I’d have struggled to live on in my early 20s. Duh!

    Dead right about the community being the right place to recruit though. Github is awesome for being able to see exactly how someone codes before you even get into a conversation with them.

  4. @Stray I agree.

    That said, just because a developer is awesome at AS3, and has experience creating Enterprise applications, if they don’t know the Flex SDK, they are dangerous. They’ll create components that don’t scale, have race conditions because they didn’t utilize the built-in invalidation, and generally do not take advantage of the features the Flex SDK offers ending up with a mess. I’ve gotten 3 consulting gigs just from that fact alone: good coders, no clue about the SDK.

    Using Flex/Flash to categorise (it’s a Z, not an S god dammit!) the size of the project can be mis-leading, yes. I’ve seen a lot of wonderful widgets, video players, and generally small utilities created in Flex. I’ve rarely seen good, large applications created in vanilla AS3/Flash CS3 components. This could be the same reason you hardly ever see good Flex apps; the best ones are behind the firewall. However, based on my consulting experience, yes, I do think it’s an accurate assessment to utilize Flash vs. Flex. It may be unfair at times, but we need a baseline metric, and it’s usually accurate.

    You, Keith Peters, me, and many others feel prejudiced against when we utilize straight AS3 for a variety of projects. We’ll utilize Flash Builder, mxmlc, yet not use Flex. Joe Berkovitz, creator of MVCS, also does/did work similar to you; Enterprise size applications using straight AS3.

    So, it’s not unheard of, but certainly not the norm, nor conducive to having a useful metric. I’m not saying I like it, but I do condone it.

  5. Another question that is more pertinent now is to ask about Flex 4 experience – spark skinning, opinions on changes, whether they’ve done any projects with it, practice converting from Flex 3, etc. If you’re a developer, it shows that you’re on top of the industry and are actively improving your skillset.

  6. @Stephen True… but Flex 3.3 still rocks. That, and unlike Flash, there are still a lot of clients utilizing Flex 3 for the next 2 years, so it isn’t going away. Thus, if I were hiring someone tomorrow, and they had zero experience with 4, but some with 3, that’s great, they’re hired.

  7. @Anda Originally, that was a joke to make up for the insecurity I and others had as the world changed from Flash to Flex. A few who grew up in Flash got the joke, whereas those from traditional software dev backgrounds did not.

    …then I started using it actual interviews, and got some really fascinating answers from people. It started to really give a clear picture of where people came from. Just that one question!

    Some people would clearly state 1 or the other. Some would say it depends. Getting them to elaborate really gives you a good understanding of their knowledge of pure AS3, their background, and their feelings on the state of things.

    So, I’ve kept it in there. It either gives a good laugh, or a good discussion.

  8. @Stray, @JesterXL

    I understand the feeling of prejudice–I remember getting my panties in a wad seeing an ad for a Flash Dev who is “not dependent on the Flex Framework.” But there are a lot of things that are not the same in .fla world vs. the mxml world.

    I used to feel that I was being unfairly eliminated from the running for lack of framework experience (how hard can it be?), but since I started looking into getting up to speed in the different ones, I find it’s several days solid to develop a mental map of each one that’s good enough to apply it in practice. And if an employer can find another candidate where they don’t have to bear that cost, why wouldn’t they hire them?

  9. Stray

    Thanks Jesse – you talk sense. I absolutely wouldn’t mandate hiring AS3 devs on to a Flex project unless they have some specific skillz (you like z’s not s’s right?) that are going to compensate for their need to get up to speed on the framework / component life cycle stuff.

    @Amy – I think my point was the exact same as the one you’re making, but with an extra part.

    I agree – pure AS3 devs shouldn’t work on Flex projects. But… deciding that your project is a flex project just because it’s big / long isn’t a great way to make that decision. It should be about what the requirements of the project are.

    So – that’s my dispute. Though – as Jesse notes – a lot of the biggest and best projects in both technologies are for internal use only. We’ve got an awesome e-learning platform running in Air. Huge project, very custom art work, all AS3/Flash. Now self-updating, modular (in Air, with security)… very cool. No flex. 90+% test coverage. But also no public users. So – you’ll just have to trust me!

  10. #8. I say Sprite. And since I say sprite you can’t say Randy.isFired = true because I don’t have that property. So there. :p

  11. @Randy throws new Error(“Nice try, sucka!”); // MovieClip FTW