What you will do
- High-level system design: definition of the server-side system's modules/services and how they interact with users (both web-based and mobile) as well as with each other.
- Integration of user-facing elements developed by a front-end and mobile application developers with server-side logic.
- Optimization of the system software for performance and scalability, e.g., use of caching, choice between single (event-based) or multi-threaded implementations.
- Design and implementation of data storage solutions, e.g., selection between Relational or NoSQL technologies.
- Ability to explain the technical trade-offs of different approaches, including estimating how long each one will take to build.
- Build reusable code and libraries for future use.
- Learn and introduce new technologies (programming languages, frameworks, cloud-based services) to our systems as technologies evolve.
What we are looking for:
- BSc/MSc in Computer Science or Software Development
- 4+ years of experience as a Python Backend Developer
- Proven record of products based on Python successfully launched and in production
- Expertise in Database Technologies like Google Cloud Datastore, MySQL, Google BigQuery will be a huge plus.
- Solid foundations in Computer Science principles including Algorithms, Data Structures, and Databases.
- Deep understanding of Computer Systems Organization, Operating Systems, Computer Networks and - Distributed Systems in order to understand how theory has direct impact in every-day software development choices, for example single vs. multi-threaded approaches, on-line vs. off-line computations, push vs. pull messaging among multiple modules/services.
- Familiarity with text-based data representation technologies such as JSON, XML and CSV. Binary formats (e.g., Google Protocol Buffers) will be considered a plus.
- Solid experience in the integration of multiple data sources and databases into one system.
- Extensive experience in implementing automated testing platforms and unit tests.
- Extensive experience with code versioning tools, preferably Git.
- Good knowledge of English