Glassdoor ~ Company Reviews and Conversations
Design System Lead Engineer : Design System & UI Library
Early on at Glassdoor, I assumed stewardship of the existing, internal UI Library. Our organization did not have a formal design system team. So I connected with Design to start an informal team and develop it organically as time allowed.
While designs were continually developed in Figma, I started laying the groundwork for the core implementations and its documentation. I also mapped out a contribution model so that future, continued development would include folks from across the org. Knowing that substantial product initiatives would depend on a proper design system, I identified technical requirements to support those upcoming needs in addition to those already established.
Technical requirements included:
- rooted in accessible web patterns
- switchable from previous to future design system:
- with no implementation changes by consuming code
- with minimal/no redeployment
- documented via deployed Storybook instance
- built around the updated CSS strategy
My individual efforts on the design system and its web-based UI Library were eventually incorporated into a formal Design System Team. Two contractors joined me for the initial web deliverables. When they and the rest of my existing team took over delivery of the rewritten UI Library, I started on the retrofitting of the existing version. The retrofit promises to minimize downstream engineering efforts while still enabling the design system to be delivered on deadline.
Frontend Engineer : CSS Strategy Research
My work on the B2B Platform Team naturally extended into org-wide frontend concerns, as the technical debt I was addressing extended across the entire organization. A substantial hurdle for fellow frontend engineers—and by extension, all product development—was the near-incalculably large collection of legacy CSS. We needed tools to address this growing problem.
Additionally, we needed to select more appropriate tools for our organization, allowing us to more quickly and confidently deliver frontend features without having to fight our tools or reinvent the wheel. To start, I surveyed all frontend engineers for their experiences and preferences in relation to developing with CSS, both at Glassdoor and outside. Results were parsed, reported to the org, then used for a deeper dive into potential solutions.
Knowing our collective experience and preferences, the current state and constraints of our applications, and the near-future needs of the organization that would soon need to be realized, the research project continued into the assorted technologies used in the industry. This extended effort culminated in two proofs of concept, plus an exhaustive report and recommendation on the direction I believed the organization should take.
After review by the team, including with the VP of Engineering, a consensus was reached. The research and its conclusion were subsequently presented to the organization, laying the conceptual groundwork for frontend engineers to follow.
Frontend Engineer : Employer Center, B2B Platform Team
I joined the newly-formed B2B Platform Team to focus on improving the frontend foundation for the Employer Center and its numerous microservices. At the root of the effort was a long-running migration from a Java + JSP backend over to React-based microservices. The redistribution of technical responsibilities had resulted in inconsistent dependency management and a mountain of technical debt.
My responsibilities included:
- quantifying existing progress to understand what remained
- planning the remaining transitional work
- porting JSP pages to React-based microservices
- communicating progress to org-level management
- distributing specific migration tasks to code owners
- identifying and eliminating unused frontend assets
Frontend Engineer : Employer Center, Diversity, Equity, and Inclusion
Extending from the "Work From Home" feature, I also implemented the React-based web interface for Glassdoor's "Diversity, Equity, and Inclusion" feature. This was a big initiative at Glassdoor, enabling employers to publish the details of representation within their organizations as well as their goals for improving that representation over time.
I again coordinated with feature leads across Product, Design, Backend, and Internationalization disciplines to ensure the web implementation satisfied everyone's needs. Internationalization was especially important, as cultural differences needed to be accounted for when providing the diversity content to different users on both the job-seeker and employer sides of the feature.
Frontend Engineer : Employer Center, Work From Home
I implemented the React-based web interface for Glassdoor's "Work from Home" feature, enabling employers and job seekers to find each other based on policies and preferences relating to the COVID-19 pandemic. I coordinated with feature leads across Product, Design, and Backend disciplines to ensure the web implementation satisfied everyone's needs.
Instructure ~ Educational Technology Company
React UI Engineer : Canvas, Final Grade Override
We added a way for teachers to manually adjust calculated grades for students on the cusp of a better grade than they had earned via math alone. I generalized the front end logic and interface components created for New Gradebook to work with grade overrides, rather than reinventing the wheel.
React UI & Rails Engineer : Canvas, Anonymous Moderated Marking
The team was given large feature request with a short deadline. Retooled data associations to be anonymous while preserving functionality. Rewrote front end moderation workflow. Proactively engaged Product and Design to further elaborate product workflows ahead of implementation.
My experiences across past client work and side projects provided tools and methods for debugging, understanding, and improving tools used to build Canvas. Testing tools and practices were continually updated and adjusted to benefit the team and the organization. I diagnosed and resolved critical build issues and averted engineering downtime.
Each member of the team led milestones for subsets of new features. I was responsible for enhancing teachers' experiences with entering grades in the Gradebook. I established expertise on legacy tools and their maintenance. We worked together to improve practices for implementation-agnostic UI testing and code reviews. I also contributed thousands of additional specs to front and back end spec suites.
In working with Product and Design, I used tools like Sketch and Codepen in combination to ensure that their visions were being met before implementation was complete. It helped to identify edge and corner cases not realized in the design documents and informed subsequent decision-making.
Collaborating with Community Advocates developed a better understanding of the needs and workflows of real users, spurring ideas and helping to make better decisions. Among the highlights of engaging with the community was delivering one of their oldest and most-requested features.
We adapted modern, React-based UI to work with extremely legacy UI firmly coupled to outdated tools (i.e. adapted square peg to round hole). Some of the legacy tools and libraries we either augmented or refactored out include CoffeeScript, SlickGrid, Backbone, Ember, and plenty of jQuery spaghetti. Making these and other tools all work together was both interesting and challenging.
Full-Stack Web Engineer : Canvas, Multiple Grading Periods
We extended business logic to accommodate needs of institutions using multiple levels of bucketing for grading. Grade calculations were retooled to work with new partitioning and weighting rules. Front and back end validations were implemented to ensure historical grades were no longer recalculated, both for performance and to prevent user shenanigans.
React UI Engineer : Instructure UI, Open Source React UI Library
Through use, feedback, discussions, and direct contributions, I helped the InstUI team develop the library from pre-1.0 to its current version. I was invited to Brain Trust for influencing the vision and ongoing development of InstUI.
8th Light ~ Software Development Consultancy
Lead Engineer : BluStor GateKeeper, Biometrics-Secured Android SDK & Apps
Created an Android-based SDK and app for bluetooth communication with a biometrics-secured smartcard. Developed the protocol for serial communication via bluetooth. Integrated with a third-party biometrics SDK. Collaborated with smartcard hardware team to develop and document the communication API.
Extracted SDK, sample app, and production app from original proof-of-concept. Documented SDK for third-party developers. Emphasized ease of development for current and future team members.
Full-Stack Clojure & ClojureScript Developer : VuShaper, Dynamic Video Streaming Platform
Full-Stack Web & Mobile Developer : AXUS, Traveler Itinerary Curation Tool
Lead Android Developer : College Athletics Recruiting Platform
Developed Android counterpart to existing iOS app. Integrated with internal API for authentication and user data. Implemented continuous integration with local Jenkins server. Collaborated with UI Designer for app interactions and assets.
Developed Rails and Marionette.js single-page application to replace existing sales pipeline tool. Planned and delivered around iterations. Collaborated with a designer, junior developers, and contracted developers. Integrated with internal services.
Refactored legacy Node application in production. Harnessed untested code with test suite to enable safe, stable changes. Collaborated with overseas teams for homegrown internationalization. Integrated with internal services and SalesForce.
Rails Engineer : Groupon
Collaborated with developer team to scale an inventory system through service extraction. Contributed to performance enhancements at the application and database layers to support hundreds of thousands of requests per minute.
Rails Developer : College Athletics Recruiting Platform
Extracted business behavior from legacy Java application into Ruby application. Extended automated email service for event-based behavior. Integrated email rendering with homegrown A/B testing service and Mandrill.
Ruby Developer : Groupon
Implemented rules-based account automation for the sales team. Iteratively refined and extended rules to match an existing, manual process. Regularly demonstrated development progress and discussed agenda in iteration planning meetings.
Android Developer : White-Label Video on Demand Platform
Contributed to a widely-distributed Android SDK and associated apps with an emphasis on extensibility. Collaborated with development team while also teaching best practices and design patterns.
- Glassdoor ~ Employer Reviews and Conversations
- Lead Software Engineer, November 2022–March 2023
- Senior Front End Engineer, July 2020–November 2022
- Instructure ~ Education Technology Company
- Senior Software Engineer, August 2018–June 2020
- Software Engineer, March 2016–August 2018
- 8th Light ~ Software Development Consultancy
- Software Crafter, December 2012–February 2016
- Software Apprentice, June 2012–December 2012
Languages & Environments
Libraries, Frameworks, and SDKs
- BDD/TDD Testing
- Design Systems
- Large-scale Refactoring
- API Design