Sr. Software Engineer
workforcenow
Job Description
Application Design & Development
- Design, develop, test, and maintain enterprise-grade applications and services using .NET or Java technologies.
- Build scalable RESTful APIs, microservices, and event-driven services.
- Develop highly available and fault-tolerant systems capable of handling large transaction volumes and user traffic.
- Translate functional and non-functional requirements into robust technical designs.
- Participate in architecture discussions and contribute to long-term technology strategy.
Microservices & Distributed Systems
- Design and deploy cloud-native applications running on AWS and/or Azure.
- Develop applications optimized for containerized environments.
- Design loosely coupled, independently deployable services.
- Implement service communication patterns including synchronous and asynchronous architectures.
- Design systems for high throughput, low latency, resiliency, and fault tolerance.
- Build solutions that can scale horizontally to support millions of users and transactions.
- Implement distributed caching, messaging, and event-driven architectures where appropriate.
Software Architecture & Design
- Apply enterprise architecture principles and software design best practices.
- Design maintainable, extensible, and reusable software components.
- Implement appropriate design patterns and architectural patterns.
- Drive technical decisions related to scalability, reliability, maintainability, and performance.
- Conduct design and code reviews across engineering teams.
Database Design & Performance
- Design efficient relational database schemas.
- Develop optimized SQL queries and stored procedures where necessary.
- Troubleshoot query performance issues and optimize database interactions.
- Analyze execution plans, indexing strategies, locking behavior, and transaction performance.
- Ensure applications are designed for high-volume transactional workloads.
- Identify and eliminate performance bottlenecks across application, database, infrastructure, and network layers.
Troubleshooting & Production Support
- Debug complex production issues across multiple layers of the technology stack.
- Analyze logs, metrics, traces, thread dumps, heap dumps, and system diagnostics.
- Perform root cause analysis and implement corrective actions.
- Support production incident resolution and continuous reliability improvements.
Qualifications:
- Bachelor's or Master's degree in Computer Science, Software Engineering, Information Technology, or related field.
- 8+ years of professional software development experience.
- Proven experience building large-scale enterprise applications and distributed systems.
Preferred Qualifications
- Experience supporting SaaS products serving large enterprise customers.
- Experience building systems that process millions of transactions daily.
- Experience with Kafka, RabbitMQ, ActiveMQ, or cloud-native messaging services.
- Knowledge of event-driven architecture and asynchronous processing.
- Experience implementing zero-downtime deployments.
- Familiarity with Infrastructure as Code (Terraform, CloudFormation).
- Experience with AI-assisted development tools and automated code quality platforms.
- AWS and/or Azure certifications.
- Kubernetes certifications (CKA/CKAD).