Position: Junior Frontend Engineer
Company: SimpleTexting
Category: JavaScript
Experience required: no_exp
English level: pre

A long-term growth opportunity

Location: Remote only (anywhere between UTC-6 and UTC+3 time zones)
Time commitment: Full-time (40 hours per week, or close to it)
Type of position: Permanent (auto-renewing freelance services contract with no end date)
The Company
The company is headquartered in Santa Cruz, California, and was started a decade ago when the solar energy revolution was just getting its legs under it. The company employs ~20 people in total.

The product is a web-based software-as-a-service (SaaS) solution that allows anyone in the US to design a residential solar system and generate a permit package in as little as fifteen minutes (see lyrasolar.com). It helps make solar power cheaper and more affordable which opens a path to a more fair and sustainable energy economy.

The Work
The codebase we work with has 3 equally important sides to it:
Typical webapp concerns (UI components, forms, modals, API calls, etc.) addressed using React, Styled Components, and MobX
3D graphics and object manipulation in space (drawing, selecting, dragging and dropping things on canvas, etc.) implemented primarily using three.js
Managing complex in-memory domain state (expressed as a non-anemic domain model) - addressed using MobX and domain modeling
Our goal is to create a software system in a complex domain while making sure that the system would be easy to operate, modify, and evolve. This will require great design, a lot of automation, and a mature engineering culture.
You’ll get interesting learning opportunities by working on a complex modern frontend project and by getting experienced with the solar domain, a technology that is bringing a positive change in the world.  
As a Junior frontend developer, you would be expected to:
Over time figure out a big and complex project which is the main product of our company. That would include getting into domain knowledge of solar systems as well as technical details of our front-end solutions (canvas/ThreeJs-related code, MobX-based state management, etc).
Learn and extend the unit and end-to-end testing coverage using existing tests as examples with guidance from other developers.
After the initial period of getting accustomed to the project you would be autonomous when dealing with simple issues, and be ready to cooperate with other developers to solve more complex issues.
Pay attention to the existing standards and ways of writing code in order to bring your code to the same level.
Be ready for potentially nitpicky code reviews until you're accustomed to the project and are proficient enough.
Have the ability to communicate well in English in both writing and speech.
Be kind, honest, responsible, and reliable.
Once you apply we’ll share an “Engineering notes” document describing the technologies we use, our current process, our engineering philosophy, and some ideas for the future.

The Candidate (You)
You would be ready to adapt to working on a big and complex project and become proficient with it over time. You’ll also potentially learn a lot of new technologies and/or skills along the way and must be willing to cooperate with other developers while figuring out the project and doing/receiving code reviews.
We'll consider candidates that have no commercial experience if they do well in both a technical interview with a small live coding challenge as well as solve a ~2 hours take-home challenge.

Additional Information
Commercial development experience is a plus as are pet projects you'd be willing to talk with us about.
Being good at spatial thinking and geometry is also a plus.
We value diversity and are an equal-opportunity employer. Confidentiality is guaranteed.