ascendon Flashcards

(40 cards)

1
Q

O que é o Ascendon em uma frase?

A

O Ascendon é uma plataforma de BSS digital em nuvem (SaaS) da CSG, multi-tenant e executada em AWS, que oferece módulos de catálogo, atendimento, billing, rating/charging e reporting para venda e cobrança de serviços digitais e telecom.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quais são os principais módulos do Ascendon e o papel de cada um?

A

Customer Care: portal para CSR gerenciar contas, assinaturas, cobranças e tickets; Studio: gestão de catálogo de produtos/ofertas e regras de elegibilidade; Billing/Core Billing/ARM: cálculo de faturas, ciclos de billing, descontos, impostos e integração contábil; ARC: rating e charging em tempo real e batch; Reporting: relatórios de negócio e exportações; Configuration/Security: settings de BU, integrações, usuários e permissões.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que significa dizer que o Ascendon é multi-tenant?

A

Multi-tenant significa que uma única plataforma lógica serve vários clientes (tenants), com dados segregados por business unit ou tenant; a infraestrutura é compartilhada (otimizando custos e escala), mas as regras de acesso garantem isolamento lógico e segurança entre clientes distintos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qual o papel do ARC (Ascendon Rating and Charging) na solução?

A

ARC é o domínio de rating/charging do Ascendon, composto por vários microserviços cloud-native em AWS, responsáveis por receber eventos de uso, enriquecer, tarifar em tempo real ou batch, aplicar regras de charging e disponibilizar resultados para billing e relatórios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Como você resumiria a arquitetura do Ascendon do ponto de vista técnico?

A

É uma plataforma SaaS cloud-native em AWS, multi-tenant, baseada em microserviços para domínios como Customer Care, Studio, Billing e ARC, com APIs REST, bancos relacionais (SQL Server) e integrações externas via serviços e eventos, operando em múltiplas regiões e zonas de disponibilidade para alta disponibilidade e escala.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quais ambientes típicos existem em uma implantação Ascendon?

A

Normalmente existem ambientes de QA/PRF (teste e performance), STG (staging), SBX/DEV (sandbox e desenvolvimento) e PRD (produção), distribuídos em diferentes regiões AWS, cada um com endpoints de serviços, metadata e interfaces (Customer Care, Studio) próprios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Em alto nível, como o Ascendon suporta o ciclo de vida do cliente de telecom?

A

Studio define produtos/ofertas e regras; canais de venda integram via APIs para criar assinaturas; Customer Care gerencia contas, alterações e suporte; ARC calcula cobranças de uso em tempo real; Billing consolida eventos e recorrências em faturas com impostos e descontos; Reporting e integrações financeiras alimentam GL e análises.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quais são as principais responsabilidades do Senior Software Development Engineer para Ascendon?

A

Projetar, analisar, codificar, modificar e suportar aplicações Ascendon; construir sistemas altamente disponíveis, escaláveis, resilientes e de fácil manutenção; automatizar tarefas com scripts/packaging; trabalhar em equipe agile; apoiar ambientes customer-facing (incluindo troubleshooting e monitoramento) e participar de on-call conforme necessário.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quais competências técnicas principais a vaga explicita?

A

C#, .NET e ASP.NET Core (incluindo testes com xUnit); SQL Server com foco em modelagem de schema e queries eficientes; experiência com AWS (infraestrutura de nuvem e serviços gerenciados); familiaridade com Terraform (IaC), Git e pipelines de CI/CD; e alguma familiaridade com uso de AI no ciclo de desenvolvimento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Que habilidades não técnicas a vaga enfatiza?

A

Trabalho em equipe em ambiente ágil, colaboração e comunicação em inglês, mentalidade de aprendizado contínuo, participação em code/design reviews, atitude proativa para resolver problemas em produção e disposição para aprender com o time e compartilhar conhecimento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Como você explicaria SOLID em poucas frases para o contexto da vaga?

A

SOLID é um conjunto de princípios de design orientado a objetos (SRP, OCP, LSP, ISP, DIP) que ajudam a construir serviços .NET mais coesos, desacoplados e testáveis. No contexto da vaga, aplicar SOLID em APIs, serviços de domínio e camadas de acesso a dados facilita manutenção, testes automatizados e evolução do Ascendon sem grandes refactors arriscados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

