Software Engineer (Haskell, Javascript, Scala, or Rust) at MLabs

We are redirecting you to the source. If you are not redirected in 3 seconds, please click here.

Software Engineer (Haskell, Javascript, Scala, or Rust) at MLabs. About the Role. Our client is looking for a Software Engineer to join their team, you'll be responsible for writing . high-quality code. for our products. You'll tackle the exciting challenge of working with . cutting-edge research and technology. , always with a focus on market needs. You'll collaborate professionally and effectively with software architects, product managers, project managers, formal methods specialists, and QA test engineers.. Responsibilities. . Follow . agile software development practices. .. . Work independently on software development tasks with . minimal supervision. .. . Review specifications produced by architects and formal methods specialists.. . Contribute to the . design of algorithms. .. . Write . clean, straightforward, efficient code. that satisfies agreed acceptance criteria and specifications.. . Commit often and submit . small pull requests frequently. .. . Cover your code with . unit, property, and integration tests. when applicable.. . Review the pull requests of your teammates.. . . Fix bugs. in your own code and in legacy code.. . Be available for . emergency fixing of severity 1 issues. on deployed products.. . Integrate . software components and third-party libraries. .. . Verify and deploy programs and systems.. . . Troubleshoot, debug, and upgrade existing software. .. . Write . documentation for the code. .. . Write . technical user manuals. .. . Be knowledgeable of . distributed and concurrent computation. .. . Be knowledgeable of the . basics of cryptography. .. . Work with teams across . multiple time zones. .. . Key Competencies. . Write . idiomatic code. that satisfies acceptance criteria.. . Write . efficient and sufficient tests. (unit tests, property tests).. . Document code and APIs . concisely and unambiguously. .. . Break down tasks into sub-tasks that are completable in a short amount of time.. . Pragmatically adhere to . software engineering principles. (modularity, incremental development, no premature optimization, etc.).. . Required Experience & Skills. . A minimum of . 2-3 years of development experience. (professional or otherwise) in one of the following languages: . Haskell, Javascript, Scala, or Rust.. . . Experience working with . Git and Git workflow. .. . Practical experience with . Agile software development methods. .. . Knowledge of . functional and object-oriented programming paradigms. .. . Specialist Skills (Dependent on Role - Indicate Your Area of Expertise). Candidates should possess strong skills in at least one of the following specializations:. Haskell Engineer. . Good understanding of . Quickcheck/Hedgehog and property testing. .. . Good understanding of . concurrent programming / concurrency. .. . Good understanding of . call-by-need, memoization, and lazy evaluation. .. . Experience in similar languages: PureScript, Elm, Idris, Agda, Ocaml, F#.. . Experience with / contributions to . GHC (Glasgow Haskell Compiler). .. . Familiarity with frameworks/libraries such as conduit, cryptonite, distributed-process, lens, optparse-applicative, persistent, pipes, servant, stm, template-haskell.. . Proficiency with advanced FP techniques such as: Advanced functional data structures, Dependent types, Extensible effects, Generic programming, Streaming, Type-level programming.. . Scala Engineer. . Advanced knowledge of the . Scala type system. .. . Familiarity with frameworks such as ScalaPB, Scalacheck, Scalatest, Scala.js, doobie, testcontainers, sttp.. . Network Engineer. . Familiarity with . Poldercast, Dandelion, Kademlia, Tor, P2P architectures and topologies. .. . Practical experience with issues related to . latency and throughput. .. . Knowledge of . distributed computing libraries. .. . Cryptography Engineer. . Familiarity with . cryptographic signing systems, Zero Knowledge protocols, Multi Party Computation (MPC). .. . Familiarity with . blockchain cryptography and constructions. .. . Practical experience with . implementation of cryptographic primitives. .. . . Security sensibility. related to cryptographic implementation.. . Good . theoretical cryptography and mathematical knowledge. .. . Ability to . read cryptographic papers. .. . Tools Engineer. . Experience writing or working with . (cross) compilers, object formats, linkers, build systems, IDEs and IDE integrations. .. . Experience and enthusiasm for working with . large legacy code bases. , across multiple languages.. . Ability to reach agreements with upstream developers.. . Functional Compiler Engineer. . Expertise in . programming language design & implementations. including frontends, type systems, program transformations, optimisations, and code generation.. . Familiarity with Human-Computer Interface (HCI) aspects of programming languages and DSLs, programmer tools and analysis (a bonus).. . Front End & Full Stack Engineer. . Proficiency in . HTML/CSS/LESS/SASS. .. . Experience with . CSS Preprocessing. .. . Proficiency in . Javascript/ES6. .. . Experience with . NPM, Webpack, Gulp. .. . Familiarity with . React/Angular/Backbone/Vue/Knockout/MobX/REST API. .. . Experience with . Electron, Cordova, React Storybook. .. . Knowledge of . GraphQL. .. . Understanding of . MVC/MVVM patterns. .. . Strong grasp of . UX/Design Principles. .. . Basic knowledge of image and design editing tools (e.g., Sketch, Photoshop, Zeplin etc).. . Experience with . NodeJS. and . Docker. .. . Rust Engineer. . Solid . System Programming experience. (ideally in Rust, but also relevant experience in C/C++ will be considered).. . Experience with . distributed system and network development. .. . Proficiency in . software development methods. such as agile programming and test-driven development.. . . HTTP API understanding. as well as accessibility and security compliance.. . Experience in developing . cryptography protocols. (a bonus).. . . Blockchain experience. (a bonus).. . A track record of . delivering software projects from start to finish. .. . Proficiency in . software development best practices. , including design, implementation, testing, and debugging.. . Familiarity with . continuous integration and deployment pipelines. .. . Experience with . cloud platforms. such as AWS or GCP.. . . Web3 experience. (a bonus).. . Company Location: United Kingdom.