Performance Engineer
Previous Job
Previous
Performance Engineer
Ref No.: 18-03273
Location: New York, New York
Position Type:Direct Placement
Pay Rate : $ 130,000.00 - 200,000.00 /Year
The Company
 
Our client is a fast growing, highly recognized global fin-tech start, and they are grow out their technical team to keep up with their growth. They are emerging as the market leader for developing distributed ledger technology that can be applied to the market infrastructure and financial services sector. Backed by leading financial institutions, infrastructure providers and financial software providers, the company is delivering enterprise-grade solutions for post-trade services.
 
The Opportunity for a Performance Engineer:
 
Work as part of our globally distributed engineering team with Product and Business Development teams to define, develop, and deliver scalable, available and performant software product increments. Become an essential member of this disciplined, cross-functional engineering group, coordinating and consulting on performance work across three continents. Focusing on their products, you will identify weak points and hot spots, taking into account how the products are used. You will find their scaling limits, making sure they interoperate with other products and systems in a performant way, and owning how performance is measured and monitored at every level. Help us find where our software hits the next wall and lead us to break through them.
 
Success in the role of a Performance Engineer:
 
  • Performant software is the whole team's responsibility. Your job is to advise, measure and guide the efforts of your team members in designing, implementing and optimizing for performance.
  • Develop and manage performance work backlogs, building test plans and identifying priorities.
  • Incorporate both high-level architectural knowledge of performance factors and low-level machine hardware tuning skills to respond creatively to each challenge.
  • Share lessons and experience from your projects with your colleagues to help us build performance discipline into our engineering culture.
  • Be a developer: You'll need to wrangle our APIs, think about execution paths, memory consumption, "big O”.
  • Help to diagnose causes of performance degradations as part of a team. Be able to identify when we are CPU bound, memory bound, I/O bound or network bound in a complex distributed system.
 
Preferred Domain Knowledge for a Performance Engineer:
 
  • Distributed systems - how to measure and optimize performance across a distributed system.
  • Mission-critical usage - JVM tuning (GC, memory pressure), database optimization (RDBMS, NoSQL, Graph), distributed, highly available systems, high throughput systems, cloud infrastructure and virtualization layers.
  • Familiarity with the tracing tools such as dapper, zipkin or similar; with monitoring systems such as New Relic, DataDog or similar and with load generating tools such as JMeter, gatling etc.
 
What they are using:
 
  • Java, Scala, and Haskell for backend development of new technology concepts
  • Typescript for front-end development
  • Python for glue and prototyping
  • Agile/Scrum and modern software engineering practices (TDD / CI / CD etc)
  • Cloud services, containers for rapid deployment