O que significa construir sistemas ‘altamente disponíveis, escaláveis e resilientes’ na prática?

A

Altamente disponíveis: rodar em múltiplas zonas/regiões com health checks, auto-restart e failover; escaláveis: permitir scaling horizontal (novas instâncias) com balanceamento de carga e padrões sem estado; resilientes: implementar retries, timeouts, circuit breaker, isolamento entre componentes e boa observabilidade para detectar e recuperar de falhas rapidamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Como você explicaria para o entrevistador a arquitetura de um microserviço .NET típico que você escreveria para o Ascendon?

A

Controller/API mínima recebendo requisições REST; camada de aplicação/orquestração contendo casos de uso; camada de domínio com entidades e regras de negócio; infraestrutura implementando repositórios, clientes HTTP e integração com mensageria; DI configurando todas as dependências; testes unitários para domínio e testes de integração para endpoints principais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quais boas práticas você aplicaria ao criar uma API REST em ASP.NET Core para o Ascendon?

A

Seguir convenções REST (verbs, recursos e códigos HTTP adequados), validação model-state com respostas 400 claras, uso de DTOs específicos para entrada/saída, versionamento de API, autenticação/autorização consistentes, logging estruturado e correlação de requisições, paginação e filtros para resultados grandes e documentação via OpenAPI/Swagger.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Como você garante testabilidade no seu código C#/.NET?

A

Separando lógica de negócio de infraestrutura, usando interfaces e DI para dependências externas, evitando static acoplado, mantendo métodos pequenos e focados, escrevendo testes unitários com xUnit para regras de negócio, usando fakes/mocks para externalidades (banco, HTTP, filas) e mantendo boundaries claros entre camadas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Que tipo de testes você priorizaria para serviços que suportam Ascendon em produção?

A

Uma base forte de testes unitários para regras de negócio e cálculos críticos (billing, rating, descontos), testes de integração para rotas e interações com banco/serviços, alguns testes end-to-end para fluxos-chave de cliente, além de smoke tests automatizados para validar o deploy em cada ambiente antes de liberar tráfego.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Como você descreveria um bom pipeline de CI/CD para um serviço .NET do Ascendon?

A

Pipeline acionado a cada push/PR, executando build, testes unitários, análise estática e geração de artefatos (imagens Docker ou pacotes). Em seguida, pipeline de CD faz deploy automatizado para ambiente de teste, roda smoke tests, e depois realiza deploy controlado para produção (blue-green ou canary), com rollback automatizado e métricas monitoradas.

18
Q

Na modelagem de dados de billing, quais entidades básicas você considera?

A

Contas (Account/BillingAccount/ResponsibleParty), Assinaturas/Contratos (Subscription/Contract), Produtos/Ofertas (Product/Offer), Faturas (Invoice), Itens de Fatura (InvoiceItem), Pagamentos (Payment), Ajustes (Adjustment/Credit/Debit) e possivelmente uma camada de eventos de uso/tarifação ligada a essas entidades.

19
Q

Como você relacionaria Invoice e InvoiceItem em SQL Server?

A

Criaria uma tabela Invoice com chave primária (InvoiceId) e colunas de cabeçalho (AccountId, período, vencimento, status, totais) e uma tabela InvoiceItem ligada por chave estrangeira InvoiceId, contendo descrição, referência ao produto/oferta, quantidade, preço unitário, impostos, descontos e valor total. Índices suportariam consultas por AccountId, datas e status.

20
Q

Que tipos de queries são comuns em um contexto de billing?

A

Listar faturas abertas por cliente e faixa de datas, obter histórico de faturas de um cliente, detalhar itens de uma fatura, agregar receita por produto/plano/período, identificar inadimplência por segmento ou região e localizar quickly uma fatura específica (por ID ou número) para atendimento de suporte.

21
Q

Como você abordaria problemas de performance em queries SQL Server?

A

Primeiro analisaria o plano de execução para ver scans desnecessários, índices não utilizados e joins caros; revisaria índices (criação de índices compostos, cobertura de filtros frequentes), verificaria estatísticas desatualizadas, reescreveria condições para serem SARGable, avaliaria particionamento para tabelas grandes e monitoraria locking/latches em cenários concorrentes.

