Software Engineer - II (Backend)
As a Software Engineer – II, you'll bring a good understanding of design and coding practices and apply these independently in development. In this role - you could expect to:
- Own the lifecycle of a feature from requirement analysis to deployment and post production processes
- Perform code reviews and support your team implement best practices
- Explore trade off's on module designs
- Continuously improve performance metrics of modules owned. Performs RCAs and deploys long term fixes.
- Implement initiatives that improve engineering efficiency and excellence
- Participate in the hiring and interview process for junior developers on your team
About dunzo
Similar jobs
Job Description:
Key Responsibility Areas: |
· Perform validation and verification testing and debud code. · Work collaboratively with others to achieve goals · Experience working in an agile environment |
Required Skills: |
· Experience in implementing Object-Oriented Python, Django. · Good understanding on Django ORM. · Experienced in interfacing with *third party API’s using REST · Worked with varieties of Relational Databases (RDBMS) like SQLite, MySQL, PostgreSQL. · Experience in Version Control with Git and Bitbucket. · Experience with JIRA the development progress and tracking deadlines of the project · Experience with web applications using technologies like HTML5,CSS, JavaScript, JQuery, AJAX, Angularjs,Reactjs and Bootstrap,XML. · Knowledge in Pandas, Numpy will be addons |
Qualification |
Bachelor of Engineering in Computer Science , MCA |
Role Responsibilities:
- Development and Maintenance of REST APIs: Lead the creation and management of our RESTful APIs, ensuring top-notch performance and alignment with evolving requirements.
- Proficiency in Coding: We're in search of expertise in Python or equivalent programming languages. Your coding skills will play a pivotal role in delivering high-quality (efficient, reusable, testable, and scalable) solutions.
- Unit and Integration Testing: Apply your expertise to craft unit and integration tests, upholding code quality and reliability.
- Version Control Systems: Proficiency in Distributed Version Control Systems is vital for seamless collaboration during development.
- Elasticsearch Expertise: Having valuable experience with Elasticsearch is a plus, given its critical role in data retrieval and search functionalities.
- NOSQL Database Familiarity: Knowledge of NOSQL databases like Cassandra and MongoDB will be advantageous.
- Message Broker Knowledge: Understanding message brokers, especially RabbitMQ, is beneficial for effective communication within our systems.
Desired Qualifications:
- Experience: 1-2 years of hands-on experience as a Python developer.
- AWS: Proficiency in AWS cloud management and architecting enterprise data solutions.
- Pragmatic Problem-Solving: Recognize when a solution should be streamlined and when creating the right abstraction will lead to long-term efficiency gains.
- Passion for Quality: Demonstrate dedication to producing work of the highest quality and following best practices.
- Agile/Lean Process: Familiarity with Agile/Lean methodologies is a plus, reflecting your adaptability and collaborative spirit.
- Startup Mindset: Embrace the challenges and opportunities of a startup environment, contributing your skills and insights to our growth.
- Debugging and Optimization: Showcase excellent debugging and optimization capabilities to enhance system performance.
- Tech Awareness: Stay updated on emerging technologies and possess a solid understanding of the full product development life cycle.
- UX and Information Architecture: Exhibit excellent knowledge of mobile user experience, information architecture, and industry trends.
Experience:
The candidate should have about 1+ years of experience with design and development in Java/Scala. Experience in algorithm, data-structure, database is mandatory.
Required Skills:
- Java or Scala
- Extensive experience in developing web applications. Should possess good Oops knowledge and be aware of enterprise application design patterns.
- Should have the ability to analyze, design, develop and test complexity of spark job.
- Basic working knowledge of Unix/Linux.
Good To have: -
- Python
- Distributed Computing
Responsibilities:
- Designing and implementing Java-based applications.
- Analyzing user requirements to inform application design.
- Defining application objectives and functionality.
- Aligning application design with business goals.
- Developing and testing software.
- Debugging and resolving technical problems that arise.
- Producing detailed design documentation.
- Recommending changes to existing Java infrastructure.
- Developing multimedia applications.
- Developing documentation to assist users.
- Ensuring continuous professional self-development.
Requirements:
- Good knowledge in Java integration, Spring and oauth/Rest Integration
The key aspects of this role include:
• Design, build, and maintain scalable applications using Python.
• Contribute to the entire implementation process including driving the definition of improvements
based on business need and architectural improvements.
• Act as a subject matter expert for Application Software developers and Engineers.
• Handle server-side code for a production platform and contribute to new features.
To be the right fit, you'll need:
• More than 4+ years of experience as a software developer in Python, with knowledge of at least one
Python web framework such as Django, Flask, etc.
• Good understanding of common design patterns and architecture principles to design reliable and
Scalable applications
• Strong communication skills
• Knowledge of databases line NoSQL or MongoDB
• Good to have AWS and Docker or Web services
• Basic understanding of front-end technologies, such as JavaScript, HTML5, and CSS3
- Well versed in Core Java, OOPs concepts, collections, multi-threading, concurrency, lambdas, and streams.
- Hands-on knowledge of Spring Core, MVC, JPA, Security, transaction
- Working knowledge of REST API designing as well as development, using Spring.
- Exposure to Spring Boot, Docker, Kubernetes, OpenShift for the microservices environment.
- Savvy with SQL and database concepts.
- Ability to use frameworks like JUnit, Mockito, etc., for implementing unit testing.
- Sound understanding of code versioning tools, such as Git/bit bucket with Maven.
- Should have worked in a CI/CD environment with TeamCity/Jenkins.
You will be expected to design, develop and maintain large-scale complex backend web
applications.
You will be expected to rapidly learn and apply relevant new technologies.
You will be having a high level of interaction with business and product stakeholders.
You will be working on the entire web application stack, which includes:
o Web server hosting
o RESTful communication
o Message brokering
o Backend application layer, which includes the service and domain layers
o Data layer for persistence or caching
You will be participating in an agile software development cycle, which includes:
o Design
o Development
o Code Review
o Unit and Integration Testing
o Release
As a senior developer, you will be expected to contribute to design, code review, refactoring, and
project management.
You will be exposed to the following technologies:
o Web application frameworks: Ruby on Rails, Node.js, Java Play, Vert.x, AIOHTTP, AWS
Lambda
o Languages: Ruby, Java, Kotlin, Javascript, Python
o Data stores: PostgreSQL, Aerospike, Redis, Amazon Redshift
o Communication: HTTP, Amazon SQS, Sidekiq, Amazon SNS
o Server Management: Amazon ECS, Docker
Product Overview
You will be contributing to products concerning both customers and partner drivers.
Product sectors include:
o Growth: You’ll build tools to help boost user growth on the platform including our industry
best driver on-boarding, training and certification system, referral system, and lead
management models.
o Lifecycle Management: Build tools to help users engage with the platform better, which
includes rewards and recognition module, subscription service, account management tools,
partner and customer wallets and payout modules, and churn detection systems among
others.
o Transaction Experience: You’ll help deliver the most delightful booking experience to our
customers and drivers. As part of this team, you’ll be responsible for our core booking
system, pricing and payment systems, location tracking and filtering services, fraud
prevention systems, and in-app ticketing and support among others.
o Fulfilment: As part of the fulfilment team, you’ll work on systems which ensure high degree
of ride fulfilment on the platform. Tools including allocation methodologies and system,
dynamic pricing, dynamic partner routing, and partner re-activation tools among others.
o Enterprise Solutions: You’ll help Porter’s enterprise customers achieve delivery excellence.
You’ll build tools for contract management, fleet management, fleet and route optimisation
tools, alerting and monitoring tools, and analytics suite among others.