Company Description
Hello, we are **Edify, one of the highest-ranked **IT companies in Costa Rica and Central America according to **Great Place to Work ®**.
We're a consolidated technology services consulting firm specializing in education technology.
We deliver unbelievably creative and rock-solid solutions for a wide range of clients, including major corporations, startups, educational institutions, and non-profit organizations.
**At Edify we believe that bored employees make boring products.
** Here, there's no such thing.
We help our clients design, build and run some of the most interesting ventures in the industry while promoting a warm, friendly and cooperative culture.
Work and life should definitely be buddies, so we're serious about cultivating a great work environment.
**Job Description**:
Responsible for analyzing, designing, developing, maintaining, evaluating and assuring the quality and performance of different software system components and their respective relationships, supporting and guiding others in his work team.
**Responsibilities**:
- Lead the analysis of defects in the system to find their causes and correct them.
- Lead the project requirements analysis process.
- Ensure that code tests are kept up to date with respect to changes introduced by the developed components.
- Determine data storage, processing and transmission needs based on the requirements analyzed.
- Design and implement unit, integration and system tests.
- Lead the design of software components integrated to the system under construction or maintenance that implement the requirements analyzed.
Participate in the implementation of these components.
- Lead and participate in the estimation of effort needed to implement the requirements analyzed.
- Lead and implement the integration of developed components with the rest of the system (Front End - Back End integration, APIs).
- Be a reference for the team in the peer review of the code of their teammates (peer review).
- Define and follow processes and standards for code management in repositories.
- Define processes and standards for code management in repositories.
- Verify compliance with requirements and proper functioning of developed components as specified.
**Qualifications**:
Advanced knowledge in:
- Object-oriented, functional, procedural and asynchronous programming paradigms.
- Software engineering processes (development cycle and quality control).
- Participation in agile software development methodologies: SCRUM, Kanban, among others.
- Software quality assurance (unit and integration testing).
- Design patterns.
- Development best practices to ensure efficiency, quality and maintainability.
- Best practices and mechanisms for deployment.
- Security, authentication and authorization mechanisms.
- Integration of services and software components.
- Error handling.
- Internationalization and accessibility.
- Responsive Design.
- Real-time data management.
- Configuration management.
- Experience with microservices based systems.
- Multitenancy.
- Processes / background / jobs / concurrency / Messaging (queues, bus, subscriber).
- Documentation (design diagrams, README.md, API, wiki, etc).
Languages:
- Advanced knowledge in at least two of the following languages: Java, Javascript, Kotlinm Python, Golang, C#, Ruby, PHP.
- Advanced knowledge in markup languages: HTML, XML, JSON, YAML.
- Advanced knowledge of CSS and processors such as SASS/LESS.
- Advanced knowledge of SQL language.
Tools:
- Advanced POSIX shell handling.
- Relational and non-relational databases (Postgres, MySQL, Mongo, Firebase, Dynamo DB).
- Code management tools (Source Control).
- Dependency management tools such as NPM, Yarn, Maven, Gradle.
- Build Managers such as Grunt, Gulp, Webpack, Maven, Gradle.
- Precompilers such as Babel, TypeScript, CoffeeScript and Flow.
- Tools for managing continuous integration processes such as Travis, Jenkins and CircleCI.
- Code management processes in repositories such as GitFlow and GitHub Flow.
- Virtualization and Containerization.
- Experience in cloud computing and its services (AWS, Azure,
GCP).
**Requirements**:
ACADEMIC TRAINING:
- Technician or Baccalaureate in Computer Engineering, Computer Science and related, or equivalent level of knowledge demonstrated.
- Certification of Scrum Fundamentals.
(desirable)
LANGUAGE:
- Technical and conversational English level C1 according to the Common European Framework.
LABOUR EXPERIENCE:
- Minimum 5 years of experience in software engineering (at least one year as Senior Developer) 2 years of experience leading software projects.
Additional Information
**Benefits**:
1.
100% work remote from any part in Costa Rica and outside of the country.
2.
Monthly connectivity allowance.
3.
Private health insurance for employees (90/10), 50% for beneficiaries (spouse and children).
4. International Health Insurance.
5.
Educational assistance (courses, certifications, books).
6.
Life insurance for