Senior Programming Language Engineer, Cadence

Flow Foundation

Vancouver

On-site

CAD 140,000 - 200,000

Full time

14 days+
Application generator

Turn this role into an interview — a resume and cover letter built around what this employer wants.

Get past ATS filters

Job summary

Flow Foundation is seeking a Senior Programming Language Engineer to help design and implement Cadence, a new smart contract programming language for the Flow blockchain. You will shape Cadence from conception to implementation, aligning the language with the on-chain execution environment and core protocol.

You will collaborate with a team of builders and scientists who value creativity, autonomy and growth, and you will contribute to an open-source style development culture around Flow’s

Qualifications

  • Experience designing and implementing compilers, including parsing, semantic analysis, type checking, optimization and code generation.
  • Exposure to multiple programming languages and paradigms.
  • Ability to apply skills across diverse use cases and avoid inflexible specialization.
  • Strong planning skills with ability to improvise and prioritize impactful tasks.
  • Commitment to test coverage.
  • Experience with Go, Rust, C/C++, Swift, or Python.

Responsibilities

  • Design and implement Cadence compiler features from conception to implementation.
  • Interface with on-chain execution environment and core protocol.
  • Develop tools to facilitate development of Cadence.

Skills

Compiler design & implementation
Programming languages variety
Task prioritization & planning
Test coverage
Go
Rust
C/C++
Swift
Python

Job description

We're looking for a creativeSenior Programming Language Engineerto partner in the design and implementation of Cadence, a new smart contract programming language being introduced as part of the Flow blockchain. Cadence is designed around “resource-oriented programming”, a new programming model that pairs linear types with object capabilities to create a secure and declarative model for digital ownership.

You will help shape the future of Cadence and will be involved with all aspects of the language, taking language features from conception to implementation. You will be responsible for understanding the interaction between the language implementation, the on-chain execution environment, and the core protocol, helping with a variety of tools to facilitate development in this exciting new programming language.

A little about us:

Flow is a layer one blockchain designed from the ground up as a platform for a new generation of Web3 apps, games, and the digital assets that power them. Flow is home today to millions of users and apps from top tier creators including Dapper Labs (NBA, NFL, Disney) as well as industry leaders such as Mattel (Barbie, Hot Wheels), LiveNation / Ticketmaster, and many more.

The Flow team is a humble and curious bunch of builders and scientists who share a passion for blockchain technology and the new kinds of software it enables. Our people are our greatest strength: our diverse team flourishes in an environment where personal autonomy and professional growth are encouraged. We value our culture above else; regardless of where you came from or what you studied, your role here will necessitate both a high level of creativity and strategic thinking on complex issues.

A little about you:
  • You have practical experience with the design and implementation of compilers including parsing, semantic analysis, type checking, optimization, and code generation.

  • You have a diverse exposure to different programming languages and programming paradigms.

  • You are capable of applying your skills across a variety of use cases; inflexible specialists need not apply.

  • You understand the power of planning, but you are comfortable improvising and can prioritize the most impactful tasks on the fly.

  • You are adamant about test coverage.

  • You have experience with one or more general purpose programming languages including but not limited to: Go, Rust, C/C++, Swift, Python.

Bonus points if you have the following:
  • Experience with blockchain technologies.

  • Familiar with at least one of the functional programming languages: Haskell, OCaml, Clojure, Lisp, etc.

  • Experience with smart contract languages, e.g. Solidity.

  • Experience working on open-source software projects.

Get your free, confidential resume review.

or drag and drop your file here.

Similar jobs

Similar jobs worth comparing

Senior Software Engineer, Flow Protocol, Execution
Senior Software Engineer, Flow Protocol, Execution

Flow Foundation • Vancouver

Remote
CAD 120,000 - 160,000
Senior Software Engineer - Web3 & Scalable Blockchain
Senior Software Engineer - Web3 & Scalable Blockchain

Flow Foundation • Vancouver

Remote
CAD 120,000 - 160,000
Software Engineer II
Software Engineer II

Cadence Design Systems • Burlington

On-site
CAD 75,000 - 105,000
Distributed Systems Engineer
Distributed Systems Engineer

Cadence Design Systems • Burnaby

On-site
CAD 89,600 - 166,400
Distributed Systems Engineer
Distributed Systems Engineer

Cadence Design Systems • Port Moody

On-site
CAD 90,000 - 166,000
Incentive compensation
Equity
RRSP
+1
Senior Blockchain Engineer
Senior Blockchain Engineer

Placements24 • Kimberley

Hybrid
CAD 120,000 - 210,000
Equity or token grants
Fully remote work environment
Global collaboration opportunities
+1
Senior Go Engineer (Distributed Data Systems), Presence Montreal, Canada
Senior Go Engineer (Distributed Data Systems), Presence Montreal, Canada

StreamingFast • Montreal (administrative region)

On-site
CAD 110,000 - 160,000
Senior Software Engineer - Addressing Team
Senior Software Engineer - Addressing Team

CloudFlare • Canada

On-site
CAD 110,000 - 140,000
Full Stack Engineer, Presence Montreal, Canada
Full Stack Engineer, Presence Montreal, Canada

StreamingFast • Montreal (administrative region)

On-site
CAD 100,000 - 140,000
Equity
Bonuses
Health benefits
+1
Senior Software Engineer - Web3/Defi
Senior Software Engineer - Web3/Defi

HRB • Toronto

On-site
CAD 120,000 - 180,000