At A Glance This is a mid-level role on our Technology Solutions team. The position's objective is to develop, maintain and modernize the agency's internal management platforms to support media, creative and client services workflows. This role will work closely with our Principal Engineer, Media Systems, with an initial focus on maintaining and evolving a legacy .NET WPF desktop application backed by Microsoft SQL Server, and an eventual focus on supporting and extending our newer React/TypeScript web platform and GraphQL API and other projects. While eventually a largely remote role, this person is initially expected to work from our Portland office with our staff engineer and other members of the team a few days per week or month for onboarding purposes. What does a Software Developer do at Rain? Maintain and enhance agency management platforms to ensure reliable support for media buying, campaign management and client reporting. Develop, debug and ship features and fixes in the legacy .NET WPF desktop application to support day-to-day agency operations. Triage and resolve production issues, working with Media Operations and Client Services to reproduce problems and deploy timely fixes. Author and optimize T-SQL queries, stored procedures and database routines to ensure data integrity and performant reporting for campaign and finance workflows. Perform code reviews, refactor legacy code where appropriate, and follow agency coding standards to keep the platform stable and maintainable. Maintain accurate technical documentation for application behavior, database schemas and troubleshooting steps to support internal users and future development. Partner with business stakeholders (media planners, account teams, creative, finance) to translate agency workflows into software capabilities that improve efficiency and accuracy. Work with cross-functional teams to validate features in user acceptance testing and incorporate feedback into iterative releases. Provide responsive support and training to internal users, creating quick reference guides or walkthroughs for new or changed functionality. Collaborate with Client Services, Media Planners and Ad Ops to gather requirements, clarify acceptance criteria and prioritize enhancements that impact campaign delivery and client reporting. Build and modify UI components and back-end logic to support agency workflows such as order entry, inventory tracking, invoicing and campaign reconciliation. Create repeatable, reliable queries and reports that provide business teams with actionable insights (campaign pacing, spend reconciliation, vendor billing). Contribute to platform modernization, automation and engineering best practices to reduce technical debt and enable future web-first capabilities. Participate in efforts to modernize or migrate functionality from the legacy desktop application to the TypeScript/React web platform and GraphQL API. Implement and improve automated testing, CI/CD pipelines and deployment processes to increase release-reliability and speed. Apply performance profiling and database tuning to ensure both desktop and web platforms meet operational SLAs for responsiveness and scale. Engage in architecture and design discussions with the Principal Engineer to propose pragmatic refactors and phased migration approaches. Share knowledge with management, other engineers, and cross-functional teammates on codebase, database design, and debugging techniques.
Stand Out From the Crowd
Upload your resume and get instant feedback on how well it matches this job.
Job Type
Full-time
Career Level
Mid Level
Number of Employees
1-10 employees