Product Development Engineer vs Product Success Engineer

This document compares and contrasts the two different “engineer” type roles on the LearningBuilder team.

If you were sent this link by a hiring manager then it probably means you applied for one role, but we think you’d be a better fit for the other.

Welcome!

LearningBuilder is a large and complex piece of software. It is built and maintained by a diverse set of people working in a diverse set of roles, and we believe that our success hinges on matching those people to the ideal role for their personality, experience, and goals.

In short, finding the best “fit” between candidates and job duties not only makes the company more successful, it makes our employees happier too. Win-win!

One of the “fit” questions we have to answer is whether a given developer (e.g. you) would do better as a “Product Development Engineer” or a “Product Success Engineer”. This page will explain the options to you.

How do the roles compare?

Product Development Engineer

Product Success Engineer

Product Development Engineer

Product Success Engineer

Helps us build the core product, adding new features and supporting existing ones.

Works closely with Product team.

Contributes to our future success.

Predictable, consistent day-to-day experience.

Helps us deliver successful outcomes to our clients, often filling in “gaps” in existing features.

Works closely with the Implementation and Support teams.

Contributes to our success right now.

Dynamic and variable day-to-day experience.

Who is my “customer”?

Primary “customer” is our internal R&D process. Some R&D work is brought to us by the Implementation Team.

Primary “customers” are the people using the software: Implementors who experience technical complexity. Success Engineers often work directly with customers to troubleshoot and achieve technical solutions.

Primary Job Duties

  • Adds new features to LearningBuilder

  • Writes unit and integration tests for core product features

  • Manages database/schema changes that apply to all clients

  • Resolves defects

  • Writes / updates documentation that applies to the core product and to all clients

  • Solves real-world customer needs through advanced configuration and mastery of technical concepts

  • Creates client-specific database objects (procedures / views) to support advanced configuration

  • Identifies / triages / resolves defects

  • Writes documentation that applies to specific clients

  • Supports and develops the LearningBuilder integration layer (e.g. exam provider integrations, SSO integrations, etc)

  • Ad-hoc data manipulation or migration

  • Investigates and resolves performance issues relating to client-specific data conditions

  • Makes suggestions to the Product Team for reducing / avoiding common requests

Tools / Technologies / Required Experience

  • C# / ASPNET MVC used constantly

  • JavaScript used constantly

  • SQL Server used constantly

  • Unit / integration testing used constantly

  • AWS Lambdas infrequent

  • Message Queues (RabbitMQ, SQS) infrequent

  • Software Design Patterns used constantly

  • C# / ASPNET MVC varies

  • JavaScript varies

  • SQL Server used constantly

  • Unit / integration testing infrequent

  • AWS Lambdas frequent

  • Message Queues (RabbitMQ, SQS) frequent

  • Software Design Patterns infrequent

  • Powershell infrequent

  • Reporting tools frequent

  • CloudWatch frequent

Day-to-Day Experience

Very consistent:

  • Daily standup

  • Predictable work stream / weekly story planning meeting

  • Lots of time to “dive deep” on a single task

  • Delayed feedback from customer; it can take awhile for features to get rolled out and adopted into client configurations

Variable and dynamic:

  • Daily standup

  • Unpredictable work stream; always a fresh challenge!

  • Mixture of small “tasks” and larger “projects”

  • Fast feedback cycles; you often instantly see the impact you’re having

Example Tasks and Assignments

Implement a feature so that Administrators can impersonate other users

  • Add/modify columns in database

  • Implement UI (in collaboration w/ designer)

  • Modify existing logging code to track both identities (logged in user + active user context)

Assist an analyst configuring a new application process for a licensure program.

  • Implement a custom SQL procedure that moves data around to support unique, one-off client need

  • Create a complex Razor template to reflect that data in UI

  • Write ad-hoc data script to auto-start the application for existing licensees matching specific criteria

  • Implement a new 3rd party integration as an AWS Lambda

Resolve defect in which user is unable to <do a thing> when <some condition is met>

  • Triage and identify the root cause

  • Write a failing test to cover that scenario

  • Fix the issue

  • Work with QA to validate the fix

Investigate performance issue reported by a specific client

  • Triage and identify root cause, potentially using code debugger

  • Determine if issue should be fixed in the database (e.g. indexes, etc) or in the application (e.g. how it builds the query)

  • Work with Product team to design a solution

  • Potentially hot-fix the solution to the affected client for immediate relief

Traits of Ideal Candidate

  • Enjoys thinking about abstract concepts

  • Enjoys using technology to build stuff

  • Can see the whole forest

  • Most productive when things are “calm and quiet”

  • Excels at communicating deeply technical concepts with other developers and engineers

  • Enjoys working with concrete ideas and details

  • Enjoys using technology to solve problems

  • Gets up close and personal with individual trees

  • Can easily context switch or juggle lots of things at once

  • Excels at communicating and collaborating with non-technical colleagues

Career path within Heuristic Solutions

There’s not really a difference; Success Engineers could move to the Product team and vice versa.

Both roles have room for Junior → Senior level transitions.