Responsibilities:
- Solve complex problems, from start to finish
- Work with product managers, technical leads and engineering managers to understand and define product requirements and roadmaps for high-level business and technical problems
- Under guidance, do high-level design, functional modelling, break-down of a module into tasks and provide accurate estimates
- Build Awesome tech
- Independently come up with low level designs
- Write modular, extensible, readable and performant code with high quality tests and documentation
- Understand and use existing systems efficiently, contributing to them where necessary
- Under guidance, ship high quality products with an eye on scale, reliability and engineering excellence
- See the impact and improve
- Work with broader stakeholders to track the impact of projects/features and proactively iterate to improve them
- Also participate in sprint planning, and help our team get better in execution.
As a Software Engineer you must:
- Be passionate and a fast learner
- Have curiosity about how things work, and a strong desire to solving complex and interesting real-world problems
- Have worked or be very passionate to work in a startup environment with high levels of ownership and accountability
- Have a go-getter attitude that reflects in energy and intent behind assigned tasks. Also be proactive and hungry for continuous
- improvements and passionately work in a collaborative environment.
- Thrive on learning new technologies and don’t believe in one-size-fits-all solutions. Should be able to adapt easily to meet the needs of our massive growth and rapidly evolving business environment.
- Be a team player
- Are a strong communicator who can explain complex technical concepts to product managers, designers, support and other engineers.
- Are an open communicator who shares thoughts and opinions frequently, listens intently and takes constructive feedback.
- Believe strongly that you can achieve more on a team – that the whole is greater than the sum of its parts.
- You enjoy helping onboard new team members, mentoring, and teaching. Have strong analytical, coding, and debugging abilities.
- Possess strong CS fundamentals – Algorithms, Databases, Networking and Distributed systems. Should also have good knowledge and preferably some working experience with multi-threading and concurrency programming
- Have a very good programming experience in at least one general programming language (e.g. Python, Java, GoLang, Ruby) & tech stack to write maintainable, scalable, unit-tested code. Should have a huge passion to design intuitive modules and class-level interfaces
- Have a working knowledge of relational databases (e.g. MySQL, Postgres) and theoretical knowledge of NoSQL databases (e.g. Redis, Elasticsearch, HBase)
We maintain a stack that is very robust, flexible, and scalable to easily support all business use-cases in the near future.
Programming language – Python with
- Django as the framework for web application development
- Zappa as the framework for serverless application development
Datastore
- Persistent – PostgreSQL hosted on AWS RDS
- Transient / Caching – Redis hosted on AWS ElastiCache
- Messaging Queue: AWS SQS
Apply for this position
Join the Crewscale Community: https://app.crewscale.com/candidate/signup