Senior Software Engineer, Services
(this role is US based remote, all candidates must be authorized to work in the United States without restriction)
What we believe
In the past few years, private equity investors have invested more than a trillion dollars in software and tech-enabled companies. And in many cases, the underlying tech is the greatest enabler to the business strategy. But has the approach to govern technology value creation caught up to the magnitude of the risk?
We believe a better way is possible – a more programmatic, proactive approach to actively manage technology throughout the investment lifecycle – and that’s what we do.
Our role
We know that technology can create truly transformative change, and its role in business is only growing. Crosslake is here to support the changemakers and help them buy, build and run better technology.
What we value
You could be a good fit for Crosslake if you see yourself reflected in our guiding values:
Service. We effect change by empowering others.
Curiosity. We believe great advice starts with deep understanding.
Credibility. Our expertise is earned and proven.
Commitment. It’s our privilege to serve clients in their critical moments.
Creativity. We are inspired by the constant pursuit of better.
Overview
We’re building small, highly capable engineering pods (2–3 engineers) that own problems end-to-end and move quickly from idea to production. This role is for engineers who are comfortable operating across the stack while bringing strong backend and systems design expertise.
This role is part of our Services team, which builds the shared backend services and system foundations that power many of Crosslake’s tools and products. These systems are designed for reuse, scalability, and long-term maintainability.
This role requires strong architectural thinking and hands-on execution, with a focus on building reliable, extensible services that support multiple use cases over time.
What you’ll do
- Design and build shared backend services and APIs used across multiple systems
- Define service boundaries, contracts, and data models
- Own the full SDLC: design, development, testing, deployment, and iteration
- Contribute to domain modeling and system design decisions
- Ensure services are scalable, reliable, and reusable
- Improve system cohesion and reduce duplication across tools and products
- Use AI tools to accelerate development while maintaining high code quality
- Balance speed with long-term maintainability and extensibility
What we’re looking for
- 7+ years of software engineering experience
- Strong backend expertise with the ability to operate across the full stack when needed
- Experience designing service-oriented or distributed systems
- Familiarity with domain-driven design (DDD) principles
- Exceptional systems thinking and ability to model complex domains
- Experience deploying and operating applications in cloud environments (AWS, Azure, or GCP)
- Solid understanding of the full SDLC
- Deep experience with (i.e., daily usage of) AI coding tools
AI-Native Development
- Hands-on experience using AI-assisted development tools beyond basic code generation
- Ability to leverage AI across the workflow (e.g., prototyping, debugging, test generation, QA, code review, security analysis)
- Ability to balance AI-assisted development with sound system design and long-term maintainability
- Familiarity with modern AI-enabled development environments and practices
Preferred Experience
- Infrastructure as Code (e.g., Terraform)
- CI/CD and modern DevOps practices
- API design (REST, GraphQL, event-driven systems)
- Messaging systems (e.g., Kafka, SQS), Event sourcing, CQRS patterns
- Data modeling (SQL and NoSQL)
- Observability practices (logging, metrics, tracing)
- Experience with one or more of the following languages: Python, TypeScript, Golang, Rust
- Basic understanding of data engineering principles
How we work
- Small teams, high ownership, minimal handoffs
- Fast, iterative delivery with an emphasis on sound system design
- Pragmatic decision-making over over-engineering
- Engineers are expected to operate across the stack, not within silos
What success looks like
- You design services that are reused across multiple systems
- You create clean abstractions that simplify downstream development
- You balance speed with long-term maintainability
- You improve system consistency and reduce fragmentation
- You effectively use AI tools to increase speed without sacrificing quality