The Principal Software Engineer, Platform will be responsible for the design and implementation of the Marin Platform infrastructure across all teams. Marin is built upon a Services Oriented Architecture that allows for low latency, high throughput, fault tolerant batch and real-time processing. The principal engineer will be responsible for optimizing communication between different services, coming up with new and beter and faster ways to move very large amounts of data around.
An ideal candidate will be familiar with very large distributed systems, high job throughput, massive data pipelines and scaling for very large systems. They will live and breath performance tuning, and will enjoy baking different messages brokers off against each other to figure out which system is best for each use case. They would want to build bulletproof systems that can withstand a barrage of data and client requests.
Enhance and build the underlying infrastructure on which Marin Software builds its applications. Discover innovative ways of improving Marin architecture. Introduce new technologies to restructure existing architecture to improve throughput and performance, remove bottlenecks and add layers of reliability. Introduce new ideas to improve all aspects of Marin architecture, from build systems to testing to continuous integration and deployment. Troubleshoot and optimize existing platform issues, engineering our ability to scale. Provide mentorship and education to other developers about how to use these services. Be a pragmatist - sometimes new technologies may be fun and awesome, but completely impractical or impossible to swap into the current moving train - so one should be able to weight business and practical risks when selecting new technology directions. Arrive at optimal solutions through the effective, collaborative, respectful interactions with other tech leads.
Previous position as a Technical Lead or Director of Engineering 10+ years of experience in a variety of complex distributed systems, playing a vital role in their architecture, delivery and ongoing maintenance through multiple releases. Be able to work well under pressure and get things done. Ability to ship code. Relentlessly resourceful and scrappy. You thrive in getting to the bottom of problems and figuring them out. Deep understanding of message brokers, databases, multithreaded systems and synchronization. Strong knowledge of ActiveMQ (or other queueing systems), Spring, Hibernate, MySQL Previous production experience: able to speak about systems design using theory, backing it up with war stories Solid core Java knowledge and strong familiarity with Java VM configuration and tuning Mastery of command line UNIX. We would love for you to wow us with your Unix tricks. You should be able to string more than 4 commands together and know what comes out at the end. Team player with strong communication skills.
Exposure to the following types of technologies:
Message brokers ActiveMQ, AMQP (RabbitMQ, ZeroMQ, etc) Traditional and NoSQL databases and knowing which ones are better for which use cases Expertise with internals of data storage systems (databases, filesystems).
This is an on-site, full time salaried position located in the financial district of San Francisco, (one block from Bart station). Compensation depends on prior experience. Marin pays market-leading compensation and provides the best benefits in the country. Marin Software provides Equity participation,best in class comprehensive health plans including medical, vision and dental, in addition to generous PTO and reimburses 50% of monthly commuting costs for parking and/or mass transit up to the IRS limitations.Marin Softwares world headquarters is located in the financial district of San Francisco, with remote offices in Chicago, New York, Austin, and Portland. European headquarters are located in London, with additional offices in Singapore, Paris, Hamburg, Sydney and Tokyo.