Joshua Hayden

Joshua Hayden

Wichita, United States
Hire Joshua
Scroll To View More
Joshua Hayden

Joshua Hayden

Wichita, United States
Member since November 15, 2016
As a results-driven, agile software engineer, Josh focuses on implementing high-quality code. He is thorough with details, iteratively driving projects to completion. He is equally comfortable owning an entire project or dividing the work across a team. He regularly contributes to all phases of the software development life cycle.
Joshua is now available for hire
Portfolio
Experience
  • PHP, 10 years
  • JavaScript, 8 years
  • Java, 5 years
  • Test-driven Development (TDD), 5 years
  • REST, 3 years
  • AngularJS 1, 3 years
  • Node.js, 2 years
  • Git, 2 years
Wichita, United States
Availability
Full-time
Preferred Environment
Linux, Windows, Git, SVN, IntelliJ, Eclipse
The most amazing...
...project I've built was a relational database with dozens of tables and nearly 1000 fields that was metadata driven for creation and insertion.
Employment
  • Software Engineer in Test
    NetApp - E-Series Web Services
    2016 - 2016
    • Developed with a QA hat on a REST API product for managing the E-Series storage systems. Exposed root causes, and resolved issues with test and production code.
    • Identified scenarios, implemented automated tests, and created technical documentation for release of new security feature required for clinching multi-million dollar sale.
    • Coached QA team members on best practices for improving test coverage and maintainability of test code for higher team efficiency and product quality.
    • Pinpointed concurrency and other issues within complex technology stack to the component or specific code in error to drive resolution from the appropriate teams.
    Technologies: Java, TestNG, Jersey
  • Software Engineer
    NetApp - E-Series Core Productivity
    2011 - 2016
    • Built and maintained several web and desktop apps along with back-end databases for tracking test component details. Supported 100+ engineers in use of apps.
    • Designed and implemented metadata-driven SQL Server database to ingest XML data for tracking and reporting 900+ data points of SAN storage systems under test. Developed and performance-tuned reports. Eliminated time spent on manually creating reports.
    • Architected a solution as a personal innovation project with the existing database schema along with other internal apps to quickly begin ingesting and reporting customer use of SAN storage systems. Achieved working solution in weeks rather than months or longer.
    • Identified delayed responses for user support requests and created support team rotation that successfully cut typical response times from days down to hours.
    • Organized requirements and design across multiple user and developer teams and apps for verifying SAN storage system configuration details. Successfully integrated the components, meeting user need.
    • Introduced to team test driven development for PHP code bases, version controlling and automatically applying database schema changes, and automated end-to-end web app testing with WebDriver, resulting in improved quality and stability of apps.
    • Reduced the scope and optimized the planned order individual components were developed for a hardware version tracking system. Engineering organization gained value months sooner and provided feedback for iterative enhancements.
    • Started new projects with GUI, CLI, and/or REST API mockups and examples to flesh out details with users and product owners, which quickly met expectations and needs.
    Technologies: Java, Selenium Web Driver, JUnit, Jetty, Jackson, Jersey, PHP, MS SQL Server
