Senior Software Engineer
Cisco Meraki · Full-time
Jul 2024 - Present
• 3 mosSenior Software Engineer
Provi · Full-time
Dec 2021 - Jul 2024
• 2 yrs 8 mosWorked on the team responsible for presenting advertisements, and promoting users to browse the site and discover new products.
- Maintained an internal advertising platform allowing business users to create and schedule internal advertising campaigns.
- Built a custom content editing platform allowing business users to build dynamic custom promotional content, both as custom landing pages, as well as embedded content on product pages.
- Integrated with two third-party biddable advertising platforms to present biddable ads to users throughout the site, utilizing users' browsing context to ensure ads were relevant.
- Built data and managed pipelines to and from the biddable advertising platforms to send them data required for the integration and to receive data for reporting purposes.
- Built monitoring and dashboards to ensure smooth integration rollouts.
- Handled event tracking throughout the site to enable user behavior analytics, and to accurately measure and report advertising metrics, compliant with Media Rating Council (MRC) standards. This included refactoring the event tracking system to reduce the complexity of the implementation for developers, and add guard rails to ensure uniformity of our eventing data.
- Built a system to allow data science to inject retailer suggested products models into Elasticsearch outside of the rails app, so that they could be used to present product recommendations to users.
- Refactored the core service responsible for presenting products as users searched to utilize an internal search microservice built at Provi, reducing load time by relying on data pre-processed and indexed by the search service.
Stack and technologies used:
- backend: ruby on rails with postgres
- front end: vite, typescript, svelte, and some legacy angular
- infrastructure: terraform, ansible, jenkins, circleCI
- logging and metrics: datadog, sumologic
- cloud: AWS, snowflake for data warehousing
- ancillary services: python, prefect (job scheduler)
Root Inc.
Dec 2019 - Dec 2021
Senior Software Engineer
Feb 2021 - Dec 2021
• 11 mosSept 2021 to present
Building a new embedded insurance sales experience for a partnership with Carvana
- React web app
- Ruby on Rails server backend for public and internal APIs to support this product
Worked on the Root Enterprise team (Dec 2019 through Aug 2021):
White-label React Native mobile apps (iOS and Android):
- Buildout of front-end of the app, gutting an existing internal app, and rebuilding from the ground up
- Reworking of the permissions flow (required for trip tracking)
- Integration with our internal TripTracking SDK
iOS and Android native work for aspects of the app that React Native could not handle
CI and CD-ish pipelines for automating testing and app building (Buildkite, Fastlane, and Bitrise)
React web apps to facilitate non-mobile functionality needed to support our apps
APIs for clients to interact with data programmatically
Building a webhook pipeline to push data to clients as users interacted with the apps
Ruby on Rails backend to support all of the above:
- Internal apis to feed our apps and web sites
- External apis for client data
- Build and maintain async job pipelines (Shoryuken, backed on SQS) for trip processing and other event processing needed for webhooks
Terraform/AWS management of all infrastructure resources needed for all of the above
- SQS, S3, IAM, Cloudwatch, EC2 load balancing, ECS
Software Engineer
Dec 2019 - Feb 2021
• 1 yr 3 mosBraintree
Dec 2014 - Dec 2019
Software Engineer - Data Platform
Dec 2017 - Dec 2019
• 2 yrs 1 moBuilding a data platform
Technologies: Java, Python, Spark, AWS (EMR, Glue, S3, Kinesis, Lambda, and DynamoDB), Apache Parquet, Apache Airflow, Terraform, Docker, Ansible, Jenkins, DataDog
- Build a data lake backed by Kafka, S3, and Glue (AWS-hosted Hive), using Spark to process and store data (internal and 3rd party) for application, analytic, and machine learning needs.
- Manage the AWS infrastructure related to the data lake using Terraform (IAM roles and policies, lambdas, S3 buckets, EMR clusters, monitors, etc.).
- Build tooling to allow other engineers to easily access and use the data lake, while ensuring users are authenticated and have acceptable levels of access based on their role.
- Write Spark jobs to validate the data quality the data lake on a recurring basis.
- Create pipelines to deliver data to our parent company, including scripts, infrastructure, and monitoring.
- Utilize Airflow to handle job orchestration and dependency chain management for all jobs related to the data lake.
Software Engineer - Financial Reporting
Dec 2016 - Dec 2017
• 1 yr 1 moBuilding a data pipeline
Technologies: Python, Docker, AWS (S3, SQS, Redshift), Celery, Apache Avro, Flask
- Create a pipeline to extract data from an internal ETL pipeline, converted it to Avro, and send it to PayPal.
- Manage tracking schema changes to allow for graceful handling of DDL changes from upstream source databases.
- Build quality control checks to make our internal ETL pipeline SOX compliant, per PayPal's needs, and transmitting quality control checks along with the data being sent.
- Build auditing and monitoring tools to ensure data integrity and completeness.
Data Analyst
Dec 2014 - Dec 2016
• 2 yrs 1 moBuilding Reports and Reporting Automation
Technologies: Python, Ruby, Postgres, SQL, AWS Redshift, Luigi (Python-based scheduler framework)
- Build SQL reports for internal and external customers.
- Manage reporting scheduling tooling and automation for the analytics team.
- Build integrations to ingest internal postgres and external 3rd-party API data (Salesforce and WhenIWork) into Redshift.
- Build ETL jobs to ingest and process data into Redshift from business partners via SFTP.
- Manage and optimize a Redshift cluster to handle increased loads from automated reports and ad hoc internal user queries.
Dabble
Jul 2011 - Dec 2014
Director of Operations and Technology / Web Developer
Apr 2013 - Dec 2014
• 1 yr 9 mosTechnologies: Ruby on Rails, MySQL, R, Stata
- Run day-to-day operations of the business.
- Analyze business metrics, including pricing, promotions, sales, and user engagement to develop and execute strategic plans.
- Build dashboards for internal metric analysis.
- Maintain and build new features in the Ruby on Rails application as the sole web developer.
- Manage all customer service inquiries.
- Train staff on internal portal usage, and develop enhancements to the internal portal to reduce staff workloads via automation.
Director of Customer Experience
May 2012 - Apr 2013
• 1 yrCustomer Experience
Technologies: Ruby on Rails
- Maintain relationships with users to ensure satisfaction and receive continual feedback about their experience.
- Collaborated with development team to increase automation, reducing staff effort needed to manage the site.
- Processed course submissions and assisted teachers with course administration.
Education Coordinator
Jul 2011 - May 2012
• 11 mos- Created materials and resources for teachers to use to plan classes, as well as promotional materials.
- Built and maintained relationships with teachers; provided guidance for course planning and proposals.
Legal Assistant
Zimmerman Law Offices, P.C
Jun 2006 - Dec 2011
• 5 yrs 7 mos• Drafted, revised and proofread legal documents and correspondence
• Researched laws, legal issues, and corporation and personal information regarding potential cases
• Worked with clients to obtain information necessary to proceed in their cases
Director of Guitar Studies - Maine West
Maine Township High School District 207
Aug 2005 - Jun 2010
• 4 yrs 11 mos• Taught beginner and advanced guitar classes
• Rewrote the Guitar Program curriculum for the district, including assignments and exams
• Initiated, organized and prepared students for two annual concerts at Maine West, as well as other performances in the community with advanced guitar students
• Doubled student enrollment in the Guitar Program at Maine West through various recruiting techniques
Guitar Instructor/Full-Time Substitute Teacher
Oak Lawn Community High School District 229
Jan 2005 - Jun 2005
• 6 mos• Taught one section of beginning guitar
• Served as a full-time substitute for the remainder of the school day