I'm too salty to go back to programming full-time, but here's a way I can be just as, if not more useful: non-interaction design.

two basic functions

Look for instances in which the computer can alleviate manual work, improving the experience

Computers can handle information in enormous volumes, but that information has to have a precise structure. People are great at handling unstructured information, but are prone to mistakes and boredom when the volume is piled on. Hypothesis: No interaction is the best interaction. If a system can just do the right thing without intervention, why waste people's time by demanding they intervene? Solution: get computers people to add structure to the information they're working with in a way that

Look for instances in which the computer can fail and spoil the experience.

do an end run around a number of the failure modes that are cheap to account for up front

In general, developers don't want to ship a bad user experience, but it's more important to them that their code doesn't crash. That's what keeps them employed. If they have to make that hard decision between something that works now and something that works optimally later, you can bet which way they'll go. Besides, that the thing works in the first place is probably the most important aspect of the user experience there is.

spot this stuff, come up with a design and sell it to developers.