About the Position
Openfinance is looking for a mature application engineer with experience using Typescript or other typed languages to build complex networked systems including well structured APIs and microservices. Our primary focus in the near-term is to complete the architecture and development of our v2 platform and the subsequent migration of our v1 services to it. As a part of this process, we’ll advance the work we’ve started in splitting our current PHP codebases into microservices and engineering better ways to distribute functionality among them, as well as developing new functionality in Typescript.
Our primary products include a suite of user-facing investing tools in the brand new digital alternative asset space, including a major subsystem for clearing asset trades on the Ethereum blockchain. We also serve some internal but still very important administrative back-end screens, and will be rolling out a suite of revamped APIs for partners to use to plug into our services.
Responsibilities and Duties
- Produce well-tested, well-structured and well-packaged Typescript application modules and networked microservices both independently and in collaboration with other members of the dev team.
- Participate in the maintenance of systems that interface with the Ethereum network.
- Work with other developers to build infrastructure like fixture libraries, tooling, frameworks, and boilerplate to help ease development and QA of services throughout the team.
- Collaborate with other engineers in defining new system architecture, data models, API specifications, and in defining and deploying migration strategies.
- Share in responsibilities to respond to system outages when they happen.
- Cultivate a culture of growth and support, including identifying and adopting best practices in programming, git, system administration, etc., and learning to collaborate more effectively and constructively with other team members.
Qualifications and Skills
- Three to six years experience in object-oriented programming in a team setting, including significant experience with strongly typed languages
- Some significant demonstrable experience in systems architecture, complex data modeling, and API design
- Assiduous attention to detail
- Excellent communication and interpersonal skills (introvert OR extrovert)
- Self-motivated and able to structure own work
- Experienced collaborator with constructive approach to working through differences.
- Experience in gradually migrating legacy codebases
- Significant experience with writing unit, regression and integration tests
- Significant experience in SQL (MySQL a plus)
- Nontrivial familiarity with linux and at least a solid understanding of modern devops, including CI/CD pipelines and system security (no direct experience necessary)
- Process-oriented; able to develop new processes or adapt old ones for ensuring easy and reliable development and deployment
- Scrum/Agile experience appreciated