The Back-end Developer has four main responsibilities:
- Developing all server-side logic, definition and maintenance of the central database, and ensuring high performance and responsiveness to requests from the front-end
- Design, build and maintain API-level capabilities for integration with various apps, including front-end experiences developed internally and with 3rd party partners
- Integrating and maintaining cutting edge software applications that meet our business needs and apply functional knowledge and technical expertise in the implementation and maintenance of custom and 3rd party software
- Maintaining and evolving all back-end technologies related to our internal and customer facing mobile and web-based applications (e.g. company apps, websites, ordering platform, etc.).
- Design and evolve best in class back-end infrastructure and services
- Driving new and innovative solutions to meet business needs
- Integration of user-facing elements developed by front-end developers with server side logic
- Building reusable code and libraries for future use
- Optimization of the application for maximum speed and scalability
- Implementation of security and data protection
- Design and implementation of data storage solutions
- Natural problem solver with a passion for creating simple solutions
- Relationship builder with strong cross-functional collaboration skills
- Desire to work in a fast-paced, high-growth startup environment
- Must be a self-starter with excellent written and verbal communication skills
- Excellent software design and documentation skills
- Experience working on Rails-based projects composed of multiple custom gems/engines a plus.
- Strong understanding of REST-based APIs is critical for maintenance of the backend + middleware.
- Experience with Linux, PostgreSQL and other open source technologies.
- Experience with containerization and continuous integration/continuous delivery, especially using Docker.
- Knowledge of AWS is beneficial as well, namely S3, Cloudfront, RDS. EC2, Elasticache, SQS, and SNS.
- Good understanding of server-side CSS preprocessors, such as LESS and SASS.
- User authentication and authorization between multiple systems, servers, and environments.
- Integration of multiple data sources and databases into one system.
- Management of hosting environment, including database administration and scaling an application to support load changes.
- Data migration, transformation, and scripting.
- Setup and administration of backups.
- Creating database schemas that represent and support business processes.
- Understanding accessibility and security compliance.
- Proficient understanding of code versioning tools, such as Git.
- Proficient understanding of OWASP security principles.
- Experience with background tasks, Redis or other in-memory data stores and message queues a plus.
- Understanding of “session management” in a distributed server environment.