#вакансия #javascript #research #security #remote
Формат работы: Удаленная работа, полный день
Занятость: Полная
Зарплатная вилка: 80 000 - 180 000 руб. на руки (возможна оплата в USDT)
### Junior/Middle JavaScript-разработчик (Browser Security R&D)
Привет! Мы ищем не опытного сеньора, а увлеченного джуниор/мидл JavaScript-разработчика, который хочет свернуть с проторенной дорожки веб-разработки в сторону глубоких и нетривиальных задач в области кибербезопасности.
Если вам надоело "двигать кнопки", но по-настоящему интересно, как работает браузер "под капотом", как детектировать аномалии в сетевом трафике и искать креативные способы сбора данных — эта вакансия для вас.
О проекте: Мы разрабатываем высокотехнологичную
Чем предстоит заниматься:
• R&D (70% времени): Это сердце вашей работы. Вы будете исследовать, находить и реализовывать новые техники детектирования
• Разработка JS SDK (30% времени): Писать производительные и незаметные модули на чистом (vanilla) JavaScript, которые работают в браузере и собирают уникальные цифровые отпечатки.
• Защита кода: Изучать и применять обфускацию, анти-отладку и другие техники, чтобы защитить наш
Наши требования: кто нам нужен?
Мы ищем человека с определенным складом ума. Нам не так важен ваш коммерческий опыт, как ваш подтвержденный и живой интерес к ИБ и желание развиваться.
• Техническая база: Уверенное знание нативного JavaScript и понимание асинхронности (
• Понимание сетей: Вы знаете, чем
• Исследовательский дух: Вам нравится копаться в документации, читать
И самое главное:
Страсть к кибербезопасности. Вы можете подтвердить свой интерес чем-то из этого списка (достаточно одного-двух пунктов):
• Участие в CTF-соревнованиях (даже если без призовых мест).
• Pet-проекты на
• Статьи, заметки или доклады на тему ИБ.
• Профильное образование в области информационной безопасности.
Будет плюсом (но не обязательно):
• Умение читать
• Опыт анализа трафика в Wireshark.
• Опыт реверс-инжиниринга или деобфускации JavaScript-кода.
Как откликнуться (это важно!)
Пожалуйста, вместе с резюме пришлите краткое сопроводительное письмо. В нем расскажите о вашем интересе к кибербезопасности и приложите доказательства: ссылку на ваш GitHub, никнейм на CTF-платформе, статью или что-то еще, что покажет вашу увлеченность.
Мы не сможем рассмотреть отклики без этого пункта, так как ищем прежде всего единомышленника, который "горит" этой темой.
Контакт: https://xn--r1a.website/Siemons8
Формат работы: Удаленная работа, полный день
Занятость: Полная
Зарплатная вилка: 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 — это язык запросов для API, который позволяет клиентам запрашивать только нужные данные. В отличие от REST, где сервер определяет структуру ответа, в GraphQL клиент сам определяет, какие данные ему нужны. Это уменьшает количество избыточных данных и упрощает работу с API. GraphQL использует схему для описания типов данных и запросов.
Ссылка на документацию GraphQL: Documentation
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
GraphQL?Пример кода:
const query = `
{
user(id: 1) {
name
}
}
`;
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 использует схему для описания типов данных и запросов.
Ссылка на документацию
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
❓Что такое
Пример кода:
❗️ Ответ:
Redux — это библиотека для управления состоянием приложения. Она использует однонаправленный поток данных и хранилище (store), которое содержит все состояние приложения. Состояние изменяется с помощью действий (actions), которые передаются в редюсеры (reducers). Редюсеры — это чистые функции, которые возвращают новое состояние на основе предыдущего состояния и действия.
Ссылка на документацию Redux: Documentation
Вопросы, которые могут задать на собеседовании 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). Редюсеры — это чистые функции, которые возвращают новое состояние на основе предыдущего состояния и действия.
Ссылка на документацию
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
❓Что такое
Пример кода:
❗️ Ответ:
Redux — это библиотека для управления состоянием приложения. Она использует однонаправленный поток данных и хранилище (store), которое содержит все состояние приложения. Состояние изменяется с помощью действий (actions), которые передаются в редюсеры (reducers). Редюсеры — это чистые функции, которые возвращают новое состояние на основе предыдущего состояния и действия.
Ссылка на документацию Redux: Documentation
Вопросы, которые могут задать на собеседовании 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). Редюсеры — это чистые функции, которые возвращают новое состояние на основе предыдущего состояния и действия.
Ссылка на документацию
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
❓Как работает
Пример кода:
❗️ Ответ:
Context API позволяет передавать данные через дерево компонентов без необходимости передавать пропсы на каждом уровне. Это особенно полезно для глобальных данных, таких как тема, настройки пользователя или состояние аутентификации. Контекст создается с помощью React.createContext, а данные передаются через Provider и потребляются с помощью useContext или Consumer.
Ссылка на документацию React: Context
Вопросы, которые могут задать на собеседовании 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.
Ссылка на документацию
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
❓Что такое
Пример кода:
❗️ Ответ:
Web Workers позволяют выполнять JavaScript в фоновом потоке, не блокируя основной поток. Это полезно для выполнения тяжелых вычислений или задач, которые могут замедлить интерфейс. Web Workers обмениваются данными с основным потоком через сообщения (postMessage и onmessage).
Ссылка на документацию MDN: Web Workers
Вопросы, которые могут задать на собеседовании 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 позволяют выполнять
Ссылка на документацию
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
❓ Как работает
Пример кода:
❗️ Ответ:
Service Worker — это скрипт, который работает в фоновом режиме и позволяет управлять кэшированием, push-уведомлениями и офлайн-работой. Service Worker действует как прокси между браузером и сетью, перехватывая сетевые запросы и решая, как их обрабатывать. Это основа для Progressive Web Apps (PWA).
Ссылка на документацию MDN: Service Worker
Вопросы, которые могут задать на собеседовании 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).
Ссылка на документацию
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
❓ Что такое
Пример кода:
❗️ Ответ:
Tree Shaking — это процесс удаления неиспользуемого кода при сборке проекта с помощью инструментов, таких как Webpack. Это позволяет уменьшить размер итогового бандла, удаляя код, который никогда не будет выполнен. Tree Shaking работает только с модулями, которые используют синтаксис ES6 (import/export).
Ссылка на документацию Webpack: Tree Shaking
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
Tree Shaking?Пример кода:
// Webpack config
module.exports = {
mode: 'production',
optimization: {
usedExports: true,
},
};
Tree Shaking — это процесс удаления неиспользуемого кода при сборке проекта с помощью инструментов, таких как Webpack. Это позволяет уменьшить размер итогового бандла, удаляя код, который никогда не будет выполнен. Tree Shaking работает только с модулями, которые используют синтаксис ES6 (import/export).
Ссылка на документацию
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
❓ Как работает
Пример кода:
❗️ Ответ:
TypeScript — это надмножество JavaScript , которое добавляет статическую типизацию. Это помогает находить ошибки на этапе разработки и улучшает читаемость кода. TypeScript компилируется в обычный JavaScript , который может выполняться в любом браузере или среде. TypeScript поддерживает интерфейсы, типы, дженерики и другие возможности, которые делают код более надежным.
Ссылка на документацию TypeScript: Documentation
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
TypeScript?Пример кода:
function add(a: number, b: number): number {
return a + b;
}
const result = add(1, 2); // 3TypeScript — это надмножество
Ссылка на документацию
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #javascript #senior
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
❓ Что такое
Пример кода:
❗️ Ответ:
GraphQL — это язык запросов для API, который позволяет клиентам запрашивать только нужные данные. В отличие от REST, где сервер определяет структуру ответа, в GraphQL клиент сам определяет, какие данные ему нужны. Это уменьшает количество избыточных данных и упрощает работу с API. GraphQL использует схему для описания типов данных и запросов.
Ссылка на документацию GraphQL: Documentation
Вопросы, которые могут задать на собеседовании Senior JavaScript Developer.
Проверьте себя без помощи поисковиков!
GraphQL?Пример кода:
const query = `
{
user(id: 1) {
name
}
}
`;
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 использует схему для описания типов данных и запросов.
Ссылка на документацию
Please open Telegram to view this post
VIEW IN TELEGRAM