JavaScript Job | Вакансии | Стажировки
11.3K subscribers
166 photos
25 videos
2.71K links
Вакансии отобраны из проверенных IT-компаний

Все каналы с вакансиям - @best_ITjob

Разместить вакансии и рекламу - @hr_rus

или telega.in/channels/JScript_jobs/card

https://knd.gov.ru/license?id=6755333831a9292acd799a13&registryType=bloggersPermission
Download Telegram
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Что такое замыкания (Closures)?

Пример кода:
function outer() {
let count = 0;
return function inner() {
count++;
return count;
};
}
const counter = outer();
console.log(counter()); // 1
console.log(counter()); // 2


❗️Замыкание — это функция, которая запоминает лексическое окружение, в котором она была создана. Это позволяет функции использовать переменные из внешней области видимости даже после того, как внешняя функция завершила выполнение. Замыкания часто используются для создания приватных переменных или функций.

Ссылка на
документацию по MDN: Closures
Please open Telegram to view this post
VIEW IN TELEGRAM
#вакансия #vacancy #FullStack #Nodejs #Node #JavaScript #JS

FullStack Developer @ Glam AI

Ищем Full-Stack разработчика в Glam, AI-стартап с $3M ARR и 150 000+ клиентами в США и Европе. Работаем над AI-продуктами для генерации контента и ждем сильного разработчика, который поможет улучшать наши веб-решения.

В приоритете кандидаты, кто готов работать на гибриде в Тбилиси (с релокацией помогаем)

Что делать?
— Разработка и поддержка веб-приложений на React, Next.js и Node.js.
— Управление облачной инфраструктурой (AWS S3)
— Взаимодействие с командами продукта, дизайна и маркетинга
— Разработка API для сервисов генерации фото/видео и настройка логирования, мониторинга.

Кого ищем?
— 3+ года опыта в Full-Stack разработке.
— Опыт работы с React, Next.js, Node.js.
— Навыки работы с API, медиа-контентом (фото/видео), AWS(S3)/GCP.
— ( Будет плюсом) Python для API-интеграции.
— Готовность работать в быстрорастущем стартапе.

Что предлагаем?
— ЗП от $4000-$6000
— Помощь с релокацией (релок. пакет + welcome bonus)
— Вся необходимая техника.
— Одна из ключевых ролей в команде с высоким уровнем автономности и вкладом в продукт.

📩 Вопросы и резюме: @‌NastyaOffer
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Как работает Promise?

Пример кода:
const promise = new Promise((resolve, reject) => {
setTimeout(() => resolve('Done'), 1000);
});
promise
.then(result => console.log(result)) // Done
.catch(error => console.error(error))
.finally(() => console.log('Finished'));


❗️Promise — это объект, представляющий результат асинхронной операции. Он может находиться в одном из трех состояний: pending (ожидание), fulfilled (выполнено успешно) или rejected (выполнено с ошибкой). Для обработки результата используются методы then, catch и finally. then принимает два аргумента: функцию для успешного выполнения и функцию для ошибки. catch используется для обработки ошибок, а finally выполняется в любом случае.

Ссылка на
документацию MDN: Promise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎4
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Что такое async/await?

Пример кода:
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
} catch (error) {
console.error(error);
}
}


❗️async/await — это синтаксический сахар для работы с промисами. Функция, объявленная как async, всегда возвращает промис. Ключевое слово await приостанавливает выполнение функции до тех пор, пока промис не будет выполнен. Это делает асинхронный код более читаемым и похожим на синхронный.

Ссылка на
документацию MDN: async
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
#Вакансия #Vacancy #Middle #Senior #Backend #Fullstack #JavaScript #Fulltime #Remote #(Node.js)🚀

Middle+/Senior Fullstack/Backend JavaScript Developer (Node.js) 📌

Основное направление– backend 📌Формат работы – удалённо, full-time 📌Зарплата – от 3000$ до 7000$+ (обсуждается индивидуально) 📌

Контакты для отклика – @Anastasiia_Kaisheva

О компании Мы – non-public команда, занимающаяся разработкой торговых ботов, арбитражных решений, автоматизацией, баунти-хантингом и мультиаккаунтингом.

Наш фокус – работа с уязвимостями рынков и создание передовых решений для трейдинга. 💡Не связаны со скамом, имеем безупречную репутацию.

