About Paytm
Similar jobs
Job Description: Java Developer for Hypertest SDK Development
[See assignment at the end as well]
Company Overview
At Hypertest (https://hypertest.co), we're not just writing code; we're rewriting the rules of software development.
Our autonomous testing tool has already transformed the NodeJs ecosystem for developers at more than 50 teams, and now we're bringing this revolution to Java with your help.
Our Mission: Save developers from the mundane. We automate test case generation, letting you bid farewell to countless hours spent on JUnit, Mockito, RestAssured, Postman, etc.
Imagine a development cycle where your focus is purely on creating, not correcting.
Role: Java Developer
HyperTest seeks a Senior Java Developer with profound expertise in Java's core mechanics and a passion for solving complex problems. This role is central to the development of our Java SDK, crucial for expanding HyperTest's functionalities. Ideal candidates will have a strong background in Java, including experience with library patching, bytecode manipulation, and observability frameworks like OpenTelemetry, New-Relic, Datadog etc.
Location
This is a hybrid position based in Gurugram.
Key Responsibilities
- Develop the HyperTest Java SDK, employing advanced Java techniques for runtime library manipulation and data mocking.
- Extend OpenTelemetry for observability and monitoring in distributed systems, ensuring our SDK integrates seamlessly with modern development ecosystems.
- Create solutions for simulated testing environments that operate in various modes without modifying the original application code.
- Serve as a Java subject matter expert, guiding the team in best practices and innovative software development approaches.
Qualifications
- Java Expertise: Extensive experience in Java, including familiarity with its internals, memory model, concurrency, and performance optimization. Not just experience with high-level frameworks, but a solid understanding of underlying principles and the ability to manipulate Java's core functionalities.
- Software Architecture: Strong grasp of software design patterns, architectural principles, and the ability to solve complex problems with efficient, scalable solutions.
- Analytical Skills: Exceptional problem-solving abilities, capable of addressing complex challenges and driving innovative solutions.
- Communication: Excellent verbal and written communication skills, essential for teamwork and collaboration.
- Specialized Knowledge: Experience with bytecode manipulation, library patching (e.g., Byte Buddy), and a clear understanding of Java's compilation and execution process.
Ideal Candidate Profile
- Not Just Another Java Developer: We're looking for someone who has moved beyond just building applications with Spring Boot or similar frameworks. You should have an experience that demonstrates a deep understanding of Java, including direct manipulation of bytecode, custom library creation, and performance optimization.
- A True Java Enthusiast: You find excitement in exploring Java beyond the surface level, delving into its internals, and leveraging this knowledge to build innovative solutions.
Technical Assessment Overview
Shortlisted candidates will complete a short technical assessment focused on:
- Library Patching and Dynamic Data Mocking: Demonstrating advanced Java skills in runtime library functionality manipulation.
- OpenTelemetry Integration: Applying observability frameworks to trace and monitor distributed systems, a key component of our SDK development.
- Simulated Testing Environments: Creating flexible testing scenarios that replicate real-world conditions without altering the original code.
- Innovative Problem-Solving: Tackling complex Java-related challenges that reflect the technical depth required for this role.
This assessment will help us identify candidates who not only have the technical expertise but also the creativity and problem-solving skills essential for success at HyperTest.
Why Join HyperTest?
Joining HyperTest means being at the forefront of the automated testing revolution. We offer a dynamic work environment, opportunities for professional growth, and the chance to make a significant impact on our product and the wider development community.
Assignment Link
https://t.ly/sp5Xa
Self-Assessment/Screening Questions
- Do you have experience with Java bytecode manipulation?
- Are you familiar with library patching techniques in Java, such as using Byte Buddy?
- Have you used OpenTelemetry or similar frameworks for observability in distributed systems?
- Do you understand how opentelemetry java sdk works?
- have you developed SDKs or libraries in Java?
- How many years of Java development experience do you have?
- How many projects have you worked on that required deep knowledge of Java's internals (e.g., memory management, concurrency)?
- After reviewing the detailed assignment at https://t.ly/sp5Xa , how confident are you in your ability to meet the technical challenges outlined, on a scale from 1 to 10?
As a seasoned professional, your influence extends beyond development; you will be instrumental in orchestrating rollout plans and adoption blueprints, thereby shaping our forward-thinking roadmap. Envision yourself leading and contributing to groundbreaking projects such as:
- Crafting a robust infrastructure adept at managing a surge of notifications with negligible latency.
- Building an auto-scaled system from scratch, integrating elements like queuing and caching to address pressing business needs.
- Engaging in profound dialogues to weigh the pros and cons of microservices versus monolithic architectures, steering the team towards the most beneficial approach.
- Overseeing systems that cater to millions of requests per second, enhancing performance through scalable strategies.
- Orchestrating a smooth database transition from self-hosted to managed setups, ensuring uninterrupted service.
- Designing a multi-cloud framework that amalgamates the prowess of diverse cloud platforms, guaranteeing reliability and efficiency.
- Leveraging AI to develop models capable of discerning patterns in creative content, including artworks and designs.
- Developing a swift and efficient data pipeline that can handle the ingestion and processing of millions of records without compromising on speed and performance.
- Excel in Customer Support by analyzing trends and proposing solutions, improve on-call processes, collaborates cross-functionally on bug fixes, and employs advanced debugging strategies for complex issues.
Who You Are
- 4+ years of solid experience as a Backend Engineer, with expertise in handling large-scale projects using TypeScript/JavaScript, Python.
- Comprehensive understanding of database systems and adeptness in query optimization.
- Skilled in establishing and following best practices in API development and integration.
- A penchant for crafting simple, sustainable, and scalable solutions, with a proven track record of developing enduring systems.
- Agile learner with a proactive stance in adapting to the evolving SaaS landscape, prioritizing substantial business impact over mere code expansion.
- Proven leadership in fostering collaboration and drawing actionable insights from various organizational sectors, steering teams with a visionary and inclusive approach.
- Trusted figure in building and nurturing cross-functional relationships, commanding respect and trust across all organizational levels.
- Source of inspiration and motivation for new team members, often being the catalyst for engineers opting to join your team.
- Dedicated mentor with a deep-seated commitment to nurturing the growth of both engineers and managers, emphasizing personal development and mentorship.
Job Details:
- Three plus years of experience in IT systems analysis and application program development
- Experience in an Object Oriented Programming language such as Java is a must
- The candidate must be a hands-on coder doing active development
- Extensive experience programming in Java Application Development & RESTful API
- Experience in AWS Cloud technologies is optional but good to have
- Proficient in Object-Oriented Programming (OOP) concepts, workflows, and design patterns
- 2 + years of software development experience utilizing Java based frameworks and technologies to build enterprise grade product solutions.
- 2+ years of experience designing, developing and documenting RESTful APIs.
- Strong understanding of concepts/technologies like Spring MVC, Spring boot, J2EE, EJB, application/API security, API governance/gateway platforms like apigee or kong.
- Good understanding of RDMS concepts and development preferably using MS SQL Server.
- Experience using test automation technologies like cucumber, selenium is a big plus.
- Partner with scrum masters to address technical blockers/impediments to progress.
- Prior experience working with agile scrum-based development methodology. Participate in sprint planning and estimate development efforts for features and stories.
- Partner with DevOps to install and configure/tune application containers like embedded Spring boot tomcat and webserver technologies preferably nginx or apache.
- Partner with cloud engineering group to outline the infrastructure provisioning requirements/needs for new product development.
- Design and develop CI/CD tools and process preferably using Jenkins to configure build jobs for APIs and design pipeline to promote artifacts from development all the way to production
- Experience with messaging technologies like kafka is a huge plus
- Work with Test Automation engineering team to integrate test automation scripts as part of the CI/CD process.
- Prior proven experience of utilizing and productionizing container/container orchestration technologies like Docker, kubernetes.
- Participate and Resolve issues related deployments, application performance etc.
Primary Responsibilities
- Design, architect and develop advanced software solutions in a cross functional Agile team supporting multiple projects and initiatives
- Collaborate with product owners and/or the business on requirements definition, development of functional specifications, and design
- Collaborate on or lead development of technical design and specifications as required
- Code, test and document new applications as well as changes to existing system functionality and ensure successful completion
- Take on leadership roles as needed
Skills & Requirements
- Bachelor’s Degree required, preferably in Computer Science or related field
- 3+ years of software development experience using GoLang/Java programming language
- Experience with cloud technologies (AWS/Azure/GCP/Pivotal Cloud Foundry/any private cloud) and containerization is required
- Experience with a micro-services architecture is a plus
- Excellent communication, collaboration, reporting, analytical and problem solving skills
- Experience with PostgreSQL or other Relational Databases
- Test-driven development mindset and a focus on quality, scalability and performance
- Strong programming fundamentals and ability to produce high quality code
- Solid understanding of Agile (SCRUM) Development Process required
Required Technical Skills:
- Java (highly capable)
- SQL (highly capable)
- Strong knowledge of software best practices, build processes, IDEs, database tools (e.g. SQL Developer, SQL Management Studio)
- Strong knowledge of source code control systems (GIT)
- Confident with Windows, Linux, Unix operating systems including command line
- Working knowledge of JIRA
Beneficial Technical Skills:
- .Net
- C
- Javascript
- Experience in test management and test execution
- Experience of Agile development methods
Additional Skills and Behaviour Required
- Experience of full software development lifecycle
- Considers competing solutions and evaluates options to create the best outcome in all aspects of the role.
- Willingness to takes ownership of whole project and engineers assigned.
- Confident to make suggestions and recommendations for improvements.
- Excellent written and verbal communication skills and ability to build good rapport
- Fluency in English, both written and oral
- Collaborates with others to achieve objectives and ensure information flow
- Seeks assistance and feedback as appropriate
Education
- Bachelor's degree (or equivalent) in Computer Science or Engineering or other relevant discipline (MCA, MSc in Computer Science etc.)