Principal Software Engineer – Remote Role!:
Total Portfolio View is a new strategic business for our Client, which provides a holistic digital + service offering for some of the most sophisticated institutional investors across the globe, including foundations, endowments, pension funds, corporations, insurance companies, central banks, and sovereign wealth funds. As asset owners engage in more complex, data-driven investment approaches to asset allocation, their demand for high quality data have skyrocketed.
The Total Portfolio View software development team is committed to meeting that demand by building a world-class, cloud-native investment analysis product. We build software in fast cycles from idea to production using AWS tools and techniques, including DevOps methods and serverless systems.
The development team engages in the business of software product development:
- Promotes team collaboration.
- Contributes design and user experience insight.
- Adds a development perspective to product idea and feature feasibility.
As Total Portfolio View continues to grow and attract complex asset owners with complex requirements, Our Client is heavily investing in the platform. Join us as we create the next generation of financial reporting tools for institutional investors. We have openings throughout the technology stack and software development lifecycle.
What You Will Do
Total Portfolio View is building the next generation fund management platform for a variety of investors from pension funds to endowments and everything in between. Our software efficiently evaluates portfolios, offers deep insights and helps mitigate operational risk to power investment decisions.
This position is working on a team to build out our performance, contributions and attributions features and as a result, here are the kinds of projects you will likely work on in the foreseeable future:
- Build and deploy maintainable, highly available, fault tolerant pure functional well-typed software primarily in Scala
- Design parallel and concurrent data pipelines from multiple data sources with correctness and efficiency in mind
- Design service-oriented APIs for consumption by multiple clients and consumers
- Identify, isolate and troubleshoot system bottlenecks or cross service problems
- Sometimesyou might need to change the web app which is written in JS/TS.
- Occasionallyyou will need to inspect legacy software written in other languages.
- When needed you might be asked to pull up your sleeves and write some operational automation, configuration and provisioning
Our Technical Stack
- Backend:Scala, AWS, cats, cats-effect, http4s and doobie
- Database:Snowflake, MSSQL, DynamoDB
- Ops:Kubernetes (AKS), Nix, Docker, Lambda, Terraform, S3, RDS, Honeycomb, Gitlab CI
Our process and workflow currently resembles Kanban but we aren’t religious about process, we try to make it work for the team. Our goals are to make developers are autonomous as possible while keeping the business side updated with progress and problems.
The Ideal Candidate
We are seeking a senior level backend software engineer with experience in Scala and/or pure functional programming and good understanding of systems with the following experience:
- At least 5 years full lifecycle software development including on-call for backend services.
- Demonstrated effective remote work doing a mix of independent, collaborative, and supportive software development work such as:
- Independent:adding new features based on a domain description and general idea of codebase organization or troubleshoot and fix defects based on bug reports that may or may not include stack traces
- Collaborative:work with others on the team to deliver software including but not limited to reviewing merge requests and responding to questions on your merge requests, following up with other teams to resolve issues, and be involved in the design and architecture discussions of the team.
- Supportive: responding to teammate queries for help when you are able or reviewing code changes for other teammates.
- Have experience in a well-typed functional language such as Scala, F# or Haskell with a strong interest in Scala and pure well-typed functional programming with commercial, open source, or personal experience usingcommon FP abstractions like monoids, functors, traversables, applicatives, and/or monads.
- Some background in backend distributed systems and understanding of failure modes and techniques for building scalable and highly available services.
- Competent at troubleshooting on the command-line on Linux with various tracing tools such as strace, new EBPF tools, ss/netstat, /proc filesystem, etc.