Position: Full-Stack Developer
Company: Feroot
Category: Node.js
Experience required: 5y
English level: upper

A startup in Toronto, Canada is looking for a Full-stack Web Application Developer to implement and build features for our main web application. Responsibilities include implementing business logic functionality on the backend and implementing UI/UX design wireframes and mockups into actual code that will produce visual elements within our web application. The expected split between frontend and backend would be 30% frontend and 70% backend development.

This is an intermediate-to-senior level role and assumes that the candidate is comfortable working with a small team under minimal supervision, can take on leadership responsibilities, and has experience and skills to perform complete both frontend and backend development, including UI/UX, design and testing.

**Responsibilities:**

Develop new user-facing features
Build reusable code and components for future use
Ensure the technical feasibility of UI/UX designs
Create and maintain automated testing capabilities of the web application
Optimization of code and overall project for speed, scalability and performance

**Requirements:**

You’ve been building web applications professionally for 5+ years.
You have experience with web application frameworks; especially with NodeJS on the backend and VueJS, ReactJS or Angular on the frontend.
You are a full-stack developer but like to focus more on the backend side of things. 
You are comfortable working with non-relational databases like MongoDB and Elasticsearch, having previously run production loads on both dbs.
You can lead technical architecture discussions and help drive technical decisions.
You write understandable and testable code with an eye toward maintainability.
You are a strong communicator. Explaining complex technical concepts to designers, support, and other developers is not a challenge for you.
You possess strong computer science fundamentals: data structures, algorithms, programming languages, distributed systems, and information retrieval.
You have a bachelor's degree in Computer Science, Engineering or a related field, or equivalent training, fellowship, or work experience.

**Really nice to have:**

You have a strong interest in and understanding of cybersecurity.
You have built, released and managed your own product from start to finish.