- Languages: C++, Golang, Python
- Location: New York
- Company Description: A Tier 1 global investment bank
- Job Id: 1062
Many developers at this investment bank – in fact, 1000s, but this team of circa 100 are primarily responsible for building the bank’s core state of the art application.
The team is embedded into the business which allows it to be very innovative from a technical standpoint, and are all very hands-on in all aspects of system design, business requirements, analytics, implementation, deployment, and end-user interaction.
Key clients will be all the heads of trading for the various business areas and other technical architects for of front-line teams and external customers. Core technologies used here are Python for the business logic, C++ for performance and modern JS along with AWS and containers. Hard CompSci problems include state of the are UIs, super-fast calculation engines, workflow, real-time market data (big) analysis.
The core system components are heavily multi-threaded asynchronous servers, a globally distributed IDE with one-click deployment, dependency graph framework to model financial objects, and a Distributed object database scaled to thousands of simultaneous clients allowing a user in NY, within a sub-sec of replication, see what a user in London can see.
We’re talking 1000’s of desktops, 1000’s of Grid cores, 1000’s of batch compute cores! Impressive best practices and continuous deployment of your code.
People here blog, go to meet-ups, and give talks on things like Language design in functional programming and come from big tech companies because they want to make an impact.
- 5+ years experience building software or web applications
- Proficiency in at least one of C++, Python, Go, or a JVM language
- Experience working with distributed applications and related technologies, e.g., message queues, distributed logs, high-availability data stores
- A strong understanding of consistency and availability fundamentals related to distributed systems
- Experience building and deploying significant, well-architected, maintainable, and testable applications
- A demonstrated ability to tackle large or complex technical projects
- Strong communication skills and the ability to advocate for your technical solutions to your team and the larger Engineering department