ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ: 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