Andrew Hay

Director of Software Development

Andrew Hay

Andrew is our resident ninja turned developer, having been developing software solutions since he graduated with a BS in Computer Science from North Central College, Naperville, IL in 1995. As our Director of Software Development, he is very active in the development community both as a member of the Portland Area .Net User Group, and as a lecturer on the many aspects of software design and development. He is a Microsoft Certified Professional Developer, and a team lead on many projects at Pop Art, Inc.

I ain't got time to bleed. — Blain (Jesse Ventura) in Predator

Education

BS in Computer Science from North Central College

Community Involvement

Other Interests

  • Computers
  • Hiking, Camping, Shooting
  • Home Brewing Beer
  • BBQ and Smoking Meat
  • Playing with my son
  • Remodeling homes

Favorite Movies

Recommended Books

Networks

Posts by Andrew Hay


So, You Asked for a CMS

In my position, I get to respond to a bunch of RFP’s. If there’s a marketing/brochure web site involved, you can make a reasonable bet that the RFP includes a content management system (CMS). These solutions are super easy to build and deploy, but organizations are often unaware of the entire bargain. The promise of a [...]

Read More…


Thanks USAA!

My bank, USAA, is better than your bank. No, they don’t have any branches, except for that one in Texas, but they do have: Awesome online banking Free ATM withdraws (no matter which one you decide to use that day) An iPhone app Check deposit at home (on your scanner or iPhone) Customer service that can’t be beat. This is [...]

Read More…


Trust, but Verify

Greg Hughes, one of the rock stars I had the pleasure of working with on a gig has a nice phrase that he likes to whip out from time to time: trust, but verify. Greg didn’t coin the term. Wikipedia says Ronald Regan used it and others before him. The term indicates you should trust what [...]

Read More…


How to Do Something You’ve Never Done Before

As a technologist, I’m often asked to do something that I’ve never done before and have no specific competency in performing; tasks which I’m completely unqualified to execute. The more palatable way of saying the same thing is: As a consultant, technical lead, solutions engineer or a business analyst, I’m given challenges that require me to identify [...]

Read More…


Where are all the Mac Developers?

I heard an interesting quote on a recent podcast of RunAsRadio.com, where the guest talking with Richard and Greg said: We’re the second largest Mac development shop in the world behind Apple.  We have more Mac developers than anybody except Apple. Who is “we”? Well, Microsoft of course! This seemed counter-intuitive at first, but after you consider everything [...]

Read More…


JavaScript Injection Attacks

A little over a week ago, I described Cross-Site Request Forgery attacks and how they can damage your site with just a simple website request using any modern browser available today. This time, I’ll describe another type of JavaScript attack that can cause equal harm to your site. Lots of sites, including blogs, accept user input. [...]

Read More…


Why Projects Fail

I listened to a recent podcast (several times in fact) featuring Patrick Hynds on DotNetRocks.com. I thought I would share some real gems I found in there. The following info was culled from that interview. Let’s start with some agonizing realities: About 50% of software development projects fail About 60% of off shore projects fail, but they’re cheap, so people [...]

Read More…


Cross-Site Request Forgery

In this post I’d like to explain one of the most common ways the bad guys can steal your information on the Internet today. I’ll use the literary technique of schizophrenial-paragraphs to help explain the hacker’s technique.

Read More…


You Can Build Software Too

A common misconception in software development is that you need a programmer, developer or any other similar name that sounds technical. Sure, we read books on the subject, attend conferences, conduct lectures, and compile our fair share of bits, but the truth is that a good deal of building software doesn’t involve programming. Actually, most [...]

Read More…


INBSIYCNTS #1

This is the first post in a series that seeks to shed some light on things you might hear in a software project and start to question. I’m calling the series “It’s Not BS If You Can Name The Source” or “INBSIYCNTS”. I’m pronouncing this new acronym “in-science”, as the “b” is silent. So, for this [...]

Read More…


Disciplined Conversations

Over the past several years, I’ve noticed one thing in particular that is difficult, if not damn near impossible, to do without a well disciplined team. Try having a conversation about a software project that doesn’t begin with the solution. Now, I wouldn’t be telling the entire story if I didn’t mention that building solutions and [...]

