BACKGROUND
Blockchain technology is poised to
become the next big computing paradigm, disrupting existing processes
and unlocking new business models through secure multi-party
computation. In a rapidly evolving digital economy, blockchain
technology will form the backbone of the next era of distributed
enterprise and consumer applications with its business value surging to
exceed $3.1 trillion by 2030 per Gartner. Businesses are looking to
understand and apply the distributed ledger technology that started with
Bitcoin to streamline and innovate their business problems.
ABOUT THE TEAM & ROLE
This
position is located at the Rakuten Blockchain Lab in Belfast city
centre. We have grown an engineering team of 10 during the first year of
operation and have multiple active blockchain projects due for
production launch in the next 3-6 months. The existing team collectively
has many years of experience in building secure, high availability
enterprise platforms for financial services, health and consumer
electronics sectors. We will be growing the team to 20 over the next 12
months and as a result are now actively seeking a passionate and
motivated Senior Software Engineer. The projects are both interesting
and challenging, providing an environment that should satisfy any
engineer’s career aspirations and growth opportunities. This is an
exciting opportunity to be at the core of delivering blockchain based solutions and integration services that will enable the transformation of Rakuten businesses. You will work in small agile teams
creating solutions for individual Rakuten companies as well as common
platforms and services to be used across the organisation
We need software engineers who are interested in the "full stack”.
That is, you need to be comfortable working with all the technologies
required to bring an idea to production. We don’t expect you to be an
expert in everything and believe that everyone brings their own
specializations and competencies to the team, but we want you to be
enthusiastic about “getting your hands dirty” in all of it. You will
have the opportunity to work on emerging blockchain frameworks and learn
from the experienced blockchain engineers in the team.
TECHNICAL STACK
In the
Rakuten Blockchain Lab, we take ownership of the full end-to-end
solution from inception though to production and beyond. Our services
are built in Node.js with various relational databases and follow a
micro-services architecture. We work with multiple public and private
blockchain protocols & frameworks depending on the requirements. We
package our services with Docker and use Google Kubernetes for
automating deployment, scaling and management of these containers in
both public and private cloud environments. We value short feedback
loops and have implemented a CI/CD pipeline as well as automated unit,
integration and acceptance tests.
JOB RESPONSIBILITIES
- Play a full and active role in release and sprint planning
- Define and estimate sprint backlog items
- Translation of backlog items into engineering design and logical units of work
- Propose solutions and evaluate technical feasibility
- Implementation of backlog items
- Write and verify code which adheres to the acceptance criteria
- Write unit & integration tests
- Application of product development best practices
- Create automated build and deployment pipeline code
- Promote learning and knowledge sharing through design/code reviews
- Proactively provide support to junior engineers
- Build, release and configuration management of test and production code.
- System troubleshooting and problem solving across platform and application domains.
- Propose architecture improvements, recommending process improvements.
- Evaluating new technology options and vendor products.
- Assist project and product leaders in making risk-managed planning and release decisions
EXPERIENCE, KNOWLEDGE, SKILLS & QUALIFICATIONS REQUIRED FOR THE ROLE
Essential
- 5+ years of solid commercial development experience, working with Java or Node.js on Linux (experience with other object orientated or functional languages such as .NET, Python or Ruby will also be considered)
- Experience of working with object-relational databases such as Postgres
- Experience with a DevOps
approach to software delivery where you are involved not just in
writing code, but also in making sure it gets deployed and runs
correctly in test and production environments.
- Solid understanding of source code management, build automation and continuous integration tools such as Maven, npm, Jenkins and Git/Bitbucket is essential
- Experience of working in an agile development environment
- Ability to diagnose, analyze and resolve complex software application issues.
- A basic understanding of blockchain fundamentals
Preferred
- Experience of delivering REST APIs and micro-service based architectures
- Practical experience of creating deployment and release pipelines.
- Experience of application containers such as Docker and container orchestration technologies such as Docker Swarm or Google Kubernetes
- Experience in delivering cloud based systems (i.e. deploying and running in AWS, Azure, OpenStack, Google Compute Environment, etc.)
- Previous experience of working with blockchain frameworks such as Hyperledger Fabric or Multichain
- Knowledge and practical experience of OWASP secure coding standards
- Prior experience of working with high availability, secure enterprise platforms in the financial services sector