Sr. Software Developer

Company Description

Recruitment and Staffing Agency

Job Description

Job ID: 3785415

Job Title: Sr. Java Developer

Location: San Francisco, CA

Duration: 6+ Months Contract


W-2 only     


Description:

The Service Platform Sr. Software Engineer is accountable for the creation and incremental development of a single, scalable, global Service Platform. Works collaboratively with other Engineers, project teams, and Product Management to determine appropriate and sustainable technology architecture, while ensuring that the Service Platform is implemented following fundamental principles such as incremental architecture and incremental delivery. Provide leadership across the Architecture community to ensure solutions are built in alignment with the Service Platform principles and standards. establishing lightweight architectural patterns and technology (e.g., REST+ JSON, HATEOS) , focusing on quality by implementing a high-value test automation strategy and using continuous delivery to optimize the flow of software delivery and enabling fast and reliable deploys Focuses on creative thought and problem solving in order to influence business process change where complex or unclear business process makes the technical implementation more difficult or costly Works collaboratively with project teams to drive design focus towards total cost of solutions, including production support, maintenance and technical debt impacts, and helps to prepare multiple options for choices which highlight the cost/value tradeoffs. Works collaboratively with Product Management and Domain Architects develop business capability roadmaps that address problem areas and make measurable progress towards achieving our standards over time. The Service Platform Architect ensures that all relevant project teams follow a common set of principles and patterns and utilize a standard set of technology frameworks and libraries, and is accountable for identifying where lack of adherence to these principals contributes to significant operational debt. Works to maximize the business value of the software that is built by favoring simplicity and evolutionary architecture, Mentors, coaches and guide Solution Architects in the objectives, principles and frameworks of the Service Platform. Participates on the ongoing development of a strong community of practice of Solution Architects, relevant Domain Architects, and other Service Platform Architects.


Qualifications: 

• A minimum of 7 years of experience in architecture and development, 5 years of which are Java/J2ee specific, is required. 

• Experience in hands on collaboration with implementation teams - pair frequently on project work to understand the practical constraints, challenges and limitations of architecture decisions 

• Focus on monitoring and metrics to provide real-time feedback to the business and to validate architectural decisions 

• Experience with lightweight approaches to service delivery & documentation 

• Metrics and Monitoring across a platform using REST "test points " and events 

• Experience with tests as primary executable specifications; BDD experience ideal 

• Experience with "live " dynamically generated documentation versus WSDL or WADL 

• Experience with reusable service SLAs, monitoring, auditing and security components, including defining and monitoring service SLAs 

• Experience developing loosely coupled, choreographed service relationships via network encapsulated aggregate roots (micro-services) 

• Possesses a deep understanding of benefits/drawbacks of different integration patterns: point to point, RPC, message passing, event driven, web services, push vs. pull, synchronous vs. asynchronous, service choreographies vs. orchestration, REST vs. SOAP. 

• Understanding of core HATEAOS principles, in particular opaque URLs as primary form of object identity and decentralization of orchestration 

• Continuous delivery and Dev Ops experience - has a passion for 1-click deployments, Blue/Green environment strategies, infrastructure automation, monitoring, logging, auditing and security practices 

• Experience designing modular test strategies utilizing consumer contract tests and stubbing to rapid parallel evolution and testing of services, as well as automating testing of non-functional requirements such as performance, load, and stress 

• Experience with service reliability patterns, such as circuit breaker 

• Experience building large-scale distributed systems, especially with enterprise Java applications 

• Extensive knowledge of good Object-Oriented design and Domain-Driven Design principles

• Thorough understanding of Object Oriented principles (Analysis and Design)



Additional Information