Job Specifications
Company Description
Winsupply is in the business of creating and enabling entrepreneurs to achieve their dreams through wholesale distribution. Winsupply is a group of over 670 locally-owned companies that operate across a variety of industries, including HVAC, Plumbing, Electrical and more. The purpose of the support services campus is to eliminate obstacles and provide support to help our entrepreneurs succeed. Support service employees assist entrepreneurs in achieving their dreams through finance, accounting, IT, and other back-office operations.
Job Description
The Software Developer will serve as the subject matter expert for Java and web services, applying industry best practices in software development and agile project management. Lead assigned development and integration projects from inception to delivery. Collaborate with business users to define requirements, create conceptual and technical designs, develop prototypes and programs, execute unit and integration tests, resolve defects, implement solutions, and provide second-tier support. Champion innovation, continuous improvement, and technical excellence across the team.
Competencies for Success
Strong organizational, analytical, problem-solving, and communication skills.
Strong interpersonal skills to effectively collaborate with stakeholders at all levels.
Mentor and guide junior developers, ensuring skill development and adherence to emerging technologies and best practices.
Stay updated on new technologies and continuously enhance your technical skills.
Required Skills And Experiences
2+ years of professional IT experience, including service development using Java.
Bachelor’s or Master’s degree in Computer Science, Computer Engineering, or a related field, or equivalent experience.
Proven experience working with offshore development teams.
Comprehensive understanding of Object-Oriented Programming (OOP), distributed programming, multi-tier application design, and multi-threaded development.
Actively participate in the software development lifecycle, including test-driven development, automated unit testing, and pair programming.
Experience with cloud platforms (AWS, Azure, or Google Cloud) is a plus.
Implement DevOps processes, including CI/CD scripting, test automation, and containerization.
Experience with cloud platforms (AWS, Azure, or Google Cloud) is a plus.
Familiarity with monitoring and logging tools such as ELK stack, Prometheus, or Grafana.
Proficiency in design patterns, RESTful services implementation, and service-oriented architectures.
Knowledge of test-driven development (TDD) and acceptance testing frameworks.
Expertise in development with Java 8 or newer, Spring Boot framework, and JPA.
Hands-on experience with Gradle as a build tool.
Proficiency in developing efficient, scalable RESTful web services and microservices.
Familiarity with Domain-Driven Design (DDD) principles.
Knowledge of message queues (MQs) for inter-service communication.
Solid experience with version control tools such as GitHub.
Agile methodology experience, particularly in Scrum with bi-weekly sprints.
Experience with task tracking using Jira and documentation in Confluence.
Strong understanding of recognized Java Design Patterns.
Practical experience with relational databases (preferably IBM DB2 LUW), including writing moderate to complex SQL queries.
Front-end development exposure using Angular framework is a plus.
Experience with designing and implementing highly available and fault-tolerant systems.
Familiarity with performance optimization techniques for both backend and frontend.
Collaborate with technical teams to design and deliver scalable, effective solutions that align with business requirements.
Develop and maintain RESTful APIs, microservices, and other service-oriented architectures.
Adhere to best practices and standards for accessibility, cross-browser compatibility, and security.
Work with cross-functional teams, including project managers, UI/UX designers, developers, and architects, to ensure consistent and high-quality deliverables.
Operate efficiently in Linux shell environments and perform necessary configurations.
Utilize Jenkins or similar tools to automate builds and deployments.
Conduct thorough code reviews and integration testing to ensure quality and maintainability.
Engage in the requirement specification process for new software functionalities, ensuring design consistency with development standards.
Champion the adoption of engineering best practices and promote a culture of continuous learning and improvement.
Develop technical documentation, including architectural designs and guidelines, to ensure long-term maintainability.
Take ownership of the end-to-end development cycle, from design to deployment and monitoring in production environments.
Drive efforts to improve application performance, scalability, and reliability.
Qualifications
Technology Stack
Backend: Java (8 and newer), Spring Boot framework.
Bui