22
Q

O que é importante considerar ao projetar um schema multi-tenant em SQL Server?

A

Sempre incluir uma coluna de TenantId ou BusinessUnitId em tabelas de negócio, garantir que todas as queries filtrem por tenant, usar índices que incluam o tenant na chave, evitar vazamento de dados entre tenants em joins e views, e eventualmente separar alguns tenants grandes em bancos/instâncias distintos se requisitos de isolamento e escala exigirem.

23
Q

Como você descreveria um deploy de serviço .NET em AWS com alta disponibilidade?

A

Empacotar o serviço em contêiner (Docker), rodar em ECS/EKS atrás de um Application Load Balancer, configurar Auto Scaling em múltiplas AZs, usar RDS SQL Server multi-AZ como banco, armazenar configurações sensíveis em Parameter Store/Secrets Manager, habilitar health checks no ALB, logs centralizados em CloudWatch e métricas/alarms para latência, erros e uso de recursos.

24
Q

Que componentes AWS você esperaria ver em torno de um serviço Ascendon?

A

Serviços de compute (ECS/EKS/EC2), balanceadores (ALB/NLB), RDS para SQL Server, S3 para storage de arquivos/logs ou relatórios, CloudWatch para logs/métricas/alarms, possivelmente SQS/SNS/Kinesis para mensageria/eventos e integrações com IAM para segurança e controle de acesso.

