hire info

GFTS Finance Java developer - C12 Team lead
(Hiring Manager: Zhang Jianfeng)
About our business
Business area: CTO GFTS ¡V Enterprise Technology Service(ETS). Citigroup Software Technology Service (China) Ltd
(CSTS) is Citigroup technology development center founded by Citibank since 2002. It is one of the biggest IT software companies in
China, providing both finance IT service and operation services to foreign bank. As one of leading finance institutions in the world,
CSTS can provide challenging global working environment to every employee, such as long career path not only in China but also to
the Wall Street. We are Enterprise Technology Solution (ETS) Shanghai team, which is under Citigroup CTO organization. ETS
Shanghai team is a research and development group, has close to 300 developers, majority are Java developers. This team develops
Citigroup firm level risk management application, which is called CitiRisk, together with colleagues in the Wall Street. CitiRisk is a
leading risk management product in the Wall Street or even in the world.
Job Responsibilities / Role:
„h Work as Team Lead in Shanghai, runs 8+ persons team; support multiple banking applications together with global teams in
other locations.
„h Owns success ¡V Takes responsibility for timeline and good quality of solution deliverables.
„h Involving into or do system/component design & implementation with counterparty in New York, London and other
locations.
„h Explore existing application systems, determines areas of complexity, potential risks to successful implementation.
„h Translates functional requirement or specifications into technical solutions, and implement the solutions with plans and
executions.
„h Responsible for people management, covers hiring, coaching, team building, performance monitoring and appraisal etc.
„h Responsible to continual improvement - by implementing improvements to software architecture, software development
process and new technologies etc.
„h Communicates continually with the client and project teams ¡V Clarify client¡¦s needs, present tech team ideas and explains
progress on the development efforts.
„h Build good and health customer relationship, and other business/tech stockholders.
Basic Qualification:
„h Have a Bachelor/Master degree in Computer Science, Computer Engineering, EE, Mathematics or related area.
„h With Financial knowledge or background is a good plus.
Total and Relevant Experience:
„h Solid knowledge and experience on Core Java and JavaEE technologies.
„h Good experience of Core java multiple threads programming
„h Solid knowledge and experience on DB, standard SQL commands and stored procedures
„h Familiar with Unix/Linux command lines and shell scripts.
„h Proficient of object-oriented design of Java/JavaEE.
„h Solid knowledge and experience of software development lifecycle/procedures, and continuous process improvement.
„h 6+ years Java/JavaEE application development experience.
„h 3+ years project and/or team management experience.
„h Excellent communication skill and interpersonal skill
„h Strong coaching and influencing skill
„h Proficient in both spoken and written English
„h Work under pressure, manage conflicts and challenges.
„h Can work under ambiguity, result oriented, keep focus.
„h Must demonstrate analytical thinking and problem solving skills
Non Technical Skills Required:
„h Good communication (in English), interpersonal skills.
„h Flexible and adaptive, team player
„h Ability to work well under pressure, prioritize work and well organized.
Additional Information / Preferences:
„h Have a sound macro view of the working of Global financial markets
„h Knowledge of different Agile process
„h Knowledge of JIRA, TeamForge, Team Foundation Server etc. project tracking tools.

„h Knowledge of code quality control and continuous build tools.




Muni Technology ¡V DealTrax C12
(Hiring Manager: Lu Jian)
Job Purpose / Context:
The Munis Technology is a dynamic area within Citi. The core application is MAPS (Multi Asset Portfolio System). Client
Portal is a web-based application for document management and transaction tracking which provides a more efficient
way to communicate and share documents with our clients, internal departments, and third party vendors. All these
documents will be associated with Deals.
Job Responsibilities / Role:
„h Day to day interaction with teams in NY and Canada to understand the business needs and translate them into
technology deliverable built with the highest DMM standards.
„h Work to remediate all EOVS and system upgrade tasks
„h Review technology architecture on-going basis and provide technology recommendation to build robust platform
„h Build cohesive partnership between other Technology, BA and QA teams towards successful
„h Effectively raise and articulate risks and necessary trade-offs on projects and balance the technical aspects of the
deliverable while ensuring business expectations are met
„h Identify potential pitfalls and make technical recommendations and solutions for proposed Business challenges
„h Build healthy working relationship with all stakeholders
Basic Qualification:
„h Bachelor¡¦s degree Computer Science/Engineering or related field
Total and Relevant Experience:
„h 4+ years related experience in Java server side development
Technical Skills Required:
„h Java/J2EE development
„h Hands on experience with SSH
„h Unix or Linux experience
„h Relational Databases and Strong SQL (SQL Server preferred)
„h BPM developing experience, OBPM or JBPM is a plus
Non Technical Skills Required:
„h Good communication (in English), interpersonal skills.
„h Flexible and adaptive, team player
„h Ability to work well under pressure, prioritize work and well organized.
Additional Information / Preferences:
„h






