Symmetry

Software Developer (Carbon Team, APAC/Remote)

Remote, Hong Kong, Taiwan, Singapore, Australia Full-time

Description

IMPORTANT: This job is on the same team as the Quantitative Support Practitioner (Carbon Team). It is important to review both JDs as successful candidates will likely be doing a blend of both (albeit tilted towards one or another as the business needs.)

Differences:

  • This JD is lower priority for the client and will be hired second.
  • This JD is more focused on development.

Carbon is largely speaking a repository for data. It contains historical market data (prices and stuff). In that sense, it's quite close to an ETL machine or a big data warehouse. We transform it and make it available to you via a bunch of clients.

Lots of pipelines, and data sources. It's a bit of a legacy system. It's not built using open-source ETL or modern open-source big data tools. It's in C#. It's a bit of a monolithic server architecture. More batch than server. Some other python scripts are littered around. Mumbo jumbo of things that just happens to work. ETLs into a database, and serve that database to the users.

Repository of historic data and services to access real-time data. Both raw and calculated data.

Clients:

  • Excel (important)
  • SIL (Symmetry Integrated Language) using D Lang (important)
  • Python
  • Java
  • Long run, we don't want to maintain all these different code bases.

Responsibilities

What work will the successful candidate do in the first 3-6 months

At any point in time, there are multiple fires burning. Solve and debug problems. Lots of undocumented systems and processes that no one is familiar with.

  • (Firefighting) problems can be divided into:
    • We license data from data providers. On a certain day, the data that comes back is not the latest price. So we need to ask the data provider why. (Usually the user will report a bug that the price is wrong or data is missing; we need to figure out is it our problem or a vendor's.)
    • Carbon quite big. Lots of processes. If something breaks, we need to embark on a detective hunt. Figure out which ETL is it. Is it lying in some repository that is abandoned somewhere?

Long-term Goal

Make an incremental improvement to the system. Examples:

  • Strategic improvements to the architecture. Can we rewrite all these python scripts into SIL?
  • Instead of using this in-house built job scheduler, can we move to an open-source one?

Hard Requirements

Strong low-level debugging skills as well as application-level (web, mobile app) development skills.

Soft Requirements

Key characteristics CDD should have:

  • Self-initiative. Reverse engineering.
  • Figure out a system without formal documentation
  • Tinker with the input, observe the output and come up with a hypothesis on how the black box works. (Detective work.)
Terminal 1 Badge & Skills
IT Infrastructure
IT Infrastructure
Level 2
Skills Required for this Badge: