Roles and responsibilities
- Lead the design, architecture and implementation of impactful industrial solutions ensuring extensibility, maintainability, scalability, reliability, security and futureproofing across the full stack
- Effectively partner with product managers, designers, business stakeholders, engineering managers, and IT to deliver solutions that meet the business and corporate strategic goals
- Participate and influence proper Agile methodologies including sprint planning, daily stand-ups, sprint reviews and retrospectives
- Ensure the team is delivering the highest quality deliverables by conducting code reviews and participating in QA activities
- Monitor, debug, and optimize applications for performance, scalability, and security, ensuring optimal resource utilization
- Mentor junior and intermediate software engineers promoting a culture of continuous learning and improvement while adhering to coding standards and best practices
- Create and steward the writing and maintaining of technical documentation, including design documents, API specifications, and troubleshooting guides
- Front-End Optimization: Ensuring that web applications load quickly and perform efficiently, optimizing for rendering speed, code splitting, and lazy loading.
- Back-End Optimization: Proficiency in optimizing server-side code for performance, including caching strategies (e.g., Redis, Memcached), database query optimization, and efficient API design.
- Monitoring and Troubleshooting: Familiarity with monitoring tools (e.g., New Relic, Prometheus, Grafana) to identify and address performance bottlenecks.
Qualifications:
- Bachelor’s degree in Computer Science, Computer Engineering, or a related field
- 5+ years experience in software development, and proven expertise in full-stack software engineering
Desired candidate profile
1. Advanced Front-End Development Skills
- HTML5, CSS3, and JavaScript: Expertise in building responsive, user-friendly interfaces with modern web technologies.
- Frameworks and Libraries: Proficiency in front-end frameworks such as React, Angular, Vue.js, or Svelte. Knowledge of UI component libraries (e.g., Material-UI, Bootstrap) is also important.
- State Management: Familiarity with state management tools like Redux, Vuex, or Context API to manage application state.
- Responsive Design: Knowledge of responsive design principles to ensure applications work across a variety of devices and screen sizes (using tools like Media Queries or Flexbox).
- Cross-Browser Compatibility: Ensuring the application works smoothly across multiple browsers (Chrome, Firefox, Edge, Safari).
2. Back-End Development Skills
- Languages: Expertise in back-end programming languages such as JavaScript (Node.js), Python, Java, Ruby, Go, or PHP.
- Frameworks: Experience with server-side frameworks like Express.js, Spring Boot, Django, or Flask.
- Databases: Strong knowledge of both relational (e.g., PostgreSQL, MySQL) and NoSQL databases (e.g., MongoDB, Cassandra). Expertise in designing and optimizing queries, schema, and database management.
- APIs: Ability to design and build RESTful APIs, GraphQL APIs, and work with external APIs to integrate third-party services. Knowledge of API security practices (e.g., authentication, authorization, rate limiting).
- Authentication and Authorization: Implementing user authentication (e.g., OAuth, JWT) and handling role-based access control.
3. DevOps and Deployment Knowledge
- Cloud Services: Experience with cloud platforms such as AWS, Azure, or Google Cloud for hosting and managing applications.
- Containerization: Familiarity with containerization tools like Docker and Kubernetes for managing application environments and deployments.
- CI/CD: Implementing continuous integration and continuous deployment pipelines using tools like Jenkins, GitLab CI, CircleCI, or GitHub Actions.
- Version Control: Proficient in using Git for source code management, including branching, merging, and version tagging.
4. Architecture and Design Patterns
- Microservices: Designing and building scalable applications using a microservices architecture.
- Monolithic Architecture: Understanding when to use monolithic architecture vs. microservices, and knowing how to design scalable, maintainable systems.
- Design Patterns: Experience with design patterns such as MVC (Model-View-Controller), Observer, Factory, Singleton, and Strategy.
- Clean Code Principles: Following coding best practices for maintainable, readable, and reusable code (e.g., SOLID principles).