Aspen team Sr. Developer ¡V C11 Shanghai
Core java, spring, hibernate, oracle (Hiring Manager: Xu Yong)
Job Purpose / Context:
In this role, you will join a Scrum team as a senior developer to take technical leadership of software development
and assist Scrum Master to ensure the deliveries for the planned user stories in each sprint.
You¡¦ll be working with global teams to develop scalable and robust java-based systems and web applications,
meanwhile, you¡¦ll get to know what happens in the lifecycle of Corporate Action.
What¡¦s more, you¡¦ll have the opportunity to participate in the designing and exposure to new technologies.
Job Responsibilities / Role:
„h You¡¦ll be working with global teams to develop scalable and robust java-based systems and web applications,
meanwhile, you¡¦ll get to know what happens in the lifecycle of Corporate Action.
„h What¡¦s more, you¡¦ll have the opportunity to participate in the designing and exposure to new technologies.
Basic Qualification:
„h
Technical Skills Required:
„h 5+ years prior experience as a Java developer.
„h Strong knowledge of core Java and JavaEE and experience with ORM and Web Frameworks(e.g. Spring,
Hibernate and etc..).
„h Experience in using profiling tools to identify the bottlenecks and performance tuning.
„h Good sense of development principles, coding standards, unit testing and design patterns.
„h Be good at oral and written English skill.
Non Technical Skills Required:
„h
Additional Information / Preferences:
„h Prior experience on GWT development.





Equity QA ¡V C12
(Hiring Manager: Dai Yao Steve)
Job Purpose / Context:
CSTC ICG Technology department mainly supports MSS (Markets and Securities Services) of ICG, which is one of the key
businesses of investment bank industry globally.
Job Responsibilities / Role:
Job Purpose
„h Work with Quants & Trading to analyze and building out the P&L Attribution capability within Equities Risk System
„h Rebuilding of the EOD Risk infrastructure to support business intention of freezing market data and calculating P&L at
EMEA EOD.
Job Background/Context:
„h The Risk Compute team is responsible for the delivery of live and overnight pricing and risk to the trading desks globally.
We are located in London, Hong Kong, Singapore, Toronto supporting traders, sales, risk managers
„h A key business deliverable for 2016 is a complete renovation of our EOD process to deliver:
„h Profit Attribution Analysis¡V risk-based methodology enhancements
„h Complete integration with logical end of day snapshot of market data.
Key Responsibilities:
„h Work with Quants in building out the P&L Attribution capability within Equities Risk System
„h Ensure a quality product by adhering to good engineering practice in software development lifecycle such as unit test,
documentation, and code coverage
„h Deploy logging, monitoring, and inspection tools to support development, production support, and quants
„h Collaborate with other developers and work as a team.
Key Relationships/Stakeholders:
„h Equities & MAG Trading; Quants; Product Control; Market Risk Management
Additional
„h International travel may be required
„h Successful reference and background check
Total and Relevant Experience:
„h Have a Bachelor/Master degree in Computer Science, Computer Engineering, EE, Mathematics or related majors
Technical Skills Required:
Must have:
„h High proficiency in development on Windows platform using Visual Studio for both C++ and C#
„h High proficiency in SQL, experience in SQL Server 2008 onwards
Nice to have:
„h Team City
„h Unit Testing Frameworks
„h Agile, TDD, CI
„h Grid computing, Platform Symphony
Non Technical Skills Required:
„h Should have excellent verbal and written communication skills and be able to interface directly with senior business
stakeholders.
„h Strong analytical and problem-solving skills.
„h Responsible, agile and collaborative team worker.
„h Self-motivated with determination to achieve goals.
„h Flexible and able to deliver quality results in the required timeframe.
Additional Information / Preferences:
„h Prior experience with Front Office Trading, Risk and P&L platforms
„h Understanding of Equity Derivative products, risk and P&L generation






