Table of Contents
- Projects
- Front End
- Backend
- Pulling Images and PDFs from S3 Bucket for Email Attachment
- Testing GORM and Hibernate Queries
- Configuring a Plugin to Create Multiple Domain Objects
- Integration with Office 365 for Assessment Scheduling
- Async Service for Batch Role Changes
- Optimized Search Functionality
- Elastic Search - Fuzzy Search Capability
- Optimized SQL Queries Using HQL
- Used Spring Tansactiona Status to create my own Rollback
- Using Micronaut to Create Microservices
- Things I Enjoy
- 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
Used Spring Tansactiona Status to create my own Rollback
- What I did:
- Created a batch delete, for deleting a group associated with users
- Challenges:
- Spring rollback was causing issues due to the nature of deleting, needed to manually trigger
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
- Instead of using try/catch for key validation, created a utility:
- 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
- What do you use to handle security?
- Anything for database migrations?
- What is your preferred environment?
- What upcoming features or new technology are you excited about implementing?
- Describe a recent serious outage and how it was resolved.
- How does your expense policy & process work?
- How much attrition has the team, and the wider department, had in the last 12-18 months?
- What budget will I have for continuing professional development? Any restrictions?
- What is the best and worst thing about working here?
- Describe a recent interpersonal conflict within the team, and how it was handled.
- How much time does the team get for a) technical debt reduction and b) research projects per quarter?
- Describe a recent prioritization conflict (e.g., between the team & PM or different stakeholders). How was it resolved?