25
O que é Terraform e como você o aplicaria nesse contexto?
Terraform é uma ferramenta de infraestrutura como código declarativa; você descreve recursos AWS (VPC, sub-redes, ECS, RDS, roles) em arquivos .tf e ele calcula e aplica o plano de mudanças. Em um contexto Ascendon, eu organizaria módulos reutilizáveis para rede, bancos, serviços de aplicação e criaria workspaces ou diretórios separados para DEV/STG/PRD, versionando tudo em Git.
26
Como você estruturaria módulos Terraform para um ambiente multi-serviço?
Criaria módulos genéricos para VPC/rede, banco de dados, cluster ECS/EKS, serviços de aplicação, e talvez logging/monitoramento. Cada serviço concreto instanciaria o módulo de aplicação com parâmetros específicos (nome, imagem, portas, autoscaling). Ambientes diferentes reutilizariam os módulos com variações de tamanho, quantidades e configurações de segurança.
27
Qual é o fluxo ideal de CI/CD integrando Terraform?
Pipeline de aplicação faz build/teste da app; um pipeline de infra separado executa `terraform fmt/validate`, depois `plan` com revisão (manual ou via PR), e então `apply` controlado. Mudanças sensíveis de infra (banco, rede) passam por aprovação explícita. Em deploys, primeiro atualiza infra se necessário, depois faz rollout da nova versão da aplicação.
28
Como você implementaria resiliência em chamadas entre serviços em AWS?
Envolver chamadas externas com timeouts, políticas de retry com backoff exponencial e jitter, circuit breaker para evitar martelar serviços degradados, fallback quando aplicável, e instrumentação de métricas (latência, taxa de erro, número de circuitos abertos). Em .NET, isso normalmente é feito com HttpClientFactory + Polly ou implementações similares.
29
O que significa familiaridade com AI aplicada ao desenvolvimento de software?
Significa conseguir usar ferramentas de AI para acelerar tarefas como geração e refino de código, criação de testes, análise de logs e incidents, geração de documentação, refactors sugeridos e suporte a debugging, sempre revisando criticamente os resultados e respeitando políticas de segurança e confidencialidade de código e dados.
30
Que cuidados você tomaria ao usar ferramentas de AI em projetos como Ascendon?
Evitaria enviar segredos, credenciais e dados sensíveis; respeitaria regras de compliance e confidencialidade da empresa e dos clientes; sempre revisaria o código gerado antes de commitar; evitaria copiar trechos grandes sem entender; e usaria AI como apoio, não como substituto do julgamento técnico.
31
Como você explicaria o padrão de camada (layered architecture) que usaria num serviço do Ascendon?
Separaria em Camada de API/Interface (Controllers ou Minimal APIs), Camada de Aplicação (orquestra casos de uso, coordena transações), Camada de Domínio (entidades, value objects e regras de negócio) e Camada de Infraestrutura (banco, mensageria, integrações externas). Dependências fluem de fora pra dentro; o domínio não depende de detalhes de infraestrutura.
32
Como você explicaria para um entrevistador a diferença entre testes unitários, de integração e end-to-end no seu dia a dia?
Unitários: testam regras de negócio isoladas, rápidos e sem externalidades, usando mocks/fakes; integração: exercitam APIs, repositórios e frameworks reais (por exemplo, API + banco em container), validando wiring e mapeamentos; end-to-end: validam fluxos completos do ponto de vista do usuário/sistema, normalmente mais lentos e usados para cenários críticos.
33
Qual é um exemplo concreto de métrica que você monitoraria para um serviço crítico do Ascendon?
Monitoraria latência de chamadas (p50/p95/p99) por endpoint, taxa de erro por código HTTP, throughput (requisições por segundo), número de instâncias ativas, consumo de CPU/memória, conexões ao banco em uso, tempo de queries mais pesadas, além de métricas de negócios como número de faturas geradas por janela de tempo.
34
Como você explicaria um problema real de produção que você já solucionou (formato STAR)?
S: descrevo o contexto do sistema e o incidente (por exemplo, quedas intermitentes ou 503 em API crítica); T: explico o que eu precisava alcançar (restaurar serviço, identificar causa-raiz, evitar recorrência); A: detalho investigações em logs/monitoramento, correlações com mudanças, hipóteses testadas, correção aplicada e automações criadas; R: apresento resultados concretos (tempo médio de resposta, redução de incidentes, melhor visibilidade).
35
Como responder a 'Conte sobre uma vez em que você melhorou um processo ou pipeline'?
Escolher um caso onde pipeline de build/deploy era manual ou frágil; explicar como você mapeou o fluxo atual, identificou gargalos, propôs/implementou automação (por exemplo, testes automáticos, validação de infra, smoke tests pós-deploy), envolveu time para adoção; e quantificar resultados (menos erros em produção, tempo de entrega reduzido, menor esforço operacional).
36
Como responder a 'Dê um exemplo de conflito técnico que você ajudou a resolver'?
Descrever um desacordo (por exemplo, sobre tecnologia, design ou prazos), deixar claro que você ouviu as partes, trouxe dados (prototipagem, benchmarks, riscos), facilitou uma decisão baseada em trade-offs e alinhamento com objetivos do produto, e ajudou a documentar o racional para futuras revisões, mantendo o relacionamento do time saudável.
37
O que você destacaria quando perguntarem 'Por que você quer trabalhar no time de Ascendon especificamente?'
Conectaria sua experiência em billing, integrações e nuvem com o escopo do produto; destacaria o interesse em trabalhar em uma plataforma global de BSS digital e cloud-native; mencionaria vontade de contribuir para qualidade, escalabilidade e automação; e mostraria motivação para aprender mais sobre domínios como ARC, ARM e cenários de grandes clientes de telecom.
38
Como preparar uma resposta curta para 'Fale sobre você' focada nessa vaga?
Estruturaria em 3 blocos: 1) resumo de experiência (anos, foco em C#/.NET, billing/sistemas de missão crítica, nuvem); 2) 2 a 3 exemplos de projetos relevantes (migração para cloud, automação de billing, melhorias de performance/observabilidade); 3) conexão com o futuro: o que você quer aprender/fazer no Ascendon e como pode agregar para o time.
39
Quais pontos você usaria para mostrar senioridade técnica na entrevista?
Citar decisões de arquitetura que você liderou (e trade-offs feitos), melhorias mensuráveis em performance/estabilidade, participação ativa em code/design reviews, experiência com incidentes de produção e on-call, orientação de pessoas mais juniores, e envolvimento em melhorias de processo (CI/CD, testes, observabilidade).
40
Que tipo de pergunta você faria para o time de Ascendon no final da entrevista?
Perguntaria, por exemplo: como o time se organiza entre os diferentes domínios do Ascendon (ARC, Billing, Customer Care etc.); qual o tipo de problema técnico mais frequente hoje (performance, confiabilidade, dívida técnica); como funciona o ciclo de releases e observabilidade; e quais expectativas existem para alguém entrando como Senior nos primeiros 3–6 meses.