Work you’ll do
- Participate in all phases of the software development life cycle
- Help design and implement functional requirements
- Build efficient back-end features in Python/C#/Java
- Integrate front-end components into applications
- Manage testing and bug fixes
- Prepare technical documentation
- Collaborate with UX/UI designers to implement design into the code
- Coach junior team members
Required:
- 5 years of experience writing microservices in C# or Python
- 1-2 years of experience working with .net Core preferably cross-platform.
- Experience with major public cloud offerings and how to solution designs that are built around these technologies (AWS, Azure, Google Cloud Platform, and similar)
- 3 years of relevant experience data management platforms including relational and non-relational data engines (MS SQL, MySQL, PostgreSQL, Amazon Redshift, MongoDB, HDFS, Snowflake, Big Query, and similar)
- 3 years of relevant experience in highly available, scale-able, and resilient architectures
Preferred:
- Awareness of wider micro-service ecosystem - 3rd party libraries, tooling, etc.
- Experience in deploying and maintaining enterprise-scale applications in production using CI/CD pipelines.
- TTD mindset with experience of automated testing frameworks. Experience implementing tools like Junit, Cucumber and Selenium
- Advanced understanding of multi-threading applications against SQL and No-SQL database engines
- Experience with low-latency, high-throughput web-services (1,000s of requests per second)
- Experience with large dataset’s and memory management (Over 1 billion records)
- Core knowledge of Python standard library and Pythonic conventions (PEP8, etc.)
- Successful skillsets for this role are:
- Eager to work with fellow developers, user experience designers, and product owners
- Lead by example, sharing freely and emphasizing transparency in decision making
- Build your teams' collective ability via collaborative techniques like pair-programming and whiteboard design sessions
- Continuously learn and improve, and constantly explore new languages, tools, and techniques
- Treat challenges as opportunities to advance your understanding
- You are an early adopter, and an inquisitive, critical thinker, always seeking to expand your knowledge and experience
- You know that many heads and a diversity of opinions make the best decisions