What are the responsibilities and job description for the Software Engineer (Adtech / Media Domain) position at PERMEVO?
Title: Software Engineer (Adtech / Media Domain)
Location: New York, NY (Hybrid)
Duration: FTE
Industry: Advertising OR Media Domain (Most Preferred)
The Challenge:
We are looking for skilled Software Engineers to join our team, where you'll play a key role in developing and maintaining high-performance, event-driven systems for real-time applications. You'll work closely with senior engineers to implement microservices, optimize code performance, and contribute to the overall success of our technical projects.
Must Have skills:
- Java
- Spring boot
- Microservices
- Kafka
- Hadoop
- Cloud (Azure, AWS, GCP)
- SQL
- NoSQL
Roles & Responsibilities:
- Component Development: Collaborate in developing and maintaining components of high-performance, real-time systems, following the guidance of senior team members.
- Microservices Implementation: Build microservices using Java, Python, or Go, adhering to established architectural patterns for scalability and resilience.
- Performance Optimization: Enhance code performance by focusing on efficient memory management, concurrency, and I/O operations to meet demanding performance standards.
- Database Management: Work with both SQL and NoSQL databases to create efficient data storage and retrieval solutions for high-volume environments.
- Real-Time Analytics: Assist in developing real-time analytics features, contributing to the creation of insightful visualizations for stakeholders.
- Monitoring & Alerting: Participate in developing monitoring and alerting solutions, with a focus on key performance indicators and system health metrics.
- Infrastructure as Code (IaC): Support the implementation of IaC practices, helping to create and maintain deployment scripts for consistent and reliable deployments.
- Container Orchestration: Contribute to container orchestration strategies, focusing on efficient resource utilization and auto-scaling.
- Caching & Data Access: Implement and optimize caching strategies and data access patterns to improve system responsiveness.
- Code Reviews: Engage in code reviews, offering constructive feedback and incorporating suggestions to enhance code quality.
- Production Support: Assist in troubleshooting and resolving production issues, including participating in on-call rotations as required.
- Technical Documentation: Contribute to technical documentation, ensuring that system designs and implementations are clearly documented.
- Proof-of-Concept Projects: Participate in proof-of-concept initiatives, researching and implementing new technologies under the guidance of senior engineers.
- Knowledge Sharing: Actively participate in team knowledge-sharing sessions, presenting on new technologies and best practices.
Essential Skills & Requirements:
- Educational Background: Bachelor’s degree in Computer Science or a related field.
- Experience: A minimum of 5 years of professional software development experience.
- Technical Proficiency: Strong skills in at least one major programming language (Java, Python, or Go), with a focus on writing clean, maintainable code.
- Microservices & Event-Driven Systems: Experience with microservices architecture and event-driven systems.
- Distributed Systems: Solid understanding of distributed systems concepts and associated challenges.
- Database Skills: Practical experience working with both SQL and NoSQL databases.
- Cloud & Containerization: Familiarity with cloud platforms (AWS, Azure, GCP) and containerization technologies like Docker.
- Big Data: Basic understanding of big data technologies such as Hadoop, Spark, or Kafka.
- Version Control & CI/CD: Experience with version control systems (preferably Git) and CI/CD pipelines.
- Problem-Solving: Strong problem-solving abilities and experience in debugging complex issues.
- Communication & Teamwork: Excellent communication skills and a proven ability to work effectively within a team.
- Continuous Learning: Eagerness to learn new technologies and adapt to changing methodologies.
- Agile Practices: Basic understanding of agile development practices