Software engineer javascript
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.
- 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.).
- 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.
- 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.
- Advanced knowledge of the Scala type system.
- Familiarity with frameworks such as ScalaPB, Scalacheck, Scalatest, Scala.js, doobie, testcontainers, sttp.
- Familiarity with Poldercast, Dandelion, Kademlia, Tor, P2P architectures and topologies.
- Practical experience with issues related to latency and throughput.
- Knowledge of distributed computing libraries.
- 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.
- 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.
- 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).
- 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.
- 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.
- 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).
Recommended Jobs
Lecturer - GCSE English
Permanent, Part Time (0.6) The School of Foundation, Intermediate Learning and Employability at Kingston College are looking to appoint a Lecturer to teach a combination of GCSE English Language and…
Financial Lines Claims Manager
Our client, a Lloyd's Managing Agency, seek a Financial Lines Claims Manager. You will be responsible for leading a team of Financial Lines Claims Adjusters, as well as handling an interesting and v…
Quant Developer C++
Quant Developer C++ Remote Quant Capital is urgently looking for a Python Engineer to work for our high profile investment management vendor. Our client is a well known global wealth manageme…
Senior Systems Modelling Engineer
Connect with Eutelsat Group Be part of a new era in communications, transforming connectivity with Eutelsat Group - the world's first GEO-LEO integrated global satellite operator. As a global l…
General Manager
Craft, Creativity and Community – we are Company of Cooks! These are our values, and they go far beyond corporate waffle. In fact, they set the tone for everything we do. Company of Cooks have been w…
QA Automation Engineer
Our mission is to help dental and veterinary clinics make recurring payments as simple as paying by card. We want to make memberships (Plans) and patient finance seamless by ‘combining’ workflows w…
M&E Shift Engineer
Are you an M&E Shift engineer looking for a new client side role in London? If you are looking for a new M&E Continental Shift Engineer role in London please read on and apply! Our client is a well …
Customer Services Representative
Unilabs is seeking a dedicated and enthusiastic Customer Services Representative to join our team, on a fixed-term, maternity-cover contract. As a Customer Services Representative, you will be the ma…
Director analyst data machine learning
Analyst will create Gartner research and provide related advice to clients and support the sales force in new sales and client retention. The research provides insight, predictions and actionable adv…
Commercial Gas Engineer
Job Description: Caddy Group are looking for an experienced Commercial Gas/Combustion Engineer for work around Central/Greater London. Key Responsibilities * Installation: Install commercial gas a…