Catchafire is a full service, on-demand solution designed to address the wide-ranging and complex needs of nonprofits by connecting them with talented pro bono professionals. We partner with major funders (read more here) to provide unlimited access to Catchafire to tens of thousands of nonprofits ready to invest in the growth of their organizations and the impact of their service.
Catchafire is home to a diverse and vibrant community of volunteers, partners, nonprofits, and staff with the drive to do something that matters and insist that we can use our talents in service of our shared humanity. Here are some ways to get to know us better:
About the Role and the Department
The Catchafire platform team is a global agile team that develops world-class products for an audience of passionate volunteers and inspiring nonprofits.
- Self starter: You are capable of taking charge on a project. You are always looking for new technologies to explore and new ways to improve processes. You lead by example.
- Strategic thinker: You are not satisfied accepting unstated assumptions or taking direction without critical evaluation. You work hard to understand the underlying purpose of each assignment and the rationale behind existing processes. You have opinions and are not shy about expressing them.
- Communicator: You communicate clearly and concisely. You have strong opinions loosely held and contribute your thoughts to the group. You argue your positions in an environment that encourages opposing viewpoints.
- Craftsperson: You are passionate about your code: its readability, quality, documentation and maintainability.
- Pragmatic perfectionist: Though you are driven to improve subpar code and systems, you nevertheless maintain productivity and ship in challenging environments. You prioritize the right improvements at the right time.
- Humility: You like challenges and are happy to be proven wrong. You welcome every opportunity to teach or learn from others. You are eager to achieve and work at all levels of responsibility.
Responsibilities of the Senior Software Engineer
- Engage in all aspects of software development, including architecture, documentation, testing, deployment, maintenance, and bug-fixing, primarily using Python, Django, and MySQL
- Review & shape product specs, suggest changes to optimize for ROI, identify edge cases, and improve UX
- Model engineering excellence & provide technical & project management guidance to other Tech Team members
- Apply modern DevOps practices across development, QA, and production systems
- Identify and champion opportunities for improvement, judiciously balancing improvements to our infrastructure & code base against feature development
Experience / Background
In order to be successful in this role you must meet most, if not all, of the following needs:
- 7+ years coding Python-based consumer-facing web applications
- Django web framework
- Writing & optimizing SQL queries
- Working with a remote-first Tech Team in an agile development environment
- Leading complex projects involving cross-functional teams
- Administering & configuring Ubuntu servers
It would also be helpful if you have experience with:
- Working in the social good sector
- Modernizing legacy components of larger systems
- Developing with IT automation tools like Jenkins, Docker, Ansible, etc