When and why did you become a software developer?
I began developing/hacking software when I discovered CTR+BREAK on my Laser Apple IIe clone back in 3rd grade. A family friend showed me the trick and a little bit of AppleSoft Quick BASIC and I was off and running. I ended up going to a few programming camps as a kid and taking a few classes in Pascal in high school before studying Computer Science at the University of Wisconsin in La Crosse, WI. Since finishing my bachelors degree I’ve been in the consulting business for all but 1 year of my career. I began building Flex applications when the Flex 2 beta was released and have worked for RIA consulting companies like EffectiveUI, Universal Mind and am currently with Roundarch.
I love seeing and making “things work”. Academically I guess this is referred to as Human-computer interaction (HCI). Having also studied a good deal of Sociology, I’m fascinated by the role technology plays in human life. I want to always strive to be a part of creating a better experience around technology and feel lucky to have been given the chance to work along side so many talented folks in the User Experience and Experience Design disciplines. I believe strongly that the convergence of technology with UX and design leads to the most compelling and innovative solutions in our space.
Which programming models do you prefer?
I think Amelia Earhart said, “The most effective way to do it, is to do it.” I am very hesitant to accept models that force the inheritance of considerable overhead. That said, I do believe that a good engineer evaluates each problem and creates a plan to solve that problem based on two main factors: efficiency and maintainability. In a large team setting efficiency means something different. Using tactics that help to effectively parallelize development is a clear win. That may lead the team to adopt conventions. Typically these conventions are presented in a framework. I do believe in using frameworks, but I do not believe that any one framework is a solution for every problem, both in terms of efficiency and maintainability. Extending frameworks in a way that helps them to be more domain specific to the problem is often a very effective for larger teams. Most of what I’ve said here is fairly abstract, but it comes down to looking closely at the problem and the skills of the team that will solve the problem. If you are able to select a methodology, framework, and even technology stack through the lens of the problem and the team, you’re off to a great start.
Describe the project in which you have used the most advanced technology
At Roundarch we are are currently working to release a Merapi related application with our client that manufactures cell phones. I can’t say too much about the client or the project until it’s live, but I’m really excited about the way Merapi enables a consumer browser experience that is unparalleled to anything else we’ve seen in the space to date.
If you where a software application you would be…
Well, I’m not sure that I can describe it exactly, but Flater 2.0 is going to have so many bug fixes and new features… I can’t wait.
What do you see as the future of application development?
The continuation of efficiency through abstraction and the ubiquity of immersive technology. Computing has a fairly short history compared to other areas of business or academia, but one trend is constant; abstraction. Our languages in computing continue to be abstracted to higher levels from machine code to assembly to high-level languages, etc. At the same time the way we couple systems is being abstracted with newer concepts like cloud computing and real time operation systems. All of these advancements help to hide the complexities of problems that have been solved generically and allow for building better, cooler apps.
Ubiquity and immersion is a trend that’s been accelerating in the last 10-15 years and will continue at an increasing rate. The ability to connect people to information is easier now than it’s ever been with desktop computers, laptops, netbooks, mobile internet devices, set top boxes, kiosks, etc. The list of devices that are becoming web-enable is growing by the day. This means that the options of reaching the user of an application are also growing by the day. Software developers must now consider where their applications will most effectively meet the target user. Again, this trend of ubiquity and immersion will also lead to further abstraction in the methodology and tools we use to build software.
Can you give to us 10 good reasons to use the Flash Platform?
Why should I use Flash? That’s a tough one, but I’ll take a shot. Say my buddy is working at his developer job. Somebody puts a software requirement on his desk, an app nobody else can build. Maybe he takes a shot at it in HTML and maybe he builds it. And he’s real happy with himself, ’cause he did his job well. But maybe that app doesn’t work worth a damn in Internet Explorer. Once it’s in production it crashes all over the place. Fifteen million users that he never met and that he didn’t have no problem with are now left with a pile of crap they can’t use. Now the project managers are sayin’, “Internet Explorer support was not a part of the original project scope” ’cause they didn’t buy into Flash in the first place. It won’t be their code over there, crashing left and right. Just like it wasn’t them decidin’ what platform to use, ’cause they were off writing a project plan or meeting with the business. It’ll be some developer takin’ the blame for the bugs. He comes to find out that the job he used to have has been replaced by a Flash Developer because they now need to rebuild the entire app. Meanwhile he realizes the only reason he wasn’t using Flash in the first place was so more users could view his app. And of course Flash is the most installed piece of software in the world, a cute little ancillary benefit, but it ain’t helping my buddy who just lost his job. They took their sweet time building that HTML app, and maybe even took the liberty of hiring a bang up QA team, but now my buddy’s out of work and he can’t afford to buy red bull or techno music. So what do I think? I’m holdin’ out for somethin’ better. I’ll use Flash.
1. Consistency. The Flash platform presents a deployment mechanism that allows developers to deploy consistent solutions. This is an area that Adobe continues to improve in and has always been a core feature of Flash.
2. Flex-ability. Clearly I’ve built a lot of Flex applications and I’m pretty partial to it as an RIA framework, but Flash also offers so much flexibility in the way of animation (2d and 3d), video, and scale (browser, AIR, mobile).
3. Community. Flash developers are the best group of technologists I’ve worked with so far. Their are so many passionate developers, designers, and user experience professionals who are all extremely passionate about creating great solutions. I’m fortunate to collaborate with many of these greats.
4. Open Source. Open Source. The amount of quality material released through blogs and other traditional open source outlets is astounding. The Flash world really has a great amount of people giving back through open source.
5. Adobe. Almost everyone in the community has made their criticisms of Adobe, but they have so many people that genuinely care about supporting and developing a pretty killer platform.
6. Conferences. The Flash community provides many great conferences for learning about Flash and networking. The 360 Conferences and Flash Camps I’ve spoken at are my all-time favorites. As a side bonus, no one is shy about buying drinks in the Flash world.
7. Integration. Not only is a Flash app able to integrate with a myriad of server technologies, the integration of Adobe tools is better in every release. The fact that this brings developers and designers closer is an extremely compelling reason to use Flash.
8. Future-proof. Although Flash typically lives in a browser, it’s not bound by the browser and as a technology Flash can easily out live the browser.
9. Acceptance. From media companies to the enterprise world, as a platform Flash has a very high acceptance rate.
10. Innovation. So much exciting innovation happens in the Flash Community and inside Adobe.
Can you describe the need for Merapi and what drives you to release it in open source?
What’s does the word “sexy” mean to you?
I assume this question refers to our recent Roundarch t-shirt that combines the core areas of our business; strategy, user Experience, and Technology as something like this:
For many of our clients, that’s just what we do. We combine strategy, user experience, and technology to create an application that is most definitely “sexy”. And I’ll leave it at that.