Software Engineer
O que é um Engenheiro de Software?
A engenharia de software é o processo de analisar as necessidades do usuário e projetar, construir e testar aplicativos de usuário final que satisfaçam essas necessidades por meio do uso de linguagens de programação de software. É a aplicação de princípios de engenharia ao desenvolvimento de software.
Development Skills
Development Methodologies
- Waterfall
- Scrum
- Kanban
Develpment Principles
- Kiss
- Yagni
- Dry
Tests
- TDD
- DDD
- BDD
Programming Paradigms
- Imperative
- Object Oriented
- Procedural
- Functional
- Declarative
Software Architecture Types
- Monolitic
- Serverless
- SOA
- Microservices
Data Structure and Algorithms
- Arrays
- Lists
- Trees
- Hashtables
- Stacks
- Queues
- Sort
- Binary Search
- Recursion
- Heaps
Design Patterns
- Singleton
- Builder
- Factory
- Strategy
- Observer
- Facade
- Decorator
- Proxy
- MVC
- Circuit Broker
- Event Sourcing
- CQRS
- Microservices Patterns
Languages and Frameworks
- Javascript
- Typescript
- NodeJs
- Express
- React
- NextJs
- Rust
- Shellscript
- Java (spring)
- GO
- Svlete
- Vue
Testing
- Unit tests
- Integrations tests
- Load testing
- Performance testing
- Gherkin Language
- Cucumber
Databases
- PostgresSQL
- MySQL
- Oracle
- MongoDB
- DynamoDB
Search Engines
- Elastic Search
- Solr
Caching Machanisms
- Redis
- CDN
- Memcached
- Client side
Message Broakers
- Apache Kafka
- RabitMQ
APIs
- REST
- GraphQL
- Swagger
- SOAP
- gRPC
- tRPC
- Gateways
- OpenAI
- Hateoas
Authetication
- JWT
- OAuth
- SAML
- OpenID
Web Security
- CORS
- Output encoding
Infrastructure Skills
Service Models
- IaaS
- PaaS
- SaaS
Source Control
- Git
- GitFlow
Build Tools
- Webpack
- Ant
- Maven
- Gradle
- Vite
- Parcel
- Rollup
Containarization
- Docker
Orchestration
- Kubernetes
Cloud Providers
- AWS
- Azure
- GCP
Linux
- Arch Linux
- OpenSuse
- CentOS
Soft Skills
- Ethical principles
- Confidence
- Collaboration
- Active learning and learning strategies
- Resilience, stress tolerance and flexibility
- Communication
- Organization and time management
- Emotional intelligence
- Team work
- Motivation
- Positive attitude
- Adaptability
- Analytical thinking and innovation
- Problem solving
- Critical thinking
- Creativity
- Leadership
- Logical reasoning
- Persuasion and Influence
Hard Skills
- Cloud computing
- Statistical Analysis and Data Mining
- Artificial Inteligence
- Smart Contract