Job Description
The position is within Order Fulfilment, providing services to all Top Hats. As the team is continuously deploying to production there is a strong emphasis on Test Driven Development practices and driving out solution design using tests.
A technical exercise will be requested before interview, giving the candidate the opportunity to demonstrate their experience of driving the solution to a simple problem using tests.
Highlights of this team and how we work are:
Culture:
- High degree of autonomy - particularly on how development is done and on prioritizing work that accelerates the team.
- Highly collaborative - pairing, mobbing, pair swapping, daily technical knowledge sharing sessions.
- Optimize for flow, not utilization: pull-based flow.
- Quality centric - very few defects (1-2/month), naturally high test- coverage (90-100%), high internal code quality.
- Continuously improving - in ways of working, technology, & architecture.
Architecture:
- Event-Driven Microservices Architecture - new end -to-end functionality is usually added by adding microservices that are loosely coupled by events (RabbitMQ, Kafka).
- Actual Microservices - the logic of the service fits on half a screen (usually);
Small classes, small methods, communicative code
Kotlin - Older services are in Java, new services use Kotlin
Pivotal Cloud Foundry - migrating to Google Cloud Platform
Component/Sequence Diagrams generated dynamically from test-runs of end-to- end and component-level tests (Living Sequence Diagrams)
- Development on MacBook Pros with IntelliJ IDEA (both supplied) for security reasons.
- Infrastructure as code (where possible) - our infrastructure is configured via code and git versioned config.
Practices:
- User Stories (that are actually vertical) - while we mainly implement APIs, we do so with the 3rd Party developer in mind as our user.
- User Story Mapping - we identify stories that support the business process (Activities & Steps) and the commercial objective ("Release" Slice - although this is a notional concept since we're shipping to prod 15-20 times per day);
- BDD/TDD (as if you really meant it) - outside-in development, driven from scenarios with outer and inner loops from e2e, CDC, component (service) tests, unit tests, mutation testing.
- Trunk Based Development - no feature branches, all development done on Master/Main with small safe steps.
- Continuous Deployment - 1-3 commits at a time are pushed, resulting in our automated build then testing that service and then end-to-end with other services, automatically deploying it to production with blue-green deployment 20-40 minutes later (depending on the service).
- Deployment to primary and failover environments as part of the build.
- Reverse Pull Requests - for collaborative code review even though many commits are already running in prod (we're only done when engineers say they're happy the code is maintainable).
More Information on Ford Motor Company
Ford Motor Company operates in the Automotive industry. The company is located in Dearborn, MI and Palo Alto, CA. Ford Motor Company was founded in 1903. It has 175633 total employees. It offers perks and benefits such as Flexible Spending Account (FSA), Disability insurance, Dental insurance, Vision insurance, Health insurance and Life insurance. To see all 102 open jobs at Ford Motor Company, click here.
Read Full Job Description