Proving theorems
Writing code
Asking questions
Framing the problem and requirements
Theory building
Designing systems and architecture
Applying theory
Shipping and operating products
Applications
Products and automation people use daily
Problem-solving muscles
Systems thinking and debugging
Aesthetic joy
The craft and joy of building
Teaching (main funding)
Customers paying for outcomes
Public funding
Government and research contracts
Private foundations
Investors betting on future revenue
Industry
Enterprise budgets to cut cost and risk