My colleague Jim and I are attending the AngleBrackets conference here in Phoenix. It's the first conference I've ever been to, and I'm loving every minute of it. If you ever get a chance to attend one of these conferences, friggin jump on it! It's a wonderful way to connect with other developers in a low-key, casual setting.

This year's conference is hosted at the gorgeous Fairmont Scottsdale Princess, an astounding 5-star resort that I could not hope to stay at with my own money. This place looks like it was manicured by God himself, all lush lawns and glistening fountains. It's incredible. I kinda wish I was staying at the hotel, but I live here so no dice. Still, it was a gorgeous day in the valley today, and being in a setting such as this only makes that so much better.

I went to four sessions today (not counting the keynote speeches this morning). Here's a few things I learned and observed from those sessions.

An Alternate Design for MVC Create, Edit, Delete Pages

In this presentation, Paul D Sheriff showed us a sample single-page application using the MVVM pattern. You can get the slides from here.

In essence, the site placed all of the functionality into the view models and made the controllers extremely small and light. What this resulted in was a backend that could be used in any kind of project: web, WPF, forms, even silverlight. A little JavaScript on the front-end and a little back-end magic and you've got a single-page application. It all looks fairly simple.

I only had one problem with this presentation, and it was more a philosophical one than anything else. I've written before that I'm not a fan of WebForms, and this particular solution wanted the view models to store what amounted to the state of the page as properties, such as sorting column and sort order. I'm not a fan of needing to do this, so if there was a way to accomplish this kind of thing with no storing of state, I'd be in love with this solution.

15 Ways To Improve Your Business Applications Today

In this session, John Kuhn talked about (as the title says :)) 15 ways PDSA has noticed that business apps could be improved. You can request the slides from here.

Most of this stuff is (hopefully) common sense, but one thing he said really stuck with me: quit using DataSet and DataTable classes! I love this, as these classes are IMO no longer necessary for our modern apps. Get rid of em, and good riddance.

The Architect

Easily my favorite presentation of the day. Juval Lowy described this session as a one-hour rant, and boy was that an understatement. It was entertaining, insightful, and hilarious; everything you'd want out of these presentations. I couldn't find the slides he used for this presentation, but I did find a Channel 9 recording of this presentation.

In this session, Lowy argued that the software industry is in crisis because (among many other things) so much is expected of overworked, underperforming developers. The skill gap is huge, the stakes are high, and organizations are floundering into mob rule. Into this gap steps The Architect, who can use engineering processes to solve problems independent of any domain.

Honestly, any summary I give of this presentation will not live up to seeing it live. I've got another of Juval's presentations scheduled for tomorrow, and now I'm really looking forward to that one. If you get a chance, go see Juval Lowy!

How to Interview a Developer

Billy Hollis lead this funny and engaging talk about exactly how, in his 28 years of doing hiring, he's come up with his methodology for hiring someone.

Much of this presentation was focused on what behavior you should be presenting, rather than what behavior you are looking for in the interviewee. Specifically, Billy thinks we should be neutral in our body language, so as not to give an subconscious clues as to what kind of answers we'd like to hear. After all, the client is seriously motivated to please you, since they (presumably) want the job.

The next part of the presentation was a set of twenty questions, ranging from technical ("Write pseudo code to reverse a string") to soft-skill-oriented ("Think about a project you were working on five years ago, and tell me how you would improve it based on what you know now.") They're all fairly open ended questions, designed to gauge criticality, knowledge, personality, and potential issues. The main thing Billy expressed was that he didn't want any extremists of any kind (either the "I code everything in notepad" kind or the "JavaScript for all the things!" kind).

Finally, the thing that stuck the most with me: Don't interrupt! This is something I have trouble remembering; I always seen to try to insert myself in conversations that don't really require my opinion, and it's sonething I'll need to be on the lookout for in the future.

Anyway, that's it for today's sessions. I'll be back tomorrow with more recaps, and I'll try to get some pictures as well. Thanks for reading!