The Role:
We are looking for an enthusiastic Software Engineer (Backend-Python), who adopts a hands-on approach and loves to build scalable, distributed and large web / mobile products. You would be responsible for designing the architecture, reviewing the code, building the technology and deploying web/mobile applications.
Responsibilities:
- Own the product development from
- Design and implementation of low-latency, high-availability, and performant
- Contribute to discussion on software
- Participate in code reviews, design reviews, SCRUM ceremonies, and troubleshooting to ensure uptime for live systems
Requirements:
- Bachelor's degree in a technology-related field from a premier
- Prior 2-7 years of experience in back-end development (Python/ Django/ Golang) in a start-up or a dynamic work
- Good exposure in writing and optimizing SQL for high-performance
- Understanding of asyncio and eventloop/ uvloop concepts. Knowledge of frameworks such as Quart/ Fastapi/ Starlette is
- Knowledge of AWS; Caching technologies like Redis, Memcache; ELK; mySQL Databases, etc.
- Strong understanding of System Design, Microservice Architecture, Kafka, Pub/Sub, Message queues, and in-memory data stores
- Customer oriented, responsive to changes, and able to multi-task in a fast-paced environment.
Similar jobs
Back End Developer
Job Description:
Location: Pune (Initially Remote due to COVID 19)
We are looking for an experienced Backend Developer to join the team in India and be instrumental in taking our products to the next level. In this role, you will be working in close collaboration with a team of highly empowered, experienced developers who are building a high-performance, highly scaled global platform.
About the Organisation:
- It provides a dynamic, fun workplace filled with passionate individuals. We are at the cutting edge of advertising technology and there is never a dull moment at work.
- We have a truly global footprint, with our headquarters in Singapore and offices in Australia, United States, Germany, United Kingdom, and India.
- You will gain work experience in a global environment. We speak over 20 different languages, from more than 16 different nationalities and over 42% of our staff are multilingual.
You will:
- conceive, build, and operate highly distributed systems deployed around the planet
- employ cutting-edge technologies and techniques in a rapidly evolving domain
- thrive in a progressive, environment which relies on communication and initiative rather than process to deliver at a high velocity
- have a "Product Owner" rather than a "Task Implementer" attitude
Candidate's Profile:
- Experience building systems involving messaging or event-driven architectures
- Deep technical understanding of Java or Go, and willing to work with both
- Strong handle on concurrency challenges and design solutions
- Strong buyer of Agile / Lean values
- Heavy emphasis on code testing and designing for test-ability
- Maturity and aptitude to operate in a high-freedom/high-responsibility environment
- Strong troubleshooting skills
- Experience with supporting and troubleshooting large systems
- Exposure to infrastructure automation tools such as Ansible
- Exposure to IAAS platforms such as AWS EC2, GCP, etc…
- Experience with Cassandra, Aerospike, or other NoSQL databases
Company and Founders
Egregore Labs (http://www.egregorelabs.com/" target="_blank">www.egregorelabs.com) is a financial software company founded in 2017 by Prashant Vijay (ISB, Tulane) & Hari Balaji (IIM Ahmedabad, IIT Madras) both of whom have spent over a decade each in Financial Services, with a majority of their experience at Goldman Sachs across New York, Hong Kong & Singapore in roles across Trading, Quant & Technology. More about the founders is available here and here
We operate at the intersection of Unstructured Data and Finance. We run multiple products, including Romulus (http://www.romulus.co/" target="_blank">www.romulus.co) and Robana (http://www.robana.ai/" target="_blank">www.robana.ai) - all our products work on the same underlying principles and set of technologies.
Ideal Background
- At least 2 years experience in back-end development in a fast-paced environment, working in Python
- Deep understanding of technologies used in web-deployed SaaS products, including Rest APIs
- Exposure to AWS, Azure, or other cloud providers
- Sound understanding of computer science principles
- Exposure to any of the following
- Financial services
- Natural Language Processing
- Robotic Process Automation
- Intelligent Document Processing
- Document Management and Repositories
Opportunity
We will share our workload as a team and we expect you to work on a broad range of tasks. Here’s are some of the things you might have to do on any given day:
- Developing APIs and endpoints for deployments of our product
- Infrastructure Development such as building databases, creating and maintaining automated jobs
- Build out the back-end to deploy and scale our product
- Build POCs for client deployments
- Integrate our products with 3rd party products/tools/services
- Document your code, write test cases, etc.
Skills
- Hands-on experience with Python (2+ years)
- Sound understanding of Postgres and NoSQL databases such as MongoDB
- Deep familiarity with UNIX, major cloud platforms (AWS, Azure), DevOps
- Understanding of databases, and related tools, paradigms
- A computer science education would be great, but other engineering disciplines are ok as well
Desirables
We are looking for a person who has :
- Resourcefulness- - we're looking for versatile developers who are good at figuring out what they need to use, learn, build, re-purpose to get the job done quickly and efficiently.
- Ownership- - We like to be directive and not prescriptive in our management. We- d love for you to take ownership of what you work on, and tell us what to do, rather than the other way round.
- Work Ethic- - We've grown up on Wall Street. We work hard and have aggressive goals. We want our teammates to be focused, goal-oriented, and consistent high achievers.
- Execution Focus- - Our business is about getting things done and getting things done right. We want outcome-focused colleagues who can multi-task, and execute quickly and elegantly.
Interested?
We are an early-stage company. Working here is not for the faint-hearted. An intense and unstructured work environment, lots of excitement, and a group of motivated colleagues are what we bring to the table. We ask you to bring your undivided attention, strong worth ethic & resourcefulness. We are Delhi-based and work 6 days a week. Currently, due to the pandemic, we are operating remotely since Feb 2020.
Knowledge, Skills and Abilities :
- Strong OO design and coding skills using multiple stacks, and knowledge of the pros and cons of each
- 1+ years’ experience with Golang
- 6+ years application development experience
- Strong data design skills, using both SQL and NoSQL data stores
- Experience with CI/CD pipelines such as Jenkins
- Experience working with event based distributed systems
- Experience working with services in a Dockerized environment
- Experience with Elasticsearch, Couchbase, Redis, and/or PostgreSQL a plus
- Requires 6+ years of related experience with a Bachelor’s degree; or 3 years and a Master’s degree; or a PhD with 2 years’ experience; or equivalent experience.
1. Work experience between 3 years to 9 years in building large scale high user traffic consumer facing applications with desire to work in a fast paced startup.
2. Knowledge on reactive and asynchronous programming is preferable. If you have worked with coroutines, goroutines, high concurrency or optimized number of threads for processing on your backend server you could be a good fit.
3. Extremely proficient at writing performant, scalable and production ready code in Kotlin, Java (8 or above, comfortable with concepts like lambda, streams, multithreading etc), Elixir, Rust, or Golang. Should be familiar with static code analysis, code coverage and code reviews.
4. Experience with NoSQL DBs like MongoDB, Cassandra, Redis or Aerospike is required. Knowledge of graph DBs like Neo4j is preferred.
5. Strong in algorithms, problem solving and data structures.
6. Knowledge of TDD and experience with building applications integrated with CI-CD pipelines (automated build, tests and deployments).
7. Exposure to micro-services with good understanding of containers, kubernetes, logging, alerting and monitoring. Inter services communication. Should know how to handle multiple versions of APIs.
Basic Qualifications:
- 2+ years of non-internship professional software development experience
- Programming experience with at least one modern language such as Java, C++, or C# including object-oriented design
- 1+ years of experience contributing to the architecture and design (architecture, design patterns, reliability and scaling) of new and current systems.
Additional Job requirements
- BS/MS/PhD in Computer Science/Math or equivalent
- BS in computer science or related field.
- 2+ years of relevant professional software development experience: designing, developing, and delivering software written in Java, C#, or C++, web development.
- Knowledgeable in object-oriented design patterns.
- Experience building highly scalable and distributed systems
Preferred Qualifications
- Experience with service-oriented architecture and application/services development
- Passion for performance debugging and benchmarking
- Ability to clearly and concisely communicate with technical and non-technical stakeholders across all levels of the organization
1. Develops software solutions by studying information needs; conferring with users; studying systems flow, data usage, and work processes; investigating problem areas; following the software development lifecycle. |
2. Determines operational feasibility by evaluating analysis, problem definition, requirements, solution development, and proposed solutions. |
3. Documents and demonstrates solutions by developing documentation, flowcharts, layouts, diagrams, charts, code comments and clear code. |
4. Prepares and installs solutions by determining and designing system specifications, standards, and programming. |
5. Provides information by collecting, analyzing, and summarizing development and service issues. |
6. Design, develop and implement new integration. |
Be Part Of Building The Future
Dremio is the Data Lake Engine company. Our mission is to reshape the world of analytics to deliver on the promise of data with a fundamentally new architecture, purpose-built for the exploding trend towards cloud data lake storage such as AWS S3 and Microsoft ADLS. We dramatically reduce and even eliminate the need for the complex and expensive workarounds that have been in use for decades, such as data warehouses (whether on-premise or cloud-native), structural data prep, ETL, cubes, and extracts. We do this by enabling lightning-fast queries directly against data lake storage, combined with full self-service for data users and full governance and control for IT. The results for enterprises are extremely compelling: 100X faster time to insight; 10X greater efficiency; zero data copies; and game-changing simplicity. And equally compelling is the market opportunity for Dremio, as we are well on our way to disrupting a $25BN+ market.
About the Role
The Dremio India team owns the DataLake Engine along with Cloud Infrastructure and services that power it. With focus on next generation data analytics supporting modern table formats like Iceberg, Deltalake, and open source initiatives such as Apache Arrow, Project Nessie and hybrid-cloud infrastructure, this team provides various opportunities to learn, deliver, and grow in career. We are looking for innovative minds with experience in leading and building high quality distributed systems at massive scale and solving complex problems.
Responsibilities & ownership
- Lead, build, deliver and ensure customer success of next-generation features related to scalability, reliability, robustness, usability, security, and performance of the product.
- Work on distributed systems for data processing with efficient protocols and communication, locking and consensus, schedulers, resource management, low latency access to distributed storage, auto scaling, and self healing.
- Understand and reason about concurrency and parallelization to deliver scalability and performance in a multithreaded and distributed environment.
- Lead the team to solve complex and unknown problems
- Solve technical problems and customer issues with technical expertise
- Design and deliver architectures that run optimally on public clouds like GCP, AWS, and Azure
- Mentor other team members for high quality and design
- Collaborate with Product Management to deliver on customer requirements and innovation
- Collaborate with Support and field teams to ensure that customers are successful with Dremio
Requirements
- B.S./M.S/Equivalent in Computer Science or a related technical field or equivalent experience
- Fluency in Java/C++ with 8+ years of experience developing production-level software
- Strong foundation in data structures, algorithms, multi-threaded and asynchronous programming models, and their use in developing distributed and scalable systems
- 5+ years experience in developing complex and scalable distributed systems and delivering, deploying, and managing microservices successfully
- Hands-on experience in query processing or optimization, distributed systems, concurrency control, data replication, code generation, networking, and storage systems
- Passion for quality, zero downtime upgrades, availability, resiliency, and uptime of the platform
- Passion for learning and delivering using latest technologies
- Ability to solve ambiguous, unexplored, and cross-team problems effectively
- Hands on experience of working projects on AWS, Azure, and Google Cloud Platform
- Experience with containers and Kubernetes for orchestration and container management in private and public clouds (AWS, Azure, and Google Cloud)
- Understanding of distributed file systems such as S3, ADLS, or HDFS
- Excellent communication skills and affinity for collaboration and teamwork
- Ability to work individually and collaboratively with other team members
- Ability to scope and plan solution for big problems and mentors others on the same
- Interested and motivated to be part of a fast-moving startup with a fun and accomplished team
Job Description:
Skills Required:
- Backend developer with hands-on programming experience in Node Js / Python / Golang
- Expertise in developing REST APIs with any backend framework using above languages.
- Expertise in system design & architecture patterns.
- Experience in building reusable code and libraries for future use.
- Experience in optimising application for maximum speed and scalability.
- Strong fundamentals in computer programming, data structure & algorithms.
- Exposure to AWS services like S3, CloudFront, CloudWatch, lambda & API gateway.
- Good understanding for SQL & NoSQL dB’s, preferably work experience with MongoDB.
Location : Andheri east, Mumbai
Notice Period : Immediate to 15 days
Responsibilities :
- Create algorithms from scratch.
- Create products and backend API's as described by the business team.
- Back-test and create a hypothesis as desired by the research team.
- Code the backend of logics for consumption by the UI team.
- Deploy websockets, Django, rest API's & dynamic TCP, UDP based data flow.
- Deployment and maintenance of codes with version control.