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.
Requirements:
  • 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.
To the next level
  • 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.