Positions
Software Engineering: positions we recruit
No postings. No stacks of resumes. No chasing. You interview a short list.
No upfront fee. You pay only if you hire.
Need someone now? Call 305-306-4829.
This is what we do all day: recruit technology and IT professionals.
50 positions across 1 family. This index outlines structural distinctions across software engineering roles to help hiring managers define precise technical scopes.
Need someone now? Call 305-306-4829.
- No upfront fee
- Pay only if you hire
- Technology only
- We reach engineers who aren't on job boards
- Replacement guarantee on standard searches
56 title entries shown, 1 families. Alternate names can point to the same position.
Software Engineering
56 of 56
- Software EngineerHire a software engineer against the product work they will own, not a language list.
- Senior Software Engineerproduction services
- Backend EngineerProduction services in Python, Java, Go, Node or .NET
- Frontend EngineerReact/Next.js or Angular with TypeScript
- Full Stack EngineerShips features end to end (React plus Node, Python or Rails)
- Founding EngineerWas one of the first 5 to 10 engineers somewhere
- Product EngineerProduct Engineers define success by shipping features that solve user pain rather than simply clearing tickets.
- Software ArchitectService decomposition, cloud patterns, monolith to microservices modernization
- Python DeveloperThis role requires a practitioner who builds performant, scalable Python backend services rather than someone who writes scripts.
- Java DeveloperThis role requires a Java engineer focused on stable backend service delivery and system architecture.
- .NET / C# DeveloperThis article outlines the requirements and evaluation strategy for hiring a proficient .NET/C# developer.
- Go (Golang) EngineerThis role centers on building high-concurrency backend services using Go to manage complex distributed traffic.
- Node.js EngineerThis role centers on building and maintaining scalable server-side systems using Node.js.
- TypeScript / JavaScript EngineerThis role requires a focused engineer to build and maintain high-traffic TypeScript services.
- React DeveloperThis role involves building high-performance frontend interfaces using React that integrate directly with complex backend services.
- Angular DeveloperAn Angular Developer focused on building modular, high-performance web interfaces and integrating complex backend services.
- Vue.js DeveloperThis role involves building responsive user interfaces with Vue.js while managing state and component lifecycle efficiency.
- Ruby on Rails DeveloperThis role requires a Ruby on Rails specialist capable of building maintainable server-side logic and integrated front-end views.
- PHP / Laravel DeveloperThis role requires a PHP and Laravel specialist capable of building and maintaining high-traffic web applications with complex database interactions.
- Rust EngineerA Rust Engineer manages memory-safe systems development and high-concurrency backend services.
- Scala EngineerThis role centers on building and maintaining low-latency backend systems using the Scala programming language and the Akka or Cats frameworks.
- C++ Software EngineerThis role involves building high-performance systems and managing low-level memory operations in C++.
- Elixir EngineerYou need an Elixir engineer who can manage concurrent traffic patterns without falling back on standard request-response scaling.
- API / Integration EngineerThis role manages complex inter-service data movement and external partner integrations for high-volume system architecture.
- Web3 / Blockchain EngineerThis role involves building smart contracts and decentralized protocols that require high-precision security and consistent state management.
- Low-Latency / Trading Systems DeveloperModern C++ (17/20), lock-free code, kernel-bypass networking, FIX and exchange connectivity
- Junior Software DeveloperGitHub portfolio and a live code exercise
- Associate Software Engineer / Software Engineer IGitHub portfolio and a live code exercise
- Web DeveloperHTML, CSS and JavaScript
- WordPress / CMS DeveloperThis role manages WordPress architecture, plugin development, and database performance within a broader engineering ecosystem.
- Programmer Analyst (Application Developer)This role involves building and maintaining internal business applications and data processing logic.
- SQL DeveloperT-SQL or PL/SQL stored procedures and tuning
- Mainframe / COBOL DeveloperCOBOL, JCL and CICS
- Staff Software EngineerStaff Software Engineers drive architectural consistency across complex distributed systems while balancing technical debt against product delivery timelines.
- Principal Software EngineerThis role requires a Principal Software Engineer to manage complex distributed system architecture and high-scale production engineering requirements.
- Lead Software EngineerThis article outlines the assessment and selection criteria for hiring a Lead Software Engineer for complex backend environments.
- Software Engineering ManagerThis role requires a technical leader who manages software production and engineering team delivery outcomes.
- Remote Software EngineerThis role requires a Software Engineer focused on reliable backend architecture and production stability.
- Hybrid Software EngineerThis role balances immediate feature delivery with the long-term maintenance of high-throughput backend architecture.
- Cleared Software EngineerThis guide covers recruiting criteria for cleared software engineers requiring active government security clearances.
- Java Software EngineerThis role requires a Java engineer focused on stable backend service delivery and system architecture.
- .NET / C# Software EngineerThis article outlines the requirements and evaluation strategy for hiring a proficient .NET/C# developer.
- Python Software EngineerThis role requires a practitioner who builds performant, scalable Python backend services rather than someone who writes scripts.
- React Software EngineerThis role involves building high-performance frontend interfaces using React that integrate directly with complex backend services.
- Java Backend EngineerThis role requires a focused Java specialist capable of owning high-throughput service architecture and complex data persistence layers.
- Go Backend EngineerThis role manages high-concurrency data pipelines and microservices architecture exclusively using Go.
- .NET / C# Backend EngineerThis role requires a .NET C# specialist capable of maintaining distributed systems and high-throughput API architecture.
- Node.js Backend EngineerThis role involves building and maintaining high-traffic asynchronous backend services using the Node.js runtime and event-driven architecture.
- React Frontend EngineerThis role involves building high-performance frontend interfaces using React that integrate directly with complex backend services.
- Angular Frontend EngineerThis role involves building scalable client-side interfaces using Angular and TypeScript within enterprise-grade architectures.
- Vue.js Frontend EngineerThis role requires a Vue.js specialist focused on component architecture and performance optimization within complex single-page applications.
- TypeScript Frontend EngineerThis role focuses on building high-performance, accessible user interfaces using TypeScript and modern JavaScript frameworks.
- Python Full Stack EngineerThis role requires a Python engineer who can build and deploy production-ready features across the entire stack.
- .NET / C# Full Stack EngineerThis role centers on building and maintaining feature sets using the C#/.NET stack integrated with modern frontend frameworks.
- Node.js Full Stack EngineerThis role requires a Node.js engineer focused on building durable backend services and connected frontend interfaces.
- Ruby on Rails Full Stack EngineerThis role requires a Ruby on Rails engineer who manages full stack product development from database schema to browser interface.
No match.
Try a shorter term, or tell us about the role.
Hiring for software engineering requires clear boundaries between roles that share similar stacks but different core responsibilities. Junior roles focus on task execution within established patterns, while staff or principal roles focus on system architecture and cross-team debt reduction. You must differentiate between roles that build product features versus those that maintain core infrastructure or data pipelines. Mixing these scopes leads to engineering churn and project delays.
Seniority levels represent the difference between tactical problem solving and strategic influence. A mid-level engineer typically takes a defined feature set and brings it to completion with minimal guidance. An engineering lead assumes accountability for the output of others, requiring a shift from individual code production to peer reviews and design governance. Failure to align your job description with the required level of supervision often results in candidates who can write code but cannot manage the technical complexity of the proposed system.
Physical constraints and platform access dictate the candidate pool and interview workflow. Roles requiring high-security clearance or physical presence in hardware labs limit your sourcing radius to a small geography. Remote roles demand higher self-management and explicit asynchronous communication skills compared to office-based teams. Deciding between a contractor for short-term maintenance or a full-time employee for long-term ownership of a codebase changes how you structure the hiring phase and the technical assessment.
Code Implementation Depth. Verify if the engineer understands the underlying mechanisms of their frameworks. Ask them to describe a time they had to debug a memory leak or an unexpected performance bottleneck in a production system. Good candidates explain the root cause and the specific diagnostic tools used to isolate the issue. Avoid candidates who rely solely on third-party library functions without knowing how those functions interact with the host operating system.
Architecture Tradeoff Analysis. Challenge the candidate with a system design scenario involving conflicting constraints, such as high write throughput versus immediate consistency. A strong engineer discusses the trade-offs of using a specific database index or a distributed messaging pattern. Look for evidence of practical experience where they chose a sub-optimal technical solution to meet an aggressive deadline and then refactored that code later.
Security and Compliance Awareness. Determine if the applicant integrates security into their development lifecycle. Review their approach to credential management, data encryption, and input validation. Ask them to explain a recent security vulnerability they encountered in their own code. Competent engineers describe the impact of the bug and the preventive measures they implemented to ensure it did not recur in the final delivery.
Peer Review Philosophy. Evaluate their ability to provide constructive code reviews that go beyond syntax corrections. Ask for examples of how they handle disagreements during a code review session. You want a candidate who focuses on system maintainability and readability rather than enforcing personal style preferences. Effective engineers use reviews to transfer knowledge and prevent technical debt.
Look for backgrounds that mirror your current technical stack and domain complexity. If you build real-time financial systems, focus on engineers who have moved through low-latency projects rather than those from web-content backgrounds. Motivation for these candidates often stems from the challenge of solving specific scalability problems, so frame your outreach around the core engineering puzzle rather than generic company perks.
Prioritize sourcing engineers who show a track record of longevity in a single product team. This indicates they have lived with the long-term consequences of their architectural decisions. Avoid candidates who switch companies every six months, as they rarely stay long enough to see the technical debt of their own code. Look for evidence of impact in open source contributions or published technical blogs.
Begin by identifying the primary friction point in your current team. Is the issue a lack of feature velocity, or is the existing code too brittle to update? Define the role based on this single primary output.
Conduct headhunting by targeting engineers currently working on similar scale issues. Your initial outreach must mention the specific system architecture you use to attract high-intent builders who want to fix the exact problems your team faces.
Evaluate candidates through a practical assessment that mirrors a real work task. Use a code review exercise or a system design session where you simulate the constraints your actual team faces in the office.
Over-emphasizing a specific list of niche tools that can be learned on the job while ignoring fundamental algorithmic capability.
Hiring a generalist for a specialized role requiring deep knowledge of concurrent systems or distributed state management.
Neglecting to test for communication skills in a role that requires daily interaction with non-technical stakeholders to translate requirements.
How do I decide between hiring a junior or a senior engineer? Hire a senior engineer when your team needs architectural direction and mentorship to prevent technical debt. Hire a junior engineer only when your senior staff has enough bandwidth to provide daily code review and training support.
Should I match a candidate's current salary expectations? Focus on the value the candidate brings to your specific production environment rather than their current compensation. Use market data for your specific region and tech stack to set a fair range that reflects the required level of output.
How do I manage a candidate with a counteroffer? If a candidate uses a counteroffer as use, reconsider their fit for your culture. Employees who only engage when another offer appears often lack the long-term alignment necessary to tackle hard engineering projects.
Is remote work suitable for every engineering role? Remote work functions best for roles requiring focused, individual execution. Roles that depend on high-intensity, synchronous design sessions or hardware integration benefit significantly from onsite collaboration.
What is the best way to test technical fit? Use a work-sample test that mimics a real task from your current backlog. Ask the candidate to critique a piece of your actual codebase to see how they approach readability and maintainability.
No upfront fee. You pay only if you hire. We offer a candidate replacement guarantee on standard search agreements. The applicable period and exact terms are set out in the signed client recruiting agreement.
What happens next
- Do I pay upfront?
- No upfront fee. You pay only if you hire.
- Must I give you exclusivity?
- We do not promise or require exclusivity here. Any terms are in the recruiting agreement we refer you to.
- Will you reveal my company?
- Not without your explicit consent before we disclose anything.
- What if I do not hire?
- No hire, no fee.
Hiring guidance
Related positions and guidance
How a search runs
The Six-Step Search
- 1Search Calibration
A call about the work. You get a written search profile.
- 2Market Mapping
We identify the employer backgrounds that fit. You see where we will look.
- 3Professional Contact Intelligence
We identify individual people, not job board applicants.
- 4Persistent Personalized Outreach
Personal outreach and direct follow-through. You get search updates.
- 5Live Candidate Qualification
A recruiter checks stack, scope and motivation in conversation.
- 6Candidate Intelligence and Process Support
You receive a written brief on every person you meet.
Questions about Software Engineering: positions we recruit
How do I decide between hiring a junior or a senior engineer?
Hire a senior engineer when your team needs architectural direction and mentorship to prevent technical debt. Hire a junior engineer only when your senior staff has enough bandwidth to provide daily code review and training support.
Should I match a candidate's current salary expectations?
Focus on the value the candidate brings to your specific production environment rather than their current compensation. Use market data for your specific region and tech stack to set a fair range that reflects the required level of output.
How do I manage a candidate with a counteroffer?
If a candidate uses a counteroffer as use, reconsider their fit for your culture. Employees who only engage when another offer appears often lack the long-term alignment necessary to tackle hard engineering projects.
Is remote work suitable for every engineering role?
Remote work functions best for roles requiring focused, individual execution. Roles that depend on high-intensity, synchronous design sessions or hardware integration benefit significantly from onsite collaboration.
What is the best way to test technical fit?
Use a work-sample test that mimics a real task from your current backlog. Ask the candidate to critique a piece of your actual codebase to see how they approach readability and maintainability.
Working with Technology Headhunters
When is the recruiting fee due?
There is no upfront fee for our contingency search. You pay only if you hire someone we present, under the terms of the signed agreement.
How long does it take to see a short list?
We first need to agree the opening and qualify people against it. Availability and the interview requirements affect the search; we do not promise a fixed deadline before reviewing the work.
What are the replacement terms?
We offer a candidate replacement guarantee on standard search agreements. The applicable period and exact terms are set out in the signed client recruiting agreement.
What don't you do in a permanent search?
We do not bill by the hour for permanent search or charge a retainer unless one is agreed. We do not treat reposting your job advertisement as headhunting.