The Software Developer creates applications and tools that host and support Shadow Health products and data
The Software Developer would perform more self-guided work, demonstrate in-depth technical knowledge, and mentor other team members.
The Software Developer collaborates with a cross-functional development team that includes game developers, content experts, education experts, artists, designers, and systems engineers creating innovative solutions to deliver course content to students, represent student data analytics for faculty, ensure seamless access to the product across varying access points, improve access to system data for company stakeholders, and more.
DEVELOPS both front- and back-end (full stack) software
- Improves the user experience of current software
- Maintains existing codebases - (e.g. bug fixes, updating platforms, updating libraries)
- Develops new components typically using RESTful APIs - (e.g. features, applications, services, scripting, internal tools to improve security, accuracy, and efficiency of code)
- Connects to third-party APIs - (e.g. Heroku, AWS, Salesforce)
- Architectures communication across services and applications
- Migrates code to different platforms (e.g. AWS)
- Upgrades to new architectures
- Tests one’s and team’s code - (e.g. unit testing, integration testing)
- Participates in team code review
- Manages integration of Shadow resources with internal team members and external customers and their systems
- Troubleshoots issues
DESIGNS software architecture and infrastructures
- Creates and evaluates software design patterns for front- and back-end services
- Considers data flow, data security, user experience, information architecture - (e.g. type of database, database connections)
- Communicates with internal and external customers
- Identifies issues to operational efficiency
- Communicates with customers about product updates and releases
- Manages software release from development, through testing, staging, and release
- Manages user authorization of Shadow Health’s systems
DEVELOPS with the Applications Development team
- Shares knowledge of emerging technologies amongst teammates
- Researches new development concepts as to drive innovation
COLLABORATES with a cross-functional team
- Participates in Scrum processes - (e.g. plan/review/retro, daily stand ups, maintaining project board, identifying risks and blockers)
- Supports testing of software (e.g. putting builds/ creating access on dev or staging for internal and alpha testing)
MENTORS new team members
- Effectively guides new team members to develop their knowledge, skills and abilities in software development best-practices derived from literature, personal experience, or company historical decisions
Education and Experience
- B.S. or B.A. in Computer Science, Computer Engineering, or related field
- Professional experience developing web applications or services which use modern SQL database systems such as PostgreSQL.
- Professional experience developing applications or services which run on public cloud infrastructure or platforms, such as Amazon Web Services or Heroku.
- Professional experience utilizing test-driven development and/or writing unit and integration tests, e.g. using Rspec.
- Professional experience using distributed version control and best practices, e.g. Git.
- M.S. in Computer Science, Computer Engineering, or related field and 1-5 years professional experience in Software Development as described above.
- Professional experience developing software using Agile methodologies, including Scrum and/or Kanban.
- Experience with modeling relational data / relational database design and working knowledge of techniques to improve database performance.
- Professional experience developing production web applications which scale horizontally to support “web scale” user loads.