Find Jobs
Find Jobs Near You – Available Work in Your Location
Skip to job details
IG
Insight Global
Sr. Software Engineer
Career Insights for Software Developer / Engineer
See where this job fits in the broader career landscape. Knowing your career path helps you see what's possible from here.
Scorecard
Based on Maine data
Review key factors to help you decide if this role fits your goals. How is this calculated?
What they do
A Software Developer or Engineer designs or improves computer software. Oversees the entire software development process. Analyzes customer or user needs, designs programs, writes code or instructs computer programmers, tests design, and documents programs. May assist with upgrades or maintenance. May specialize in the design of computer applications or computer systems.
$128,572 / year median in Maine
-0% projected decline
Job Description
at Insight Global in Westbrook, Maine, United States Job Description Job Description We're looking for a Software Engineer to build a contract-verification framework for IDEXX's AI/ML platform: a system of declarative predicates and invariants that governs how Python code is allowed to change. This is closer to compiler and program-analysis work than to data engineering
To learn more about how we collect, keep, and process your private information, please review
- you'll turn formal specifications into tooling that verifies code automatically. Your work will help ensure the reliability of the ML systems that power IDEXX's diagnostic products. AI assistants have made writing code dramatically faster. They have not made writing correct code dramatically faster
- that gap is widening, and the tooling that closes it matters more than it used to. That's the work this role exists to do. A common thread runs through everything we build: a formal specification
- a schema, a contract, a grammar
- is the source of truth, and the tooling we write makes other code conform to that specification automatically.
- whether that code was written by a human, generated by an AI assistant, or somewhere in between.
Your primary focus:
- Predicate & invariant framework for data contracts
- the core of the role. o Design and implement declarative contract classes that attach to Python methods (design-by-contract decorators
- no relation to the ML data annotations below) and trigger verification of the code inside, using AST
- level analysis.
o Predicates enforce data contracts:
they state what a method must guarantee about the data it produces or consumes, and the verifier checks the implementation against those statements.o Invariants constrain evolution:
they state properties of the codebase that must survive change, so that modifications- human
- or AI-authored
- that would break them fail at verification time, not in production.
To learn more about how we collect, keep, and process your private information, please review
Insight Global's Workforce Privacy Policy:
https://insightglobal.com/workforce-privacy-policy/. Skills and Requirements AI assistants have made writing code dramatically faster. They have not made writing correct code dramatically faster- that gap is widening, and the tooling that closes it matters more than it used to. That's the work this role exists to do. A common thread runs through everything we build: a formal specification
- a schema, a contract, a grammar
- is the source of truth, and the tooling we write makes other code conform to that specification automatically.
- whether that code was written by a human, generated by an AI assistant, or somewhere in between.
Your primary focus:
- Predicate & invariant framework for data contracts
- the core of the role. o Design and implement declarative contract classes that attach to Python methods (design-by-contract decorators
- no relation to the ML data annotations below) and trigger verification of the code inside, using AST
- level analysis.
o Predicates enforce data contracts:
they state what a method must guarantee about the data it produces or consumes, and the verifier checks the implementation against those statements.o Invariants constrain evolution:
they state properties of the codebase that must survive change, so that modifications- human
- or AI-authored
- that would break them fail at verification time, not in production. o You'll shape the vocabulary of predicates and invariants together with the architect, build the verifier and its diagnostics, and make violation messages clear enough that they teach the contract they enforce.
- Contracts and verification o Design-by-contract tooling (icontract, deal, Eiffel, JML , Dafny) or other program-verification exposure. o Property-based testing (Hypothesis or similar).
- Code-as-data work o Parsing or analyzing source code (Python ast / libcst, tree-sitter, or equivalents); codemods; mypy plugins or typing internals. o Code generation, templating, or compiler back-ends
- especially if you've maintained a code generator in production.
- Rule and constraint systems o DSLs, OPA /Rego, rule engines, or knowledge-representation/constraint languages ( OWL , RDF , SHACL , Datalog). o Translating declarative business rules into executable validation logic.
- Schema and validation tooling o Avro, JSON Schema, OpenAPI/Swagger, LinkML To view full details and how to apply, please login or create a Job Seeker account