Senior Software Engineer (Full stack)

Oportun
Summary
Join Oportun's Foundation & Shared Libraries engineering team as a Senior Software Engineer. You will design, develop, and maintain sophisticated software solutions, contributing to architectural decisions and mentoring junior engineers. Collaborate with cross-functional teams to deliver high-quality, scalable software. Lead technology efforts from requirements gathering to product delivery for large initiatives. This role requires a strong understanding of business domains and expertise in software development. You will actively contribute to the end-to-end delivery of complex software applications, ensuring adherence to best practices and high overall quality standards. Take ownership of customer issues and lead multiple features and projects.
Requirements
- Typically requires a minimum 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
- Extensive proficiency in one or more programming languages, such as Java or similar
- Strong understanding of data structures, algorithms, and software design principles
- Solid grasp of version control systems, such as Github
- Proven ability to mentor and lead other engineers, fostering a collaborative and supportive work environment
- Exceptional problem-solving and analytical skills, with a passion for tackling complex technical and business problems/challenges
- Excellent communication and interpersonal abilities, with a track record of effectively collaborating in a team-oriented environment
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
Preferred Qualifications
- Demonstrated experience in web application development, RESTful APIs, and frontend technologies (e.g., HTML, CSS, JavaScript) is advantageous
- Proficiency in working with relational databases and SQL is a plus
- Experience with cloud technologies, preferably AWS or Azure, is highly desirable
- Knowledge on docker and Kubernetes
- CI/CD process exposure
- Good to have knowledge on automation test frameworks like Karate framework, Web driver I/O, Jira workflow
Share this job:
Similar Remote Jobs
