Senior Software Engineer
GC Environmental, Inc.
Bay Shore, United States of America
1 month ago
Role details
Contract type
Permanent contract Employment type
Full-time (> 32 hours) Working hours
Regular working hours Languages
English Experience level
Senior Compensation
$ 85KJob location
Bay Shore, United States of America
Tech stack
Artificial Intelligence
TypeScript
Job description
We run a portfolio of eight production property-management applications - web, iOS, and Android - used daily by paying customers. We've spent the last several months building an AI development system that has changed how engineering work gets done here, and we're now looking for the senior engineer who will own it.
Requirements
Do you have experience in TypeScript?
About the company
This is not a role for someone curious about AI coding tools. It's a role for someone already living in them - dispatching agents on real units of work, reading what comes back with a skeptical eye, and shipping well above a hand-coded pace. If that's already how you build, the rest of this will sound like home.
What makes this different
Most engineering jobs hand you a codebase. This one hands you a codebase and a system for working on it at a multiple of normal speed.
We've built a development harness around an agentic coding environment, wrapped in real engineering discipline rather than vibes. It indexes every production repository into a queryable code graph. It turns findings into tickets with concrete acceptance criteria. It scores incoming pull requests against those criteria with file-and-line evidence, so review starts from facts instead of impressions. And in a sandboxed mode against approved repositories, it writes code itself - behind a quality gate that has to pass before anything commits, hooks that stop known-bad patterns at the moment they happen, and an audit trail that can't be quietly edited after the fact.
The philosophy underneath it is the part you'll either nod along to or bounce off of. Tool output is truth; a summary of tool output is a hint. A finding without evidence isn't a finding. Every recurring failure becomes a permanent mechanical block, so the same mistake can't happen a third time. There's no "we'll come back to it later" and no severity triage that quietly drops the small stuff. If that sounds like how you already think about quality, you'll be effective here in your first week.
What the system has never had is an engineer at the controls - someone with the judgment to know when it's right, when it's wrong, when to override it, and when to extend it. That judgment is the whole job.
What you'll actually do
Most of your time goes to the production estate. An offshore team handles a lot of the implementation; you decide what they build, what comes first, and whether what they ship meets the bar to merge. You'll investigate issues through the harness, write findings backed by evidence, shape the work into tickets, review the pull requests that come back, and fix things yourself in the sandbox where it's the faster path.
You'll also keep the system honest. When something fails, the response isn't to bolt on another rule and move on - that's the bandaid the system is built to reject. It's to diagnose the failure to its root, understand the class of mistake it belongs to, and decide how to defeat that whole class without regressing everything that already works. Sometimes that means a new mechanical block; just as often it means reworking or removing something that turned out to be wrong. You're not accumulating tooling, you're continuously re-engineering the system against what reality throws at it, so the same class of failure can't return.
You'll partner closely with the person who built and runs the system day to day. He's spent months learning exactly how these tools break and how to direct them; you bring the engineering depth to read what they produce and steer the architecture. Neither of you reports to the other - it's a genuine two-person partnership where both halves are load-bearing.
There's also a small in-person office, and once in a while something physical needs a hand - a machine that won't get online, an account that needs setting up. It's a minor part of the role, but we'd rather be straight about it than have it surprise you later.
Where this goes
Once the estate and the review pipeline are running smoothly, there's a real strategic decision ahead, and you'll help shape it. One direction is a managed migration of the production stack from CodeIgniter to modern Laravel, executed through the harness with you driving design and the quality gates. The other is finishing an in-house rebuild already underway on a modern TypeScript stack - Next.js, a typed RPC layer, a proper relational ORM. The architecture exists and the core surfaces are built; there's substantial work left, but you wouldn't be starting from an empty repository. Which path we take depends in part on what you and the system prove is achievable.
Who we're hoping to meet
Someone with five or more years building and shipping real production software, comfortable in PHP and in modern fullstack TypeScript. You can drop into a few thousand lines of unfamiliar code and have a well-founded opinion within a day. You treat mechanical quality gates - lint rules, structural code search, dependency rules, hooks at the tool boundary - as leverage, not friction. You're comfortable being the engineer in the room and making architectural calls without waiting for a committee.
Comfort reading iOS and Android is a plus rather than a requirement; the estate spans every platform, so you'll need to be able to read all of it even if you mostly write web.
Above all: you're genuinely doing AI-first development today. Not "open to it" - doing it, with your own standards wired into the tools. The system here is built for engineers who hand agents whole units of work, audit the results, tighten the loop, and ship fast. That's the model, and we think the right person has been waiting to find a team that already works this way.