Кого ищем? 🔹Опытного Fullstack/Backend разработчика, который имеет уверенные знания в этих направлениях:

✔️Обход защит сайтов, антифрод-систем (Cloudflare, Akamai, деобфускация, фингерпринтинг).

✔️Solana – парсинг, гейзеры, ноды, скоростные боты, снайперы, DCA, MEV, frontrun.

✔️Торговые боты – wash trading/MM на биржах/перпетульных DEX через API или по backend через куки.

✔️NFT маркетплейсы– Solana, EVM-сети.

✔️Ноды, DePIN, автоматизация работы с дедиками.

✔️Мультиаккунтинг

Задачи:

🔹 Разработка нового функционала и поддержка существующего кода.
🔹 Тестирование, проверка гипотез, улучшение алгоритмов.
🔹 Участие в обсуждении архитектуры, новых идей и реализации продукта.

Как пройти отбор? 📝

Напишите в @Anastasiia_Kaisheva и ответьте:
1️⃣ В каких из перечисленных направлений у вас был реальный опыт?

2️⃣Какие кейсы (проекты, задачи) можете привести в пример?

🚀Если твой опыт совпадает с нашими задачами – добро пожаловать в команду!
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Как работает fetch API?

Пример кода:
fetch('https://api.example.com/data', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));


❗️fetch — это современный способ выполнения HTTP-запросов. Он возвращает промис, который разрешается в объект Response. Для получения данных используется метод json(), который также возвращает промис. fetch поддерживает различные методы HTTP (GET, POST и т.д.) и позволяет настраивать заголовки и тело запроса.

Ссылка на
документацию MDN: fetch
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Что такое CORS?

Пример кода:
fetch('https://api.example.com/data', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});


❗️CORS (Cross-Origin Resource Sharing) — это механизм, который позволяет браузеру запрашивать ресурсы с другого домена. Сервер должен отправить заголовок Access-Control-Allow-Origin, чтобы разрешить доступ. Если сервер не настроен для поддержки CORS, браузер блокирует запрос из соображений безопасности.

Ссылка на
документацию MDN: CORS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Как работает localStorage и sessionStorage?

Пример кода:
localStorage.setItem('key', 'value');
console.log(localStorage.getItem('key')); // value
localStorage.removeItem('key');


❗️localStorage и sessionStorage — это объекты для хранения данных в браузере. localStorage сохраняет данные без срока действия, а sessionStorage — только на время сессии (до закрытия вкладки). Оба объекта предоставляют методы setItem, getItem, removeItem и clear.

Ссылка на
документацию по MDN: localStorage
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Что такое WebSockets?

Пример кода:
const socket = new WebSocket('ws://example.com');
socket.onmessage = function(event) {
console.log(event.data);
};
socket.send('Hello, server!');


❗️WebSockets — это протокол для двусторонней связи между клиентом и сервером. Он позволяет отправлять данные в реальном времени без необходимости постоянных HTTP-запросов. WebSockets особенно полезны для чатов, онлайн-игр и других приложений, требующих мгновенного обмена данными.

Ссылка на
документацию по MDN: WebSocket
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Как работает debounce и throttle?

Пример кода:
// Debounce
function debounce(func, delay) {
let timeout;
return function(...args) {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), delay);
};
}

// Throttle
function throttle(func, limit) {
let inThrottle;
return function(...args) {
if (!inThrottle) {
func.apply(this, args);
inThrottle = true;
setTimeout(() => inThrottle = false, limit);
}
};
}


❗️debounce и throttle — это техники для оптимизации частых вызовов функций, например, при обработке событий скролла или ввода текста.

Debounce: Откладывает выполнение функции до тех пор, пока не пройдет определенное время без вызовов. Например, полезно для поиска по мере ввода текста.

Throttle: Ограничивает количество вызовов функции за определенный промежуток времени. Например, полезно для обработки событий скролла.

Ссылка на документацию по
Lodash: debounce и Lodash: throttle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Что такое Virtual DOM?

Пример кода:
// React example
const element = <h1>Hello, world!</h1>;
ReactDOM.render(element, document.getElementById('root'));


