Senior Software Engineer
Job Description
Senior Software Engineer role focused on building and improving scalable full-stack web applications and backend services.
Responsibilities
- Analyze business and technical requirements, then translate them into application designs and software solutions
- Design, develop, test, deploy, and maintain full-stack web applications using modern web technologies
- Build and maintain scalable REST APIs and backend services that support application functionality and integrations
- Support team goals for system performance, software quality, scalability, security, and long-term maintainability
- Write clean, efficient, well-structured, reusable code that follows engineering standards and best practices
- Conduct code reviews and provide constructive feedback to help standardize development practices across the team
- Perform root-cause analysis, troubleshoot technical issues, implement bug fixes, and drive preventative improvements
- Develop and maintain SQL queries, stored procedures, functions, and other database components as needed
- Design core components, shared libraries, and reusable solutions that enable other developers to work efficiently
- Collaborate with product managers, designers, QA professionals, and other stakeholders to evaluate requirements, estimate effort, and select technical approaches
- Participate in Agile ceremonies including sprint planning, daily stand-ups, backlog refinement, and retrospectives as applicable
- Identify opportunities to improve development workflows, testing strategies, deployment processes, and application performance
- Stay current with emerging technologies, software development methodologies, and industry best practices
- Provide technical guidance, support, and mentorship, and collaborate across teams to achieve shared outcomes
Requirements
- 5+ years of professional experience in full-stack software development, including building and supporting production applications
- Strong proficiency in JavaScript and TypeScript
- Hands-on experience with Node.js, React, Redux, HTML, and CSS
- Experience working with relational databases and designing effective data models
- Proven ability to write and optimize SQL, stored procedures, functions, and related database logic
- Experience designing, developing, and maintaining RESTful APIs and backend services
- Strong foundation in computer science fundamentals, including data structures, algorithms, object-oriented programming, and software design principles
- Experience using Git and modern version control workflows
- Familiarity with testing frameworks and tools such as Enzyme, Mocha, or comparable testing technologies
- Ability to optimize application code for production deployments with a focus on performance, reliability, and maintainability
- Ability to maintain clean code architecture and ensure components align with established design patterns and best practices
- Experience designing and implementing reusable shared components that support consistent team development
- Strong analytical skills, troubleshooting ability, and experience with root-cause analysis
- Ability to make sound technical decisions, evaluate trade-offs, and take accountability for results
- Effective written and verbal communication skills for collaboration with technical and nontechnical stakeholders
- Experience working in an Agile environment, such as Scrum or Kanban
Technologies
- JavaScript, TypeScript, Node.js, React, Redux, HTML, CSS
- RESTful APIs, SQL
- Git
- Enzyme, Mocha
- Amazon Web Services (AWS)
- Java, .NET
- Redis, Docker
- MongoDB, PostgreSQL (Postgres)
Preferred Qualifications
- Experience with one or more: AWS, Java, .NET, Redis, Docker and containerized application development, MongoDB, PostgreSQL (Postgres)
- Experience with continuous integration and continuous deployment (CI/CD), cloud-based application architecture, automated testing, and modern DevOps practices
Location: Indianapolis, IN (onsite)
Minimum Experience: 5 years