TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #1113 · 28.06

Mindbox #interview#dev Вакансия тимлида .NET, откликнулся через hh, единственная вакансия, где был указан доход: до 500 на руки. Mindbox — это крупнейший в России софт для автоматизации маркетинга. Среди клиентов известные торговые сети и бренды (Комус, Петрович, Делимобиль, Афиша, даже бигтех, например Сбер Еаптека и Мегафон). Когда я готовился к другим собеседованиям, в моём пуле был очень хороший доклад по микросервисной среде от сотрудника Mindbox с конференции DotNext. В общем, не стартап-однодневка, а вполне серьёзная организация, просто известная больше в бизнесовых, а не потребительских кругах. А ещё Mindbox — это «бирюзовая» компания. С этим термином я столкнулся впервые. Таким способом называют компании, у которых внутренняя организационная структура отвергает классические подходы с жёсткой иерархией и согласованиями. Теоретически любой человек может принять любое решение, если готов за это решение отвечать. Прозрачность зарплат внутри — все знают, кто сколько зарабатывает. Многие вопросы решаются голосованием, системой вето, дебатами с аргументацией. Принято давать не анонимную обратную связь коллегам, и в компании специально обучают, как это делать так, чтобы тебе в челюсть не прилетело человека такая обратная связь развивала, а не обижала. Короче, мечта зумера. Как в современных смешных роликах, где вчерашние школьники на звонке говорят что-то типа «Сегодня я не в ресурсе работать, пойду выпью лавандовый раф и помедитирую». Давайте честно скажу: я сам не верю, что такая структура работает. Но, во-первых, как-то всё-таки она работает. Организация успешно функционирует, ребята делятся интересными технологиями, доходы есть. И Mindbox не единственная «бирюзовая» компания в России, на самом деле их довольно много: ВкусВилл, Буше, Qiwi, Точка итд. Во-вторых, я уверен, что есть подводные камни, но выявить их с помощью вопросов на собеседованиях у меня не получилось. Например, с моей точки зрения при открытости зарплат всегда будут люди, которые считают, что кто-то с более высоким доходом на самом деле менее компетентен и получает такой доход незаслуженно. И даже в ряде случаев эти люди будут правы. Это создаёт негативное эмоциональное напряжение. Хуже открытой неприязни только скрытая: когда человек в лицо мило с тобой общается, а потом в кулуарах будет тебя поливать грязью. Но, когда я спросил на собеседовании, как они справляются с такого рода конфликтами, мне ответили, что у них так не бывает. Система повышения зарплаты тоже голосованием: на некотором внутреннем портале ты публикуешь свои достижения и желаемую новую цифру, а люди апрувят или нет. Вот тут уже, как я понял, не все подряд апрувят, а, условно, руководители. То есть, иерархия всё-таки есть в разрезе количества власти и влияния на компанию и людей в ней. Да и в других голосованиях у разных сотрудников разные веса. Должно было быть три секции: 1. Скрининг с эйчаром и обсуждение моих пожеланий 2. Встреча с техлидом, решение технической задачи, вопросы от меня по команде и продукту 3. Финальная встреча, фит, софтскиллы На скрининге действительно больше, чем в других местах, интересовались моими пожеланиями. Не только по зарплате, но и, например, с задачами какого типа я люблю работать. Основная секция Начинается с моих вопросов команде. Тут как раз я больше спрашивал про оргструктуру, чем про проект. Затем дали задачу: элементарный обход дерева. Я спросил, нужен ли им обход в ширину или в глубину, ответили, что не важно. И ещё момент — разрешили пользоваться гуглом, нейросетями (!), и даже не шарить экран на время решения (я всё-таки пошарил). Ну, то есть, идея была такая: в настоящей работе мы всё-таки сидим с гуглом, нейронками и без надзора, поэтому вот решай в условиях, приближенных к естественным. Не понимаю, что именно оценивалось, и кто мог с такими вводными не решить. Хотя потом эйчар сказала, что некоторые кандидаты решают по 50 минут (я написал за 10 на yield'ах). Когда смотрели решение, поспрашивали совсем чуть-чуть по простым вещам. И погоняли по кейсам из моего тимлидского опыта по системе STAR (situation, task, action, result).

Резултати

Намерени 5 подобни публикации

Търсене: #haskell

当前筛选 #haskell清除筛选
宇宙航海誌

@uchuukoukaishi · Post #368 · 31.07.2023 г., 13:36

今天下午碰到一个并发问题,之前写的 Haskell 并发代码有考虑不周的地方,在特定情况下会死锁,简化一下是这样的: replicateM_ n_workers . forkIO $ do { -- Worker 线程 doSomethingThatMayFail; signalTSem semaphore; } -- 主线程 waitTSem semaphore 如果 doSomethingThatMayFail 抛异常导致线程挂了,那么 signal 就 unreachable,于是主线程会卡住。而 GHC 直接检测到了这个问题并在主线程(比较及时地)抛出了 BlockedIndefinitelyOnSTM 异常。 有点好奇是怎么实现的,于是读了一下 GHC,目前初步的理解是:Haskell 中的线程本身是一个会被 GC 的堆分配对象,当前线程 block 时这个线程会被放到 TVar 的 wait queue 里。如果 TVar 被 GC 了,那么这个线程本身也就 unreachable 了(线程本身并不是 GC root),会被 mark 掉。GC 过程中,如果发现某个 thread 是 unreachable 的,那么在最后关头会调用一个叫 resurrectThreads 的函数(Schedule.c),这个函数会检查线程状态对象的 "why_blocked" 字段,如果是 BlockedOnSTM(在 park 的时候设置的),那么就会在这个线程里抛出一个 BlockedIndefinitelyOnSTM 异常(相应地,其他 block 理由也会有其他种类的异常抛出)。 这个机制不使用任何 timer,并且一旦抛出异常就是真的发生 deadlock 了。缺点大概是不 complete ,比如用一个 StablePtr 维持住线程对象的命,就可以 hang forever 了。 #haskell

Hashtags