Compare commits
2 Commits
a5baffe989
...
e40d747cb7
Author | SHA1 | Date | |
---|---|---|---|
e40d747cb7 | |||
b2eb939e3f |
459
CV.html
Normal file
459
CV.html
Normal file
@@ -0,0 +1,459 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>CV.md</title>
|
||||||
|
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
/* https://github.com/microsoft/vscode/blob/master/extensions/markdown-language-features/media/markdown.css */
|
||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif);
|
||||||
|
font-size: var(--vscode-markdown-font-size, 14px);
|
||||||
|
padding: 0 26px;
|
||||||
|
line-height: var(--vscode-markdown-line-height, 22px);
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
#code-csp-warning {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
color: white;
|
||||||
|
margin: 16px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: sans-serif;
|
||||||
|
background-color:#444444;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 6px;
|
||||||
|
box-shadow: 1px 1px 1px rgba(0,0,0,.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
#code-csp-warning:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
background-color:#007acc;
|
||||||
|
box-shadow: 2px 2px 2px rgba(0,0,0,.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.scrollBeyondLastLine {
|
||||||
|
margin-bottom: calc(100vh - 22px);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.showEditorSelection .code-line {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.showEditorSelection .code-active-line:before,
|
||||||
|
body.showEditorSelection .code-line:hover:before {
|
||||||
|
content: "";
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: -12px;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.showEditorSelection li.code-active-line:before,
|
||||||
|
body.showEditorSelection li.code-line:hover:before {
|
||||||
|
left: -30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-light.showEditorSelection .code-active-line:before {
|
||||||
|
border-left: 3px solid rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-light.showEditorSelection .code-line:hover:before {
|
||||||
|
border-left: 3px solid rgba(0, 0, 0, 0.40);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-light.showEditorSelection .code-line .code-line:hover:before {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-dark.showEditorSelection .code-active-line:before {
|
||||||
|
border-left: 3px solid rgba(255, 255, 255, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-dark.showEditorSelection .code-line:hover:before {
|
||||||
|
border-left: 3px solid rgba(255, 255, 255, 0.60);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-dark.showEditorSelection .code-line .code-line:hover:before {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-high-contrast.showEditorSelection .code-active-line:before {
|
||||||
|
border-left: 3px solid rgba(255, 160, 0, 0.7);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-high-contrast.showEditorSelection .code-line:hover:before {
|
||||||
|
border-left: 3px solid rgba(255, 160, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-high-contrast.showEditorSelection .code-line .code-line:hover:before {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:focus,
|
||||||
|
input:focus,
|
||||||
|
select:focus,
|
||||||
|
textarea:focus {
|
||||||
|
outline: 1px solid -webkit-focus-ring-color;
|
||||||
|
outline-offset: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border: 0;
|
||||||
|
height: 2px;
|
||||||
|
border-bottom: 2px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
padding-bottom: 0.3em;
|
||||||
|
line-height: 1.2;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
border-bottom-style: solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3 {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
table > thead > tr > th {
|
||||||
|
text-align: left;
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
table > thead > tr > th,
|
||||||
|
table > thead > tr > td,
|
||||||
|
table > tbody > tr > th,
|
||||||
|
table > tbody > tr > td {
|
||||||
|
padding: 5px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table > tbody > tr + tr > td {
|
||||||
|
border-top: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 0 7px 0 5px;
|
||||||
|
padding: 0 16px 0 10px;
|
||||||
|
border-left-width: 5px;
|
||||||
|
border-left-style: solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-family: Menlo, Monaco, Consolas, "Droid Sans Mono", "Courier New", monospace, "Droid Sans Fallback";
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1.357em;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.wordWrap pre {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre:not(.hljs),
|
||||||
|
pre.hljs code > div {
|
||||||
|
padding: 16px;
|
||||||
|
border-radius: 3px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code {
|
||||||
|
color: var(--vscode-editor-foreground);
|
||||||
|
tab-size: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Theming */
|
||||||
|
|
||||||
|
.vscode-light pre {
|
||||||
|
background-color: rgba(220, 220, 220, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-dark pre {
|
||||||
|
background-color: rgba(10, 10, 10, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-high-contrast pre {
|
||||||
|
background-color: rgb(0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-high-contrast h1 {
|
||||||
|
border-color: rgb(0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-light table > thead > tr > th {
|
||||||
|
border-color: rgba(0, 0, 0, 0.69);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-dark table > thead > tr > th {
|
||||||
|
border-color: rgba(255, 255, 255, 0.69);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-light h1,
|
||||||
|
.vscode-light hr,
|
||||||
|
.vscode-light table > tbody > tr + tr > td {
|
||||||
|
border-color: rgba(0, 0, 0, 0.18);
|
||||||
|
}
|
||||||
|
|
||||||
|
.vscode-dark h1,
|
||||||
|
.vscode-dark hr,
|
||||||
|
.vscode-dark table > tbody > tr + tr > td {
|
||||||
|
border-color: rgba(255, 255, 255, 0.18);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
/*
|
||||||
|
|
||||||
|
Darcula color scheme from the JetBrains family of IDEs
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
.hljs {
|
||||||
|
display: block;
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 0.5em;
|
||||||
|
background: #2b2b2b;
|
||||||
|
color: #bababa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-strong,
|
||||||
|
.hljs-emphasis {
|
||||||
|
color: #a8a8a2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-bullet,
|
||||||
|
.hljs-quote,
|
||||||
|
.hljs-link,
|
||||||
|
.hljs-number,
|
||||||
|
.hljs-regexp,
|
||||||
|
.hljs-literal {
|
||||||
|
color: #6896ba;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-code,
|
||||||
|
.hljs-selector-class {
|
||||||
|
color: #a6e22e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-emphasis {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-keyword,
|
||||||
|
.hljs-selector-tag,
|
||||||
|
.hljs-section,
|
||||||
|
.hljs-attribute,
|
||||||
|
.hljs-name,
|
||||||
|
.hljs-variable {
|
||||||
|
color: #cb7832;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-params {
|
||||||
|
color: #b9b9b9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-string {
|
||||||
|
color: #6a8759;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-subst,
|
||||||
|
.hljs-type,
|
||||||
|
.hljs-built_in,
|
||||||
|
.hljs-builtin-name,
|
||||||
|
.hljs-symbol,
|
||||||
|
.hljs-selector-id,
|
||||||
|
.hljs-selector-attr,
|
||||||
|
.hljs-selector-pseudo,
|
||||||
|
.hljs-template-tag,
|
||||||
|
.hljs-template-variable,
|
||||||
|
.hljs-addition {
|
||||||
|
color: #e0c46c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hljs-comment,
|
||||||
|
.hljs-deletion,
|
||||||
|
.hljs-meta {
|
||||||
|
color: #7f7f7f;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
/*
|
||||||
|
* Markdown PDF CSS
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif, "Meiryo";
|
||||||
|
padding: 0 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
border: 1px solid #cccccc;
|
||||||
|
border-radius: 3px;
|
||||||
|
overflow-x: auto;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre:not(.hljs) {
|
||||||
|
padding: 23px;
|
||||||
|
line-height: 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
background: rgba(127, 127, 127, 0.1);
|
||||||
|
border-color: rgba(0, 122, 204, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.emoji {
|
||||||
|
height: 1.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* for inline code */
|
||||||
|
:not(pre):not(.hljs) > code {
|
||||||
|
color: #C9AE75; /* Change the old color so it seems less like an error */
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Page Break : use <div class="page"/> to insert page break
|
||||||
|
-------------------------------------------------------- */
|
||||||
|
.page {
|
||||||
|
page-break-after: always;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
mermaid.initialize({
|
||||||
|
startOnLoad: true,
|
||||||
|
theme: document.body.classList.contains('vscode-dark') || document.body.classList.contains('vscode-high-contrast')
|
||||||
|
? 'dark'
|
||||||
|
: 'default'
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<h1 id="manuel-juan-morales-amat">Manuel Juan Morales Amat</h1>
|
||||||
|
<p>La Vila Joiosa, Alicante, Comunidad Valenciana, España<br>
|
||||||
|
+34 673522260 | <a href="mailto:mjmorales.mcv@gmail.com">mjmorales.mcv@gmail.com</a><br>
|
||||||
|
LinkedIn: <a href="https://www.linkedin.com/in/mmorales99" target="_blank">https://www.linkedin.com/in/mmorales99</a> | GitHub: <a href="https://github.com/mmorales99" target="_blank">https://github.com/mmorales99</a></p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="perfil-profesional">Perfil profesional</h2>
|
||||||
|
<p>Arquitecto de Software con 4 años de experiencia y actualmente desempeñando el rol de Analista Programador. Especializado en desarrollo Backend, con sólida experiencia en Frontend y diseño de bases de datos. Apasionado por la etapa de diseño, especialmente cuando implica crear soluciones con tecnologías innovadoras.</p>
|
||||||
|
<hr>
|
||||||
|
<h2 id="experiencia-laboral">Experiencia laboral</h2>
|
||||||
|
<p><strong>IMED Hospitales - Intecsal</strong><br>
|
||||||
|
<em>Analista Programador</em><br>
|
||||||
|
2024 - 2025</p>
|
||||||
|
<ul>
|
||||||
|
<li>Diseño y desarrollo de nuevos servicios, destacando un sistema de despliegues autónomos usando múltiples repositorios.</li>
|
||||||
|
<li>Uso de WPF y DevExpress para desarrollo de interfaces gráficas.</li>
|
||||||
|
<li>Formación y aplicación de conceptos de UX/UI para diseño de nuevas pantallas, implementando arquitecturas MVVM.</li>
|
||||||
|
<li>Mantenimiento de middleware que adapta información entre compañías aseguradoras y clientes.</li>
|
||||||
|
</ul>
|
||||||
|
<p><strong>Cognizant</strong><br>
|
||||||
|
<em>DevSecOps</em><br>
|
||||||
|
2024</p>
|
||||||
|
<ul>
|
||||||
|
<li>Análisis y optimización de la arquitectura física de nodos Kubernetes y disposición geográfica de servidores para el servicio Waylet.</li>
|
||||||
|
<li>Integración con sistemas de notificación de incidencias para equipo SecOps.</li>
|
||||||
|
<li>Asistencia en depuración y configuración de WAF y R4.</li>
|
||||||
|
</ul>
|
||||||
|
<p><strong>GTT (Gestión Tributaria Territorial)</strong><br>
|
||||||
|
<em>Arquitecto Fullstack / Analista Programador Senior</em><br>
|
||||||
|
2021 - 2024</p>
|
||||||
|
<ul>
|
||||||
|
<li>Liderazgo de múltiples proyectos clave:
|
||||||
|
<ul>
|
||||||
|
<li>Refactorización y actualización de sistema principal desde .NET Framework 4.5 a .NET 6 y 8.</li>
|
||||||
|
<li>Desarrollo de ESB y API Gateway para migrar de monolito a microservicios con SOAP a REST/gRPC.</li>
|
||||||
|
<li>Refactorización de sistema de transacciones con gRPC y micro-ORM, blindando base de datos contra SQL Injection.</li>
|
||||||
|
<li>Creación de un sistema CI/CD con Jira, Jenkins y GitLab CI/CD para pruebas automatizadas con Selenium y NUnit.</li>
|
||||||
|
<li>Mejora de resiliencia en sistemas con replicación, healthchecks y sharding.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>Aplicación de arquitecturas DDD, Microservicios, Clean Architecture y Three Layered Architecture.</li>
|
||||||
|
<li>Responsable del diseño, planificación, documentación y defensa técnica.</li>
|
||||||
|
<li>Supervisión y mentoring de hasta 3 compañeros.</li>
|
||||||
|
<li>Tecnologías: SOAP, REST, gRPC, WebSocket, .NET (3.5 a 8), EntityFramework, Dapper, Identity Server 4, JWT, IIS, Windows Server, Oracle DB, SQL Server, MongoDB, Jira, Jenkins, Azure, GitLab, Springboot, Python, PowerShell, ElasticSearch, Kibana, Vue, Node, MediatR, AutoMapper, Serilog, Dapr, AWS, Docker, Selenium, Playwright, NUnit.</li>
|
||||||
|
</ul>
|
||||||
|
<p><strong>MCV Ingenieros</strong><br>
|
||||||
|
<em>Helpdesk, Administrador de redes, Arquitecto de soluciones, Programador</em><br>
|
||||||
|
2016 - 2021</p>
|
||||||
|
<ul>
|
||||||
|
<li>Soporte técnico y administración de redes.</li>
|
||||||
|
<li>Diseño e implementación de soluciones escalables y modernización de infraestructura y sistemas.</li>
|
||||||
|
</ul>
|
||||||
|
<hr>
|
||||||
|
<h2 id="formaci%C3%B3n-acad%C3%A9mica-y-certificaciones">Formación académica y certificaciones</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Estudios universitarios en Ingeniería Informática (1º, 2º y 3º curso) — sin finalizar</li>
|
||||||
|
<li>Certificado de Profesionalidad equivalente a Desarrollo de Aplicaciones Web (DAW) — 2025</li>
|
||||||
|
<li>Actualmente cursando ASIR (Administración de Sistemas Informáticos en Red)</li>
|
||||||
|
<li>Próximo inicio en septiembre: ISAQB CPSA Foundation Level</li>
|
||||||
|
<li>Formación continua autodidacta y técnica para mantenerse actualizado</li>
|
||||||
|
</ul>
|
||||||
|
<hr>
|
||||||
|
<h2 id="tecnolog%C3%ADas-y-competencias-t%C3%A9cnicas">Tecnologías y competencias técnicas</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Backend: C#, Python, Java</li>
|
||||||
|
<li>Frontend: TypeScript, JavaScript; Vue (Nuxt + Axios), Angular (Redux + Axios), jQuery</li>
|
||||||
|
<li>Bases de datos: Oracle, SQL Server</li>
|
||||||
|
<li>Infraestructura: Alpine Linux, Windows Servers, Podman, Kubernetes</li>
|
||||||
|
<li>Seguridad y autenticación: JWT con OpenID, Client Credentials, ApiKey, cifrado E2E</li>
|
||||||
|
<li>Metodologías: Kanban, Scrum con Jira y Asana</li>
|
||||||
|
<li>CI/CD: GitLab CI/CD, Jenkins, Azure DevOps, GitHub Actions, Gitea CI/CD, Dokploy (en integración)</li>
|
||||||
|
<li>Testing y reporte: Jam, Postman, Selenium, NUnit</li>
|
||||||
|
</ul>
|
||||||
|
<hr>
|
||||||
|
<h2 id="idiomas">Idiomas</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Castellano: Nativo</li>
|
||||||
|
<li>Valenciano: Nativo</li>
|
||||||
|
<li>Inglés: Nivel C1 (Avanzado)</li>
|
||||||
|
</ul>
|
||||||
|
<hr>
|
||||||
|
<h2 id="habilidades-blandas-y-logros">Habilidades blandas y logros</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Persona empática, servicial, con gran capacidad para resolver problemas en equipo y conducirlo responsablemente hacia objetivos.</li>
|
||||||
|
<li>Comunicación asertiva y clara, generando espacios de entendimiento sin conflictos.</li>
|
||||||
|
<li>Comprometido con la actualización continua del equipo y la anticipación tecnológica.</li>
|
||||||
|
<li>Experiencia en liderar proyectos ambiciosos y con recursos limitados, cumpliendo siempre los objetivos.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
94
CV.md
Normal file
94
CV.md
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
# Manuel Juan Morales Amat
|
||||||
|
|
||||||
|
La Vila Joiosa, Alicante, Comunidad Valenciana, España
|
||||||
|
+34 673522260 | [mjmorales.mcv@gmail.com](mailto:mjmorales.mcv@gmail.com)
|
||||||
|
LinkedIn: <a href="https://www.linkedin.com/in/mmorales99" target="_blank">https://www.linkedin.com/in/mmorales99</a> | GitHub: <a href="https://github.com/mmorales99" target="_blank">https://github.com/mmorales99</a>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Perfil profesional
|
||||||
|
|
||||||
|
Arquitecto de Software con 4 años de experiencia y actualmente desempeñando el rol de Analista Programador. Especializado en desarrollo Backend, con sólida experiencia en Frontend y diseño de bases de datos. Apasionado por la etapa de diseño, especialmente cuando implica crear soluciones con tecnologías innovadoras.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Experiencia laboral
|
||||||
|
|
||||||
|
**IMED Hospitales - Intecsal**
|
||||||
|
*Analista Programador*
|
||||||
|
2024 - 2025
|
||||||
|
|
||||||
|
- Diseño y desarrollo de nuevos servicios, destacando un sistema de despliegues autónomos usando múltiples repositorios.
|
||||||
|
- Uso de WPF y DevExpress para desarrollo de interfaces gráficas.
|
||||||
|
- Formación y aplicación de conceptos de UX/UI para diseño de nuevas pantallas, implementando arquitecturas MVVM.
|
||||||
|
- Mantenimiento de middleware que adapta información entre compañías aseguradoras y clientes.
|
||||||
|
|
||||||
|
**Cognizant**
|
||||||
|
*DevSecOps*
|
||||||
|
2024
|
||||||
|
|
||||||
|
- Análisis y optimización de la arquitectura física de nodos Kubernetes y disposición geográfica de servidores para el servicio Waylet.
|
||||||
|
- Integración con sistemas de notificación de incidencias para equipo SecOps.
|
||||||
|
- Asistencia en depuración y configuración de WAF y R4.
|
||||||
|
|
||||||
|
**GTT (Gestión Tributaria Territorial)**
|
||||||
|
*Arquitecto Fullstack / Analista Programador Senior*
|
||||||
|
2021 - 2024
|
||||||
|
|
||||||
|
- Liderazgo de múltiples proyectos clave:
|
||||||
|
- Refactorización y actualización de sistema principal desde .NET Framework 4.5 a .NET 6 y 8.
|
||||||
|
- Desarrollo de ESB y API Gateway para migrar de monolito a microservicios con SOAP a REST/gRPC.
|
||||||
|
- Refactorización de sistema de transacciones con gRPC y micro-ORM, blindando base de datos contra SQL Injection.
|
||||||
|
- Creación de un sistema CI/CD con Jira, Jenkins y GitLab CI/CD para pruebas automatizadas con Selenium y NUnit.
|
||||||
|
- Mejora de resiliencia en sistemas con replicación, healthchecks y sharding.
|
||||||
|
- Aplicación de arquitecturas DDD, Microservicios, Clean Architecture y Three Layered Architecture.
|
||||||
|
- Responsable del diseño, planificación, documentación y defensa técnica.
|
||||||
|
- Supervisión y mentoring de hasta 3 compañeros.
|
||||||
|
- Tecnologías: SOAP, REST, gRPC, WebSocket, .NET (3.5 a 8), EntityFramework, Dapper, Identity Server 4, JWT, IIS, Windows Server, Oracle DB, SQL Server, MongoDB, Jira, Jenkins, Azure, GitLab, Springboot, Python, PowerShell, ElasticSearch, Kibana, Vue, Node, MediatR, AutoMapper, Serilog, Dapr, AWS, Docker, Selenium, Playwright, NUnit.
|
||||||
|
|
||||||
|
**MCV Ingenieros**
|
||||||
|
*Helpdesk, Administrador de redes, Arquitecto de soluciones, Programador*
|
||||||
|
2016 - 2021
|
||||||
|
|
||||||
|
- Soporte técnico y administración de redes.
|
||||||
|
- Diseño e implementación de soluciones escalables y modernización de infraestructura y sistemas.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Formación académica y certificaciones
|
||||||
|
|
||||||
|
- Estudios universitarios en Ingeniería Informática (1º, 2º y 3º curso) — sin finalizar
|
||||||
|
- Certificado de Profesionalidad equivalente a Desarrollo de Aplicaciones Web (DAW) — 2025
|
||||||
|
- Actualmente cursando ASIR (Administración de Sistemas Informáticos en Red)
|
||||||
|
- Próximo inicio en septiembre: ISAQB CPSA Foundation Level
|
||||||
|
- Formación continua autodidacta y técnica para mantenerse actualizado
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tecnologías y competencias técnicas
|
||||||
|
|
||||||
|
- Backend: C#, Python, Java
|
||||||
|
- Frontend: TypeScript, JavaScript; Vue (Nuxt + Axios), Angular (Redux + Axios), jQuery
|
||||||
|
- Bases de datos: Oracle, SQL Server
|
||||||
|
- Infraestructura: Alpine Linux, Windows Servers, Podman, Kubernetes
|
||||||
|
- Seguridad y autenticación: JWT con OpenID, Client Credentials, ApiKey, cifrado E2E
|
||||||
|
- Metodologías: Kanban, Scrum con Jira y Asana
|
||||||
|
- CI/CD: GitLab CI/CD, Jenkins, Azure DevOps, GitHub Actions, Gitea CI/CD, Dokploy (en integración)
|
||||||
|
- Testing y reporte: Jam, Postman, Selenium, NUnit
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Idiomas
|
||||||
|
|
||||||
|
- Castellano: Nativo
|
||||||
|
- Valenciano: Nativo
|
||||||
|
- Inglés: Nivel C1 (Avanzado)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Habilidades blandas y logros
|
||||||
|
|
||||||
|
- Persona empática, servicial, con gran capacidad para resolver problemas en equipo y conducirlo responsablemente hacia objetivos.
|
||||||
|
- Comunicación asertiva y clara, generando espacios de entendimiento sin conflictos.
|
||||||
|
- Comprometido con la actualización continua del equipo y la anticipación tecnológica.
|
||||||
|
- Experiencia en liderar proyectos ambiciosos y con recursos limitados, cumpliendo siempre los objetivos.
|
150
README.md
150
README.md
@@ -1,20 +1,148 @@
|
|||||||
<h1 align="center">IT's ME</h1>
|
# 👋 ¡Hola! Soy Manuel Juan Morales Amat (`mmorales99`)
|
||||||
|
|
||||||
|
_Arquitecto de Software, Full Stack Developer y entusiasta de la tecnología, especializado en sistemas robustos, arquitecturas limpias y soluciones modernas de comunicación y automatización._
|
||||||
|
|
||||||
|
[](https://www.mcvingenieros.es)
|
||||||
|
[](https://www.linkedin.com/in/mmorales99)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## WHO AM I?
|
## 💼 Sobre mí
|
||||||
|
|
||||||
I'm a student at [Universidad de Alicante (UA)](https://www.ua.es/ "La UA no actUA").
|
> Profesional orientado a la excelencia técnica en arquitectura y desarrollo, con visión escalable y experiencia en integración de sistemas, DevOps, contenedores y comunicación digital. Especializado en .NET 8+, y tecnologías modernas de backend, siempre con foco en seguridad, automatización y eficiencia. Experimentado en frontend con Angular 20, JQuery, Vue y WPF.
|
||||||
Polyglota since I speak native spanish, valencia as my mother languaje and fluent english; I also write code in Java, C/C++, Python and some many others.
|
|
||||||
In the way of specialising on Artificial Intelligence, I have done some courses about CUDA, Artificial and Computericed Vision, and Development of Neural Networks using Tensorflow 2 in Python.
|
|
||||||
|
|
||||||
In a hacky way, I drive my own radio at my local spot. Nowadays, this station has a range of 50 meters, not kinda powerful.
|
---
|
||||||
I have been colaborating around 2 years in the IEEE Student branchs of [Univesidad Miguel Hernández](https://umh.es/ "umhuuuus") where we developed lots of interdisciplinary projects, since a [roomba](https://www.irobot.es/)-like robot to a [CubeSat](https://en.wikipedia.org/wiki/CubeSat)(never launched).
|
|
||||||
|
|
||||||
If your are looking for some developers for your team, you can finde me at [joppy.me](https://app.joppy.me/).
|
## 🛠️ Tecnologías y Niveles de Conocimiento
|
||||||
|
|
||||||
# My web site:
|
#### Lenguajes
|
||||||
|
|
||||||
I have a web site hosted in github: [mmorales99.github.io](https://mmorales99.github.io)
|
- C# ▇▇▇▇▇ Experto
|
||||||
|
- Java ▇▇▇▆▆ Avanzado
|
||||||
|
- C/C++ ▇▇▇▇▆ Experto
|
||||||
|
- Objective-C ▇▇▆▆▆ Intermedio
|
||||||
|
- Cuda ▇▇▇▆▆ Avanzado
|
||||||
|
- TypeScript ▇▇▇▇▇ Avanzado
|
||||||
|
- JavaScript ▇▇▇▇▇ Avanzado
|
||||||
|
- HTML/CSS ▇▇▇▆▆ Avanzado
|
||||||
|
- SQL ▇▇▇▇▆ Sólido
|
||||||
|
- PowerShell ▇▇▇▇▆ Sólido
|
||||||
|
- Python ▇▇▇▆▆ Avanzado
|
||||||
|
- Bash ▇▇▇▆▆ Avanzado
|
||||||
|
- Dart ▇▇▇▆▆ Avanzado
|
||||||
|
- Lisp ▇▇▇▆▆ Avanzado
|
||||||
|
- Scheme ▇▇▇▆▆ Avanzado
|
||||||
|
- Pascal ▇▇▇▆▆ Avanzado
|
||||||
|
- Lazarus ▇▇▆▆▆ Avanzado
|
||||||
|
- Swift ▇▇▆▆▆ Intermedio
|
||||||
|
- Delphi ▇▇▆▆▆ Intermedio
|
||||||
|
- Kotlin ▇▇▆▆▆ Intermedio
|
||||||
|
- Fortran ▇▇▆▆▆ Intermedio
|
||||||
|
|
||||||
<div class="LI-profile-badge" data-version="v1" data-size="medium" data-locale="es_ES" data-type="vertical" data-theme="dark" data-vanity="manuel-morales-1a34761a9"><a class="LI-simple-link" href='https://es.linkedin.com/in/manuel-morales-1a34761a9?trk=profile-badge'>Manuel Morales</a></div>
|
#### Frameworks y Stacks
|
||||||
|
|
||||||
|
- .NET 8 / Core ▇▇▇▇▇ Experto
|
||||||
|
- Angular (20+) ▇▇▇▇▇ Experto
|
||||||
|
- ASP.NET ▇▇▇▇▆ Sólido
|
||||||
|
- Entity Framework▇▇▇▇▆ Sólido
|
||||||
|
- Dapper ▇▇▇▆▆ Avanzado
|
||||||
|
- Dapr ▇▇▇▆▆ Avanzado
|
||||||
|
- DevExpress ▇▇▇▆▆ Avanzado
|
||||||
|
- Blazor ▇▇▇▆▆ Avanzado
|
||||||
|
- ASP.NET MVC ▇▇▇▆▆ Avanzado
|
||||||
|
- Web API ▇▇▇▆▆ Avanzado
|
||||||
|
- SignalR ▇▇▇▆▆ Avanzado
|
||||||
|
- gRPC ▇▇▇▆▆ Avanzado
|
||||||
|
- REST ▇▇▇▆▆ Avanzado
|
||||||
|
- SOAP ▇▇▇▆▆ Avanzado
|
||||||
|
- MediatR ▇▇▇▆▆ Avanzado
|
||||||
|
- AutoMapper ▇▇▇▆▆ Avanzado
|
||||||
|
- FluentValidation▇▇▇▆▆ Avanzado
|
||||||
|
- Serilog ▇▇▇▆▆ Avanzado
|
||||||
|
- Moq ▇▇▇▆▆ Avanzado
|
||||||
|
- NUnit ▇▇▇▆▆ Avanzado
|
||||||
|
- xUnit ▇▇▇▆▆ Avanzado
|
||||||
|
- IdentityServer ▇▇▇▆▆ Avanzado
|
||||||
|
- RabbitMQ ▇▇▇▆▆ Avanzado
|
||||||
|
- Kafka ▇▇▇▆▆ Avanzado
|
||||||
|
|
||||||
|
#### Herramientas / DevOps
|
||||||
|
|
||||||
|
- Podman ▇▇▇▇▇ Avanzado
|
||||||
|
- Git ▇▇▇▇▇ Avanzado
|
||||||
|
- WiX Toolset ▇▇▇▇▆ Sólido
|
||||||
|
- CI/CD (GitHub Actions, scripts) ▇▇▇▇▆ Avanzado
|
||||||
|
- Gitlab CI/CD ▇▇▇▇▆ Avanzado
|
||||||
|
- Jenkins ▇▇▇▆▆ Avanzado
|
||||||
|
- Gitea CI/CD ▇▇▇▆▆ Avanzado
|
||||||
|
- Docker Compose ▇▇▇▇▆ Sólido
|
||||||
|
- Docker ▇▇▇▇▆ Sólido
|
||||||
|
- Playwright ▇▇▇▆▆ Avanzado
|
||||||
|
- Selenium ▇▇▇▆▆ Avanzado
|
||||||
|
- IIS ▇▇▇▆▆ Avanzado
|
||||||
|
- Kubernetes ▇▇▇▆▆ Intermedio
|
||||||
|
- Gunicorn ▇▇▇▆▆ Avanzado
|
||||||
|
- Traefik ▇▇▇▆▆ Avanzado
|
||||||
|
- WAMP ▇▇▇▆▆ Avanzado
|
||||||
|
- Elasticsearch ▇▇▇▆▆ Avanzado
|
||||||
|
- Kibana ▇▇▇▆▆ Avanzado
|
||||||
|
- Logstash ▇▇▇▆▆ Avanzado
|
||||||
|
- FileBeat ▇▇▇▆▆ Avanzado
|
||||||
|
- Husky ▇▇▇▆▆ Avanzado
|
||||||
|
- Conventional Commits ▇▇▇▆▆ Avanzado
|
||||||
|
|
||||||
|
#### Base de datos / Caching
|
||||||
|
|
||||||
|
- SQL Server ▇▇▇▇▆ Sólido
|
||||||
|
- Oracle ▇▇▇▇▆ Sólido
|
||||||
|
- MongoDB ▇▇▇▇▆ Sólido
|
||||||
|
- Redis ▇▇▇▇▆ Sólido
|
||||||
|
- PostgreSQL ▇▇▇▆▆ Avanzado
|
||||||
|
- SQLite ▇▇▇▆▆ Avanzado
|
||||||
|
|
||||||
|
#### Otros
|
||||||
|
|
||||||
|
- Sistemas de radio y comunicaciones UHF/VHF (programación y protocolo) ▇▇▇▇▆ Sólido
|
||||||
|
- Automatización y scripting ▇▇▇▇▆ Sólido
|
||||||
|
|
||||||
|
*Leyenda: ▇▇▇▇▇=Experto | ▇▇▇▇▆=Sólido | ▇▇▇▆▆=Avanzado | ▇▇▆▆▆=Intermedio*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏛️ Arquitecturas y Principios que Utilizo
|
||||||
|
|
||||||
|
- Domain-Driven Design (DDD)
|
||||||
|
- Clean Architecture
|
||||||
|
- CQRS (Command-Query Responsibility Segregation)
|
||||||
|
- Microservicios
|
||||||
|
- Layered Architecture
|
||||||
|
- API RESTful seguras y tokenizadas (JWT, OAuth, OIDC)
|
||||||
|
- Automatización CI/CD y despliegue containerizado
|
||||||
|
- Monitorización y logging distribuido
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🗂️ Portafolio Destacado
|
||||||
|
|
||||||
|
| Proyecto | Descripción | Tecnologías / Arquitectura | Enlace |
|
||||||
|
|------------------|--------------------------------------------------|-------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
|
||||||
|
| SAR Honduras | Backend y frontend para gestión tributaria | .NET 6, Vue, Oracle, SqlServer, IIS, gRPC, REST, Api Gateway, ESB, Aspose.PDF, MediatR... | [Ver proyecto](https://oficinavirtual.sar.gob.hn/) |
|
||||||
|
|
||||||
|
_Puedes ver más detalles y proyectos en mi [web personal](https://www.mcvingenieros.es)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Cómo trabajo
|
||||||
|
|
||||||
|
- Liderazgo técnico y mentorship en equipos multidisciplinares
|
||||||
|
- Metodología ágil y trabajo colaborativo (GitFlow, code review, integración continua)
|
||||||
|
- Automatización: scripts, pipelines, pre-commits, herramientas de calidad
|
||||||
|
- Visión global: desde la arquitectura hasta la entrega y el soporte
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📫 Contacto
|
||||||
|
|
||||||
|
- 🌐 Web: [www.mcvingenieros.es](https://www.mcvingenieros.es)
|
||||||
|
- 💼 LinkedIn: [Manuel Juan Morales Amat](https://www.linkedin.com/in/mmorales99)
|
||||||
|
- ✉️ Email: [mjmorales.mcv@gmail.com](mailto:mjmorales.mcv@gmail.com)
|
Reference in New Issue
Block a user