What are the responsibilities and job description for the Senior Software Engineer, Infrastructure position at Flock Freight?
Flock Freight is looking for an experienced engineer who is passionate about building the infrastructure that enables the architecture, development, deployment, and observation of highly performant frontend and backend applications. The platform infrastructure team empowers the rest of the Technology organization to ship high-quality code as fast as possible to make the freight world a better place.
We’re looking for an exceptional, collaborative software engineer to join the team responsible for building out a set of core infrastructure, services, and best practices for our product engineers. Our team is made up of a small group of engineers who are passionate about creating innovative solutions built with modern technology. As a member of this team, your talent and expertise will influence the best practices, design patterns, and technologies that we use to deliver the best experience for our customers.
Responsibilities:
- Build and maintain shared services and frameworks for standing up workloads, managing transactions, caching, queueing, asynchronous processing, data pipelines, observability, authentication and authorization.
- Drive standardization of backend monitoring by building tools to measure, monitor and optimize our backend performance and ensure high availability.
- Define and evangelize best practices for backend development for topics such as database access, asynchronous messaging, decomposition, dependency injection, integration and end-to-end testing, and microservices
- Build and maintain software delivery systems from local tooling for building and managing software, through continuous integration, all the way to production deployments and post-deployment verification.
- Take part in the interviewing and consideration of potential new team members.
- Provide guidance and technical mentorship to new Flockers.
Requirements:
- 3 years of experience as a Software Engineer with excellent knowledge of Java (additional experience with Golang, Python, and JavaScript are pluses).
- Experience using popular Java backend development frameworks like Play, Spring and persistence layer frameworks such as jOOQ or Hibernate.
- 3 years of experience building distributed systems leveraging asynchronous messaging (Pub/Sub), caching, RPC, and the common services and technologies used to build cohesive solutions.
- 3 years of experience with cloud-native back end architecture using Docker and Kubernetes.
- Experience designing mission critical, scalable, and fault tolerant web applications.
- Experience with modern web stacks and architecture (REST, load balancing, HTTP(S), authentication).
- Experience in state-of-the-art software and system design patterns.
- Experience with Java build tools such as Gradle, Maven, sbt, or Bazel
- Experience with end-to-end debugging, monitoring and alerting, and system performance tuning.
- Exceptional problem solving, analysis, decomposition, and communication skills applied within an agile development environment.