开发人员在财务领域应该期望什么:工作条件,项目和必要技能



图片: DAVID HOLTCC BY 2.0

根据Stack Overflow门户的统计数据,金融行业是开发人员中十大最受欢迎的行业之一。 今天,我们将讨论计划开始在金融公司工作的专家的期望。

工作条件


财务工作绝对不同于初创公司或大型IT公司的工作。 这是一种更传统的工作流程组织方法,几乎​​不可能见到“设计”办公室或为员工提供很多娱乐活动。 通常还会有一些着装要求,这对于在初创公司工作的开发人员来说可能是不寻常的。

例如,不久前,《商业内幕》记者分析了金融公司在LinkedIn申请者中的受欢迎程度,并发现排名第四的摩根士丹利由于缺乏严格的着装要求(与其他银行相比)而吸引了许多人。

当您在投资银行,对冲基金或经纪公司工作时,也很难指望拥有庞大游戏和运动区,按摩室,睡眠室和完全免费食物的设计办公室 。 这种情况很可能会发生,但不会像条件Google那样大规模。

图片

例如, 高盛办公室设有健身房,员工可以在俱乐部卡上享受折扣。 一个有趣的事实:即使在模拟器的屏幕上,监视器上也会显示经济新闻:

图片

如您所见,从“冷静”的外部属性的角度来看,在金融领域的工作可能不如IT初创公司和大型技术公司。 那么,为什么还有许多开发人员仍然来这方面呢? 在有趣的项目中使用先进技术的能力促进了这一点。

我可以参加哪些项目?


金融市场由众多公司代表:交易所,银行,投资基金,经纪公司和独立软件开发商(例如交易机器人)。 因此,开发人员可以参与各种项目,从编写用于处理大数据的交易系统和工具到使用最先进的硬件构建基础架构。

以ITI Capital为例,您可以了解IT专业人员在经纪公司中面临的问题。 我们正在开发自己的交易系统Matrix,即SmartX终端(有关此项目历史的更多信息,请参见此处 ),并正在为我们的基础架构开发一个称为SmartCOM的API。 一个单独的领域是创建用于在线交易的移动应用程序。



SmartX交易终端界面

在金融领域,速度和最大生产率至关重要,因此,在改进所创建软件产品的这些指标上花费了大量精力。 在博客中,我们反复讨论了例如如何优化交易终端。

通用编程语言


经纪公司和交易所基础设施的重要部分是使用C ++语言创建的-在它的帮助下,从用于计算衍生产品价格模型的库到用于处理数据流的模块,创建了多种产品。 知道这种语言的专家的需求量很大。 此外,该语言的创建者Bjarne Stroustrup在Morgan Stanley投资银行担任技术总监。

除了C ++之外,C#和Java也很广泛-在它们的帮助下,它们通常实现交易应用程序的某些部分或金融公司的前端服务(例如,交易终端的GUI)。

脚本语言(例如Python,MATLAB和R)也用于描述交易策略和原型模型,脚本语言也很流行,甚至可以内置到交易终端(例如TradeScript)中 ,从而可以直接编写交易机器人。在SmartX终端中。

图片

记录在交易终端窗口中的简单TradeScript策略

此外,据Efinancial Careers门户网站调查的金融公司招聘人员称,Python开发人员需求旺盛-这种语言对于创建分析工具和量子模型是必不可少的-Hadoop,Cassandra和Scala等数据处理技术也越来越受欢迎。

您还需要什么才能


每个公司都有其自己的要求,但也可以制定此方向的一些趋势。 进入金融领域时,与基础架构合作的专家无需认真重建,但开发人员可能需要一些特定知识。

要在一家严肃的金融公司找到一份工作,您必须完全了解OOP和标准算法。 客户-服务器财务系统的开发也与多线程编程紧密结合。 因此,专家不应该担心涉及例如编写标准TCP服务器,负载平衡服务器和高性能服务器的任务。

金融部门系统的核心是数据库,因此开发人员将需要深入的SQL知识。 简单选择运算符的知识是不够的-在工作过程中,您经常不得不处理存储过程的创建,索引和各种类型的锁。

交易系统通常使用UNIX平台(通常为Linux)。 对于Windows,通常创建带有图形界面的交易终端,而UNIX用于开发交易软件的“引擎”。 此外,参与商业软件开发的专家需要能够与GPU协处理器和现代网卡(例如Mellanox和Solarflare)配合使用。

不要忘记专门用于金融领域的技术知识-在有条件经纪公司中寻找工作之前,您需要了解例如FIX之类的数据传输协议,或者对于莫斯科交易所而言,我们的ASTS Bridge该博客发布了有关这些技术的全套材料( FIXFastPlaza IIASTS Bridge )。

ITI Capital提供的其他与金融和股市相关的材料:


Source: https://habr.com/ru/post/zh-CN413487/


All Articles