Being a software generalist requires a certain amount of curiosity, determination and passion. It requires you to be good at learning and quick at failing. What it really comes down to is being good at managing yourself, and others expectations. Whether it's a iOS prototype, a large single page web app, or a hackathon with embedded hardware you've got to be able to jump in, under-promise and still over deliver.
When making something, these are a few things that matter to me:
Make it well. Whatever you put out into the world - make sure it's the best product you could. Then raise the bar.
Make it beautiful. You can tell when someone has poured their soul into a product. Whether that product tells a story, solves a problem, or makes a difference, you can be sure that every pixel has been obsessed over. I like to make those types of products.
Make it worthwhile. I believe in making products that work well and solve a problem. I believe in leveraging technology and design to shape behavior for a preferable future.
Make it with purpose. I follow my passions. It makes me happier, more determined and more invested in what I create.
I think solid engineering is just as important as good design.