Software engineer
المسار: STEM
A software engineer who has a degree with First honour class
#Web_development
A software engineer who has a degree with First honour class
#Web_development
1. Elicit and prioritize functional and nonfunctional requirements into epics, user stories, and acceptance criteria using Gherkin syntax.
2. Model the system with C4 diagrams (Context, Container, Component) and validate key quality attributes (scalability, reliability, maintainability).
3. Specify REST API contracts with OpenAPI/Swagger, including request/response schemas, versioning strategy, and error models.
4. Justify architecture choices with ADRs that compare alternatives and document trade-offs and risks.
5. Plan iterations by estimating story points, defining sprint goals, and mapping dependencies on a release roadmap.
1. Scaffold a React + TypeScript project and configure code quality tooling (ESLint, Prettier) and bundling (Vite or Webpack).
2. Implement reusable, tested UI components and hooks with composition, code-splitting, and lazy loading for route-based chunks.
3. Enforce accessibility by using semantic HTML, ARIA landmarks, keyboard navigation, and automated a11y checks (axe).
4. Integrate state management and data fetching with Redux Toolkit or React Query, handling optimistic updates, caching, and error boundaries.
5. Consume REST APIs via an OpenAPI-generated client and implement OAuth 2.0/OIDC login, token refresh, and protected routes with React Router.
1. Structure an Express application in TypeScript with layered architecture (controllers, services, repositories) and dependency injection.
2. Design relational models and migrations with Prisma or Sequelize, enforce constraints, and implement transactional operations.
3. Build CRUD and search endpoints that follow REST conventions, pagination, and content negotiation, validated with Zod or Joi.
4. Implement authentication and authorization using JWT or OIDC, role-based access control, and secure password hashing (bcrypt or argon2).
5. Harden APIs with Helmet security headers, input sanitization, CORS configuration, and rate limiting to mitigate abuse.
1. Write unit tests for front-end and back-end achieving at least 80% branch coverage with Jest and React Testing Library.
2. Develop integration tests for REST APIs with Supertest and isolate dependencies using test containers for PostgreSQL.
3. Author end-to-end scenarios in Cypress covering critical user journeys, authentication flows, and accessibility checks.
4. Enforce static analysis and type safety with ESLint, TypeScript strict mode, and pre-commit hooks (Husky) in CI.
5. Define quality gates in CI that block merges on failing tests, coverage thresholds, and lint violations.
1. Containerize services with Docker using multi-stage builds, minimal base images, and non-root users to reduce attack surface.
2. Compose a multi-service development environment with Docker Compose, parameterized via environment variables and secrets.
3. Configure GitHub Actions workflows to run linting, tests, security scans (npm audit or Snyk), and produce versioned artifacts.
4. Provision AWS infrastructure with Terraform (VPC, ECS Fargate or Elastic Beanstalk, RDS, IAM roles) following least privilege.
5. Implement continuous deployment to staging and production with approval gates, blue/green or canary rollout, and rollback procedures.
1. Perform threat modeling (e.g., STRIDE) and document mitigations for high-risk user stories and data flows.
2. Manage secrets with AWS Secrets Manager or HashiCorp Vault, rotate credentials, and remove secrets from code and images.
3. Implement input validation, output encoding, CSRF protection, and secure cookie attributes to prevent common vulnerabilities (OWASP Top 10).
4. Configure security logging and alerting for authentication events and privilege changes, integrating with SIEM where available.
5. Scan dependencies and container images for vulnerabilities, triage findings, and remediate critical issues before release.
1. Instrument services with OpenTelemetry traces, metrics, and logs; export to Prometheus/Grafana and configure dashboards for key flows.
2. Define SLIs/SLOs and error budgets; implement alerting rules and on-call runbooks tied to customer-impacting symptoms.
3. Profile and optimize hot paths, introduce HTTP and Redis caching, and implement pagination to meet response time targets.
4. Apply resilience patterns (timeouts, retries, circuit breakers, bulkheads) and verify behavior under failure with chaos experiments.
5. Execute load and stress tests using k6 or Locust, analyze bottlenecks, and plan horizontal/vertical scaling strategies.