Full-Stack JavaScript Developer
Full-Stack JavaScript Developer

Full-Stack JavaScript Developer

Hi! 👋

I'm Vova, CTO in Paralect, and I'm looking for a Node.JS developers to join our team. I like engineers with can-do attitude who know more than me and openly share their knowledge.

image
Meet Vova

Grow into world class product engineer with us 💥

Paralect’s goal is to build the best possible conditions for creators to implement their creative and entrepreneurial initiatives.

We’re building a platform for personal brands available for all the Paralect members.

See more on Paralect and Paralect Workshop YouTube channels.

Paralect + JavaScript

Paralect was founded by developers in 2009. Strong engineering culture is the foundation of the company.

image

We've been using Node.JS on production products since 2014.

We're early adopters of MongoDB. We've developed Robomongo — an open-source MongoDB shell with more than a million downloads. See why we default to MongoDB in Paralect here

We've been using react.js since 2014, react-native since 2016, nw.js since 2014, Electron since 2015. Betting on 0.x versions back then.

We've trained more than 70 Full-Stack JavaScript engineers who graduated from the Startup Summer internship program.

P.S. We're not limited by JavaScript and update our stack regularly. See Paralect's complete stack.

Skills we're looking for

image

JavaScript & Node.JS

Strong Knowledge

You should have a strong knowledge of JavaScript and understand the most quirky parts of the language.

You should understand the internal basics: event loop, micro/macro tasks, I/O, V8.

We prefer Koa and Express for API and expect that designing, running, and scaling an API is not an issue for you.

image

SQL

Medium Knowledge

Regardless of our love for MongoDB, RDBMS and SQL knowledge remain must-have skills for backend development.

We prefer PostgreSQL but experience with any relational database is enough.

Understanding the difference between OLTP, OLAP, and HTAP systems design will be beneficial.

image

System Design

Basic Knowledge

We hope you've heard something about Microservices, Event Sourcing, CQRS, DDD, Kappa/Lambda architectures.

We hope that the Log means more than console.log for you.

If you can conceptually describe how to design a Twitter/Facebook feed — it would be more than enough.

image

MongoDB

Strong Knowledge

We enjoy NoSQL databases and MongoDB in particular. MongoDB fits naturally in the JS full-stack and helps to avoid object-relational impedance mismatch.

We expect you to know some of the MongoDB drivers and the query language.

Understanding indexes, replication, and sharding will be beneficial.

image

DevOps

Basic Knowledge

You should understand the basic concepts of clouds and the way to deliver your code to multiple environments.

GitHub Actions, Kubernetes, Docker, Terraform, Grafana, Prometheus, AWS are great, but Serverless and PaaS are often just enough.

image

Curiosity

Constant Learning

You should constantly search for ways to improve your current toolset and question the approaches that have been applied.

You should understand how to communicate + 'sell' your vision and find ways to apply your knowledge while minimizing risks for your team and the product you work on.

🤯 Scared by something from the above requirements?
💡
No worries — that's an ideal profile, but the world is not ideal. Below are some resources we recommend to check if you want to learn more. Architecture • 🔥🔥 Designing data-intensive applications by Martin Kleppmann 🔥🔥 • The Log: What every software engineer should know about real-time data's unifying abstraction by Jay Kreps (Apache Kafka creator, CEO Confluent) • Microservices.io — common microservice patterns, built by Chris Richardson • How to beat the CAP theorem by Nathan Marz (Apache Storm creator) • Questioning the Lambda Architecture by Jay Kreps • CQRS documents by Greg Yung System Design • TechLeadJournalTowards Data Science Blog • Gaurav Sen YouTube channel • Tech Dummies YouTube channel MongoDB • Documentation (yes, it's pretty good) M001: MongoDB Basics (the go-to official MongoDB course)

We offer:

🚀
Framework for professional and personal growth: regular reviews to develop professional competencies, corporate library, internal meetups, workshops for learning and experience sharing, english classes
🌴
25 calendar days paid vacation per year + 12 paid personal days, paid sick leave
💰
Bonuses: partnership & bonuses (allsports.by), maternity bonus, employee referral bonuses
🏠
Remote teamwork in different countries. Look at here!
🛋️
Flexible working hours, remote work (with optional access to the office)
💊
Medical Insurance
💻
Modern equipment
💃🏻
Participation in various social and team building events.

Test task 🐝

🚨
To apply to this vacancy you have to complete test task!

The task for you is to develop a marketplace integrated with Stripe. If something is not described in the requirements, do it as you see fit!

Design

Functional requirements ✍️

🔐 Registration and Login

  • Registration via email and password.

📦 Product Page

  • List of products that you created on the "Your Products" tab.
  • Button to add a new product with a form:
    • Name, image, price (USD).

📝 Viewing Products

  • List of all products on the "Marketplace".
    • Filters by name and price.
    • Should be implemented pagination and empty state.

💵 Buying Products

🧾 List of Purchases

  • "My cart" and "History" tabs in the cart.

Stack

To implement the test task, please use:

  • Ship - Full-Stack JavaScript boilerplate for starting a project based on React and Next.js
  • MongoDB Atlas - use at as MongoDB database, free plan will be enough.
  • Stripe - through this service you will process payments, a regular account with Test mode will be enough.
  • Firebase - you can use Firebase Storage for free image storage. You can also use Tebi, If you find another free solution - go for it!
  • Render - you can upload the finished application here. If you find another free solution - go for it!
  • GitHub - here you will upload the source code.
💡
Use as many components as possible from Mantine. The design is created to minimize the use of custom components, even Rich text editor!

Feedback

Issues? Write to rnd@paralect.com. We will help if possible, but we will not solve the test for you.

Test task work flow

  1. Fork the repository with initialized Ship: github.com/paralect/js-vacancy-test-task/fork
  2. Accomplish all your work in the main branch
  3. Deploy your application
  4. Submit the form using the link below

Apply Here →