ОписаниС вакансии: Svelte FullStack

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚:

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ с P2P video для Π΄Π΅ΠΉΡ‚ΠΈΠ½Π³Π°. НСобходимо Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ мобильного прилоТСния.

Π—Π°Π΄Π°Ρ‡ΠΈ:

НаписаниС ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ прилоТСния Π½Π° SvelteKit. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Π°ΠΏΠΈ Π±Π΅ΠΊΠ΅Π½Π΄Π°. Π’Π΅Ρ€ΡΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Роль β€” Π²Π΅Ρ€ΡΡ‚Π°Π»ΡŒΡ‰ΠΈΠΊ. РСализация ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ принятыС ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

  • TypeScript для всСго, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ sveltekit, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ для load Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ sveltekit сам Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΈΠΏΡ‹.
  • ВсС API Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ codegen для graphql ΠΈ URQL. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ структуры ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² hasura Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ошибкС сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ typecheck.
  • ΠœΠΈΠ½ΠΈΠΌΡƒΠΌ Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ (Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ самому ΠΈΠ»ΠΈ Π·Π°Π²Π΅Π½Π΄ΠΎΡ€ΠΈΡ‚ΡŒ ΠΈΠ·-Π·Π° ΠΌΠ°Π»ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° β€” Ρ‚Π°ΠΊ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ)
  • ΠœΡ‹ Π½Π΅ пишСм ΡŽΠ½ΠΈΡ‚ тСсты, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты. ΠœΡ‹ Π½Π΅ пишСм ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ 3rd party Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‡ΠΈ:

Π£ нас Π΅ΡΡ‚ΡŒ Π°ΠΏΠΈ запуска Π²ΠΈΠ΄Π΅ΠΎ Π·Π²ΠΎΠ½ΠΊΠ°. Оно состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… этапов. Π¨Π°Π³ΠΈ:

  • ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Π·Π²ΠΎΠ½ΠΊΠΎΠ² (settings-videoSettings)
  • созданиС заявки Π½Π° Π·Π²ΠΎΠ½ΠΎΠΊ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ userid (videoCallRequest(uid))
  • подписка Π½Π° ΠΎΡ‚Π²Π΅Ρ‚ ΠΎ созданной заявкС (subscribeIncomingRequests(uid))
  • инициализация Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для запуска Π·Π²ΠΎΠ½ΠΊΠ°
  • инициализация тСкстового ΠΊΠ°Π½Π°Π»Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° Π·Π²ΠΎΠ½ΠΊΠ° (для Ρ‡Π°Ρ‚Π°)
  • подписка Π½Π° обновлСния балансов (subscribeBalance()) Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… основного Ρ„Π»ΠΎΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΡ€Π½Π΅Ρ€ кСйсы:

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ создания заявки ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΎ нСдостаткС Π΄Π΅Π½Π΅Π³ => ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ пополнСния баланса

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ создания Π·Π²ΠΎΠ½ΠΊΠ° Π½Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ собСсСдника 15 сСкунд (врСмя настраиваСтся) ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ сообщСниС ΠΎ нСдоступности Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π°.

ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Ρ‹Π²Π΅ соСдинСния Π²ΠΎ врСмя Π·Π²ΠΎΠ½ΠΊΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствиС согласно ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ†ΠΈΠΈ: Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ дСньги, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΡΠ΅Ρ‚ΡŒΡŽ, Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Для дСйствия ΠΎ ΠΊΠΎΠ½Ρ†Π΅ Π΄Π΅Π½Π΅Π³ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π½Π° экран пополнСния.

Π’Π΅Ρ… стСк:

SvelteKit, Svelte, SCSS, URQL, GraphQL, WS.

ВрСбования ΠΊ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°ΠΌ:

ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹: 4+ Π³ΠΎΠ΄Π° коммСрчСского ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° ReactJS/Svelte/Solid/Svelte ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³Π΅ (ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со Svelte must have). ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Π΅ΠΊΠ΅Π½Π΄Π° (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° nodejs). Если Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π° Π½Π° github, Ρ‚ΠΎ оТидаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстового задания:

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹:

git, browserstack, figma, jira, confluence

ВСхничСскиС Π½Π°Π²Ρ‹ΠΊΠΈ:

Английский: intermediate + Π£ΠΌΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄. Π—Π½Π°Π½ΠΈΠ΅ стандартов (использованиС fetch вмСсто axios, максимально ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ возмоТности Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°/срСды исполнСния) НСобходимо ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ взаимосвязь Ρ€Π°Π·Π½Ρ‹Ρ… элСмСнтов. Π£Π²Ρ‹ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ Π½Π΅ stateless, поэтом прийдСтся ΠΆΠΎΠ½Π³Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ состояниями.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹:

ΡƒΠ΄Π°Π»Π΅Π½ΠΊΠ°.

#vacancy #frontend