Senior Software Engineer
Senior Software Engineer - Customer Acquisition
Company Description
Technology @ UW
The company’s products may be quite “non-digital” in nature, but its strategy is not. UW’s success is predicated on the success of its technology platform, which is largely cloud-native and distinctively modern – especially by the standards of most “utility providers” in the market. Built almost completely in-house using standard (though team-specific) agile development practices, its operational IT systems are based primarily on open-source solutions and state of the art tech. Internal software systems employ event-driven architectures more often than not, and are composed predominantly of distributed microservices written in Go and connected using asynchronous message passing. Event sourcing is the default choice for backend system design, with business events modelled using protobuf and shared via pub/sub systems (mainly Kafka). Frontend systems tend to be built using React (in either Typescript or modern Javascript), while synchronous APIs are exposed via GraphQL or, for high-performance, purely internal systems, GRPC. Aside from legacy systems that have yet to be replaced, virtually everything runs in Kubernetes clusters hosted both on-prem and in the cloud.
How we see ourselves in Technology:
- We care about how we deliver and who we work with – work should be rewarding personally, and not just in terms of a paycheck
- We enjoy working on interesting problems with smart people and know that if it was easy, it wouldn't be fun
- We deliver quickly by keeping processes light and enabling autonomy
- We’ve never believed in ivory tower leadership; managers should be hands-on and roll up their sleeves when needed to mentor and support
- We encourage experimentation, don’t appreciate egos, and believe in (friendly) debate, collaboration and learning
- We operate what we build – which means reliability is key and devops is part of every engineer’s job description
- With 300+ people in Tech, as a team we’re very much backend-heavy in terms of engineering fire power; but with UX, Product and Data now growing quickly we’re in the right place to push on and hire people who will take ownership of how we define and deliver best-in-class experiences to our customers
Engineering at UW:
- Our philosophy revolves around getting things done. We deliver with small, fully autonomous teams that have real ownership of their products using a cutting edge stack in a best-idea-wins meritocracy.
- We use the best tool for the job. Go and React are our bread and butter but nothing is stopping you from reaching for something else if it does it better.
- We deploy to Kubernetes across AWS and GCP with some help from Terraform. We run a mature event sourced microservice architecture using Kafka, NATS and GRPC.
- As much as is possible we code in the open on GitHub. If it can be open- sourced, it shall. If we can submit a PR instead of building our own, we will.
- Getting your hands dirty from the top to the bottom of the stack isn’t a promise to be broken, it’s a requirement. If you’re only good at parts of it that’s okay, we’ll quickly make you good at all of it.
Job Description
About the Team and the Role
The Customer Acquisition team owns the UI and suite of backend services that power the Utility Warehouse customer signup journey, the mission-critical sales funnel that will enable the company to meet its goal of reaching over a million households with its unique and market-beating multi-service product in the next few years. The team is hiring for a full-stack engineer capable of maintaining, improving and extending a sizable collection of frontend and API components built with React and Javascript/Typescript in the browser, and NodeJS and Golang on the server. The successful candidate will be able to juggle a mix of maintenance and new feature/product development, and be enthusiastic about both extending the company’s conversion optimisation capabilities via experimentation and A/B testing, and managing the complexity of a sales journey that includes broadband internet, mobile phone service, energy and insurance.
The Customer Acquisition team is part of the Growth group – which is responsible for all engineering development related to customer growth – within UW’s engineering department.
In this role you can expect to
-Senior Software Engineers (SSEs) are senior members of the engineering team. They are experts technically, and can reliably take ownership of their products/services. They deliver solid and maintainable software, understand company dynamics and good process, and help other engineers learn and improve.
- SSEs spend less time on pure project output, instead focussing on the overall technical direction of their team. As part of this, SSEs aim to continually improve their team's quality in code, testing, operations, toolset, and processes. They take charge of large projects, breaking complex problems into smaller tasks and assigning these to their team's engineers.
- On the technical side, SSEs play a leading role in all parts of the software development life cycle. They drive requirement workshops and facilitate ceremonies, and have a strong understanding of UW's systems and technology. They are experienced problem solvers, able to tackle roadblocks faced by junior engineers. They are comfortable and competent at fixing critical and time-sensitive issues.
- SSEs are responsible for creating a positive culture within their team. They also help develop junior engineers, for example by explaining what they're doing when stepping in to fix an issue, or by arranging RCA meetings after team-wide incidents. Project management, leadership, teamwork and interpersonal skills are essential for an SSE.
Responsibilities
- Are comfortable diving into an area that they’re not familiar with and making changes.
- Keep simplicity at the core of their workflow, reducing unnecessary complexity.
- Evaluate and propose multiple approaches to a problem, understanding the wider business implications of each.
- Take a complex user story, break it down into sub-tasks, and complete them with minimal oversight.
- Identify and communicate project risks to their team and stakeholders.
- Set, monitor and uphold standards for their team's workflow, documentation, security and quality of code.
- Create and advocate for the technical roadmap of their team and area.
- Run technical team meetings and drive them to actionable outcomes.
- Review pull requests from engineers of a wide range of skills and abilities.
- Mentor and provide guidance to junior engineers.
Additional Information
You’ll love working here if you:
- Enjoy and have experience of working in a consumer facing, highly visible, delivery-focused and fast paced environment
- Are highly organised, professional and detail oriented
- Are also pragmatic with an ability to see commercial, customer centric solutions
- Obsess over the details but also love to paint a bigger picture
- Know your strengths, and recognise there’s always more to learn
- Appreciate and enjoy the challenges of working in a regulatory ecosystem
- Are an empathetic team player who collaborates closely with others
- Embrace iteration and are comfortable with change
- Are motivated and ambitious, both for yourself and the business you work for
- If your interests span technologies from front end to linux containers you will find plenty to do here - if you rather concentrate on architecture or React.js then there's plenty of that too.
What are we offering?
- Competitive Salary, Benefits and stock options in a growing FTSE250 business 📈
- 25 days holiday + bank holidays✈️
- Flexible working, we’ve got fully remote teams, onsite, early risers and late night grinders, for us it matters what we’re working on more than where. 👩🏽💻
- Work / Life balance that actually encourages you to switch off
- Opt in to subsidised private healthcare with our company Bupa scheme. 🚑
- Mentors and Teachers a plenty, with so many brilliant minds in one place there is always someone you can lean on for support and guidance. 👩🏻🏫🙋🏻♂️🤷🏾♂️
- Choose your own tools, whether its hardware of software, you choose the tools you need to get your job done🖥🛠🧰
- Discount on our services⚡️💡
- Feeling stressed? We have an employee assistance helpline and company nurse onsite to help look after our teams physical and mental health.☎️👩🏽⚕️
- Contributory pension that gets better with time, starting at 4% over time you can get up to 10%⏱
- Put something aside for a rainy day with our Save as you earn share purchase scheme. ☔️
About Utility Warehouse
We’re a bunch of great people working together, solving problems and having fun. Together, we strive to find solutions to help the great people around us get on with the things that really matter in life.
How? It’s simple, we take the headache out of essential home services by providing them all in one place – energy, broadband, mobile, and even insurance. That’s one provider, one account, one bill, and lots of savings.We’re a truly unique FTSE 250 company with a business model that has real social impact at the heart of it. Being a part of the UW community you’ll join a working environment like no other - one where everyone matters - be it our customers, our partners or you, our people.
We do love open source and are actively encouraging contributions back to the community. You can check our labs where we maintain fully supported open source projects at https://github.com/uw-labs as well as some coded in the open repositories at https://github.com/utilitywarehouse
We’ve got the culture and focus of the earliest stage startups with the resources and strength of an extremely profitable and loved brand. Our eyes are on meteoric growth over the next few years. All the pieces to make it happen are here, we need you to help us put them together.
At Utility Warehouse, we are committed to hiring and cultivating a diverse team. If you are on the fence about whether you would be successful working with us, please apply anyway!
We provide equal opportunities, a diverse and inclusive work environment, and fairness for everyone. You are welcome to apply no matter your age, disability, gender, marriage or civil partnership status, pregnancy and maternity status, race, religion or belief, or sexual orientation.
Please note, if you are applying for a role which involves having access to personal data, you will be subject to a background check. Where checks are unsatisfactory or incomplete and/or a failure to reveal information relating to convictions that you are required to identify as part of the background checks, could lead to withdrawal of an offer of employment.