I have a lot of experience hiring/managing engineers and directing product development, but I don't have a Computer Science degree, nor any projects I've written code for. If those are absolutely mandatory for a position, I'm not the right fit (although I will be focusing my off hours on taking up programming once I've handed off all my duties at the company I founded 10 years ago).

However, I've proven that I do have suffiecient knowlege and understanding of technical matters to effectively lead development, by acting as the lead advocate for the user, client, or customer. I have an easy time working with developers, because my leadership and communication skills come with a broad conceptual understanding of many CS topics.

These are the kinds of concepts I'm familiar with and comfortable discussing when making decitions, after studying many CS lectures (from Stanford and MIT), CS-related podcasts, and conference talks about CS topics:

  • First principles of computing
  • Time complexity of an algorithm
  • Abstraction
  • OOP
  • Recursion
  • Spectrum of lower-to-higher level languages (trading off efficiency at runtime for convenience)
  • Compiled vs. interpreted languages
  • A language itself vs. the various VMs that may be used to run code written with that language
  • Role and usefulness of frameworks in development
  • Role of each technology in a Web development stack (OS > Web server > Database > Scripting language > Application framework, if applicable)
  • TDD (advantages and disadvantages)
  • Unit testing vs. integration testing vs. functional testing
  • Test coverage
  • Role of APIs in SOA
  • Public vs. private keys in encryption
  • Relational databases (parent vs. child vs. sibling, one-to-one vs. one-to-many)

That's not an exhaustive list, but it offers at least some representation of my ability to contribute to and lead in the process of making technical decisions.