Principal Engineer
Wex
* This is a remote position; however, the candidate must reside within 30 miles of one of the following locations: Boston, MA; San Francisco Bay Area, CA; Seattle, WA; and Portland, ME.
About the Team/Role
We are seeking a seasoned Principal Software Engineer in the WEX Mobility Engineering organization. This role will sit in the North America Mobility team that caters fleet management and mobility payments solutions to our large customers and partners in Americas. Mobility development team spans across USA, India, and Brazil. Our Mobility systems provide SaaS and API solutions to various fleet customers. WEX Mobility products enable credit issuance to fleet companies and their workers in the form of WEX or cobranded credit cards, usable at fueling stations and select other merchants. At WEX, we provide fleet managers and operators with the flexibility to configure spend controls that restrict fleet members to use their cards at configured merchants, for configured amounts and velocity etc.
How you’ll make an impact:
Respect what came before, and yet influence the org with net new ways of solving problems
Be comfortable in dealing with ambiguity, and help define problems, and then devise solutions for these problems.
Design, develop, and maintain robust, scalable, and high-performance object oriented code in our backend services.
Design and implement distributed systems including public REST APIs using Java and internal gRPC APIs for inter-service and inter-system communication.
Craft systems designs, lead design decisions, and drive alignment with other senior engineers.
Epitomize writing and generating unit tests, integration tests, end-to-end tests, concurrency tests, load/performance tests.
Analyze existing systems to identify bottlenecks, tech debt, and implement scalability, and stability improvements.
Implement automation for testing, monitoring, healing, and scaling applications, continuous integration and deployment to reduce time to market
Collaborate with cross-functional teams, including product managers, designers, and other engineers, to define and implement new features.
Conduct code reviews (comment, approve, seek revisions, merge), mentor senior engineers, and actively promote engineering best practices.
Dive deep and troubleshoot complex issues, devise fixes, author root cause analysis documents, and ensure lasting performance and reliability.
Conduct objective and comparative analyses of competing technologies to advise the team of pos and cons of a technology solution
Devise mechanisms to create robust documentation (design docs, run books, change management docs, and readiness plans)
Design tech strategy for live-site support by designing monitoring systems via code, ensuring rapid incident resolution, and driving continuous improvement.
Drive cross-team projects as a single-threaded-owner (STO) or tech lead, and actively unblock other engineers to make progress.
Experience you'll bring:
Master's degree in Computer Science or Software Engineering
10 years of professional experience in software engineering.
Strong understanding of data structures and algorithms, object-oriented design, and problem-solving skills.
Expertise in designing and developing internet-scale services with scalability, availability, security, and reliability design tenets.
Excellent written and verbal communication skills, and a collaborative and empathetic mindset.
Proficiency in backend development, with proficiency expertise in Java or C#, and frameworks like SpringBoot, building and optimizing RESTful APIs, ODATA framework, and SQL
Preferred Qualifications
15 years of experience in software engineering including 5 as a Sr. Staff or Principal Engineering level.
Experience with event-driven architecture using AsyncAPI and efficient internal service communication methods
Expertise in working on card payments (ISO8583) and PCI DSS compliance
Expertise in APIs’ scalability
Ability to work on existing codebase, contribute improvements, and adapt to legacy systems’ constraints.