We are seeking a hands-on Software Developer to design, build, and support modern web applications and APIs for a variety of clients and industries. This role blends strong engineering fundamentals with consulting skills – clear communication, requirements discovery, pragmatic decision-making, and the ability to deliver reliably within project constraints. You will work in cross-functional teams to build cloud-enabled solutions using primarily .NET, modern JavaScript frameworks, SQL/data platforms, and Azure services.
Key Responsibilities
Delivery & Engineering Execution
- Design, develop, test, and deploy scalable web applications and services using .NET (C#) and modern web patterns.
- Build and consume RESTful APIs, including request/response contracts, versioning strategies, and performance considerations.
- Develop responsive UI experiences using React, Next.js, or similar frameworks, with a focus on usability, accessibility, and performance.
- Implement data access layers and persistence strategies using SQL and relational database concepts (schema design, indexing, query tuning).
- Participate in architecture and technical design discussions; contribute to solution approaches that balance maintainability, security, cost, and timelines.
Cloud & DevOps
- Build and operate solutions on Microsoft Azure (deployments, configuration, monitoring).
- Contribute to CI/CD pipelines and infrastructure practices.
- Support observability and operational readiness: logging, metrics, alerting, and incident triage.
Quality, Security, and Standards
- Write clean, maintainable, well-tested code following engineering best practices.
- Implement secure coding practices and help address common risks (authentication/authorization, input validation, OWASP concerns).
- Produce technical documentation (API docs, runbooks, deployment notes, design decisions) appropriate for client delivery.
Consulting & Collaboration
- Collaborate with product owners, designers, architects, and client stakeholders to clarify requirements and propose solutions.
- Break work into deliverable increments, estimate effectively, and manage priorities in an Agile environment.
- Communicate status, tradeoffs, and risks clearly; contribute to a high-trust, client-facing delivery culture.