Technical stack at Mammoth
We are on a python based web framework called Pyramid. Bull work however is handled by Celery on a postgresql database. We spend a lot of time talking about the product, use cases, customer work flows, design thoughts, reuse, scale and auto scale, logging infrastructure, debugging customer issues, concurrency, idempotency, transactions, testing, efficient code, practice of programming, design patterns, platform safety, attacks, security, automation, seamless migrations, zero downtimes, continuous deployments etc. Design maturity is essential at Mammoth. Having spent 6 years in building an infrastructure that we think is pretty good, every next thing we do is looked closely with thoughts on lasting us for next 10 years.
Who are you
- You are known for your focus on product quality
- You are a good listener. You understand the meaning of empathy.
- You have spent some years in your life building a complete web app. You have been a thorough coder for a significant part of your work life.
- You have built products that have been design challenged and improved.
- You have provided thought leadership to engineering team around you
- You have enjoyed debugging some intractable problems. Your experience makes you foresee issues, not usually known to the team.
- You have solved problems on performance, scale, concurrency etc.
- You have an ability to ask useful exploratory questions when building a new design. Your questions end up making the design simple in parts and able to handle complexity in use cases.
If that sounds like this is you and you are looking to take up more challenges, We are looking for Senior Engineers to help us grow our team.
The job involves the following responsibilities:
- Collaboratively build robust and scalable software.
- Improve our code quality through writing unit tests, automation and performing code reviews.
- Get to work on performance, scalability, concurrency and many other design challenges.
- Participate in brainstorming sessions and contribute ideas to our technology, algorithms and products. Participate in design and architecture discussions.
- Work with the design team to understand end-user requirements, formulate use cases, and then translate that into a pragmatic and effective technical solution
- Dive into difficult problems and successfully deliver quality results