❗️Virtual DOM — это легковесная копия реального DOM, которая используется в библиотеках, таких как React, для оптимизации обновлений интерфейса. Когда состояние приложения изменяется, React создает новый Virtual DOM и сравнивает его с предыдущим (этот процесс называется "реконсиляция"). Затем React обновляет только те части реального DOM, которые изменились, что делает процесс обновления более эффективным.

Ссылка на документацию по
React: Virtual DOM
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Как работает React.memo?

Пример кода:
const MyComponent = React.memo(function MyComponent(props) {
return <div>{props.value}</div>;
});


❗️React.memo — это компонент высшего порядка, который предотвращает повторный рендеринг функционального компонента, если его пропсы не изменились. Это полезно для оптимизации производительности, особенно когда компонент рендерится часто, но его пропсы остаются неизменными.

Ссылка на документацию по
React: memo
Please open Telegram to view this post
VIEW IN TELEGRAM
3
#резюме #frontend #удаленная #js #javascript #vue #nuxt #vuex #html #css #ts

Сергей Корниенко, Senior Frontend Developer

🏠 Формат работы: удаленная
🛠 Занятость: полная занятость
💵 Ожидания по зарплате: от 300 000 руб.
🧑‍💻 Коммерческий опыт: 19 лет

Стек: TypeScript, Vue 2/3, Nuxt, REST/GraphQL/WebSockets

Дополнительно:
Говорю и пишу на английском языке. Помимо основной работы преподавал JavaScript в Moscow Coding School, вел семинары по веб-разработке и курс по верстке в Skillbox, выступал с докладами по Vue, вот один из них: https://www.youtube.com/watch?v=14yOawLavB0. А вот несколько работ: https://sibur.digital, https://starlinkrussia.ru, https://baumanhouse.ru

Телеграм: @trest_invest
Резюме: https://docs.google.com/document/d/1aUnL2fvI3Ar-kW4Vq-jIdguFKOzIOrzmwY0zBU-vclc
#вакансия #javascript #research #security #remote

Формат работы: Удаленная работа, полный день
Занятость: Полная
Зарплатная вилка: 80 000 - 180 000 руб. на руки (возможна оплата в USDT)

### Junior/Middle JavaScript-разработчик (Browser Security R&D)

Привет! Мы ищем не опытного сеньора, а увлеченного джуниор/мидл JavaScript-разработчика, который хочет свернуть с проторенной дорожки веб-разработки в сторону глубоких и нетривиальных задач в области кибербезопасности.

Если вам надоело "двигать кнопки", но по-настоящему интересно, как работает браузер "под капотом", как детектировать аномалии в сетевом трафике и искать креативные способы сбора данных — эта вакансия для вас.

О проекте: Мы разрабатываем высокотехнологичную anti-fraud систему, которая специализируется на низкоуровневом фингерпринтинге браузеров для защиты от мошенничества.

Чем предстоит заниматься:
R&D (70% времени): Это сердце вашей работы. Вы будете исследовать, находить и реализовывать новые техники детектирования VPN/Proxy, аномалий в WebRTC, Canvas, DNS, QUIC и других векторов. Весь цикл — от поиска идеи в RFC или исходниках Chromium до написания рабочего кода.
Разработка JS SDK (30% времени): Писать производительные и незаметные модули на чистом (vanilla) JavaScript, которые работают в браузере и собирают уникальные цифровые отпечатки.
Защита кода: Изучать и применять обфускацию, анти-отладку и другие техники, чтобы защитить наш SDK от реверс-инжиниринга.

Наши требования: кто нам нужен?

Мы ищем человека с определенным складом ума. Нам не так важен ваш коммерческий опыт, как ваш подтвержденный и живой интерес к ИБ и желание развиваться.

Техническая база: Уверенное знание нативного JavaScript и понимание асинхронности (async/await, Promise).
Понимание сетей: Вы знаете, чем TCP отличается от UDP, что такое DNS-запрос и зачем нужен QUIC.
Исследовательский дух: Вам нравится копаться в документации, читать RFC или исходники браузерных движков, чтобы понять, как что-то работает на самом деле.

И самое главное:

Страсть к кибербезопасности. Вы можете подтвердить свой интерес чем-то из этого списка (достаточно одного-двух пунктов):
• Участие в CTF-соревнованиях (даже если без призовых мест).
• Pet-проекты на GitHub (браузерные расширения, сетевые утилиты, скрипты для автоматизации, любые ваши "поделки" и эксперименты).
• Статьи, заметки или доклады на тему ИБ.
• Профильное образование в области информационной безопасности.

