Sr. Software Engineer

BCC Software•Town of Perinton, NY
•$120,000 - $160,000•Hybrid

About The Position

BCC Software is seeking a senior engineer to sustain and evolve business-critical C/C++ products while helping move them toward a modern Microsoft technology stack. The role combines hands-on software development with technical influence, using strong engineering fundamentals, practical C# and .NET experience, architectural judgment, and responsible use of AI to improve engineering productivity and product capabilities. The engineer will maintain established C and C++ applications across Windows and Linux, build new capabilities with C# and modern .NET, and help assess and modernize legacy components through pragmatic, incremental approaches. The role also involves testing and documenting maintainable code, contributing to Agile delivery, partnering with Product Owners and QA, and taking complex problems from investigation through production validation. The position provides technical direction, mentorship, and project-level coordination as needed, but does not have formal supervisory responsibility at hire. The role is hybrid for Rochester-based employees and may be remote for employees outside the area. Occasional travel to the Rochester headquarters may be required. Some flexibility in hours is allowed, with availability required during core business hours Monday through Friday, 8:00 a.m. to 5:00 p.m. Eastern Time; evening or weekend work may occasionally be required.

Requirements

  • 15 or more years of professional software development experience, including meaningful hands-on experience with C and/or C++ in production systems.
  • Ability to read, diagnose, safely modify, and test a mature C/C++ codebase.
  • Familiarity with compilers, linkers, debuggers, memory management, performance profiling, and native interoperability.
  • Professional experience with C# and .NET, or demonstrated ability to apply comparable object-oriented and service-development experience to the modern Microsoft stack.
  • Experience developing for Windows and Linux and working with relational databases, data modeling, and application integration.
  • Experience with automated testing, mocking frameworks, source control, pull-request reviews, CI/CD pipelines, and modern branching strategies.
  • Working knowledge of secure software development practices, dependency management, secrets handling, authentication and authorization, and common application security risks.
  • Strong analytical, written, verbal, and interpersonal communication skills, with a methodical approach to ambiguous technical problems.

Nice To Haves

  • Hands-on experience with ASP.NET Core, REST APIs, Entity Framework Core, Azure SQL, Service Bus, Functions, App Service, containers, or comparable Azure services.
  • Experience modernizing desktop, native, or monolithic applications through staged migration, APIs, services, or modular architecture.
  • Experience with GitHub, GitHub Actions, GitHub Copilot or comparable AI coding assistants, and enterprise AI governance practices.
  • Experience evaluating or implementing generative AI capabilities using Azure AI Foundry, Azure OpenAI, retrieval-augmented generation, prompt evaluation, content safety, or human-in-the-loop patterns.
  • Experience with Python, PowerShell, telemetry, and production diagnostics.
  • Previous experience as a technical lead, feature lead, team lead, mentor, or acting lead.
  • Formal people-management experience.

Responsibilities

  • Enhance, troubleshoot, and maintain established C and C++ applications across Windows and Linux environments.
  • Design and deliver new capabilities using C#, modern .NET, service-oriented architecture, contemporary APIs, and integration patterns.
  • Assess legacy components and define pragmatic modernization approaches, including incremental replacement, service extraction, interoperability, and risk-managed migration.
  • Use AI-assisted engineering tools for code comprehension, refactoring, test generation, documentation, defect analysis, and delivery acceleration while protecting source code, customer data, and intellectual property.
  • Write, review, test, and document maintainable code, including automated unit, integration, and regression tests.
  • Estimate and size user stories, define technical tasks, and meet individual and team commitments within an Agile Scrum delivery model.
  • Partner with Product Owners and QA to refine requirements, define acceptance criteria, identify technical risks, and plan stories, epics, and releases.
  • Own complex problems from investigation through production validation.
  • Contribute to architecture discussions, engineering standards, CI/CD improvements, security practices, observability, and cross-team initiatives.
  • Provide technical direction on complex work, facilitate design and code reviews, and help balance delivery speed, maintainability, reliability, and security.
  • Mentor engineers through pairing, feedback, knowledge sharing, and practical guidance in legacy and modern technologies.
  • Lead a workstream or small project team when needed, coordinate dependencies, surface risks, and communicate progress to technical and non-technical partners.
  • Help establish reusable modernization patterns, coding standards, testing approaches, migration playbooks, and definition-of-done expectations.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service