Senior Software Engineer - Core Services (L5)
Reports to: Engineering Manager, Core Services
Who we are
Runa is changing the way people work in Latin America. The first step in that mission was to create an automated payroll product for the 17.5MM SMBs that rely on Excel. Moving forward, Runa will expand its product offering to include an ecosystem of financial services and benefits that will improve how companies operate and how employees work. With a recent valuation of $75MM, Runa is backed by Ribbit Capital, Salesforce Ventures, and Y-Combinator.
As Senior Software Engineer, you will work on an agile, cross-functional squad, to scope, design, and build maintainable, scalable, low-latency, resilient and efficient backend applications and APIs. You will code, create, and review pull requests daily. You will partner with Tech Lead, Delivery Lead, and the Product Lead in the planning and execution of your squad roadmap focused on delivering continuous value in HR and payroll software areas.
Who you are
As our Senior Software Engineer in Core Services, you are an experienced backend software engineer in Nodejs, Typescript, and distributed backend applications and APIs using SQL or NoSQL databases.
You have a thorough understanding of the options and tools available for Nodejs to create unit tests, integrate with databases, and implement backend APIs. You are a passionate technologist with the discipline to start and finish projects.
You care about software quality and know best practices such as SOLID, design patterns, refactoring, TDD, and others. You are a great communicator, are actively seeking growth opportunities, and enjoy working in a team.
- Write clean, efficient, performant, scalable, low-latency, maintainable, and secure code to build backend applications in sprint dev cycles.
- Help to define and improve our internal standards for style, maintainability, and best practices for a high-scale backend development. Maintain and advocate for these standards through code review.
- You'll help improve the overall experience of our product by improving the quality of the backend features both in your group and features that benefit other groups.
- Consistently ship moderately sized features and improvements with minimal guidance and support from other team members. Collaborate with the team on larger projects.
- You’ll work with the delivery lead, product lead, tech lead, and other stakeholders (engineers, UX, frontends, etc.) to iterate on new features within the Runa products.
- Code, create and review pull requests and provide feedback to improve our codebase and raise the technical bar of our team.
- Mentor other software engineers.
- Remain current on new technologies, evaluate and make recommendations as necessary.
- Actively contribute in refinements, plannings, estimations and other team's ceremonies.
- Determine root causes for complex software issues, write post-mortem when needed, and implement practical, efficient, and permanent technical solutions.
- Interview, and onboarding new software engineers.
- Bachelor’s degree in Computer Science or equivalent work experience (10 years)
- 8+ years of experience working as a software engineer, 2+ years as a senior engineer.
- Mid to senior-level knowledge (2+ experience) with Typescript, Nodejs and its popular frameworks and libraries to execute common tasks like build APIs, implement unit tests, integrate with databases, and others.
- Experience with RESTful APIs.
- Ability to create clean, modern, testable, well-documented code.
- 2+ years experience designing, programming, and implementing large distributed, high-performance and scalable applications, microservices or APIs.
- 3+ years experience with AWS and relational and/or nosql databases.
- English fluency, verbal and written.
- Experience with agile processes, primarily Scrum, and agile development best practices (pair programming, refactoring, CI/CD, etc).
- Personality traits: Professional, problem solver, proactive, passionate, team player, good communicator.
- Proficiency with RoR or C# (.Net Core).
- Experience with another programming language other than Typescript.
- Experience with NestJS, Postgres, NoSQL databases, API gateways, authentication and authorization solutions, terraform (or related).
- Experience developing scalable public APIs.
- Open to learning and implementing best practices in new languages in a polyglot environment.
- Experience with queuing / event systems (RabbitMQ, SQS, SNS, Kafka, etc).
- Experience deploying large scale systems.
- Familiar with tools such as CircleCI, CodeClimate, Git/GitHub, DataDog, PagerDuty, Sentry, Slack, Jira, and Confluence.