Principal Software Engineer (SOA)
NOTE: This is fully remote position however, we will only consider applicants who are currently located in one of the European time zones.
At Labster we are dedicated to empowering the next generation of scientists to change the world. Our mission is to develop fully interactive software that makes learning both engaging and effective, and to make it accessible to as many science students as possible (see short trailer here).
Since 2012, our simulations were played over 1000000 times and each semester 280 universities and institutions around the globe are using them to enhance their teaching programs.
Labster product teams are approximately 30+ team members - software engineers, 3D and 2D artists, SQAs, product managers and simulation directors located all around the world, between Copenhagen and Bali.
As a software engineer at Labster you will join one of our cross-functional, distributed and truly international teams (we are now more than 18+ nationalities) to work on building VR simulations, simulation editing tools, advanced learning analytics dashboards or implementing micro-service architecture etc.
We govern ourselves by using a flat-hierarchy system called Holacracy that focuses on roles, collaboration and distributed leadership. We believe in flexible working hours and a good work-life balance, and while we love to achieve great things via concentrated work, it’s incredibly important for us to have happy and engaged team members.
As a Principal Software Engineer you will play a crucial role in one of our flagships projects of transforming our monolithic architecture into architecture based on microservices. You will be working closely with our web team, acting as an expert in the micro-services domain, actively propose architectural solutions and execute on them in a collaboration with our team members.
- Design and build scalable, high-volume web applications focused on functionality, security and maintainability.
- Be the company's engineering authority on micro-services, container architectures and related technologies.
- Educate and inspire engineering teams across the company in topics relating to micro-services.
- Take project ideas from design to implementation.
- Assume leadership and responsibility for the technical tasks and deliverables for a particular project.
- Optimize the performance of applications data ingestion and data processing pipelines.
- Build high-throughput and low latency micro-services.
- Develop systems that are highly scalable, but easy to maintain.
- Collaborate with colleagues on design and architecture decisions.
- Collaborate with colleagues on the creation of Continuous Integration/Continuous Deployment pipelines
- Engineer, test, deploy, and maintain company multi-tenant applications using web and cloud-based technology stack.
- Follows established coding standards and prescribed processes, both individually and at a team level
- Ensure code reviews are held for the project and follow development processes and tool utilization (regular pull-requests, unit, and integration test writing, etc.) are followed.
- Contributes to the engineering team's culture of high code quality. You will be accountable for the quality of code that is delivered to QA and production and must ensure that appropriate code reviews and unit testing are adequately performed.
- Seeks ways to meet the underlying business requirements with cost effective, highly re-usable patterns and component.
- Assists Project Manager in project planning and estimating of project score items.
- Hands-on experience and expert knowledge of full software development life cycle of microservices architectures; including tools, best practices, continuous deployment, dependency/complexity management, scale/performance tuning, monitoring, resiliency, etc.
- Architect full-stack life cycle of microservices, including back-end, front-end, DevOps
- Expert-level understanding of the Python programming language, related optimization techniques, and design patterns
- Very effective communication skills (oral and written) are a must
- Experience working in an Agile development environment
- Able to work independently with minimum supervision
- Experience and/or willingness to work in a remote/distributed team
What do we offer?
- Friendly and productive work environment with fun, multinational, smart and open-minded people
- Opportunity to work with the newest technologies in a product company
- A lot of freedom within your scope of work
- Opportunity to work from any European location or on a fully remote basis
- Competitive salary based on your qualifications and experience
- Company warrants as a part of your remuneration
- Budget for personal and professional development
How to Apply
Send copy of your resume to email@example.com