Title: Software Engineer – 2 Positions Location: New York, NY Duration: FTE 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.
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