You should:
- Have deep expertise in at least one high-level language - Python, Ruby, C++, JS, etc.
- Have a solid understanding of persistence and networking concepts and technologies
- Have a strong command of algorithms and data structures
- Be able to articulate technical concepts clearly and concisely
- Get excited about adding more tools and techniques to your repertoire
- Understand how to structure systems and programs for scalability and availability
- Know how to make the tradeoffs required to ship without compromising quality
- Know that investing in developing solid tests pays for itself several times over
- Appreciate agility and pragmatism in software development
- Thrive in a startup environment