- 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.