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

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

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

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

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


Как работает Service Worker?

Пример кода:
// sw.js
self.addEventListener('install', (event) => {
event.waitUntil(
caches.open('v1').then((cache) => {
return cache.addAll(['/index.html', '/styles.css']);
})
);
});

self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request).then((response) => {
return response || fetch(event.request);
})
);
});


❗️Ответ:
Service Worker
— это скрипт, который работает в фоновом режиме и позволяет управлять кэшированием, push-уведомлениями и офлайн-работой. Service Worker действует как прокси между браузером и сетью, перехватывая сетевые запросы и решая, как их обрабатывать. Это основа для Progressive Web Apps (PWA).

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


Что такое Tree Shaking?

Пример кода:
// Webpack config
module.exports = {
mode: 'production',
optimization: {
usedExports: true,
},
};


❗️Ответ:
Tree Shaking
— это процесс удаления неиспользуемого кода при сборке проекта с помощью инструментов, таких как Webpack. Это позволяет уменьшить размер итогового бандла, удаляя код, который никогда не будет выполнен. Tree Shaking работает только с модулями, которые используют синтаксис ES6 (import/export).

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


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

Пример кода:
function add(a: number, b: number): number {
return a + b;
}
const result = add(1, 2); // 3


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

Ссылка на документацию
TypeScript: Documentation
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #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