The Senior Software Developer (Expert) is responsible for designing, developing, and installing robust software solutions. This role focuses on gathering user requirements, defining system functionality, and writing high-quality code. The developer will also lead teams to build innovative and fully performing software that complies with established coding standards.
Key Responsibilities and Duties
Software Delivery and SDLC Ownership
- Own end-to-end delivery across the Software Development Life Cycle (SDLC): requirements, design, build, test, deploy, and support.
- Translate business/user requirements into clear technical specifications, solution designs, and implementation plans.
- Produce and maintain flowcharts, sequence diagrams, architecture notes, and technical documentation for both new and existing modules.
- Estimate effort, define milestones, and execute work in line with project plans and Value8 Group standards.
System Design and Architecture
- Design scalable, fault-tolerant, secure software solutions with clear boundaries and maintainable module structure.
- Make architectural decisions around performance, reliability, observability, and maintainability (including trade-offs and risks).
- Integrate software components into complete systems (APIs, services, background jobs, data stores, third-party integrations).
Development and Code Quality
- Write clean, testable, well-structured code (primarily Elixir), ensuring compatibility, stability, and maintainability.
- Conduct code reviews, enforce coding standards, and mentor developers on best practices.
- Implement automated testing (unit, integration, regression) and ensure high confidence releases.
- Maintain CI/CD workflows and deployment readiness for production environments.
Verification, QA, and Operational Excellence
- Develop software verification plans and contribute to quality assurance procedures (test strategy, QA sign-off criteria, release checklists).
- Troubleshoot, debug, optimize, and upgrade existing systems (performance tuning, stability improvements, defect fixes).
- Deploy programs, monitor outcomes, and incorporate user feedback into iterative improvements.
- Ensure systems remain updated with relevant enhancements, security patches, and latest features.
Collaboration and Stakeholder Management
- Work closely with UX designers, systems analysts, product owners, and other engineers to align solutions to user needs.
- Support cross-functional collaboration with marketing/sales and client-facing teams where technical input is needed.
- Communicate technical decisions clearly to both technical and non-technical stakeholders.
Leadership and Team Enablement
- Lead development teams by setting technical direction, prioritizing work, and ensuring high delivery standards.
- Mentor junior/mid-level developers through pairing, reviews, technical coaching, and structured feedback.
- Contribute to process improvement: engineering standards, documentation culture, release discipline, and incident learning.
Essential Attributes
- Quality and Attention to Detail: Meticulous approach to coding, testing, documentation, and release readiness. Strong appreciation for maintainability and long-term system health (not just “shipping fast”).
- Professional Collaboration: Works effectively with cross-functional teams and thrives in environments requiring frequent coordination. Proactive in proposing improvements to product and engineering processes.
Qualifications and Experience
Education
- Bachelor’s degree in Computer Science, Information Technology, Software Engineering, or a related discipline (or equivalent practical experience).
Experience
- 4+ years of professional software development experience, with senior-level responsibilities such as mentoring, code reviews, technical ownership, or leading modules/projects.
- Proven track record designing and delivering interactive web applications (Phoenix, Vue.js, Nuxt.js, or equivalent).
- Hands-on experience with relational databases and production-grade data modeling and SQL.