I’m a software engineer passionate about problem-solving and continuous learning. Over my career, I’ve gained diverse experience, starting with five years as a general IT consultant. I’ve worked across the full stack—frontend development, automation testing, CI/CD, APIs, and SQL—gaining exposure to various technologies and industries, which deepened my understanding of the Software Development Life Cycle (SDLC) and strengthened my problem-solving skills.
In my current role at The Washington Post, I’ve expanded my skill set by contributing to high-impact projects within the subscriptions organization, such as My Post, Newsprint, and Walls. I’ve worked on everything from implementing private relay email functionality to reducing reactivation friction, building marketing-driven sales walls, and supporting on-call operations to monitor system performance.
JavaScript is at the core of my work, and I’m especially passionate about frameworks and libraries built around it, like React, Next.js, and CSS-in-JS solutions such as Stitches. These tools allow me to build dynamic, high-performance, scalable applications. While JavaScript drives much of my development, I enjoy exploring new technologies and tools that improve my overall approach to software development, always focusing on creating user-centric solutions.
View Resume"Washington Post personalises journalism, drives engagement with Newsprint" - International News Media Association
See Blog PostWebsites and Mobile Sites, Best User Experience Honoree, 2024 - The Webby Awards
See Webby PostThe Washington Post Newsprint is an annual, interactive feature introduced by The Washington Post to provide subscribers with personalized insights into their reading habits over the past year. Newprint debuted in 2022 and has continued to expand its features to deepen reader engagement in subsequent iterations.
I was a key contribter to the 2023 experience - This work established a framework for future iterations and introduced enhancements including the display of personalized videos from frequently read journalists, fostering a closer connection between readers and The Post's newsroom. We developed new avenues for engagement, personalization and habit formation such as newsletter and author recommendations with the ability to follow. Additionally, a tailored quiz provided content recommendations and identified individual "reader types," enhancing the personalized experience.
A react frontend application, populating information from PokéAPI v2. Original 151 Pokémon can be viewed in more detail with specific information such as base stats, species, genus, and overall evolutionary chain attribues, damage, and more.
Basic, fully-responsive web layout built with HTML and CSS, employing CSSGrid with some light animation.
Basic, fully-responsive gradient generator created using HTML, CSS, Javascript and DOM manipulation.
A fully functioning hangman game created with HTML, CSS, vanilla Javascript, employing DOM Manipulation and Async/Await.
A fully functioning notepad app created with HTML, CSS, and vanilla Javascript, employing DOM Manipulation and local storage.
A fully functioning todo list app created with HTML, CSS, and vanilla Javascript, employing DOM Manipulation and local storage.
An Angular application with several components talking to each other and passing information with services.
Fully reactive filtering application built in react and styled with Tachyons and CSS. Populates with data comsumed from an open API.
A simple storefront application built in React and styled with Stylus. Populates with data from a FireBase database, and holds order state in local storage.
A react frontend application, node.js / express.js backend and PostgreSQL database hosted with Heroku. The backend application uses the ClarifaiAPI Facial Recognition model to fetch information about a particular photo. This information is used to display boxes around each of the faces in the image on the frontend.
Chess tactics trainer app built with React functional components and hooks. Problem sets are based on blunder moves from professional tournement games, with the goal to play the optimal solution. Problem set data is supplied by BlundersAPI, returned from a simple express proxy server built to go along with the fronted and solve some cors issues associated with the request. Supplementary libraries include Axios, chess.js and chessboard.js.
Open to New Frontend Opportunities
Remote or Chicago Area