Read More…


Windows + Space = Backslash

My primary machine, a MacBook Pro running Vista, experienced an ailment the other day: the backslash key broke. So, I was stuck with no pipe character and no backslash. If I needed one, I had to find an existing instance of the character, then copy and paste. Not a good time. Developers like to use [...]

Read More…


Speaking on Dynamic Data

I had the pleasure of presenting at a recent Portland Area .Net User Group meeting earlier this month. My talk to about 50 regional developers at Microsoft’s Portland office centered on one of the new features in the Service Pack 1 release of ASP.Net v3.5 called Dynamic Data. This feature is a fantastic niche technology for [...]

Read More…


Fun with FSUtil.exe

While listening to the latest installment of RunAs Radio, I just rediscovered a slick little utility over the weekend called FSUtil.exe that lives on your Windows machine. Sometimes I have to build a web form that includes a file upload behavior or I’ll want to test the data transfer speed with a specific file size. The [...]

Read More…


Using NLog To Track Events

Instrumenting your application, or at a more basic level, simply logging specific events, is one of the most important things you can do for a system that going to have a productive and cost effective lifespan. It’s right up there with data backups. As with most things in .Net, its usually best accomplished by starting with [...]

Read More…


Rick Strahl on jQuery

Even though we’re pretty busy at the office, I managed to slip out and attend the last PADNUG meeting and catch up with some friends. This time was the return of a PADNUG regular, Rick Strahl. If it sounds like we’re spoiled with outstanding speakers, it’s because it’s true. Rick, fresh from a vacation in [...]

Read More…


Importing Data From Excel with C#

Behind the scenes, I see a lot of companies run on Excel and duct tape. So it’s common for clients to hand me a slab of data organized into neat little rows and columns. Excel is just a handy way to throw some data over the wall and get things done. This might be a [...]

Read More…


InnoTech Presentation Notes: Understanding LINQ

Since I’m posting this in advance, I hope my session titled Understanding LINQ was a huge hit and everyone loved it. I’ve been working on the content for a while and its tough whittling it down to fit inside the specified time slots; there’s just so much cool stuff. I probably phat-fingered some keys once [...]

Read More…


Speaking at the InnoTech Conference

I’ll be speaking at the InnoTech Conference in Portland, Oregon on April 16th and 17th. My session will get you started with LINQ, a new feature available in the Microsoft .Net v3.5 Framework. Language-Integrated Query is one of the most compelling features for your business in the Microsoft .Net 3.5 Framework. LINQ provides a succinct and [...]

Read More…


What’s Your Pet’s Name?

Such a casual question at party could have terrible consequences when you use weak passwords on the Internet. The best advice is to use a unique password for each account. If you spend all day online like me, plus a little more at home, you’ve probably garnered somewhere north of 50 or more accounts. The question [...]

Read More…


Start-Up Junkies

When I was 8 to 12, I was big into Dungeons & Dragons. My brother was five years older, and sometimes I could sit with his friends and play. We had all the books, much to the chagrin of my parents. When the D&D cartoon came on, all other things ceased to exist for those [...]

Read More…


Test for Existence of a JavaScript Method

One of my teammates recently had a problem with some Flash injection code. She was setting some properties and then calling a function on a JavaScript object that threw an error. We got a message that said “Object doesn’t support this property or method”. We isolated it down to a timing issue by dropping an alert() [...]

Read More…


Its only Monday, and I’m Already Out on a Branch

…or two. I’ve had two projects this week where their/my bacon was saved by the branching strategy used for the source code repository. In my line of work, I touch a wide variety of projects. Some are still shiny new and others were written years ago; they’re all in a source control repository. Modern source control repositories [...]

Read More…


Understanding LINQ

LINQ is an acronym for Language-Integrated Query and a new feature in v3.5 of the .Net Framework from Microsoft. This new version of Microsoft .Net reached RTM status a couple of weeks ago — this framework is chock full of brilliant things I can use to improve my efficiency and effectiveness on daily tasks here [...]

Read More…