Table of Contents
  1. Projects
    1. Front End
      1. React Hook Form - ReactHookFormFields/SelectBox.js
      2. Material Table - assessmentresultstable.js
      3. Dynamic Ellipsis Component - ellipsismodifier.js
      4. Date Range Picker - presetdaterangepicker.js
      5. Dynamic Tooltip
      6. HOC for PowerPoint Creation
      7. Barcode Scanner for Web App Input
    2. Backend
      1. Pulling Images and PDFs from S3 Bucket for Email Attachment
      2. Testing GORM and Hibernate Queries
      3. Configuring a Plugin to Create Multiple Domain Objects
      4. Integration with Office 365 for Assessment Scheduling
      5. Async Service for Batch Role Changes
      6. Optimized Search Functionality
      7. Elastic Search - Fuzzy Search Capability
      8. Optimized SQL Queries Using HQL
      9. Using Micronaut to Create Microservices
    3. Things I Enjoy
      1. Finding Quirky, Unorthodox Ways to Use a Language
    4. Dev Questions

Projects

Front End

React Hook Form - ReactHookFormFields/SelectBox.js

  • What I did:
    • Learned and created a proof of concept using a dynamic library to create forms with React Hook Forms, replacing Formik.
    • Found unconventional ways to make forms and components work as per end-user requests (e.g., submitting a form via a button in a modal produced
      by a parent component, using controlled Material UI fields in forms designed for uncontrolled fields).

Material Table - assessmentresultstable.js

  • What I did:
    • Created a custom search function component using React Hook Forms.
    • Developed an async search and load function that prevented the entire table from re-rendering.
  • Challenges:
    • Displaying Material UI chips with assessment names under the table upon selection.
    • Implemented a custom “select all” function that only selects items on the current page, preserving selections across pages but resetting on
      further pagination.

Dynamic Ellipsis Component - ellipsismodifier.js

  • What it does:
    • Adds an ellipsis based on text length or dynamically adds one when text overflows a div. Adjusts ellipsis on page resize.

Date Range Picker - presetdaterangepicker.js

  • What I did:
    • Customized an existing React date range picker to work with the advanced search form I created.
  • Challenges:
    • Found it difficult to match the designer’s expectations, as their example used an old jQuery date picker.

Dynamic Tooltip

  • What it does:
    • Displays a tooltip only when text is truncated due to the screen size.

HOC for PowerPoint Creation

  • What I did:
    • Created a higher-order component to generate a PowerPoint presentation from a table using JavaScript and React.

Barcode Scanner for Web App Input

  • What I did:
    • Created a custom React TypeScript hook to listen for barcode input from a hand scanner.
  • Challenges:
    • Differentiating between keyboard input and barcode scanner input.

Backend

Pulling Images and PDFs from S3 Bucket for Email Attachment

  • What I did:
    • Retrieved images from an S3 bucket and attached them to an email sent using Postmark.
  • Challenges:
    • Needed to access files while the authorization token was still valid, then send them to a JMS queue for email attachment processing.

Testing GORM and Hibernate Queries

  • What I did:
    • Researched Hibernate and GORM documentation and came up with a method to mock Hibernate datastore and PlatformTransactionManager.

Configuring a Plugin to Create Multiple Domain Objects

  • What I did:
    • Configure a plugin to create multiple fully qualified domain objects simultaneously.

Integration with Office 365 for Assessment Scheduling

  • What I did:
    • Integrated scheduled assessments with both interviewers’ and interviewees’ Outlook calendars.

Async Service for Batch Role Changes

  • What I did:
    • Created an async service to process batch role changes for users.
  • Role Comparison Example:

Optimized Search Functionality

  • What I did:
    • Limited database calls to optimize search functionality across multiple columns.

Elastic Search - Fuzzy Search Capability

  • What I did:
    • Implemented fuzzy search capabilities using ElasticSearch.

Optimized SQL Queries Using HQL

  • What I did:
    • Using HQL and Gorm I created abstract classes to search multiple columns for data, and bind the return to an object

Using Micronaut to Create Microservices


Things I Enjoy

Finding Quirky, Unorthodox Ways to Use a Language

  • Setting custom validity for a form field:
      e.target.setCustomValidity('invalid');
    
  • Programmatically setting HTML in a string for React:
      dangerouslySetInnerHTML
    
      {__html: '<p>' + result?.themeSummary + '. <i>*Theme Of Significance.</i></p>'}
      <Tooltip title={<div dangerouslySetInnerHTML={modifiedToolTip}/>} childrenDisplayStyle="inline">
    
  • Custom Enum Checks:
    • Instead of using try/catch for key validation, created a utility:
        AssessmentPurpose
        .getEnumConstants()
        .find { it.key.equalsIgnoreCase("extrn") }?.value
      
  • Get Enum by Value:
      FitStatement.getEnumConstants()
          .find { (it.value == member.result) }?.match ?: member.result
    
  • Pad a string to a certain length with spaces in Java:
        String padded=String.format("%-20s",str);
    


Dev Questions

  1. What do you use to handle security?
  2. Anything for database migrations?
  3. What is your preferred environment?
  4. What upcoming features or new technology are you excited about implementing?
  5. Describe a recent serious outage and how it was resolved.
  6. How does your expense policy & process work?
  7. How much attrition has the team, and the wider department, had in the last 12-18 months?
  8. What budget will I have for continuing professional development? Any restrictions?
  9. What is the best and worst thing about working here?
  10. Describe a recent interpersonal conflict within the team, and how it was handled.
  11. How much time does the team get for a) technical debt reduction and b) research projects per quarter?
  12. Describe a recent prioritization conflict (e.g., between the team & PM or different stakeholders). How was it resolved?