As a Junior Software Engineer, you will work collaboratively with others on various teams (Tech, Quant, and Trading) with the ultimate goal of supporting day-to-day trading operations by building tools and exploring new opportunities with your technical abilities.
You will build software systems that handle large amounts of data, support multiple markets with varying rules and data formats, and provide trading insights efficiently and accurately. We have a number of proprietary platforms, which leverage various data stores and third-party tools. You will be expected to learn new technologies and market concepts quickly. You will apply sound software engineering principles to help us quickly deliver new tools and enhancements at a rapid pace with good quality controls. You will be expected to handle the full cycle of agile software development - requirements gathering, architecting, coding, UI design/development, database management (migrations and post-release data management), testing, and deployment. We deploy software several times each day, allowing us to release valuable tools and receive feedback quickly.
You must be able to work in a dynamic, collaborative environment. It is important that you are enthusiastic about joining an early-stage company. You will need to be flexible, driven, collaborative, and comfortable juggling responsibilities in multiple disciplines.
- Work with Trading and Quant teams to identify software system requirements.
- Collaborate with other software engineers to build scalable code and tests.
- Build and maintain software systems that support the needs of multiple traders in various markets.
- Architect and build out the full-stack of software to accomplish project needs (includes JS/HTML/CSS, Ruby on Rails, database/SQL, aternate data stores, asynchronous processes, distributed systems, etc).
- Deploy stable software in coordination with other teams. Coordinate with others to ensure adequate server resources for deployments.
- Assist with time-sensitive troubleshooting to ensure smooth daily trading operations.
- Leverage understanding of software systems and market data to collaboratively investigate new and enhanced trading strategies.
JOB EXPERIENCE REQUIRED
- Excellent programming skills and a passion for solving problems with code.
- An excellent foundation of computer science theory coupled with an ability to build real-world systems efficiently.
- A strong grasp of data stores, algorithms, and object oriented programming techniques.
- Eagerness and ability to learn new programming languages and tools very quickly.
- Analytical mind to quickly solve complex problems involving complex data.
- Expertise with SQL and experience with NoSQL database technologies.
- 1-2+ years proficiency in Ruby desired. Expertise in more than one programming language required, with at least 3+ years in strongest language. Must be willing to work primarily in Ruby.
- Extensive experience with MVC, unit/acceptance testing, version control.
- Other desired technologies include Rails, R, JQuery, HTML, CSS, Redis, Linux, SQL, and AWS.
- 2+ years of work experience building complex software systems in collaborative software teams.