Skip to content

Instantly share code, notes, and snippets.

@NaeosPsy
NaeosPsy / job.md
Last active July 25, 2019 19:57
Serokell is hiring Nix DevOps Engineers

tl;dr Serokell is hiring Nix DevOps Engineers

Hi! We’re Serokell – a company with about 30 Haskellers working on a bunch of blockchain-related projects (like Cardano or TeachMePlease). We are hiring SREs and a Head of IT Operations that can work with Nix (yay Nix!) and know some Haskell. The job is fully remote.

A bit more about us

Today 2 years have passed since we started working with IOHK on Cardano. We recently parted our ways, which happened so peacefully and silently that you probably didn’t notice it. Although we have stopped working on the project directly, our love for Cardano is not extinguished. We are ready to move on.

The way we position ourselves, our future role in Cardano will be to build the infrastructure. All great technologies have only become popular when a great use for them has been found. And even though the development has been a bit passive, the great use for Cardano is right around the corner, we feel it, and want to help to find it.

This means that we have quite a few things in the store for Cardano. We will not reveal all of our projects right now, because that wouldn’t really be interesting, but we will reveal one — a gift to Cardano community for our time together. We will run a staking pool for Cardano, Hephaestus.

Hephaestus was the Greek god of fire, the god of inventors and artisans. This is exact

#lang racket
(require racket/set)
(define (pq-inserts elems pq)
(sort (append elems pq) (lambda (a b)
((first a) . < . (first b)))))
(define (a-star estimate neighbors dist eps start)
(define (go visited pq)
(match pq
[(list* (list estimation distance path) rest-pq)
(let ((point (first path)))
import qualified Data.Map as Map
import qualified Data.Maybe as Maybe
import qualified Data.Set as Set
import qualified Data.List.NonEmpty as NE
import Data.List.NonEmpty (NonEmpty (..), (<|))
{- |
I use `Map.Map` as a priority queue, by popping element
with a minimal key using `Map.minView`.
-}
import numpy as np
from typing import Tuple
def generate_data(center_scale: float, cluster_scale: float, class_counts: np.ndarray,
seed: int = 42) -> Tuple[np.ndarray, np.ndarray]:
# Fix a seed to make experiment reproducible
np.random.seed(seed)
points, classes = [], []
for class_index, class_count in enumerate(class_counts):
# Generate the center of the cluster and its points centered around it