Experience
  • SPA with RESTful Web Service and Tests (Development)

    For improved tracking and reporting of engineering lab equipment, we needed a single page app, RESTful service, integration with a Java Swing UI desktop app, and integration with an existing MS SQL Server database.

    I primarily focused on implementing the end-to-end tests following a page object pattern to create reusable test components with well-factored, clean code. I also contributed to various other layers of the stack including front-end Angular JS and tests, RESTful services, Java Swing UI, and POJOs for Hibernate.

    Our tech stack included AngularJS, Windows Server, Java Jetty, Jersey, Jackson, Hibernate, and SQL Server with REST integration with our Java Swing UI desktop app. We developed with Eclipse and Gradle. We used Jasmine for JavaScript unit tests and JUnit for Java unit tests, RESTful service tests, and end-to-end tests (with Selenium WebDriver).

  • Metadata Driven Database Schema and XML Shredding (Development)

    We maintained an internally used engineering tool for auditing QA storage system configurations. The goal was to create a relational database populated from this tool's XML output of a point-in-time scan of a storage system. Each XML document ranged in size from tens of KiB to several MiB. The system needed to handle ingesting hundreds of such XML documents each day.

    I defined a metadata schema that described the 900+ attributes, data types, and relationships between various entities within the XML document. I then used this schema for both generating the SQL DDL for creating and maintaining the tables with foreign key references as well as for parsing each incoming scan XML document and inserting into the appropriate tables.

    I created database views with automated integration tests for various common reports while providing ad hoc querying capabilities directly to the tables. I performance-tuned the views by adding indexes and reworking the SQL as needed.

    I utilized PHP DOM and PDO_SQLSRV and Microsoft SQL Server. This was the first major project on which I practiced Test Driven Development to achieve near complete unit level test coverage with PHPUnit.

  • Database Import/Export from/to XLSX File (Development)

    I designed and implemented a service behind a REST API for interacting with multi-sheet Excel (XLSX) files and a SQL Server database.

    We had a template Excel file that users could download, populate with their needed data, and upload through the service to the database for later reporting. We also used this template Excel file as a baseline to populate for users to export from the database to an Excel file.

    The Java tech stack included Jetty, Jersey, Jackson, Hibernate, and Apache POI.

    I created abstractions for each sheet to provide mappings between the rows/columns and the Java objects to be inserted/read from the database. I created a facade over the Apache POI to provide a consistent interface with minimal code duplication.

  • Offline-First Web App for Memorizing (Development)

    To aid in memorizing and reviewing passages of the Bible (or other literature), I built a web app designed to be used offline. It aids in prioritizing what to review each day and uses regression analysis for determining desired review intervals.

    The app functions in the browser via the URL whether or not a network connection is present. The user can save (backup) and load (restore) data from the server when a connection is available.

    I was specifically targeting Chrome running on an Android tablet while still allowing use with a desktop browser. I built the front-end with AngularJS and used HTML 5 application cache (AppCache) to cache the static files in the browser. I stored all the user data as JSON in the browser's local storage.

    The Node.js/Express back-end provides authentication, TLS, and serving of static files. It also features a simple reviewable resource with PUT for backing up to a date-stamped JSON file on the server file system and GET for retrieving the latest saved data.

  • Adventures in Character Team Assigner (Development)

    I developed a solution used for an annual children's event. The algorithm distributes the population of students into a specified number of small groups (teams), attempting an even distribution based on age and gender. It also takes into consideration students requesting to be together on the same team.

    I integrated with the organization's existing macro-enabled Excel file to parse out the relevant details using PHP and related libraries. It then outputs the team number assignments for each student along with related statistics.

  • Classroom Presenter for Hour of Code (Other amazing things)
    https://embed.plnkr.co/uIQyjwyDCXOoJzaKIQW1/

    For a day in December 2015 and 2016, I presented to students during the Computer Science Education Week in conjunction with the Hour of Code initiative. My goal was to inspire sixth--grade students to consider careers in technology and programming. For part of my presentation, I created a small Angular app that I demonstrated and explained.

  • A Guide to Robust Unit and Integration Tests with JUnit (Publication)
    Automated software tests are critically important to the long-term quality, maintainability, and extensibility of software projects, and for Java, JUnit is the path to automation. While most of this article will focus on writing robust unit tests and utilizing stubbing, mocking, and dependency injection, Toptal Software Engineer Josh Hayden will also discuss JUnit and integration tests.
Skills
  • Languages
    Java, JavaScript, PHP, SQL, XML, CSS, Python, Visual Basic, HTML5, Perl
  • Frameworks
    JUnit, PHPUnit, Mockito, AngularJS 1, TestNG, Express.js, Swing, Hibernate ORM, Jasmine
  • Paradigms
    Test-driven Development (TDD), REST, Clean Code, Refactoring, Agile, Behavior-driven Development (BDD)
  • Misc
    Quality Assurance (QA), QA Automation, Single-page Applications (SPA), Data Migration, Audio Production, Command Line, Video Editing, RSync, DSLR Photography, LDAP, Transport Layer Security (TLS)
  • Libraries/APIs
    Apache POI, Node.js, Selenium WebDriver, JavaMail, jQuery, JAX-RS
  • Tools
    Gimp, Eclipse, Inkscape, Apache Ant, Gradle, NetBeans, Jenkins, InstallShield, IntelliJ, Git
  • Platforms
    Linux, Windows, Android, Mac OS
  • Storage
    SQL Server, JSON, HTML5 Web Storage, MS Access, PostgreSQL, MongoDB, MySQL
Education
  • Bachelor of Business Administration in Management Information Systems
    Wichita State University - Wichita, Kansas, USA
    2006 - 2009
I really like this profile
Share it with others