JS Remotely - Remote JavaScript Jobs

Find new remote JavaScript, Node.js, Angular, React, Vue or Electron job from 200+ posted jobs!

Post your job ad - $99 for 3 months ✏️

Senior Haskell Developer

Luna

Overview


Luna (http://luna-lang.org) is an award-winning data-science platform, selected by NASA and Singularity University as 1 of the 20 most impressive technologies worldwide. We are looking for senior Haskell developers for a variety of roles, including Compiler Engineer, DevOps Engineer, GUI Architect, and Cloud Software Engineer. If you have strong technical skills and a passion for functional programming, then this role could be the one for you.



  1. Senior Compiler Engineer

    As a compiler engineer, you'll work as part of the compiler team to design and implement the Luna compiler and runtime, work that is at the very core of the next phase of Luna's development. This will involve:


    • Working on the design and implementation of the new portions of the compiler.

    • Both practical and theoretical work on improving Luna's type-system.

    • Practical work improving both the performance of the compiler and its capabilities.

    • Work on pass-based optimizations to improve the performance of Luna itself.

    • Work on developing the new Luna runtime, including the JIT compiler, base on the infrastructure provided by GHC (the Glasgow Haskell Compiler).

    • Designing and developing mechanisms for foreign language interoperability, to allow users to seamlessly integrate Luna with other languages in their stack.



    The skills we are looking for:


    • Practical and rich experience writing code in Haskell, including experience with lenses, arrows, monad transformers, free monads, catamorphisms, GADTs, type families, existential types, template Haskell, generics, type applications, continuations and modern type-level programming, such as -XTypeInType (3+ years).

    • Experience reasoning about and debugging performance issues in Haskell code.

    • Practical experience building large and complex software systems.

    • Experience in building compilers or the design of type-systems.



    It would be a big bonus if you also had:


    • Familiarity with the GHC Core language, and the GHC pipeline.

    • Experience with dependent type systems, row types, type-checking algorithms, and type-inference.

    • Familiarity with LLVM and its architecture.




  2. Senior Cloud Software Engineer

    As a senior cloud software engineer, you'll be leading the effort to design and develop our new SaaS offering, providing a web-based version of Luna to our clients. Your work will be integral to the next phase of Luna's development, as we expand our offering beyond the open-source project. This will involve:


    • Working closely with the internal teams to design a secure and scalable SaaS architecture, including user management, load-balancing, file management, on-demand scalability. 

    • Developing a SaaS solution based upon that design with robust tooling and reliability, as well as inbuilt support for collaboration.

    • Hosting the architecture on a cloud provider without becoming too dependent on any one given platform.

    • Contributing to the evolution of this vibrant open-source project by bringing a new component to its ecosystem.



    The skills we are looking for:


    • A strong focus on security and scalability.

    • 3+ years of experience in designing secure, scalable, and collaboration-ready SaaS architectures.

    • A strong understanding, based on practical experience, of cloud virtualization techniques.

    • Practical experience in building, scaling, and maintaining such infrastructure.

    • 3+ years experience with one or more of AWS, Azure, Google Cloud, or Digital Ocean.



    It would be a big bonus if you also had:


    • Experience working in close conjunction with multiple product teams.

    • Experience building SaaS deployments that are designed to be independent of the underlying cloud provider.

    • Experience in Haskell or other purely functional programming languages.





  3. Senior GUI Architect

    As a senior Haskell front-end developer, you'll spearhead the design of the new user-interface for Luna 2.0, designing and building a front-end that can run across multiple browsers and in electron. This will involve:


    • Spearhead the architecture and design for the new version of Luna Studio, its event system, and its plugin architecture.

    • Design and implement purely functional bindings to our JavaScript WebGL drawing framework.

    • Working closely with stakeholders and customers to design an interface that is both intuitive and fluid to work with.

    • Implementing these solutions using modern front-end web-development technologies in a cross-platform manner to create an application that can run both in the browser and in electron.

    • Managing and working around cross-browser compatibility issues.

    • Contributing to the testing and integration of the user interface, from both functional and UI standpoints.



    The skills we are looking for:


    • A strong focus on both user experience and aesthetics.

    • Practical and rich experience writing code in Haskell, including experience with lenses, monad transformers, free monads, overlapping type classes, GADTs, type families, existential types, template Haskell, generics, type applications, and continuations.

    • Practical experience building large and complex software systems.

    • Practical experience architecting user-facing applications, with a focus on enabling user workflows.

    • A strong understanding, based on practical experience, of modern front-end frameworks, with a focus on React.



    It would be a big bonus if you also had:


    • Experience with GHCJS, TypeScript, and RxJS.

    • An understanding of cross-browser compatibility issues, and experience working around such problems.

    • Familiarity with front-end build tools such as Webpack and Gulp.

    • Experience with testing tools, both for integration and for front-end (e.g. Selenium).

    • Experience with visual programming systems such as Houdini, Max/MSP, Lab VIEW, or Touch Designer.





  4. Senior DevOps Engineer

    As a senior DevOps engineer at Luna, you'll be instrumental to the design and automation of all the processes that support the creation, deployment, and publication of the language and its IDE. This will involve:


    • Working closely with the compiler and IDE developers to create tailored solutions for the CI, and CD of Luna and Luna Studio.

    • Create solutions for packaging Luna and Luna studio in a way that can be run across myriad computing systems.

    • Create frameworks for creating packages in an operating-system independent manner.

    • Contribute to the future of a rapidly growing open-source project, and its ecosystem.



    The skills we are looking for:


    • Practical and rich experience writing code in Haskell, including experience with lenses, monad transformers, free monads, overlapping type classes, type families, and template Haskell.

    • Knowledge of Haskell build processes (e.g. cabal the library, custom Setup.hs files).

    • Practical knowledge of the ways that executables and library loading works on Linux, MacOS, and Windows, and the differences between them.

    • Experience with how the above differences affects packaging, and the skills to debug related issues.

    • Practical experience with designing and implementing automated pipelines for building, setting up environments for, testing, and packaging complex projects.

    • Practical experience with some CI/CD system (we use Azure Pipelines).

    • A focus on robustness, repeatability, and debugability, with an inclination to automation of tasks for integration with build- and development-tools.



    It would be a big bonus if you also had:


    • An understanding of the security concerns related to the above tasks.

    • Experience with automated, high-level testing, particularly for GUI projects (e.g. Selenium).

    • Experience with C++ Build Systems (e.g. CMake and MSBuild)

    • Knowledge of computer networking and the operation of VPNs.





  5. Senior Awesome Haskeller

    If you don't feel you fit any of the profiles above, but still feel that you will be an amazing match for our team, please apply as well! :)