Our vision is to be the best provider of building products in the eyes of our customers, employees, shareholders, suppliers and communities.
At Masonite, we understand that people are key. We are a composite of diverse people who come together by showing support and respect to one another.
We hire people that demonstrate integrity under pressure. Integrity is at the foundation of everything we do. It is in each door we make, in our commitment delivery and in our honest and sincere communication.
Our employees are flexible, versatile and resilient. Our ability to weather any storm, to bend without breaking, is what allows us to hear the knock and open the door with confidence, no matter what's on the other side.
At Masonite, we hold the door open for each other and for new ideas. We want everyone to freely contribute ideas and add value, so we are positive and encouraging. This collaborative environment is what makes Masonite a transparent, fair company- one that doesn't hide behind closed doors.
We continuously strive to improve both our products and our customers' experiences. This drive leads us to revolutionize the door industry and help people walk through walls.
Responsible for building JAVA applications, including anything from back-end services
to their client-end counterparts.
Design and develop these applications, and coordinate with the rest of the team working on different layers of the infrastructure.
Provide expertise in the use of the Spring Framework, including best practices and design patterns.
Significantly contribute to software design and architecture, develop both new applications and improve existing ones in performance, capability, and reliability.
Participate in paired programming environment where the development deliverable is
an ecommerce solution.
Perform analysis and modeling relevant to software being implemented.
Design and create services and system architecture for projects, and contribute and provide feedback to other team members.
Contribute to the team by employing best practices in utilizing a broad platform of technologies
within a cloud native development environment.
Embrace change in a dynamic environment that is tool agnostic. Be flexible enough to use the tool that will best fit the requirement.
Translate application storyboards and use cases into functional applications.
Work with the product and design teams to understand end-user requirements, formulate use cases,
and then translate that into a pragmatic and effective technical solution.
Design, build, and maintain efficient, reusable, and reliable JAVA code.
Ensure the best possible performance, quality, and responsiveness of applications.
Help maintain code quality, organization, and automatic testing.
Collaborate with the Product Owner and other team members to decompose and estimate large
Lead in the exploration of new technologies that allow the team to deliver software better, faster, and with less friction.
Bachelor's degree in Computer Science or related field plus 5 years of experience as a Java Developer or a related position. Can also accept relevant Master's degree plus 1 year of relevant experience.
Proficient in JAVA with a good knowledge of its ecosystems.
Experience using the Spring Framework.
Understanding of object-oriented programming. Experience building and consuming Rest based web services.
Familiar with various software design patterns. Familiarity with PostGRE, MySQL, MongoDB, and MS SQL Server.
Fundamental understanding of DB design and normalization.
Understanding of Domain Driven Design. Knack for writing clean, readable JAVA code. Ability to creating database schemas that represent and support business processes.
Experience implementing unit tests.
Proficient understanding of source code versioning tools.
Experience mentoring engineers in coding practices and process.
Experience working with Agile Scrum team process, collaborating closely with fellow developers, DBAs, QA, team leads, and stakeholders.