Salesforce · Apr 2nd 2019
Salesforce's software engineers develop the next generation platform that power ever growing Salesforce cloud services. Salesforce’s Core Platform provides highly-scalable and reliable platform supporting billions of transactions a day for customers developing, customizing and deploying our world’s #1 CRM, Sales, Marketing, Commerce, Industries and other SaaS solutions. At Salesforce, we strive everyday to earn customer trust by making our cloud always fast, always secure (see http://trust.salesforce.com). App Runtime team is seeking talented and experienced software engineer to design, develop and deliver core runtime technologies that power Salesforce architecture; improve site latencies, scalability and overall customer experience across our multitenant services. All our services are designed to be continuously delivered, delivered at scale, updated with zero downtime, in a rapidly evolving modern architecture. An ideal candidate is an experienced developer that has proven expertise in server-side Java container internals, application server performance, understanding of design patterns, scalable data structures, web technologies, and caching strategies. Having a track record building solutions to solve performance and scalability challenges in large scale distributed system is a big plus. The features you design and develop will be deployed across the entire Salesforce.com site which handles billions of requests per day where quality solutions are critical.
Responsibilities Deliver the most secure and performant runtime technologies, viz., Jetty web container, HTTP/2 server, Spring IOC container, Java/OpenJDK, thread management, and low latency class loaders. Formulate, evaluate and implement techniques to support service stability, scalability, resiliency and availability. Maximize robustness with fast startup and graceful shutdown (disposability). Deliver elastically scalable services for deployment to multi-substrate cloud platforms (Docker/Kubernetes-based micro service architecture) include Salesforce own internal IaaS, Amazon Web Services and Google Cloud Platform. Work across the engineering organization to resolve complex technical issues and drive impactful innovation that improves application lifecycle, async handling, system availability, resiliency, and performance. Provide thought leadership for the open source technologies inside Salesforce and collaborate with cross-functional engineering teams to develop and enhance the platform. Qualifications BS/MS or PhD in Computer Science or equivalent experience. Sound computer science concepts in the area of algorithms, data structures, distributed systems, operations systems, design patterns, caching, and databases. 5+ years hands on Java development experience in the related areas - viz., Java frameworks (NIO, Concurrency, Collections, Lambdas and runtime GC and dynamic compilers) Familiarity with the internals of open source application platforms such as Jetty/Netty, JBoss/Tomcat/Glassfish, Servlets/JSP technology, Spring framework, Redis, web services stacks, JMX, Monitoring; Direct experience in building or extending an application server is a huge plus. Optimization of Java based applications, application servers, knowledge of performance patterns and full stack performance profiling and analysis. Strong understanding of Linux, internet/mobile principles, protocols and implementation, understanding of performance analysis, reporting and presentation. Sound knowledge of TCP, HTTP, Servlet specifications. Desired Skills Ability to learn quickly and deliver high quality code in a fast-paced, dynamic team environment. Ability to analyze complex systems and failure modes and build technical strategies for improvements based on those findings. Solid analytical and troubleshooting skills, outstanding attention to detail and communication skills. Experience with production deployment performance in mission critical environment. Experience building observability tools to analyze real-time/historical system behavior. Experience with Java runtime and memory profilers (JMH/MAT/JMC/perf). Experience with performance log analysis tools like Splunk, NewRelic, AppDynamics. Exposure to cloud design considerations in the areas of virtualization, service discovery, load balancing, networking and security. Ability to work well within the team and also consult with influence across teams Experience with agile software development, and short release cycles. Experience working with open source projects and tools and contributing features back to the community