Senior Software Engineer
Description
We are looking for a Back-End Web Developer responsible for managing the interchange of data between the server and the users. Your primary focus will be development of all server-side logic, definition and maintenance of the central database, and ensuring high performance and responsiveness to requests from the Mobile Apps. We work in a fast moving environment, and we build our team to be autonomous, able to deploy their own code, and solve their own problems.
We have split our infrastructure into microservices to divide responsibilities and allow autonomy in language choices. While not a requirement for this job, a healthy curiosity of devops concepts such as infrastructure as code, containerization and continuous delivery is welcomed, and we always encourage cross functional engineers to get out of their comfort zones and into new technologies & disciplines.
You will be working with a small, but highly technical team. We have 250k users and work to ensure continuous uptime, and constant improvement. We train and deploy new machine learning models regularly and subscribe to data driven decision making, you will not be just an implementer, but a valued opinion at the table.
Responsibilities
Build robust and scalable software in Python
Design and create services and system architecture for your projects, and contribute to existing infrastructure
Help improve our code quality through writing unit tests, automation and performing code reviews
Participate in brainstorming sessions and contribute ideas to our technology, algorithms and products
Dive into difficult problems and successfully deliver results on schedule
At least 4 years of recent hands-on coding and software design
Degree in engineering preferred, but significant work that can be shared will be accepted
Experience with Python, and the willingness to learn new technologies (experience with other object-oriented languages is okay too, but our backend code is mainly written in Python, so you should be able to get up-to-speed on at least one of them quickly)
- Experience with Linux/Unix and scripting languages
- Java/Android development experience a bonus
A track record of projects completed on time – you are a flawless executor, not a procrastinator
Solid OOP and software design knowledge – you should know how to create software that’s extensible, reusable and meets desired architectural objectives
You’re so much fun to work with, that if you were working on the weekend, we’d want to join you.
