Remote Frontend Jobs
MLabs logo

Software Engineer

MLabsLondon, United Kingdom
UK
Apply now
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.

Requirements
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).

View all remote jobs at MLabs

FAQ

Is the Software Engineer position at MLabs remote?
Yes. This role was posted on Remote Frontend Jobs, a job board that lists exclusively fully remote positions.
When was this Software Engineer job posted?
This listing was posted on July 9, 2025 and is still open for applications.
How do I apply for the Software Engineer position at MLabs?
Use the apply button on this page — it takes you directly to the employer’s application page.

More remote Agile jobs