Mid Level Software Developer
Vidoori · Hyattsville, United States · hybrid
Position Summary
We are seeking a Software Developer to design, build, test, and maintain reliable software applications. In this role, you will work with product, design, and engineering colleagues to understand requirements, deliver high-quality features, and improve existing systems. The ideal candidate has practical software development experience, strong problem-solving skills, and the ability to contribute effectively within a collaborative development team.
Key Responsibilities
- Design, develop, test, and maintain software applications and services in line with project requirements and engineering standards
- Work with product managers, designers, and other stakeholders to clarify requirements and translate them into technical solutions
- Write clear, maintainable, and efficient code using appropriate programming languages, frameworks, and tools
- Contribute to the full software development lifecycle, including planning, implementation, testing, deployment, and ongoing support
- Build and maintain APIs, integrations, and software components that support application functionality
- Develop and maintain automated tests, and participate in code reviews to support software quality and consistency
- Investigate and resolve software defects, performance issues, and production incidents in collaboration with the team
- Identify opportunities to improve application performance, reliability, security, and maintainability
- Work with databases and data services to implement, maintain, and improve data access and storage solutions
- Use version control and team development practices to manage code changes and coordinate work effectively
- Contribute to technical documentation, implementation notes, and knowledge sharing within the team
- Participate in agile ceremonies, including planning, estimation, reviews, and retrospectives
- Work with quality assurance and operations colleagues to support releases, deployments, and application monitoring
- Keep up to date with relevant software development practices, technologies, and security standards
Required Qualifications
- Professional experience in software development or a related engineering role
- Proficiency in at least one modern programming language, such as Java, C#, Python, JavaScript, or TypeScript
- Experience building, testing, and maintaining software applications or services
- Understanding of software development principles, data structures, algorithms, and common design patterns
- Experience working with relational or non-relational databases and writing queries
- Familiarity with REST APIs, application integrations, and common data formats such as JSON
- Experience using version control systems, such as Git, in a collaborative development environment
- Understanding of automated testing practices and experience writing or maintaining unit or integration tests
- Strong analytical and problem-solving skills, with the ability to investigate issues and develop practical solutions
- Ability to communicate technical concepts clearly and collaborate with colleagues across different disciplines
- Good organisation and time management skills, with the ability to manage tasks and deliver work to agreed timelines
- Commitment to writing secure, reliable, and maintainable software
Preferred Qualifications
- Experience developing cloud-based applications or working with services from AWS, Microsoft Azure, or Google Cloud
- Familiarity with containerisation technologies such as Docker and orchestration platforms such as Kubernetes
- Experience with continuous integration and continuous delivery (CI/CD) pipelines and automated deployment practices
- Knowledge of front-end development technologies, such as HTML, CSS, and modern JavaScript frameworks
- Experience with message queues, event-driven systems, or microservices architecture
- Familiarity with application monitoring, logging, and performance analysis tools
- Experience working in an agile software development team
- Relevant degree, professional qualification, or equivalent practical experience in software development