Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Tools / Technologies / Required Experience

  • C# / ASPNET MVC

    Status
    colourRed
    titleused constantly

  • JavaScript

    Status
    colourRed
    titleused constantly

  • SQL Server

    Status
    colourRed
    titleused constantly

  • Unit / integration testing

    Status
    colourRed
    titleused constantly

  • AWS Lambdas

    Status
    colourPurple
    titleinfrequent

  • Message Queues (RabbitMQ, SQS)

    Status
    colourPurple
    titleinfrequent

  • Software Design Patterns

    Status
    colourRed
    titleused constantly

  • C# / ASPNET MVC

    Status
    colourBlue
    titlevaries

  • JavaScript

    Status
    colourBlue
    titlevaries

  • SQL Server

    Status
    colourRed
    titleused constantly

  • Unit / integration testing

    Status
    colourPurple
    titleinfrequent

  • AWS Lambdas

    Status
    colourBlue
    titlefrequent

  • Message Queues (RabbitMQ, SQS)

    Status
    colourBlue
    titlefrequent

  • Software Design Patterns

    Status
    colourPurple
    titleinfrequent

  • Powershell

    Status
    colourPurple
    titleinfrequent

  • Reporting tools

    Status
    colourBlue
    titlefrequent

  • CloudWatch

    Status
    colourBlue
    titlefrequent

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.

...