Job Requirements
- Has deep technical knowledge
- Has years of practical experience
- Knows three or more types of programming languages and their pros/cons (ex: scripting, strongly typed, functional)
- Understands the full software development life cycle and how to implement it
- Can be trusted with the ‘big picture’ of a software project
- Works full-stack and could build an entire web application alone
- Communicates in a mature way and works effectively with a team
- Is a capable leader of a high performing technical team
- Capably coordinates development resources for one or more projects
- Can be trusted to manage and troubleshoot a live production environment
- Can integrate business and technical needs
- Is viewed as an expert with sought-after knowledge
- Creates valuable reusable software assets for the organization
- Builds tools for the rest of the team
Learning Roadmap
- Learn more and varied programming languages, suggestions:
- Scripting: Ruby, Python, PHP, NodeJS
- Enterprise: Java, C#, .NET
- Functional: Clojure, Haskell, Erlang, F#, Elixir
- Cutting-edge: Rust, Go
- Historically Significant: Lisp, Assembly, C
- Domain-Driven Design
- Learn how to effectively elicit and document requirements
- Interviewing
- Brainstorming
- Workshopping
- Prototyping
- Manage the technical side of a project from start-to-finish
- Assist sales in defining the scope of work for a prospective project