Chorus One to jeden z wiodących operatorów infrastruktury dla sieci Proof-of-Stake i zdecentralizowanych protokołów. Dziesiątki tysięcy klientów detalicznych i instytucji inwestuje miliardy w aktywa za pośrednictwem naszej infrastruktury, pomagając zabezpieczać protokoły i zdobywać nagrody. Naszą misją jest zwiększanie swobody i szybkości innowacji poprzez zdecentralizowane technologie.
Jesteśmy zróżnicowanym zespołem składającym się z ponad 70 osób rozmieszczonych na całym świecie. Cenimy rad
Chorus One to jeden z wiodących operatorów infrastruktury dla sieci Proof-of-Stake i zdecentralizowanych protokołów. Dziesiątki tysięcy klientów detalicznych i instytucji inwestuje miliardy w aktywa za pośrednictwem naszej infrastruktury, pomagając zabezpieczać protokoły i zdobywać nagrody. Naszą misją jest zwiększanie swobody i szybkości innowacji poprzez zdecentralizowane technologie.
Jesteśmy zróżnicowanym zespołem składającym się z ponad 70 osób rozmieszczonych na całym świecie. Cenimy radykalną przejrzystość, dążenie do doskonałości i doskonalenia, jednocześnie traktując siebie nawzajem z życzliwością i hojnością. Jeśli to brzmi podobnie do Ciebie, chętnie usłyszymy od Ciebie.
Opis stanowiska:
Jako starszy inżynier oprogramowania dołączysz do jednego z naszych zespołów inżynieryjnych, aby pomagać w budowaniu i utrzymywaniu narzędzi oraz automatyzacji wspierających działania naszych walidatorów. Pobieramy oprogramowanie węzła nadrzędnego z projektów takich jak Ethereum, Solana, Cosmos lub Avalanche; skompiluj go; uruchom go na jednym z naszych serwerów; a następnie upewnij się, że jest niezawodny i bezpieczny, monitoruj go i aktualizuj. Robimy to dla ponad 60 sieci blockchain, co oznacza, że nie da się tego wszystkiego zrobić ręcznie. Zamiast tego budujemy automatyzację. Oto niektóre z naszych działań:
- Współtworzenie oprogramowania wyższego szczebla w celu poprawy jego obserwowalności i tworzenie od podstaw narzędzi do monitorowania tam, gdzie ich nie ma. Zespoły tworzące oprogramowanie węzła nie są zespołami obsługującymi to oprogramowanie na dużą skalę i dlatego obserwowalność często nie jest najważniejszym priorytetem. Opracowujemy własne narzędzia do monitorowania w łańcuchu i poza łańcuchem, zarówno w zakresie wskaźników krótkoterminowych (w celu ostrzegania), jak i wskaźników długoterminowych do pomiaru naszej wydajności i wspierania decyzji optymalizacyjnych.
- Twórz narzędzia do śledzenia naszej floty serwerów i zarządzania nią. Pracujemy głównie z serwerami typu bare-metal od wielu dostawców. Oznacza to, że żaden portal specyficzny dla dostawcy nie zapewni nam pełnego przeglądu naszej infrastruktury, zamiast tego mamy wewnętrzne narzędzie, które integruje się z interfejsami API dostawców i zapewnia nam centralny przegląd.
- Automatyzuj udostępnianie maszyn. Zamiast współpracować z ponad 10 dostawcami usług w chmurze i bare metal przy instalowaniu Ubuntu, tworzymy własny instalator, który jest jednolity w całej naszej infrastrukturze.
- Śledź i automatyzuj kompilacje. Każda z ponad 60 sieci, które obsługujemy, regularnie publikuje aktualizacje. Byłoby nudne ręczne wykonywanie polecenia git pull && make dla każdego wydania, zamiast tego mamy automatyzację obserwującą nowe wydania, która automatycznie je buduje i rejestruje w naszym rejestrze pakietów.
- Automatyzuj aktualizacje i przełączanie awaryjne. Kiedy mamy nowy pakiet, nadal musimy wdrożyć go w naszej flocie i ponownie uruchomić wszystkie węzły w kontrolowany sposób i bez przestojów. Aby zweryfikować węzły, musimy także przełączyć się w tryb awaryjny przed ich ponownym uruchomieniem i potwierdzić, że nowy węzeł jest w dobrej kondycji. Aby to zautomatyzować, musimy mieć 100% zaufania do naszych narzędzi, ponieważ błąd tutaj może prowadzić do podwójnego podpisania, co wiąże się z karą finansową.
- Automatyzuj tworzenie i przechowywanie migawek. Oprogramowanie węzła Blockchains ma charakter stanowy: łańcuchy mają często rozmiar terabajtów. Choć jest to strmożliwa jest synchronizacja nowych węzłów z sieci p2p, może to zająć dni lub tygodnie, co oznacza, że nie jest to odpowiednia metoda, gdy przenosimy obciążenia między maszynami. Automatyzujemy wykonywanie migawek tych danych, dzięki czemu możemy bardziej elastycznie decydować o tym, co i gdzie ma działać, bez uszczerbku dla bezpieczeństwa.
Nasze wewnętrzne narzędzia:
są napisane w połączeniu z Rust, Python, Go i trochę TypeScriptu. Używamy Postgres jako naszej wybranej bazy danych. Wdrażamy nasz kod bezpośrednio na hostach Ubuntu, działając pod systemd lub w kontenerach Docker, a także mamy klaster Kubernetes, w którym działają różne aplikacje bezstanowe. Ze względu na różnorodny charakter oprogramowania, które uruchamiamy, czasami musimy zagłębić się w bazy kodu napisane w C, C++, OCaml lub TypeScript.
- Ponad 5 lat doświadczenia jako inżynier oprogramowania.
- Doświadczenie w obsłudze i utrzymaniu oprogramowania serwerowego w środowisku produkcyjnym.
- Dogłębna znajomość co najmniej jednego skompilowanego języka programowania o typie statycznym, takiego jak Rust, Go, Kotlin, C++ lub Haskell.
- Doświadczenie z co najmniej jednym językiem skryptowym, takim jak Python.
- Doświadczenie w korzystaniu z baz danych SQL, najlepiej PostgreSQL.
- Doskonałe umiejętności komunikacyjne i poczucie odpowiedzialności umożliwiające samodzielne wprowadzanie nowych funkcji.
- Zainteresowanie technologią blockchain, w szczególności systemami rozproszonymi i algorytmami konsensusu.
- Powinowactwo z infrastrukturą i niższymi poziomami przestrzeni użytkownika Linuksa.
Rodzaj pracy: Pełny etat lub opcjonalnie pół etatu 80%-100%
Chorus One jest jednym z wiodących operatorów infrastruktury do sprawdzania sieci of-stake i zdecentralizowane protokoły. Dziesiątki tysięcy klientów detalicznych i instytucji inwestuje miliardy w aktywa za pośrednictwem naszej infrastruktury, pomagając zabezpieczać protokoły i zdobywać nagrody. Naszą misją jest zwiększanie swobody i szybkości innowacji poprzez zdecentralizowane technologie.
Jesteśmy zróżnicowanym zespołem składającym się z ponad 70 osób rozmieszczonych na całym świecie. Cenimy radykalną przejrzystość, dążenie do doskonałości i doskonalenia, jednocześnie traktując siebie nawzajem z życzliwością i hojnością. Jeśli to brzmi podobnie do Ciebie, chętnie usłyszymy od Ciebie.
Opis stanowiska:
Jako starszy inżynier oprogramowania dołączysz do jednego z naszych zespołów inżynieryjnych, aby pomagać w budowaniu i utrzymywaniu narzędzi oraz automatyzacji wspierających działania naszych walidatorów. Pobieramy oprogramowanie węzła nadrzędnego z projektów takich jak Ethereum, Solana, Cosmos lub Avalanche; skompiluj go; uruchom go na jednym z naszych serwerów; a następnie upewnij się, że jest niezawodny i bezpieczny, monitoruj go i aktualizuj. Robimy to dla ponad 60 sieci blockchain, co oznacza, że nie da się tego wszystkiego zrobić ręcznie. Zamiast tego budujemy automatyzację. Oto niektóre z naszych działań:
- Współtworzenie oprogramowania wyższego szczebla w celu poprawy jego obserwowalności i tworzenie od podstaw narzędzi do monitorowania tam, gdzie ich nie ma. Zespoły tworzące oprogramowanie węzła nie są zespołami obsługującymi to oprogramowanie na dużą skalę i dlatego obserwowalność często nie jest najważniejszym priorytetem. Rozwijamy własne narzędzia do monitorowania on-chain i off-chain, zarówno w zakresie wskaźników krótkoterminowych (w celu ostrzegania), jak i wskaźników długoterminowychdo pomiaru naszej wydajności i wspierania decyzji optymalizacyjnych.
- Twórz narzędzia do śledzenia naszej floty serwerów i zarządzania nią. Pracujemy głównie z serwerami typu bare-metal od wielu dostawców. Oznacza to, że żaden portal specyficzny dla dostawcy nie zapewni nam pełnego przeglądu naszej infrastruktury, zamiast tego mamy wewnętrzne narzędzie, które integruje się z interfejsami API dostawców i zapewnia nam centralny przegląd.
- Automatyzuj udostępnianie maszyn. Zamiast współpracować z ponad 10 dostawcami usług w chmurze i bare metal przy instalowaniu Ubuntu, tworzymy własny instalator, który jest jednolity w całej naszej infrastrukturze.
- Śledź i automatyzuj kompilacje. Każda z ponad 60 sieci, które obsługujemy, regularnie publikuje aktualizacje. Byłoby nudne ręczne wykonywanie polecenia git pull && make dla każdego wydania, zamiast tego mamy automatyzację obserwującą nowe wydania, która automatycznie je buduje i rejestruje w naszym rejestrze pakietów.
- Automatyzuj aktualizacje i przełączanie awaryjne. Kiedy mamy nowy pakiet, nadal musimy wdrożyć go w naszej flocie i ponownie uruchomić wszystkie węzły w kontrolowany sposób i bez przestojów. Aby zweryfikować węzły, musimy także przełączyć się w tryb awaryjny przed ich ponownym uruchomieniem i potwierdzić, że nowy węzeł jest w dobrej kondycji. Aby to zautomatyzować, musimy mieć 100% zaufania do naszych narzędzi, ponieważ błąd tutaj może prowadzić do podwójnego podpisania, co wiąże się z karą finansową.
- Automatyzuj tworzenie i przechowywanie migawek. Oprogramowanie węzła Blockchains ma charakter stanowy: łańcuchy mają często rozmiar terabajtów. Chociaż możliwa jest synchronizacja nowych węzłów z sieci p2p, może to zająć dni lub tygodnie, co oznacza, że nie jest to odpowiednia metoda, gdy przenosimy obciążenia między maszynami. Automatyzujemy wykonywanie migawek tych danych, dzięki czemu możemy bardziej elastycznie decydować o tym, co i gdzie ma działać, bez uszczerbku dla bezpieczeństwa.
Nasze wewnętrzne narzędzia:
są napisane w połączeniu z Rust, Python, Go i trochę TypeScriptu. Używamy Postgres jako naszej wybranej bazy danych. Wdrażamy nasz kod bezpośrednio na hostach Ubuntu, działając pod systemd lub w kontenerach Docker, a także mamy klaster Kubernetes, w którym działają różne aplikacje bezstanowe. Ze względu na różnorodny charakter oprogramowania, które uruchamiamy, czasami musimy zagłębić się w bazy kodu napisane w C, C++, OCaml lub TypeScript.
,[Projektuj i opracowuj nowe funkcje. Porozmawiaj z wewnętrznymi interesariuszami, aby wyjaśnić, jak powinna wyglądać nasza kolejna funkcja, omów z innymi inżynierami, jak powinna zostać zaimplementowana, a następnie doprowadź wdrożenie do końca. , Wspieraj i współpracuj. Przeglądaj i omawiaj projekty inżynieryjne, przeglądaj kod, pomagaj innym inżynierom i mentoruj ich na poziomie technicznym., Innowacje i ciągłe doskonalenie. Staraj się upraszczać, optymalizować i zabezpieczać nasze usługi i systemy stakingowe.] Narzędzia: Rust, Golang, Python, PostgreSQL, Kubernetes, Golang, Rust, Degree, TypeScript, Kotlin, C++, Haskell Бонуси та переваги: Zestaw startowy Crypto, Budżet szkoleniowy , Opcje na akcje, Budżet konferencji, Budżet coworkingowy, PTO, Płatny urlop rodzicielski.