Software Engineer - Mid Level
Summary
Mid-level full-stack engineer in Dallas (4 days/week in office) building Optimize, Cenergistic's energy-analysis SaaS platform that tracks utility consumption and savings across building portfolios. Day-to-day is Node.js/TypeScript backend, React web and mobile UIs, plus heavy daily use of AI coding agents like Claude Code.
About the role
What you will do
- Design, build and ship features end to end: API, data model, web UI and, when needed, mobile UI.
- Work in the Node.js / TypeScript backend that all other apps use to communicate.
- Build and maintain React front ends.
- Write automated tests and keep the existing test suites healthy.
- Use AI coding agents to plan, write, refactor and test code.
- Review agent output with the same care you give to a colleague’s pull request.
- Take part in sprint planning, backlog refinement and code review.
- Work closely with the Platform Architect, the UX designer, and the testing engineers who own QA for each app.
- Investigate and fix production issues that product support escalates.
What you bring
Required skills
- 2+ years of professional experience building web applications.
- TypeScript and JavaScript.
- React, including hooks and component design, with React Query and React Hook Form, or similar.
- Node.js with Express.
- PostgreSQL: schema design, SQL and handling database migrations.
- Unit and integration testing with Vitest and Jest, or similar.
- Git, pull requests and code review on GitHub, or similar.
- Hands-on experience with Docker, Redis and AWS S3 on real projects.
- Building and deploying containerized applications, on AWS ECS or similar.
- Message queues for background and async work, such as sending jobs to workers and handling retries, with AWS SQS or similar.
- The ability to read and change a large codebase that you did not write.
Agentic coding
- You use an AI coding agent (for example, Claude Code, Codex, Cursor, or Copilot) in your daily work, not only for autocomplete. Our team uses Claude Code exclusively.
- You can break a task into steps an agent can execute, give it the right context, and steer it when it goes off course.
- You review, test, and verify what the agent produces. You own the correctness of every line you merge, whoever or whatever wrote it.
- You know when to stop the agent and write the code yourself.
- You can explain how you give an agent context, for example with CLAUDE.md files, rules, or skills.
- You can explain how you check agent output, and you can describe where your agentic workflow has failed and what you changed.
Nice to have
- React Native and Expo.
- Elasticsearch or OpenSearch.
- Vite and webpack.
- AWS DynamoDB, Athena, and Bedrock.
- Python.
- Prisma.
- Experience with energy, utilities, facilities, or building-management data.
Interview process
Step 1: Technical screening
Step 2: On-site interview
- Technical deep dive: up to 90 minutes.
- Interview with our leadership: up to 30 minutes.
- You use Claude Code to build a full-stack solution to a problem on a laptop that we provide. Then you explain what you built.
- While the agent works on the problem, we talk with you about your technical expertise, your work experience, and other topics.