At NationBuilder we create software for leaders. We work with advocacy groups, nonprofit organizations, political candidates and parties, community organizers, and anyone else trying to make something happen in the world. Our customers come in all shapes and sizes, from small town organizers trying to win their school board election, to the largest political parties, candidates, and NGOs around the world. To learn more about NationBuilder, read about our mission, beliefs and values.
We believe the best products are built by teams rich in diversity and aligned in mission and values. That means creating an authentic culture where people thrive and grow. It means building a team where different perspectives are valued through real listening, and assumptions are challenged through healthy and necessary conflict. It means building a team diverse across race and gender. It means constantly striving to build the best and to be the best.
Our engineering team dedicates itself to continuous learning and improvement. We optimize for rapid, agile development with engineers deploying to production many times a day. To find and build the best solutions, we expect our teams to iterate. From the introduction of minimum viable products to the release of more mature features, Engineers must actively seek feedback from customers and internal stakeholders, gather data, and continually improve both the product and development process.
As a Senior Software Engineer you will build and maintain the software powering NationBuilder, while acting as a role model for the engineers around you. You contribute to the effectiveness of the team through constant collaboration, efficient use of available resources, and writing software that is easy to reason about and modify in the future. You don’t just solve the problem you were asked to solve, you think critically to understand the broader context, and you have the experience to identify the best solution, technology or process. You are capable of breaking down and implementing complex features. You are able to investigate difficult and deeply technical issues while setting and following standards of quality for software development, testing, and documentation.
The Platform team’s mission is to enable all engineers to run wild and free; in service of that, we take a proactive stance on removing roadblocks other engineering teams encounter. Looking ahead at some of the potential things you’ll be at the forefront of:
- Innovating and moving the backbone of our platform forward
- Driving creative approaches in how we instrument and maintain key performance metrics
- Have the opportunity to innovate on future job patterns for our background processing
- Ensure we stay on edge of Ruby on Rails through a continuous upgrade process
You:
- Are always interested in learning new things.
- Get excited when you have the chance to pair with other engineers.
- Practice test-driven development and judicious refactoring.
- Enjoy being responsive to customer feedback.
- Are a pragmatic problem solver, knowing how to find the middle ground between “perfect, but takes forever to code” and “fixes it now, but nobody will ever be able to understand what I did.”
- Clearly communicate about technical solutions with both engineering and non-engineering stakeholders.
- Work well in small teams with a clear mission.
- Have the insight to know what’s important and the dedication to get it done.
- Are comfortable with ruthless prioritization required to make sure we are always working on the most important thing
- Bring at least 3-5 years of professional software engineering experience.
- Have insight into how things can go wrong and you actively work to prevent that from happening.
Skills required:
You are enthusiastic about working with Ruby on Rails, have a strong technical background, and professional experience with Rails. We value the willingness to learn our technologies and our environment. An open and disciplined approach to your work is as important to us as years of experience with any of the technologies in our stack.
We use Ruby, Rails, PostgreSQL, MongoDB, Redis, HTML/CSS/SCSS, and JavaScript (React/Redux/Bootstrap).