Senior Software Engineer

Posted:
8/1/2024, 5:18:13 PM

Location(s):
Virginia, United States

Experience Level(s):
Senior

Field(s):
Software Engineering

Workplace Type:
Remote

About Hashgraph:

Hashgraph is a fast-growing software company committed to supporting, developing and servicing Hedera, an open source, proof-of-stake platform. Hedera is EVM-compatible and has been specifically built to meet the needs of enterprise and Web3 applications, which require speed, security, stability and sustainability. Hedera’s public network is governed by industry-leading organizations, spanning 11 sectors and 14 regions who oversee the development and direction of the decentralized platform.

About the role:

As a member of the Platform Team, you are fluent in algorithms and data structures. You are responsible for the core algorithms and data storage that make the Hedera ledger the fastest, most secure, and most efficient option out there today: gossip, consensus, state storage, etc. The Platform Team continually adds features that deliver for Hedera and the community while increasing scalability and reliability and decreasing time to finality. You also work directly with the custom database designed for extreme performance that backs Hedera Hashgraph and optimizes consensus node data storage techniques for both scalability and performance.

You may find yourself doing all of the following:

  • Developing, reviewing, and testing algorithms
  • Feature design, implementation, testing, and documentation
  • Designing and implementing in-memory and on-disk data structures
  • Analyzing and improving data flow and back pressure mechanisms
  • Identifying and eliminating bottlenecks
  • Innovating, designing, implementing, and testing new approaches to improve speed and scalability

Qualification Requirements:

  • 5 years total and 4 years current experience with Java
  • Superior ability to create, analyze, and improve algorithms
  • In-depth experience with Java concurrency
  • In-depth experience with data structures
  • Experience with Java memory management
  • Experience with data IO
  • Strong problem-solving and reasoning skills
  • Strong communication skills
  • Collaborative mindset
  • Adaptability
  • Commitment to continuous learning and improvement

Other skills that are great to bring with you but that we can help you develop:

  • Blockchain technology or DLT
  • Distributed systems
  • NetworkingTask-based architecture
  • Discrete mathematics
  • Merkle Trees
  • Experience building a database from scratch
  • On-disk data structures
  • Java garbage collectors (ZGC, Shenandoah, etc.)
  • Performance optimization
  • JMH / Custom profilers