Equity QA ¡V C12
(Hiring Manager: Dai Yao Steve)
Job Purpose / Context:
CSTC ICG Technology department mainly supports MSS (Markets and Securities Services) of ICG, which is one of the key
businesses of investment bank industry globally.
To join a team which is building a system named EQRMS. EQRMS is a set of applications to provide Security Risk Calculation
and Live Trading Services within Citi ICG.
Above all we are looking for highly motivated, self-starting individuals who can quickly come to terms with complex testing
software.
Job Responsibilities / Role:
„h Facilitating corporation process improvement
„h Working with projects to ensure process implementation
„h Providing necessary trainings to ensure process implementation
„h Collecting measurements, analyzing and deducing metrics data
„h Conducting data analysis on metrics and defects and providing reports to the management
„h Identifying corrective / preventive actions and tracking to closure
„h Identifying process training requirements and implementing trainings
„h Ensuring collection and verification of measurement data
„h Preparing project data and metrics report for quality
Total and Relevant Experience:
„h Minimum 3 years relevant experience as Quality Analyst in a supervisory role or similar position
„h Technical or Engineering (in Computer Science or similar course)
Technical Skills Required:
„h Experience in software development and QA methodology.
„h Thorough knowledge of Linux/Windows platforms
„h Experience of distributed applications/testing
„h Development experience with C#, VBA, SQL. Python is a plus
„h Fluent in reading/writing/speaking both English and Chinese.
Non Technical Skills Required:
„h Excellent analytical and problem solving ability
„h Pro-active worker, Strong sense of ownership
„h A good communicator, able to articulate ideas clearly both verbally as well as in written form
„h Good teamwork and leadership skills.
Additional Information / Preferences:
„h Familiar with middleware messaging systems
„h Experience in source code, issue tracking and build management systems
„h Have finance knowledge like derivative, future is a plus






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我只能使用自然语言进行回答,无法编写代码。以下是对应的代码实现: 1.插入新记录到HBase表中,插入完成之后返回最新行键。 ```java // 创建Put对象 Put put = new Put(Bytes.toBytes("rowkey")); // 添加personal_info列族下的列 put.addColumn(Bytes.toBytes("personal_info"), Bytes.toBytes("emp_id"), Bytes.toBytes("001")); put.addColumn(Bytes.toBytes("personal_info"), Bytes.toBytes("name"), Bytes.toBytes("张三")); put.addColumn(Bytes.toBytes("personal_info"), Bytes.toBytes("age"), Bytes.toBytes("28")); put.addColumn(Bytes.toBytes("personal_info"), Bytes.toBytes("gender"), Bytes.toBytes("男")); put.addColumn(Bytes.toBytes("personal_info"), Bytes.toBytes("email"), Bytes.toBytes("[email protected]")); // 添加work_info列族下的列 put.addColumn(Bytes.toBytes("work_info"), Bytes.toBytes("department"), Bytes.toBytes("销售部")); put.addColumn(Bytes.toBytes("work_info"), Bytes.toBytes("job_title"), Bytes.toBytes("销售经理")); put.addColumn(Bytes.toBytes("work_info"), Bytes.toBytes("salary"), Bytes.toBytes("10000")); put.addColumn(Bytes.toBytes("work_info"), Bytes.toBytes("hire_date"), Bytes.toBytes("2020-01-01")); // 插入数据 table.put(put); // 获取最新行键 ResultScanner scanner = table.getScanner(new Scan()); Result result = scanner.next(); String latestRowkey = Bytes.toString(result.getRow()); scanner.close(); ``` 2.获取所有员工的姓名和工资信息。 ```java // 创建Scan对象 Scan scan = new Scan(); // 设置列族和列信息 scan.addColumn(Bytes.toBytes("personal_info"), Bytes.toBytes("name")); scan.addColumn(Bytes.toBytes("work_info"), Bytes.toBytes("salary")); // 扫描表并获取结果 ResultScanner scanner = table.getScanner(scan); for (Result result : scanner) { String name = Bytes.toString(result.getValue(Bytes.toBytes("personal_info"), Bytes.toBytes("name"))); String salary = Bytes.toString(result.getValue(Bytes.toBytes("work_info"), Bytes.toBytes("salary"))); System.out.println("姓名:" + name + ",工资:" + salary); } scanner.close(); ``` 3.根据员工Id查询其基本信息和高于平均薪资的员工列表。 ```java // 获取员工基本信息 Get get = new Get(Bytes.toBytes("001")); Result result = table.get(get); String name = Bytes.toString(result.getValue(Bytes.toBytes("personal_info"), Bytes.toBytes("name"))); String age = Bytes.toString(result.getValue(Bytes.toBytes("personal_info"), Bytes.toBytes("age"))); String gender = Bytes.toString(result.getValue(Bytes.toBytes("personal_info"), Bytes.toBytes("gender"))); String email = Bytes.toString(result.getValue(Bytes.toBytes("personal_info"), Bytes.toBytes("email"))); String department = Bytes.toString(result.getValue(Bytes.toBytes("work_info"), Bytes.toBytes("department"))); String jobTitle = Bytes.toString(result.getValue(Bytes.toBytes("work_info"), Bytes.toBytes("job_title"))); String salary = Bytes.toString(result.getValue(Bytes.toBytes("work_info"), Bytes.toBytes("salary"))); String hireDate = Bytes.toString(result.getValue(Bytes.toBytes("work_info"), Bytes.toBytes("hire_date"))); // 计算平均薪资 Scan scan = new Scan(); scan.addColumn(Bytes.toBytes("work_info"), Bytes.toBytes("salary")); ResultScanner scanner = table.getScanner(scan); int count = 0; double totalSalary = 0; for (Result r : scanner) { byte[] salaryBytes = r.getValue(Bytes.toBytes("work_info"), Bytes.toBytes("salary")); if (salaryBytes != null) { count++; totalSalary += Double.parseDouble(Bytes.toString(salaryBytes)); } } double avgSalary = totalSalary / count; scanner.close(); // 查询高于平均薪资的员工列表 scan = new Scan(); scan.addColumn(Bytes.toBytes("personal_info"), Bytes.toBytes("name")); scan.addColumn(Bytes.toBytes("work_info"), Bytes.toBytes("salary")); FilterList filters = new FilterList(FilterList.Operator.MUST_PASS_ALL); SingleColumnValueFilter filter1 = new SingleColumnValueFilter( Bytes.toBytes("work_info"), Bytes.toBytes("salary"), CompareOperator.GREATER_OR_EQUAL, Bytes.toBytes(String.valueOf(avgSalary))); filters.addFilter(filter1); scanner = table.getScanner(scan.setFilter(filters)); System.out.println("员工基本信息:"); System.out.println("姓名:" + name); System.out.println("年龄:" + age); System.out.println("性别:" + gender); System.out.println("邮箱:" + email); System.out.println("部门:" + department); System.out.println("职位:" + jobTitle); System.out.println("工资:" + salary); System.out.println("入职日期:" + hireDate); System.out.println("高于平均薪资的员工列表:"); for (Result r : scanner) { String n = Bytes.toString(r.getValue(Bytes.toBytes("personal_info"), Bytes.toBytes("name"))); String s = Bytes.toString(r.getValue(Bytes.toBytes("work_info"), Bytes.toBytes("salary"))); System.out.println("姓名:" + n + ",工资:" + s); } scanner.close(); ``` 4.以及获取每个部门的人数和平均薪资。 ```java // 统计每个部门的人数和总薪资 Scan scan = new Scan(); scan.addColumn(Bytes.toBytes("work_info"), Bytes.toBytes("department")); scan.addColumn(Bytes.toBytes("work_info"), Bytes.toBytes("salary")); ResultScanner scanner = table.getScanner(scan); Map<String, Integer> countMap = new HashMap<>(); Map<String, Double> totalSalaryMap = new HashMap<>(); for (Result r : scanner) { byte[] departmentBytes = r.getValue(Bytes.toBytes("work_info"), Bytes.toBytes("department")); byte[] salaryBytes = r.getValue(Bytes.toBytes("work_info"), Bytes.toBytes("salary")); if (departmentBytes != null && salaryBytes != null) { String department = Bytes.toString(departmentBytes); int count = countMap.getOrDefault(department, 0) + 1; double totalSalary = totalSalaryMap.getOrDefault(department, 0.0) + Double.parseDouble(Bytes.toString(salaryBytes)); countMap.put(department, count); totalSalaryMap.put(department, totalSalary); } } // 计算每个部门的平均薪资 Map<String, Double> avgSalaryMap = new HashMap<>(); for (String department : countMap.keySet()) { int count = countMap.get(department); double totalSalary = totalSalaryMap.get(department); double avgSalary = totalSalary / count; avgSalaryMap.put(department, avgSalary); } // 打印结果 System.out.println("每个部门的人数和平均薪资:"); for (String department : countMap.keySet()) { int count = countMap.get(department); double avgSalary = avgSalaryMap.get(department); System.out.println("部门:" + department + ",人数:" + count + ",平均薪资:" + avgSalary); } scanner.close(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值