Sean “the flex guy” Moore is a highly visible blogger in the Flex Community. He has been developing web applications for 12 years now and it’s no surprise that he was chosen to be a Flex Developer Community Champion by Adobe for his hard work and dedication to the Community.
FlachSope decided to interview this prominent Flash Developer, and luckily Sean agreed to answer some of our questions:
FS: Can you share with us a little bit of your history? Was there a turning-point in your life when you decided to cast your lot with web development?
Sean: I got into multimedia and programming in 1997. Lingo was my first programming language, shortly after that I studied HTML, JavaScript, Visual Basic, Perl and ASP. I messed with Java a little back then but never got into it too much. I’ve recently starting learning a lot more about Java. My first job out of college was doing CBT programming with Authorware. This was when Flash was just first coming out and gaining some ground. I started messing around with Flash in my free time and really liked it. My second job was doing web design and development for a mortgage technology company. That’s when I started doing a lot of Flash work, both animation and scripting. I think Flash 3 was just being released at this time. I had a good amount of experience with Director, Lingo, Authorware and Dreamweaver so Flash and ActionScript weren’t too hard to pick up. My next job was for an Learning company where I was a full time Flash developer for over four years. When I started that job we used AS1 and Flash MX. AS2 was released while I was working there so we ended up doing a lot of code migration from AS1 to AS2. In 2006 AS3 was really gaining some attraction so I started getting more serious about learning it and Flex. In 2007 I started doing freelance work for AS3 and Flex based projects. In 2008 I started Kannopy, Inc. and have been running the company and working with various clients ever since. Kannopy was the first company to focus on Adobe AIR development.
FS: As everyone knows, you have excellent experience in multimedia and application development. How
long have you been engaged in it?
Sean: I’ve been involved with multimedia and software development for about thirteen years. Believe it or not
I wasn’t really into computers at all until I was about twenty. I used to be heavily involved with art and
music. I started college to become a traditional illustrator doing marker rendering, etc. While in college I
started playing with Photoshop, Director, HTML, JavaScript and VB. The creativity that could be
expressed through interactivity using Director and HTML/JavaScript really moved me. I was determined
to learn how to program and just went for it. The college I attended didn’t really have a “Web
Development” degree or anything. It was either Multimedia or Computer Science. I majored in
Multimedia but it focused more on visual design than programming. I deviated from the degree program
and started taking Comp Sci classes along with the Multimedia classes I thought would be beneficial. At
first I had a pretty tough time grasping the core programming concepts as I wasn’t a huge math guy or
anything in school and this was all pretty new to me. I wasn’t the kid that started programming when he
was five or anything like that. After about a year I finally started understanding the basic concepts of
programming. When I was at the full time Flash job I really got a handle on OOP. I worked with a really
great Java coder who helped me a lot. When I first got into all of this I used to do a lot more design,
animation and 3D work which I do miss sometimes.
FS: You have been involved with the development of numerous Flex and AIR applications. What of these
professional experiences did you enjoy the most? And what is the one you are proud of most?
Sean: Working with Adobe has probably been the best experience so far. The team and talent there is just
beyond awesome and it’s always a great learning experience. I’ve grown a lot by working with them.
Another really great client was Intridea. I worked on an open source AIR application for them. I really
enjoyed working on that project. They were hands off and understood that building quality software
takes time. They allowed me to take the time to use best practices and unit testing. I was also allowed to
fully comment the codebase and produce ASDoc for it. Not all clients understand that these things will
really help the app in the long run. Another really awesome experience has been writing for O’Reilly.
That was a long term goal I set for myself in my twenties and I achieved it. I’m also doing some tech
reviewing for them at the moment. Working with them and Adobe have been two of my biggest dreams.
The full time Flash job I had with techniques.org was also a great experience. That was probably the best
“job” I ever had. That job really contributed to where I am today. (Thanks Ryan, Tim and Joe!!) I’ve also
had the opportunity to work with and become friends with Eric Feminella. He was one of my Flash
heroes and I always read his blog and looked up to him. I contacted him in 2007 about some project
work and he got back to me. I was ecstatic for several days. We’ve worked together on a few projects
since. I consider him my mentor and one of the best Flex developers I’ve ever had the pleasure of
working with. One other experience that was pretty unreal was working with 2Advanced. I had admired
them for years. I was honored to work with them. Another awesome experience was being a guest on
The Flex Show Podcast.
FS: What is the main thing (or crucial moment) when you start a new project? What’s more important to
you – your personal vision or a customer’s opinion?
Sean: The main thing when starting a new project is communication and understanding. The client needs to
know what they want and I need to know what’s expected as the final result. The client’s vision is the
most important thing — period. They need to know what they want to build, understand that building it
will take time and also realize that any quality application takes money to build. Software development
is a time intensive process. It takes money to build quality software. I think there are several crucial
moments when starting the project from a technical viewpoint. Creating an outline of all tasks involved
is important. Creating a design document that discusses how those tasks will be accomplished is also
important. Both of these can give both the client and the developer a general sense of how long the
entire process will take. It also can minimize any surprises about what the client needs and what gets
built. Test Driven Development is important. Proper code documentation is important. Following best
practices and coding standards is important. Using an application development framework is also
important.
FS: Describe how your work process usually flows, how do you like to start, what are the key points to
consider, etc.?
Sean: It depends on the client and the project. When I’m working one on one with a client the process usually
goes something like:
• Exchange NDAs
• Understand what the client wants to build
• Review existing application if they have it (sometimes non Flex based)
• Try to get a feel for some of the details of the app from the client and/or existing application
• Generate a general time/cost estimate for the tasks that can be identified
• Establish cost estimate
• Negotiate cost and timeline
• Start the overall technical design
• Work with client to agree that technical design and program operation and features are correct
• Refine technical design based on client input
• Begin development
• Set up core framework
• Set up unit testing framework
• Create Ant tasks
• Coding / TDD
• Manually test application as development proceeds
• Skinning (if required)
• Run Profiler and Process Explorer to identify any major bottlenecks throughout dev process
• Send weekly builds and invoice throughout dev process
• Review code comments and generate final ASDoc for project
• Send final application to client
• Address any final issues or changes
• Check finished code and ASDoc into SVN
• Send final build to client
• Maintenance
• Add new features and/or fix and bugs that arise
When I start a new project I refine my estimate into more of a task list and start the architecture and
technical design from there. I’ll set up the core framework and unit testing framework. I’ll create the Ant
tasks to build the project and generate the ASDoc. I have an SVN server and will check the code in and
create an account for the client so they can always access the source. I try to invoice the client and send
a build of the application weekly. I’ll also make sure to commit the source code to SVN when sending the
invoice and build. When I send this to them I’ll send an email with an update and outline of the work
that’s been done. This process seems to work the best. It also gives the client an opportunity to test the
software and see progress. Every project is different though. Projects that are being built from the
ground up are generally best to fit into this process. Projects that only require debugging and refactoring
can also fit into this process with some modification.
FS: You also have created a great deal of reference material, articles, presentations and technical reviews.
What helps you stay creative and be in touch with the situation in the world of web development?
Sean: I have a real passion for Flash Platform development. I think the creativity and community is really what
drew me into it. There aren’t a lot of other development communities that are so open to share ideas
and code. In addition a lot of the old school Flash guys are skaters, punk rockers, etc. People I can
associate with. This sharing and creative nature has really pushed me to contribute back to the
community who is always willing to share and help. I have always been a really creative person. I’m also
a musician, cook and artist. Sometimes inspiration is difficult to find but I’ve found that looking at other
places besides the tech world is often the best place to start. Constant training is another thing that I
always make sure to do. I took an Advanced Java class at UCSD in the beginning of 2009 and it was a
great experience. I try to attend Flash/Flex based training and/or conferences whenever possible as
well.
FS: What is the best framework for web application on AS3, to your opinion?
Sean: I don’t know if there is one “best” framework. It usually depends on the project/application. I personally
have used Cairngorm a lot. Mostly because it’s been around for a while, it’s pretty proven and any Flex
developer that’s worth their salt knows it. There are issues with Cairngorm but it’s still a good
framework. I’ve done a lot of Flash development in the past and have seen some Flash (and Flex)
projects and codebases that would make your grandma cry. Frameworks provide a structured place to
put things. This leads to good organization and help avoid the “code all over the F’n place syndrome”.
That helps in always knowing where to look to find things. It’s like putting your dishes away; if you
always put them in the same place you don’t have to search to find your tablespoon or potato masher.
Everything has a home! Recently I’ve been getting into Parsley a lot more and it’s really awesome. I think
the trend toward IoC will continue into 2010 for sure. There are some issues with Parsley as well, but no
framework is going to be perfect. Cairngorm 3 is also something I’ve been getting into more. It’s not so
much of a framework as it is a collection of libraries and best practices. One framework I’d like to work
with more is RobotLegs.
FS: Speaking about Flash development, what main directions can you point out? What can you tell about
Flash and 3D?
Sean: The iPhone support coming in Flash CS5 is definitely worth looking into. I’d say Flex 4 is going to be
pretty major. The Slider framework looks pretty interesting. AIR 2.0 is going to provide a bunch of cool
new functionality. FlexPMD is really cool. The new version of Flex Unit looks killer too. Regarding 3D I’d
say keep an eye on Papervision. It’s the one 3D library I’ve worked with extensively. It’s pretty solid and
has been used widely. Another thing I want to do is spend some time with the native 3D support in AS3.
FS: What do you think about Flash integration with the other products?
Sean: There is of course the iPhone and Android. I’d like to target both using the Flex SDK. We’ll see if that
happens. Other than that AIR is being used more and more in non-traditional environments. I’m highly
interested in applications that target devices other than a desktop/laptop computer. I’ve worked on
some AIR apps that did not target traditional computers and they were pretty cool. The work being done
with Arduino is awesome!
FS: What blogs or magazine articles would you suggest reading for information?
Sean: The Adobe aggregator is always something to keep an eye on. Other than that I check DZone and
Rededit quite a bit. Stumbleupon is pretty cool. The Adobe Developer Connection is great. Twitter is
really awesome for keeping up to date with what’s going on in the community. Adobe Edge is usually
pretty good. Flash and Flex Developers Magazine is pretty good. I always go to the book store and
search Amazon for new Flash, Flex, ActionScript, Java and General programming/software engineering
books. I’m currently reading Clean Code, Code Complete, The Pragmatic Programmer and 97 Thing Every
Software Architect Should Know. I also usually keep an eye on the blogs: Ted Patrick, Ryan Stewart,
James Ward, Peter Martin, Deepa Subramaniam, Alex Uhlmann, Tom Sugden, Eric Feminella, Paul
Williams, Ely Greenfield, Jesse Warden, Matt Chotin, Doug Mccune, Ben Stucki and a whole bunch of
others I’m forgetting. I also listen to The Flex Show poscast.



[...] http://www.flashscope.com/blog/sean-theflexguy-inerviewed/ [...]
I have seen some crappy posts but this one really impresses me. Good work!