Software Engineer II


Merrill, St. Paul, MN (USA)

Join the future of financial communications

Merrill combines great people, best practices and advanced technology while empowering the communications of the world’s leading companies and professionals who support them. Whether it’s sales, finance, human resources, information technology and more, consider unleashing your talent at Merrill Corporation.

Job Description:

An Engineer II will be capable of taking well-defined tasks and completing them in a way that is considered by the team to be high-quality with supervision from more senior team members. The progress through this level is focused on taking tasks of increasing complexity, scope and importance and completing them with very high quality with a lessening need for manager/tech lead oversight.

This level is the bread-and-butter level of engineering growth. Engineers at this level should be focused on becoming great engineers, learning how to set high quality bars for their work without sacrificing productivity. All engineers at and above this level should religiously follow stated best practices for the team without excessive handholding. Engineers at this level will continue to make mistakes, but should be improving the speed at which they learn from these mistakes. By the time an engineer 2 is ready to be promoted s/he will have focused on some technology as their expertise and become capable of mentoring interns and new engineers in these areas. They will start to participate more in the technical design process, often with guidance from senior engineers.

Engineers at this level are assumed to be constantly making steady progress on tasks that are assigned to them and know when to ask for help when they are blocked. They can own their independent small-to-medium features all the way through from technical design to launch. They are capable of prioritizing the work in front of them and able to make forward progress, avoiding the temptation to focus on unimportant details or excessive bikeshedding.

The impact at this level is focused on task completion and depth in a small area of the code base. Engineers at this level should be capable at release responsibilities for their area as well as on-call support for simple incidents in areas that they are not always familiar with.

They communicate well and are capable of delivering feedback to peers and their manager. When given a task with unclear requirements they know how to ask for clarification, and ensure that all assumptions are vetted before work starts to reduce the need for re-work. They understand how their work fits into the larger picture for their team, and use this to identify conflicting requirements to their tech lead and product manager. An important focus of this level is developing empathy for the users of their software, whether they be internal employees, customers, or other developers on the team. A team member at this level is seeking out the context they need to understand the why of a particular feature and nurturing this empathy via that understanding.

Essential Duties and Responsibilities

Writes correct and clean code with guidance: Consistently follows stated best practices.

Participates in technical design of features with guidance.

Rarely makes the same mistakes twice, begins to focus on attaining expertise in one or more areas (e.g Java/JS/Ruby/iOS development, performance best practices, efficient use of data stores, messaging etc.)

Makes steady progress on tasks: knows when to ask for help in order to get themselves unblocked.

Self sufficient in at least one large area of the code base (multiple services in a pillar, all front end code related to main funnel flow) with a high-level understanding of other components.

Gives timely, helpful feedback to peers and managers.

Communicates assumptions and gets clarifications on tasks up front to minimize the need for rework.

Additional Duties and Responsibilities

Learns quickly and makes steady progress without the need for constant significant feedback from more senior engineers.

Able to own small-to-medium features from technical design through completion.

Capable of prioritizing tasks: avoids getting caught-up in unimportant details and endless "bikeshedding"

Capable of providing on-call support for their area including systems that they are not familiar with.

Solicits feedback from others and is eager to find ways to improve.

Understands how their work fits to the larger project and identifies problems with requirements.

Minimum Education

4 year college degree in Computer Science, MIS, Mathematics or similar

Minimum Experience


Preferred Experience

2-6+ years

About Merrill

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.

Want to learn more about Merrill? Visit Merrill's website.