À propos de ce poste Software Development Engineer 1 chez WEX
About the team / Role
In today's software development landscape, collaboration, E2E accountability, problem solving and streamlined workflows are key to achieving efficiency and delivering high-quality solutions that solve customer problems and generate business outcomes. We believe in the power of integrated engineering, where development, quality, and agility skills blend together throughout the solution delivery pipeline. In this role, you'll be a champion for this approach, fostering a culture of shared ownership and breaking down silos to ensure a smooth and efficient flow of innovation to customers.
How you'll make an impact
- Collaborate with stakeholders throughout the SDLC to translate requirements into high-quality, reliable, cost-effective, and maintainable solutions that solve customer problems and generate business outcomes.
- Design, develop, and implement high quality software components with a focus on Continuous Delivery principles and practices.
- Champion integrated engineering practices within the organization, fostering collaboration and shared ownership between development, operations, and security teams. Deliver technical and administrative support for live applications, promoting automation and proactive monitoring and self-recoverability, rapid incident response, and continuous improvement.
- Analyze existing systems and processes to identify bottlenecks and opportunities for improvements to flow.
- Full-Stack / Backend Development: Design, develop, test, and deploy clean, maintainable, and efficient code using Java and JavaScript.
- Database Management: Write optimized queries, design data schemas, and manage both relational (MySQL, Oracle) and NoSQL database integrations.
- Component Design: Apply Object-Oriented Programming (OOPS) principles and design patterns to translate functional requirements into scalable technical modules.
- Algorithm & Data Structure Application: Select and implement optimal data structures and algorithms to solve performance bottlenecks and ensure low-latency system behavior.
- Collaboration & Code Reviews: Actively participate in peer code reviews, sprint planning, and technical discussions to lift code quality and team standards.
- System Quality & Reliability: Write unit, integration, and functional tests to maintain high code coverage and minimize production defects.
Core Skills:
- Programming/Software Development: This skill remains the foundation. Proficiency in programming languages and development methodologies is essential for designing, developing, and implementing software components in an integrated engineering environment. A strong focus on continuous delivery practices is crucial.
- Testing Quality assurance is paramount. The ability to design, execute, and analyze various types of tests to ensure deployments meet established acceptance criteria remains essential.
- Requirements Management : Understanding requirements throughout the software delivery lifecycle is critical. This ensures alignment with business needs, avoids rework, and fosters collaboration with stakeholders.
- Software Design: While automation might play a larger role in integrated engineering, a combined understanding of software development practices and design principles is still valuable. This ensures creating maintainable, scalable, and secure applications.
- Measurement: Data-driven decision making is crucial. The ability to define and establish measurement frameworks, along with KPIs related to software delivery and performance, helps identify areas for improvement.
Additional Valuable Skills:
- Configuration Management: Managing configurations with IaC tools is essential for consistent and repeatable deployments. However, the specific emphasis on configuration management might be slightly lower since integrated engineering often emphasizes infrastructure automation.
- Application Support : While IT Service Support (SERV) covers some aspects of application support, this skill can be relevant if the role has a stronger focus on troubleshooting and supporting specific applications.
- Systems Integration: While integration activities might be streamlined, understanding system integration principles can be valuable, especially if the role involves integrating various software components.
- Release and Deployment Management: Effectively managing software releases and deployments is crucial. However, in an integrated engineering environment, automation tools and streamlined processes might reduce the manual effort involved compared to traditional release cycles.
- Methods and Tools : The right tools automate tasks, improve decision-making, and ensure consistent practices. This is crucial for efficiency, data-driven development, and staying current in a rapidly evolving field.
Experience you will bring
- Bachelor's degree in Computer Science, Software Engineering, or a related field (or equivalent experience).
- Minimum of 2 years of experience in software engineering and delivery.
- Strong understanding of continuous delivery principles and practices.
- Exposure to Cloud Infrastructure (AWS, GCP, or Azure) and CI/CD pipelines.
- Proficiency in multiple programming languages and technologies (Java, JavaScript, Python).
- Familiarity with Java frameworks such as Spring Boot or Hibernate.
- Thorough understanding of Object-Oriented Programming (OOPS) concepts (Abstraction, Encapsulation, Inheritance, Polymorphism).
- Strong foundation in Data Structures & Algorithms (Arrays, Linked Lists, Trees, Graphs, Hashing, Sorting/Searching).
- Strong problem-solving and analytical skills.
- Excellent communication and collaboration skills.
- Ability to work independently and as part of a cross-functional team.