Job Title: Senior Software Engineer - Programming Languages (Python & Go)
Job Responsibilities:
As a Senior Software Engineer at MBRDI, you will be working in a fast-paced environment where you’ll be responsible for designing and developing high-quality software solutions, leading teams technically, and driving the successful migration of projects. You will collaborate closely with cross-functional teams, including other developers, architects, and product managers to deliver solutions that are innovative, reliable, and scalable.
Key Responsibilities:
-
Design, develop, and maintain high-quality software solutions primarily in Python and Go.
-
Lead and mentor a team of engineers, providing technical guidance and ensuring best practices in coding, design, and architecture.
-
Drive migration projects from Python code to Go, ensuring smooth transitions and performance optimizations.
-
Develop and maintain RESTful APIs, FastAPI applications, and gRPC services.
-
Implement and maintain scalable systems using Go, with a focus on interfaces, goroutines, and channels.
-
Collaborate with other engineering teams to integrate solutions and ensure the overall system's performance and stability.
-
Build and maintain CI/CD pipelines using tools like Docker, Kubernetes, and GitHub.
-
Troubleshoot and debug production issues and optimize software for performance.
-
Ensure clean, maintainable, and efficient code through code reviews and best practices.
Skills & Experience Required:
-
Programming Languages:
-
Python: Strong expertise in Python, especially in data structures and object-oriented programming (OOP). Experience with FastAPI is a plus.
-
Go: Proficient in Go programming, including understanding interfaces, goroutines, channels, RESTful APIs, and gRPC.
-
-
Migration Expertise:
-
Hands-on experience in migrating projects from Python code to Go.
-
Understanding of the complexities and best practices of migrating legacy systems to modern technologies.
-
-
Tools and Technologies:
-
Proficient in using GitHub, including GitHub APIs and GraphQL endpoints.
-
Strong understanding and hands-on experience with Docker.
-
Solid knowledge of Kubernetes and the creation of custom resources. Familiarity with the internal communication principles within Kubernetes clusters.
-
-
Database Knowledge:
-
Experience with at least one NoSQL database (e.g., MongoDB, Cassandra, Redis, etc.).
-
-
Leadership:
-
Ability to design and architect scalable solutions, considering both current and future needs.
-
Proven experience in leading technical teams, guiding engineers, and making architectural decisions.
-
Strong problem-solving and analytical skills with a passion for technology and innovation.
-
Qualifications:
-
Bachelor's or Master’s degree in Computer Science, Engineering, or a related field.
-
5+ years of experience in software development with a focus on Python and Go.
-
Strong knowledge of software engineering principles, design patterns, and software lifecycle management.
Preferred Skills:
-
Experience in building microservices architecture.
-
Familiarity with cloud platforms (AWS, Azure, GCP).
-
Knowledge of DevOps practices and tools.