Sr Software Engineer II
Merrill, Minneapolis, MN (USA)
Join the future of financial communications
Merrill Corporation is the industry leader in technology solutions that enable mergers, acquisitions, initial public offerings, restructuring and other critical capital transactions in more than 170 countries. We provide the world’s leading investment banks, private equity firms, law firms and corporations with tools to simplify, streamline and accelerate the due diligence process, helping them close more deals, faster. We are a global team of high-energy, passionate people. We have strong individual voices but we work as a team, bringing out the best in each other. We thrive under pressure and always keep the customer at the heart of everything we do.
We are looking for a talented microservices Engineer to work closely with Product, UX and other Engineering team members, as part of a distributed Product team. We want someone who is seeking the opportunity to have a big impact and who relishes the challenge of working in a fast-paced global company in the Financial sector utilizing Agile Delivery and DevOps.
This person will solve problems with technology within an industry they may not be familiar with, generate breakthrough ideas, design and deliver working software quickly to enable testing and short-cycle innovation. You will be in an environment that fosters cross-functional collaboration as well as working with all roles of the scrum team (Product Manager, Software Engineer, UX, QA, DevOps, etc..) and will need to bring a strong understanding of Agile/Scrum development methodologies. We follow the squad model made famous by Spotify, so you'll be part of an autonomous team with full responsibility for your own area and an opportunity to look to implement change across the board, while collaborating with colleagues in the Denver, Minneapolis, and New York City to ensure fast and consistent delivery.
This role will offer an opportunity to innovate in a highly complex space. You’ll be challenged intellectually and professionally and it will suit someone with a lot of curiosity and a passion for building great products.
What are we building?
Merrill is building a new platform to provide powerful and innovative solutions to enable our clients to manage the most complex deals on the planet as efficiently as possible.
We want to be the easiest, fastest, and most intuitive way to progress deals to a successful outcome – enabling the bankers, lawyers and professionals we work alongside to focus on doing what they do best for their clients.
The new core platform is a microservices architecture with multiple web/mobile applications built on top. We are leveraging a combination of open source and third-party frameworks/tools such as Netflix Eureka (service discovery), Google Apigee (API gateway), MongoDB (NoSQL), Redis (Cache), RabbitMQ (Pub/Sub), Pivotal Cloud Foundry (platform as a service), Microsoft Azure (cloud platform), Jenkins (CICD), and many more.
We are looking for talented engineers to join the distributed team and who will be involved in building Java and Node.js microservice driven applications. This team will have many opportunities to learn new technology and innovate on the products. The immediate need is for someone to:
Hands-on development - deliver a highly scalable and flexible application to be iterated on with our reference customers
Follow and help create good engineering practices within the stack and move the code and other engineers towards an improved resilient globally distributed RESTful-based microservices architecture
Establish core platform concepts, define and build multi-tenant authorization models, and move forward our vision of an API platform
Keep your code clean, your tests complete and functional, and your releases daily
Collaborate with both technical and business team members to understand requirements and develop solutions using an agile development process
Collaborate with other teams that are responsible for pieces of the platform and applications
To be successful in this role you must be a quick learner, very familiar with agile practices and software development and enjoy working in cross functional teams.
Our Ideal Candidate Will Have
4 to 5 years of relevant software engineering experience
RESTful API design and microservice architectures
Solid understanding of the full web stack (e.g. HTTP, headers, caching, etc.)
Familiarity or experience with Authorization models (OAuth2, SAML, OpenIDConnect, etc.)
Familiar with ES2015 (ES6), TypeScript, etc.
Familiar with Continuous Integration (CI) / Continuous Delivery (CD)
Working skills with the following tools and technologies: Java, Node.js, IntelliJ, Jenkins, Groovy, Redis, MongoDB, RabbitMQ
Experience with unit testing tools like Junit, Mockito, Spock
Product development or large-scale web app development
Familiar with deploying microservices in a cloud environment
Collaborates on technical designs and communicates technical decisions through design docs, tech talks, and the wiki.
Proactively identifies problems with requirements (lack of clarity, inconsistencies, technical limitations) for their own work and adjacent work, and communicates these issues and possible solutions early to help course-correct.
Familiar in modern UI MV*(MVC, MVVM, etc..) framework(s) e.g. Angular, Backbonejs, ExtJS, etc.
Familiar with UI testing using third party tools e.g. cucumber/capybara, karma, mocha or jasmine, etc.
Familiar with Single Page Applications (SPAs)
Familiar with responsive and/or web mobile design
Familiar with modern CSS libraries or view libraries e.g. Bootstrap, Angular Material, etc.
Familiar with UI build tools e.g. gulp, grunt etc.
Technical aptitude and attention to detail
Experience work as part of a distributed development team
Good team player
Good problem-solving skills with the ability to analyze and diagnose a complex application
Good oral and written communication skills
Ability and desire to make decisions and execute quickly
Bachelor’s degree in Computer Science or a related field
Additionally, the following would be helpful:
Experience of working within the squad model, and internal open source development
Exposure in using Pivotal Cloud Foundry (PCF), SpringBoot with a NoSQL DB like MongoDB, Elasticsearch, Redis, etc.
Solid expertise in building scalable, globally distributed, loosely coupled systems
Knowledge or interest in Test Driven Development (TDD)
Strong interpersonal skills
Self-starter, high energy
A passion for quality
Ability to work under tight deadlines
Experience training and mentoring team members
Familiar with architectural patterns of a large, high-scale web application (e.g., well-designed APIs, distributed architecture, 12 factor apps)
Merrill is an international organization that offers technology-enabled platforms for secure content sharing, regulated communications, and disclosure services for the world of international finance.
For half a century, they've provided the tools to help some of the biggest companies in the world connect with speed, accuracy, and confidence. And in 2000, they became the first online management resource legally required for publicly traded companies.
Their digital transformation, in partnership with Microsoft and Pivotal Software, now allows clients to leverage highly innovative technology and advanced analytics, alongside ironclad security - all without losing the human touch.
And the transformation continues - Merrill is opening a digital innovation lab in New York in 2018.
As a global organization, Merrill knows that diverse perspectives are essential to our success. We’re committed to maintaining a diverse workforce to serve our customers around the world. Merrill is an equal opportunity employer (EEO) and furthers the principles of EEO through Affirmative Action.
Be a Better Merrill Candidate
Learn skills and get an insider's look at Merrill when you watch classes taught by their top employees.