Mahmoud Hashemi

Invoicing at Stripe (Hiring!)

San Jose, CA


Office Hours

How does this work?

Engineer, speaker, author, etc. Extensive experience with complex business requirements and other enterprise software needs. Love to interact with large systems, complex environments, people. Also enjoy working on open source, including various Python libraries, frameworks, and a Wikipedia project here and there. Excited by architecture at all levels. I'm always trying to blog more, but I've only got the two hands.

Ask me about
Python Web Frameworks Software
Global Payments
Work experience

Mar 2021 - Present


Staff Engineer

From legal invoicing to generalized invoicing, Tech Lead on Stripe's newly-formed invoicing business group. Learn more at


Nov 2019 - Present

Python Software Foundation


Through some combination of open-source software work [1], event organizing [2], speaking [3], evangelizing [4], and writing [5], I was voted to join the ranks of the Python Software Foundation Fellows. Huge honor from my software community of choice, couldn't be more thankful to all those who've helped. [1]: / [2]: [3]: [4]: [5]: /


Oct 2017 - Mar 2021


Director of Engineering

Helping lead a global team of ~20 engineers in building the best enterprise ebilling and LegalOps platform the world has ever seen. 4x the team size, 4x the ARR, added a 9 to site reliability, 1.5x the Python, sprinkle on some open-source, it's a lot of fun. Week-to-week this includes release management, retros, sprint planning, reliability review, and more. Quarter-to-quarter, it involves setting KPIs, performing compliance review/remediation, plus recruiting and retention responsibilities. Overall, working to shape the technical culture, from interview process to agile development practices to career mentorship. When called upon, I still get down in the trenches in technical areas, especially ones I worked in as Principal Engineer. So far I've been a tech lead on: * Dynamic rules engine for highly-configurable billing automation and invoice review processes * Fine-grained permissions system for managing access to confidential legal matters * Technology refresh initiatives, including migrating off Redis, moving from Django 1 to 2, the inevitable Python 3 upgrade. * Observability and monitoring, from logs and synthetics to Sentry to Datadog metrics * Sundry refactorings, reporting enhancements, and API tweaks I also helped lead the migration to GitLab and implementation of CI/CD, to much developer rejoicing.


Sep 2016 - Oct 2017


Principal Engineer

Replatforming an 8-year-old codebase revolving around a monorepo with over 100,000 commits, my team was worked on implementing shopkick's microservice-based future. We enabled over a dozen services to be built or upgraded from Python 2.6 using modern technologies, including up-to-date Python, Anaconda, CentOS, Docker, and more. * Introduced a wildly-successful Jupyter Notebook program for data analysts, product managers, and fellow software engineers. * Ported all the company's codebases to an on-prem GitLab, enabling remote code review and other processes, as well as the removal of outdated systems. This involved extensive education around git and git processes to ensure business continuity. * Heavily involved with recruiting, hiring, and internship coordination * Organized architecture reviews, tech lunches, brown bags, and hackathons * Launched and wrote for the company tech blog ( * Wrote extensive tooling for maximizing developer productivity and experience All while supporting a team of around 50 engineers, with everything from on-call support to technical mentorship.


Jul 2015 - Sep 2016


Member of Technical Staff

After the PayPal/eBay split, continued to lead the Python infrastructure team, cutting new ground, spending half or more of my time focused on security and cryptography, from building high-performance services/microservices to integrate with HSMs to auditing PayPal's frameworks and stacks to batch encrypting billions of database rows and much much more. Some record of this captured here: I also took a lot of my experience building and training, and packaged into an O'Reilly published course, Enterprise Software with Python:


Nov 2013 - Jul 2015

eBay Inc

Member of Technical Staff

Led a team of developers building eBay Inc.'s unified Python Platform for use by dozens of teams and projects, including eBay Local, eBay Social Ventures, and Red Laser, not to mention innumerable PayPal teams and future acquisitions. Technically focused on web frameworks and services, mid-tier and front-tier, as well as large-scale migrations off legacy technologies. Also involved in technical due diligence for acquisitions.


Oct 2008 - Nov 2013


Staff Software Engineer

Lead Developer of Python Infrastructure, working to create Python interaction layers to connect established (ancient) systems with the tools of tomorrow, today. Those tools consistently enable the creation of essential services, most recently in PayPal's core payments infrastructure. * Pricing Administration - Configure the rules engine for scalable pricing of PayPal transactions, with support for volume discounts, foreign exchange handling, and more. * Springboard - Service interface and release explorer * Money Administration - Management of PayPal's distributed payments processor and ledger Oh, also, build as many web frontends/APIs as I can (Django/bottle/jQuery/LESS/Photoshop), win a hackathon or two.

Aug 2008 - May 2009

Raikes School of Computer Science and Management


ScrumMaster and architect on a financial products project for Fiserv using primarily web-based, but also mobile, platforms. Used Agile methodologies to facilitate development in a team of five developers. 2012 update: If you/your company needs someone to tell you how to "do Agile", you may be doing it wrong.

May 2006 - Aug 2007

GCImage, LLC

Software Engineer

Implemented a 3D visualization application in Java for a cutting-edge, 4-D, high-precision mass spectrometer at the University of Manchester in England. Challenges included developing an efficient pipeline to accommodate the multi-gigabyte data files, developing a processing scheme to provide as close to real-time performance as possible, and communicating with a remote, non-technical client. Also, reverse-engineered the Microsoft Access database format and developed a lightweight framework for use within a Java-based application.


2005 - 2009

University of Nebraska-Lincoln

Bachelors, Computer Science

Talk to Mahmoud

@ Copyright 2020 OfficeHours Technologies Co.