Enterprise Architect
Majesco
- India
- Permanent
- Full-time
- Architectural Leadership: Lead the architectural vision and strategy, ensuring alignment with business goals and technical standards.
- Hands-On Development: Actively participate in coding, implementing Java-based solutions, and setting coding standards and best practices.
- Technical Leadership: Provide technical guidance, mentorship, and code reviews to development teams, ensuring adherence to architectural standards and design principles.
- Troubleshooting: Investigate and troubleshoot complex technical issues, providing timely resolutions and root cause analysis. Excellent problem-solving skills to analyze complex technical challenges, make informed decisions, and propose innovative solutions that align with business objectives.
- Collaboration: Collaborate with cross-functional teams, including developers, QA engineers, product managers, and stakeholders, to deliver high-quality solutions.
- Documentation: Create and maintain detailed technical documentation, including architectural diagrams, design documents, coding guidelines, and system documentation.
- Continuous Learning: Stay updated with the latest Java technologies, industry trends, and best practices to drive innovation and continuous improvement.
- Mastery of Java programming language, including advanced features such as concurrency, lambdas, multi-threading, thread safety and streams.
- Deep understanding of Java EE (Enterprise Edition) for building scalable enterprise applications.
- Expertise in designing and implementing microservices architectures for SaaS applications, enabling scalability, flexibility, and maintainability.
- Knowledge of patterns such as service discovery, circuit breakers, and API gateways.
- Proficiency in Azure services relevant to SaaS applications, including Azure App Service, Azure Kubernetes Service (AKS), Azure Functions, Azure Cosmos DB, Azure SQL Database, Azure Blob Storage, etc.
- Experience in leveraging Azure PaaS (Platform as a Service) offerings for scalability, resilience, and cost-effectiveness.
- Understanding of distributed system concepts and challenges, such as consistency, availability, and partition tolerance.
- Experience with distributed messaging systems like Azure Service Bus, Azure Event Hubs, or Kafka for event-driven communication.
- Proven track record of optimizing Java applications for high performance, low latency, and high throughput in cloud environments.
- Identify and resolve performance bottlenecks, optimize code, and improve system efficiency to meet performance objectives.
- Familiarity with Azure Performance Tuning tools and techniques for identifying and resolving performance bottlenecks.
- Proficiency in SQL and experience with relational databases (e.g., Oracle, PostgreSQL) as well as NoSQL databases (e.g., MongoDB, Cassandra) for handling large datasets and scaling horizontal.
- Expertise in designing and optimizing database schemas, queries, and indexes for high-volume transactional systems.
- Understanding of security best practices for Java applications, including authentication, authorization, encryption, and secure communication protocols (e.g., HTTPS).
- Experience in implementing security measures to protect against common threats such as injection attacks, cross-site scripting (XSS), and cross-site request forgery (CSRF).
- Proficiency in DevOps practices and Azure DevOps services for continuous integration, continuous delivery (CI/CD), and automated testing.
- Knowledge of infrastructure as code (IaC) tools like Azure Resource Manager (ARM) templates and Terraform for automating infrastructure deployment.
- Experience with Instana, Data Dog, Dynatrace, Azure Monitor, Azure Application Insights, and Azure Log Analytics for monitoring application performance, health, and security.
- Ability to set up custom metrics, alerts, and dashboards for proactive monitoring and troubleshooting.
- Expertise in containerization technologies like Docker and container orchestration platforms like Azure Kubernetes Service (AKS) for deploying and managing containerized workloads.
- Familiarity with Azure Container Registry for storing and managing Docker images.
- Design skills for building scalable, resilient, and fault-tolerant architectures on Azure.
- Experience with auto-scaling, load balancing, and disaster recovery strategies for ensuring high availability and reliability.
- Design and develop scalable, high-performance software architectures using Java technologies.
- Create detailed architectural diagrams, including component diagrams, sequence diagrams, and deployment diagrams, to illustrate system structure and interactions.
- Conduct architecture reviews, assess technical feasibility, and make recommendations for architectural improvements and optimizations.