A relevant tertiary qualification in Information Technology (ideal)
6+ years proven experience in both front- and back-end software development, project delivery and implementation (in relevant development technologies/language).
Experience with modern front-end and back-end frameworks and technologies
Knowledge:
IT systems development processes (SDLC)
Advanced programming concepts
Advanced algorithms and data structures
Design Patterns
Version Control
Testing practices
Database systems and query optimization (e.g., SQL, NoSQL)
RESTful API design and integration
Cloud computing platforms and services (e.g., AWS, Azure)
Advanced Microservice and event-driven architectures
Deployment using Kubernetes and containerization
Responsive design principles and mobile-first development
Front-end build tools and package managers
Responsibilities:
Designing software solutions
Working closely with stakeholders and cross-functional teams to translate business and technical requirements into solutions that meet client/business needs
Designing complex software systems, considering scalability, performance, and future requirements
Identifying trade-offs in solutions and clearly articulating and acting on these where required
Producing solutions to programming challenges
Creating well-designed solutions that balance client value with security, operations, resilience, performance, and cost
Introducing and propagating new patterns, practices, and technologies into the organization to efficiently solve business needs
Software development and systems integration
Working with other software engineers and architects in developing components based on needs that support application functionality
Optimizing systems for maximum performance and scalability to handle increasing user loads
Developing reusable code, APIs, and libraries for future use
Sharing the impact of code changes with the product team
Database management and application logic
Implementing and optimizing database models and queries for efficient data storage and retrieval
Writing business logic and algorithms to handle complex data processing and application workflows
Quality and testing
Implementing and improving the organization's prescribed development frameworks, patterns, and practices, with a focus on automated testing and CI/CD
Conducting thorough code reviews and ensuring high code quality for self and others
Utilizing continuous integration, deployment, and automation tools effectively
Performing testing with a strong preference towards developing automated testing scripts and procedures to ensure code robustness and reliability
Practicing, promoting, and guiding others in secure coding practices (DevSecOps) and addressing potential vulnerabilities
Operational Excellence
Conducting investigations through troubleshooting and debugging to fix minor, major, and escalated bugs, promoting system stability
Performing first and/or second level standby across environments for integration between internal systems and applications, as well as that of external service providers
Reacting to system monitoring and alerting events in a timely manner
Assisting with capacity planning on infrastructure requirements, as well as stability and load tests to improve system performance and throughput
Maintaining, modifying, and upgrading existing solutions, recommending and implementing improved methods
Learning and continuous improvement
Developing and maintaining proficiency in modern programming paradigms, patterns, and practices and applying or improving what is used by their delivery team
Technical Leadership
Engaging with product managers, project sponsors, and other stakeholders to support scoping of work and provide updates on progress and status
Coaching, guiding, and providing support to Software Engineer I / II
Sharing expertise and knowledge with product team and stakeholders
Driving innovation, bringing new technologies and ways of solving problems into the team and organization
Assisting Software Engineer I / II with development work and performing code reviews