The Core Banking Platform Team designs, develops, integrates, and maintains critical backend infrastructure for BlockFi's Products used by our clients worldwide. As a member of the Core Banking Platform team, you will help to build highly available, resilient, & secure services using Golang (Go) that will be used by every BlockFi product at global scale.
We’re building the core services that power our business and help manage multi-billion worth of assets. We are pragmatic problem solvers that are excited to tackle some of the most interesting challenges in the Crypto-FinTech arena.
As a Senior Staff Software Engineer, you will act as a technical leader for a group of services in a domain area, shepherding technology in partnership with a Director. Your work will have a direct impact on the success of the company and you’ll be thinking one or two years into the future. We are looking for proactive, collaborative, and adaptive engineers who have real world distributed systems experience at scale.
- Develop strategies, write proposals for new architectures, systems, and processes, and communicate them to diverse stakeholders in terms they can understand.
- Work with diverse stakeholders to ensure our systems are built for quality attributes like availability, reliability, resilience, scalability, performance, and security from the ground up.
- Deeply understand the architecture for a major part of the business, and clearly communicate quality attributes and risks for that area to multiple audiences.
- Mentor teams on design proposals, tradeoff analyses, and design and code review practices. Ensure significant design decisions are publicly documented with tradeoffs clearly described.
- Facilitate cross-team and cross-functional communication to specify the problem domain, business goals, quality attribute requirements, and timelines for committing to architectural decisions.
- Deliver and Own Solutions:
- Enable early and continuous delivery of business value, integrating across technical (development, infrastructure, security, QA, SRE, etc.) and non-technical functions.
- Work with stakeholders to understand and document both functional and quality attribute requirements.
- Identify problems before they happen across systems/domains, and bring together and lead strike teams to accomplish high impact work.
- Build prototypes, simple models, and scaffolding for new technologies.
- Ensure that teams adhere to quality standards through cross-team communication, mentoring, code review, and backlog grooming.
- Accountable for system availability and monitoring system health; ensure alerts, metrics, and runbooks are in place; and debug issues in production.
- Act as a multiplier by developing patterns, systems, standards, and tools that increase productivity across engineering.
- Lead conversations about technical direction across large portions of our technology. Listen and guide debates to help reach consensus across teams; once a decision is made, clearly communicate and support that decision.
- Build relationships across domains and business functions.
- Think one or two years in the future, and develop prototypes to explore solutions to longer-term problems.
- Guide tech leads and team members in carefully considering business goals, trade-offs, quality attributes, cross-cutting concerns, and risks prior to committing to design decisions.
- Continuously improve engineering standards, processes, planning, solutions, and efficiency.
- Quickly learn new tools and technologies, develop an understanding of existing systems, and identify and tackle high impact work.
- Avoid dogmatic positions on technical questions.
- Proactively seek to learn about the company, products, processes, and culture. And align technical decisions with business goals.
- Technical Breadth as well as Depth in Several Areas:
- 8+ years of industry experience designing, and building distributed systems at scale.
- 2+ years experience with Go.
- Experience building and owning business critical distributed systems running on AWS or GCP or other public cloud.
- Experience with fintech or banking platforms is preferred.
- Experience with containerized deployments and continuous integration methodologies
- Able to clearly identify, communicate, and document technical tradeoffs, and guides others to do the same.
- Technical Ownership: Experience owning software systems end-to-end, designing, estimating, implementing, testing, maintaining, debugging, and supporting high-quality software in production.
- Communication: Excellent communication, presentation and interpersonal skills. Able to listen and learn from as well as explain complex ideas to stakeholders of varying levels of technical expertise.
- Collaboration: Demonstrable experience with establishing strong relationships with technical and nontechnical stakeholders, integrating a variety of perspectives (end users, product, engineering, etc.). Empathetic and does the legwork required for building consensus. Always seeks out feedback on technical designs and solutions.
- Initiative and focus on outcomes: Prepared to take on high impact work across contexts and as the need arises, working independently and taking initiative while maintaining transparency and collaboration. Proactively identifies problems and comes to conversations with possible solutions.
- Pragmatic: Ability and motivation to quickly learn new technologies and systems. Pragmatic bias toward outcomes, and technical decisions that solve real business problems. Not afraid to question assumptions and tackle challenges under conditions of uncertainty.