Senior Software Engineer – Java
FanDuelEdinburgh, United Kingdom
APIsJavaAWSTerraform
We re looking for passionate technologists, strong communicators and those with a commitment to continuous improvement.
Responsibilities
- The ideal candidate will have the confidence to propose pragmatic solutions to complex problems and be eager to learn from and educate others.
- As a Senior Software Engineer, you will work in empowered, multidisciplinary teams, autonomously tackling complex challenges that provide the very best experiences and products for a growing community of millions of players.
- You use technology to solve straightforward problems, seeking input and guidance from team members.
- You may create or have responsibility to improve or invent small tools or applications.
- You can take defined design and turn it into code and deliver it on schedule, applying appropriate technologies and current software engineering best practices. You write secure, stable, testable, maintainable code with minimal defects.
- You are proficient in a broad range of data structures and algorithms, knowing when it is appropriate to use them and when it is not.
- You make appropriate implementation trade-off decisions.
- You participate in team design, scoping and prioritization discussions.
- You seek to learn the business context and technologies behind your team's software.
- You work effectively with other team members & identify any opportunities/problems arising from technical decisions.
- You invent, refine and develop your solutions to ensure they are meeting customer needs and team goals. You are a passionate advocate for your customer.
Our Responsible Gaming team's mission is to create a best in class regulatory experience for our customers. We do this by working with internal stakeholders and our Regulatory Partners to build scalable, flexible solutions to satisfy regulatory requirements in jurisdictions across the US and Canada. We strive to build internal tools that have clear contracts and are easy to integrate with to enable teams across FanDuel s portfolio.
Responsibilities
- You are responsible for designing the software or systems required in your area of ownership and ensuring that they meet their design objectives.
- You are able to give quality feedback on designs written by other members of your team, asking probing, insightful questions that solidify choices and surface erroneous assumptions.
- You effectively and quickly debug cross-module issues, and may intuit where bugs might lie due to your deep knowledge of the libraries, platforms, and systems that your software relies on.
- You write simple and extendable code following standards and best practices. You test your code thoroughly. You help balance customer requirements with the team requirements.
- You are able to create coherent designs with multiple components interacting across API or system boundaries; bugs do not creep in at the boundaries between components due to mismatches in expectations of what is technically feasible.
- You are capable of rolling out a component or major feature (and deprecating an existing system or feature) reliably - including appropriate monitoring, paging, etc are in place, and that failure domains are understood and characterized appropriately before large scale rollout. For early stage products, you are able to roll out with an eye toward achieving learning goals untainted by poor quality.
- You help your team evolve by actively participating in the code review process, design discussions, team planning, and support ticket reviews.
- You take on projects and make software enhancements that improve the team software and processes.
- You work to resolve the root cause of complex problems, leaving software better and easier to maintain than when you found it.
- You estimate stories/tasks accurately and deliver them in time. You keep yourself up to date with industry tools, utilities, and open-source frameworks.
- You participate in the interview process and help your team train other Software Engineers.
- You keep yourself up to date with market standards and open-source frameworks.
- You participate in the on-call support rotation for your organization.
- Most importantly, be humble, pragmatic, self-managed, thirsty for knowledge, never satisfied and always challenging the norm.
What We re Looking For In Our Next Teammate
- Degree in Computer Science, related field, or equivalent work experience.
- Experience and passion for writing highly scalable, fault tolerant and always available backend systems & APIs using Java or similar Object-Oriented programming languages.
- Good grasp on relational, non-relational databases, messaging queues and handling concurrency.
- Understanding of modern architectures, design patterns, and platform nuances.
- Knowledge of release process best practices for APIs and services within production systems.
- Experience working with cloud-based infrastructure and technologies, preferably AWS.
- Familiarity with defining infrastructure as code using Terraform or similar.
- Understanding of containers (e.g. Docker), and orchestration (Kubernetes).
- Expert experience with testing concepts, test tools, and integrating testing and best practices in the SDLC.
- Strong sense of ownership, urgency, and drive.
- Familiarity working in an Agile environment.
- Passion for working within a fast-paced environment and can adapt to change.