Experienced Back End Developer
The back end contains the business rules, and the plumbing for a system. A back
end web developer is responsible for server-side web application logic and
integration of the work that front-end web developers do. Back end developers usually
write web services and APIs used by front end developers and mobile application
developers.
Responsibilities:
- All comers
- Design, develop, and test software applications to support business requirements and projects with minimal supervision.
- Implement REST endpoints and their supporting services.
- Implement automated unit and integration tests.
- Design and implementation of data storage solutions (SQL, Redis, S3, Memcache, etc)
- Participate in daily stand-up meetings, planning meetings and code review sessions
- Build reusable code and libraries, design and implement data storage solutions and ensure applications are optimized for scalability.
- Top Tier
- Understand what technical debt is, and how to remove it.
- Enjoy learning new technologies and tools.
- Demonstrate ability to lead.
- All comers
- Minimum 4 years in backend technologies such as REST, J2EE, etc.
- Working experience in a dependency injection for your preferred language (ie: Spring for Java, dependency_injector for Python)
- Working knowledge of relational databases and SQL, including types of joins, querying, and schema design.
- Understand all the basic data structures (Lists, Trees, Graphs)
- Understand Gang of Four Design Patterns
- Working knowledge of Amazon Web Services, or another major cloud platform.
- Familiarity with the HTTP Request-Response Cycle
- Extensive experience working in an Agile process.
- Attention to detail
- Top Tier
- Demonstrate understanding of design patterns beyond Factory and Singleton.
- Understand Big O thinking
- Understand difference between authorization and authentication, and be able to speak to various means of achieving both (especially OAuth2, Basic Authentication)
- Understand microservice architecture.
- Understand third party, backend-to-backend API integration, a la Twitter, or Google services.
- Be able to decompose and think through unfamiliar problems.
- Exhibit modularity, and clean, mature code practices. See DRY, YAGNI, and Single Responsibility.
- Working knowledge of non-relational databases, such as NoSQL and Graph databases.
- Understand the purpose and process of a database migration.
- Code on your own time.
- Prefer the command line.
- Demonstrate understanding of the Netflix stack and its various pieces (Zuul, Ribbon, Eureka, etc)
- Understand not just how to use git in your process, but git on a internal level.
- Understand OWASP security principles, and apply them in your designs.
- Be adept on the front end.
- Systems thinking.
- Be comfortable on a white board.