Будет плюсом (но не обязательно):
• Умение читать C++ (для анализа кода браузерных движков).
• Опыт анализа трафика в Wireshark.
• Опыт реверс-инжиниринга или деобфускации JavaScript-кода.

Как откликнуться (это важно!)

Пожалуйста, вместе с резюме пришлите краткое сопроводительное письмо. В нем расскажите о вашем интересе к кибербезопасности и приложите доказательства: ссылку на ваш GitHub, никнейм на CTF-платформе, статью или что-то еще, что покажет вашу увлеченность.

Мы не сможем рассмотреть отклики без этого пункта, так как ищем прежде всего единомышленника, который "горит" этой темой.

Контакт: https://xn--r1a.website/Siemons8
2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Что такое GraphQL?

Пример кода:
const query = `
{
user(id: 1) {
name
email
}
}
`;

fetch('/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ query }),
})
.then(response => response.json())
.then(data => console.log(data));


❗️Ответ:
GraphQL
— это язык запросов для API, который позволяет клиентам запрашивать только нужные данные. В отличие от REST, где сервер определяет структуру ответа, в GraphQL клиент сам определяет, какие данные ему нужны. Это уменьшает количество избыточных данных и упрощает работу с API. GraphQL использует схему для описания типов данных и запросов.

Ссылка на документацию
GraphQL: Documentation
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Что такое Redux?

Пример кода:
// Redux example
const initialState = { count: 0 };

function reducer(state = initialState, action) {
switch (action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
default:
return state;
}
}

const store = createStore(reducer);
store.dispatch({ type: 'INCREMENT' });
console.log(store.getState()); // { count: 1 }


❗️Ответ:
Redux
— это библиотека для управления состоянием приложения. Она использует однонаправленный поток данных и хранилище (store), которое содержит все состояние приложения. Состояние изменяется с помощью действий (actions), которые передаются в редюсеры (reducers). Редюсеры — это чистые функции, которые возвращают новое состояние на основе предыдущего состояния и действия.

Ссылка на документацию
Redux: Documentation
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Что такое Redux?

Пример кода:
// Redux example
const initialState = { count: 0 };

function reducer(state = initialState, action) {
switch (action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
default:
return state;
}
}

const store = createStore(reducer);
store.dispatch({ type: 'INCREMENT' });
console.log(store.getState()); // { count: 1 }


❗️Ответ:
Redux
— это библиотека для управления состоянием приложения. Она использует однонаправленный поток данных и хранилище (store), которое содержит все состояние приложения. Состояние изменяется с помощью действий (actions), которые передаются в редюсеры (reducers). Редюсеры — это чистые функции, которые возвращают новое состояние на основе предыдущего состояния и действия.

Ссылка на документацию
Redux: Documentation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Как работает Context API в React?

Пример кода:
const MyContext = React.createContext();

function App() {
return (
<MyContext.Provider value="Hello">
<ChildComponent />
</MyContext.Provider>
);
}

function ChildComponent() {
const value = useContext(MyContext);
return <div>{value}</div>;
}


❗️Ответ:
Context API
позволяет передавать данные через дерево компонентов без необходимости передавать пропсы на каждом уровне. Это особенно полезно для глобальных данных, таких как тема, настройки пользователя или состояние аутентификации. Контекст создается с помощью React.createContext, а данные передаются через Provider и потребляются с помощью useContext или Consumer.

Ссылка на документацию
React: Context
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!


Что такое Web Workers?

Пример кода:
// main.js
const worker = new Worker('worker.js');
worker.postMessage('Hello');
worker.onmessage = function(event) {
console.log(event.data); // Hello from worker
};

// worker.js
onmessage = function(event) {
console.log(event.data); // Hello
postMessage('Hello from worker');
};


❗️Ответ:
Web Workers
позволяют выполнять
JavaScript в фоновом потоке, не блокируя основной поток. Это полезно для выполнения тяжелых вычислений или задач, которые могут замедлить интерфейс. Web Workers обмениваются данными с основным потоком через сообщения (postMessage и onmessage).

Ссылка на документацию
MDN: Web Workers
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2