Expoint – all jobs in one place
Finding the best job has never been easier
Limitless High-tech career opportunities - Expoint

Ford Full-Stack Technical Anchor 
United States, Michigan, Dearborn 
53229218

Today

In this position...

We are seeking a highly skilled Full-Stack Technical Anchor to work in the development of our GOMS microservices platform using a combination of open-source frameworks (Java) + Cloud native technology stack. As a Technical Anchor, you will be responsible for designing, developing, and implementing scalable microservices architecture that will support the company's business requirements.

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).