Role Description
- You are a champion at Code reviews and Unit/Mock/integration Tests
- You have a strong sense of ownership of what you design and deploy
- You provide strong technical mentorship to team members
- You are an excellent team player
- You continuously learn and improve
We are seeking a highly motivated and experienced Senior Java Software Engineer to join our team. In
this role, you will lead and manage software development projects across diverse domains such as
Gaming, Banking, Fintech, Fantasy Sports, IT, E-commerce, Logistics, Healthcare, and On-Demand
Services. You will be responsible for ensuring the successful delivery of projects, meeting deadlines, and
exceeding client expectations.
Skill Sets - Excellent Programmer: in Java Intermediate (Collections, Polymorphism, Design Patterns) to
Expert level (Annotations, Lambda, Streaming, Concurrency) - Startup Experience: Proven ability to take extreme ownership of results, with a history of leaving a
lasting impact on the business. - Relevant Experience: At least 6-10 years of experience demonstrated the ability to develop
resilient, high-performance, and scalable code tailored to application usage demands. - Java Framework Expertise: Significant experience in designing and building Java microservices
with Vert.x, Springboot, with proficiency in Java. - REST API & GraphQL: Hands-on expertise in development API endpoints with RESTful & GraphQL
approach, also non-REST frameworks like gRPC over Thrift or Protobuf Nuances of TCP, UDP, HTTP,
HTTP2, SSL, Thorough understanding of designing distributed systems without single point of
failures - Cloud Proficiency: Strong understanding and hands-on experience of building applications
deployed on the cloud using Google Cloud Platform or Amazon Web Services (AWS), Docker, and
Kubernetes, Experience writing batch/cron jobs using Python and Shell scripting. - Containerization & Orchestration: Experience with containerization technologies like Docker and
orchestration tools like Kubernetes. - Time & Space Complexity: if methods you write are in the traffic request path, you know how to
avoid unacceptable time complexity & space complexity. - Database Knowledge: Strong experience with Data Structures & Algorithms working with
MongoDB, PostgreSQL, MySQL, Redis, ElasticSearch, and other similar databases, ability to choose
the right data store for the given requirements Relational, Graph, Object, Document, Columnar, Key-
Value. Experience with Redis, Memcache, EHCache, Hazelcast, Aerospike
- Messaging Systems: Proficiency in working with RabbitMQ, BullMQ & others
- Agile Practices: At least a few years of experience practicing the SCRUM framework, collaborating
with scrum masters, product owners, and other stakeholders. - Collaboration & Communication: A team player who thrives in a remote, collaborative environment.
- Communication Skills: Strong verbal and written communication skills.
- Solutions-Oriented: Comfortable with the fast pace of startup life and adept at finding solutions to
challenges.
Responsibilities - Scalable Architecture: Lead the design and development of scalable architecture to ensure
efficient performance and reliability of web and mobile applications. - Informed Decisions: Make informed architectural decisions that align with both current and future
business needs. - Security & Privacy: Ensure security and privacy considerations are integrated into the selection of
solutions and coding of back-end services and API endpoints. - Code Quality & High Standards: Uphold high standards of code quality through regular reviews,
maintaining best practices in programming. - Robust Testing: Implement robust testing strategies to ensure code reliability and performance.
- Backend Development: Design, develop, and deploy backend services and APIs using Vert.x /
Springboot Java and AWS technologies. - NoSQL Expertise: Effective schema design and data modeling for NoSQL databases, ideally
MongoDB, including robust indexing strategies. - Technical Debt Management: Monitor and control technical debt to ensure it does not
compromise application scalability or performance. - Task Planning: Collaborate with the PM and BA to plan and delegate tasks efficiently among
backend team members, ensuring clear objectives and timelines. - User Requirements: Support the PM, BA team in identifying and analyzing user requirements to
ensure development aligns with user expectations and project scope. - Systems Thinking: Apply systems thinking to align with broader business objectives.
- Autonomy: Get things done independently without supervision and without creating future issues.
- Simplicity: Strive for simplicity in solutions and code.
- Proactive Problem Solving: Fix problems, even those outside your immediate responsibility.
- Solution-Oriented: Focus on providing solutions to problems, not just writing code.