Developer - Middleware
As a Middleware Developer you will design, develop, release and maintain application libraries across various technologies and languages.
Prior experience with startups and working with agile, cross-functional teams is a necessity. In-depth knowledge about DLT or Blockchain technology is not required, but candidates should generally be interested in these technologies poised to transform the way we live and be open to learning deeply about blockchain topics.
Radix is building the foundation of tomorrow’s digital economy.
Radix is a public decentralized ledger, like Ethereum or Bitcoin, but built without Blockchain. It will run on almost any device, have it's own low volatility token, and it is scalable enough for the entire world to use simultaneously.
To learn a bit more about Radix, please watch these videos:
Radix Technology: https://youtu.be/dnOO2nItiss
Radix Mission: https://youtu.be/Hw90aMyvLbM
You will be joining Radix at the early stages in its life, within the first 30 hires. As such, you will have a fast-paced and exciting journey ahead.
- Design, implement and maintain application libraries used by Radix’ customers.
- Work with the RadixCore Team to improve the RadixCore HTTPS/WebSocket API
- Work with customer engineers to improve the Radix lib APIs
- Collaborate with Quality Assurance, Testing and other team members to review application functionality and test results.
- Participate in business requirements gathering sessions, document technical specifications, readily resolve defects, and maintain and implement high quality program changes, applying engineering development standards and practices.
- Understand customer use cases to prepare accurate and comprehensive user-level documentation
- Maintain code integrity for Radix
- Understanding and implementation of security and data protection.
- Responsible for asking all "stupid questions". Kindly but clearly voice your concerns and ideas on whatever the topic may be.
- Tailor existing methods and procedures to implement and test program modules in line with functional requirements and development standards
- Assist peers with detailed program analysis & design for assigned work
- Meticulous approach and high concern for security.
- Good understanding of best practices in software engineering
- Strong working knowledge of all of the following: distributed systems, concurrency/multithreading, asynchronous/reactive programming
- Cost aware and pragmatic mindset.
- Ability to solve problems for large distributed systems at various layers of the stack, from networking, system calls to application layer debugging.
- Experience co-developing and co-debugging with remote teams.
- Experience with database design and development.
- Knowledge of git, branching, continuous integration.
- Likes to solve and demonstrate challenging problems.
- Opinions on what technologies and standards we should use now and in the future, we always want to hear new ideas.
- Interest on DLT/Blockchain Technologies.
Radix Core Competencies:
- Goal Orientated - Sets high goals and works doggedly to achieve them. Pushes self and others to reach milestones. Looks for opportunities to help move a project along; volunteers to help others with projects or assignments.
- Reliability - Stays focused on tasks in spite of distractions and interruptions.
- Team Player - Acknowledges and celebrates the achievements of teammates. Praises the team and its achievement to others. Encourages team unity through sharing information or expertise, working together to solve problems, and putting team success first.
- Drives for Excellence - Wants to do things well and consistently delivers to the best of own ability. Learns from experience and is keen to improve own skills to do the job.
- Flexibility and Adaptability - Responds positively to change, embracing and using new practices or values to accomplish goals and solve problems. Manage change in a way that reduces the concern experienced by others. Clarifies priorities when leading change.
- Works Effectively - Focuses time and effort on key tasks. Groups related tasks to be more efficient. Easily transitions between tasks and picks up where left off when interrupted. Prioritizes tasks by importance and deadline. Identifies what is important from what is urgent. Adjusts priorities as situations change