Job title: Senior Software Engineer
Location: Old Street, London
Salary: 50000-70000 GBP
Job open from October 5th, closing date 4th November 2017
Pivotal’s Story VIDEO
Always be kind: a simple daily affirmation and one that feels more like a personal mission statement than a corporate motto -- but Pivotal isn’t just any corporation. Underpinning our world-class capabilities in cloud-native software delivery and agile development methodologies is one common thread: empathy. Not only do we want to transform the way the world builds software, we also want to make sure that sustainable pace, kindness, and diversity are at the core of every enterprise.
Known for taking an iterative approach, our 2000+ employees are empowered every day to help shape the way we build software. Pivotal is committed to open source, a diverse culture, and fostering safe spaces for all of our individual employees.
You are looking for a collaborative environment building distributed systems that enable enterprises to focus on their business rather than re-architecting a cloud platform from scratch. Pair programming has always been something that you wanted to try out.
Furthering your education has always been a goal of yours. Learning new programming languages and getting to work with Golang piques your interest.
Contributing to open source software makes you feel good about the transparency it brings to an organization's code quality.
Agile concepts are at the core of our process. We have a whole host of Pivotal Practices around Test Driven Development, pair programming, team retrospectives, technical retrospectives and continuous integration. We are excited to teach these to you and innovate with you on their implementation.
We stick to a strict 8 hour a day schedule (with flexible start and end times). Although on-call rotations are part of most teams incidents are exceedingly rare.
A majority of our time is spent pairing in our London office but enabling remote teamwork has become a priority for us. We use Slack to stay connected and Screenhero or Tmux for pairing. We are working hard to make sure that our distributed teams function as smoothly as our distributed systems.
You'll rarely be alone when developing; from pairing all day to 1 on 1 time with your manager, there is always a Pivot there to lend a helping hand. Mentorship from senior engineering leadership is built right into our process - you’ll always be empowered.
Making an investment in each Pivot’s professional development improves the organization as a whole. We encourage you to go to conferences or purchase those pricey O'Reilly books - and we’ll give you a budget each year to do it.
As cliche as it may sound, every day is completely different from the next. We have a general framework for what our day looks like and the majority of it will be spent with your pair:
9:06 AM - Office-wide stand-up to build office cohesion and start the day off together.
9:10 AM - Team standup - discuss any blockers, choose pairs, maybe even tell a joke.
9:30-12:30 PM - Start pairing, tackle an open Backlog issue!
12:30-1:30 PM - Lunch! Enjoy food at some of the local markets, run an errand, or join a club.
1:31-6:00 PM - Get back with your pair and start an acceptance test for a big feature.
While that schedule does look busy, don’t worry - we take ample breaks throughout the day. Play a game of ping pong, or chat with co-workers in the fully stocked kitchen. Sustainable pace is held in high regard. We know there is a life outside of work, we want you to be able to spend time with family and friends.
As a Senior Software Engineer you will be:
- Experienced in Golang / Ruby / Rails development, with an ability to take a deep dive in the implementation aspects.
- Contributing to the continued evolution of our Software Development Processes
- Delivering agreed software development tasks from the relevant product roadmaps
- Meeting project commitments by providing accurate estimates of all assigned project work and quickly informing PM of any adjustments to delivery times.
- Contributing to our definition of Quality Software that each software delivery is measured against.
- Identifying codebase and architecture refactoring necessary to drive continual improvement in the application.
- Developing an awareness and knowledge of industry best practices in software design, construction and delivery so these can be discussed / shared with the team and used to drive SDLC evolution.
- Mentoring junior members of the development team
- Adopting the agreed software development tools and practices of the team.
- Acting as an escalation point when required for Customer Services / Operations team on specific areas of expertise.
- Supporting a DevOps approach where the collaboration with the Operations team is essential and the delivery from Development includes everything required for the operations team to deploy and operate the software.
- Coding new developments and / or enhancements
- Design of applications, systems or processes
- Co-ordinating team or release activities
- Responsible for defining, developing, and evolving software in a fast paced and agile development environment using the latest software development methods and infrastructure.
- Support impact assessment and decision related to technology choices, design /architectural considerations and implementation strategy.
- Expert in core data structures as well as algorithms and has the ability to implement them using language of choice when necessary.
- Apply principles of SDLC and methodologies like Lean / Agile / XP, CI, Software and Product Security, Scalability, Documentation Practices, refactoring and Testing Techniques.
- Development of Unix scripts.
- Drive continuous improvement in the quality and cadence of releases.
Required Skills / Experience
- PHD in Computer Science / Mathematics / Science or related field
- Worked with large Go/Ruby/Rails codebases
- Used Test Driven Development (TDD) extensively
- Ability to dive into a large polyglot codebase and contribute as you learn
- Being okay with the uncomfortable feeling that comes from learning new things
- Interest in exploring new programming paradigms, languages, and patterns
- Demonstrable ability to research problems and break them into discrete parts
- Operations or Systems Administration experience, particularly on UNIX
- Worked in a pair programming environment
- Contributed to an open source project
- On-call experience with production grade systems
- Has mentored others in a professional setting
- Cloud Foundry engineers can participate in an on-call rotation with their team to support software they work on.