JOB PURPOSE
- To provide technical leadership and expertise in the design, development, and maintenance of software applications. Collaborate with cross-functional teams, contribute to architectural design, and drive the implementation of complex software solutions.
QUALIFICATIONS & EXPERIENCE
- A bachelor’s or master’s degree in computer science, software engineering, or a related field
- At least 5-7 years of professional experience in Software Development, with a focus on progressively more challenging and complex projects.
- Proven track record of successfully delivering software solutions and taking a leadership role in development projects.
- Code review, performance optimization, and continuous improvement of development processes
- Expertise in software architecture, design patterns, algorithms, automated unit testing, Domain Driven Design(DDD) and data structures.-
- Familiarity with advanced technologies, frameworks, and tools specific to their domain
- Guiding and mentoring junior team members
KNOWLEDGE:
Programming Languages:
- Expertise in multiple programming languages, including but not limited to JavaScript, React, C#, ASP.NET Core, with a deep understanding of their features and best practices.
Software Architecture and Design Patterns:
- Knowledge of software architectural principles and design patterns, such as MVC (Model-ViewController), MVVM (Model-View-ViewModel), and SOLID (Single
Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion).
Databases:
- Understanding of database concepts, including relational databases (e.g., SQL) and NoSQL databases (e.g., MongoDB, Redis), as well as knowledge of data modeling and query optimization techniques.
System Design:
- Proficiency in designing scalable, reliable, and highperformance systems, including distributed systems, microservices, and cloud-based architectures (e.g., AWS, Azure, or Google Cloud Platform).
Software Development Lifecycle:
- Familiarity with various software development methodologies (e.g., Agile, Scrum, Kanban) and experience in managing the development lifecycle from requirements gathering to deployment and maintenance.
SKILLS:
- Problem Solving and Debugging
- Code Review and Mentoring
- Testing and Quality Assurance
- Collaboration and Communication
Desired Skills:
- JavaScript
- React
- C#
- ASP.NET Core
Desired Qualification Level:
- Degree