Masonite

Masonite, a leading door manufacturer, required advanced solutions to support its B2C and B2B customers through configurable door builds in real-time. From October 2013 to October 2014, I served as a Senior Java Web Developer at Masonite, focusing on overhauling development processes, integrating modern tools, and enhancing software quality.

During my tenure, I worked with a small software development team within a large IT department, primarily dealing with .NET and Java technologies. My responsibilities included establishing a continuous integration system, enhancing REST API frameworks, and implementing best practices for Java development. These initiatives significantly improved Masonite's systems' reliability, security, and efficiency.

The categories for this project include Software Development, Continuous Integration, REST API Development, and Process Improvement.

Key Projects and Contributions

Continuous Integration and Build Server Setup

Project Overview: Initiated the setup of a Jenkins-based continuous integration system on a new Windows VM, streamlined with ANT scripts for consistent deployment across all environments.

Technologies and Applications:

  • CI/CD: Jenkins
  • Build Automation: ANT scripts
  • Environment Configuration: YUI Compressor for CSS/JS minification

Features and Processes:

  1. Jenkins Setup:

    • Established a Jenkins-based continuous integration system on a new network Windows VM instance.
  2. Build Automation:

    • Created ANT scripts for each project to produce one deployable artifact across all environments.
    • Incorporated CSS/JS minification through the build process using YUI Compressor.
  3. Deployment Automation:

    • Successfully deployed the first major revision of the application using a .war file produced from the Jenkins server, replacing the prior method of moving individual .class/.jsp/js/css/images files.

Outcomes: These initiatives streamlined the build and deployment processes, ensuring consistent and reliable deployments across all environments. This significantly reduced manual intervention and potential errors, enhancing overall productivity and software quality.


Enhancing REST API and Java Development

Project Overview: Innovated the REST API framework using the Spring Framework, improving system reliability and security through extensive automated testing and robust integration with internal and external applications.

Technologies and Applications:

  • Framework: Spring Framework (MVC, RESTful web services, JDBC Templates, Dependency Injection)
  • Testing: JUnit, Spring Test Client
  • Security: Token-based security system

Features and Processes:

  1. REST API Development:

    • Utilized Spring Framework for new development, including MVC, RESTful web services, JDBC Templates, and Dependency Injection.
    • Replaced much of the custom JDBC structure and connection pooling with Spring's JDBC Templates.
  2. Automated Testing:

    • Encouraged and enforced JUnit tests for new code and incorporated suites to run for each build.
    • Created automated integration tests for REST API endpoints using Spring Test Client.
  3. Standardization and Best Practices:

    • Promoted the standardized use of Java/JSP/JSTL instead of scriptlets for new development.
    • Created company standards and best practices documentation for Java and JSP.
  4. Security Enhancements:

    • Implemented token-based security systems for authentication and authorization for an external iPad application.
    • Transitioned password storage from LDAP to MySQL using Java-native adaptive one-way hashing algorithms.

Outcomes: These enhancements significantly improved Masonite's systems' reliability, security, and maintainability. Implementing automated testing and deployment processes ensured higher software quality and facilitated seamless integration with internal and external applications.


Impact and Practices

Agile and Collaborative Practices

At Masonite, I promoted Agile methodologies and collaborative practices, including regular architecture discussion meetings and mentoring junior engineers. These efforts were instrumental in fostering a culture of continuous improvement and knowledge sharing.

Continuous Integration and DevOps

Setting up a Jenkins-based CI system and using ANT scripts for build automation were critical in streamlining the development and deployment processes. These DevOps practices significantly reduced cycle times and improved release reliability.

Security and Standardization

Enhancing security protocols and standardizing development practices ensure the robustness and security of Masonite's systems. The transition to token-based security and adopting Java-native hashing algorithms exemplified a commitment to best practices in security and data governance.

Outcomes and Reflections

The engagement with Masonite demonstrated the importance of solid engineering practices and continuous integration in enhancing software quality and operational efficiency. By fostering a culture of continuous improvement and collaboration, I contributed to significant improvements in the development process, security protocols, and overall system reliability. This experience underscored the critical role of modernization and standardization in achieving successful outcomes in software development.

Conclusion

Partnering with Masonite was a transformative experience highlighting the importance of robust engineering practices, continuous integration, and agile methodologies in delivering high-quality software solutions. I significantly improved Masonite's operational efficiency and software quality by enhancing the REST API framework, implementing automated testing, and setting up a Jenkins-based CI system. These initiatives align with Dev3loper.ai's mission to leverage cutting-edge technology and best practices to drive transformative change across diverse industries.


Get In Touch

We'd love to hear from you! Whether you have a question about our services, need a consultation, or just want to connect, our team is here to help. Reach out to us through the form, or contact us directly via social media.


Previous
Previous

Explorys, an IBM Company

Next
Next

MTD Products