Engineering Business Unit Overview:
The charter for Engineering group at Oportun is to be the world-class engineering force behind our innovative products. The group plays a vital role in designing, developing, and maintaining cutting-edge software solutions that power our mission and advance) our business. We strike a balance between leveraging leading tools and developing in-house solutions to create member experiences that empower their financial independence.
The talented engineers in this group are dedicated to delivering and maintaining performant, elegant, and intuitive systems to our business partners and retail members. Our platform combines service-oriented platform features with sophisticated user experience and is enabled through a best-in-class (and fun to use!) automated development infrastructure. We prove that FinTech is more fun, more challenging, and in our case, more rewarding as we build technology that changes our members’ lives.
Engineering at Oportun is responsible for high quality and scalable technical execution to achieve business goals and product vision. They ensure business continuity to members by effectively managing systems and services - overseeing technical architectures and system health. In addition, they are responsible for identifying and executing on the technical roadmap that enables product vision as well as fosters member & business growth in a scalable and efficient manner.
Position Overview:
As a Senior Software Engineer at Oportun, you will be a key member of our engineering team, responsible for designing, developing, and maintaining sophisticated software solutions in achieving the charter of the engineering group. Your mastery of a technical domain enables you to take up business problems and solve them with a technical solution. With your depth of expertise and leadership abilities, you will actively contribute to architectural decisions, mentor junior engineers, and collaborate closely with cross-functional teams to deliver high-quality, scalable software solutions that advance our impact in the market. This is a role where you will have the opportunity to take up responsibility in leading the technology effort – from technical requirements gathering to final successful delivery of the product - for large initiatives (cross-functional and multi-month long projects).
Responsibilities:
You actively contribute to the end-to-end delivery of complex software applications, ensuring adherence to best practices and high overall quality standards. You have a strong understanding of a business or system domain with sufficient knowledge & expertise around the appropriate metrics and trends. You collaborate closely with product managers, designers, and fellow engineers to understand business needs and translate them into effective software solutions. You provide technical leadership and expertise, guiding the team in making sound architectural decisions and solving challenging technical problems. Your solutions anticipate scale, reliability, monitoring, integration, and extensibility. You conduct code reviews and provide constructive feedback to ensure code quality, performance, and maintainability. You mentor and coach junior engineers, fostering a culture of continuous learning, growth, and technical excellence within the team. You play a significant role in the ongoing evolution and refinement of current tools and applications used by the team, and drive adoption of new practices within your team. You take ownership of (customer) issues, including initial troubleshooting, identification of root cause and issue escalation or resolution, while maintaining the overall reliability and performance of our systems. You set the benchmark for responsiveness and ownership and overall accountability of engineering systems. You independently drive and lead multiple features, contribute to (a) large project(s) and lead smaller projects. You can orchestrate work that spans multiples engineers within your team and keep all relevant stakeholders informed. You support your lead/EM about your work and that of the team, that they need to share with the stakeholders, including escalation of issues Qualifications: 6+ years of related experience with a Bachelor's degree; or a Master's degree with an equivalent combination of education and experience. Proven track record of delivering sophisticated software solutions with high quality. Experience in mobile app development with React Native. Strong proficiency in Node.js and backend development, including experience with RESTful APIs and web services. Experience with mobile development tools such as Android Studio, Xcode, and relevant debugging and testing tools. Strong understanding of JavaScript, CSS, and HTML. Experience with state management libraries like Redux or MobX. Familiarity with NoSQL databases (e.g., MongoDB) and SQL databases (e.g., MySQL, PostgreSQL). Experience with version control tools like Git. Understanding of mobile UI/UX best practices, including responsive design, animations, and navigation principles. Strong problem-solving skills, with a keen eye for detail and a passion for building great products. Excellent communication skills, with the ability to work effectively in a team-oriented environment. Write clean maintainable, and efficient code to ensure high-quality UI components and features Ability to quickly learn new systems/requirements, and create POCs and develop code. Proven ability to mentor and lead other engineers, fostering a collaborative and supportive work environment. Desired: Demonstrated experience in web application development, RESTful APIs, and frontend technologies HTML, CSS, Java Script, Angular Experience with cloud services (e.g., AWS, Firebase) and CI/CD pipelines for mobile applications. Experience in automation with Web Driver IO Willingness to work with iOS and Android technologies