Welcome to rafaelcarrion.dev
Hello! I'm Rafael Carrión, a Senior Software Engineer / Solution Architect / CTO based in Nuremberg, Germany. Currently working at noris network AG and co-owning Technit Solutions México , where I've led the development of 30+ mobile applications. This portfolio is designed to look and feel like VS Code — because if you're going to read about a developer, why not do it in their natural habitat?
Quick Start
Navigate through the file explorer on the left to discover different sections:
README.md— You are hereabout.md— Learn more about meexperience.json— My professional journeyskills.ts— Technical toolkiteducation.yaml— Education & certificationscontact.tsx— Let's connect
Features
This interactive portfolio includes:
- File Explorer — Click files to open them as tabs
- Tab System — Multiple files open at once, just like a real IDE
- Search — Search for files and content
- Source Control — View Git commit history and diffs
- Customize Panel — Customize the appearance of the IDE
- Themes — Dark+, Light and Monokai
- Syntax Highlighting — Code displayed with proper colors
- Mobile Responsive — Collapsible sidebar and touch-friendly navigation
- AI Chat Assistant — Ask questions about Rafael's experience
About This Project
Built with Astro and styled with Tailwind CSS. The design faithfully recreates VS Code's Dark+ theme with attention to the small details: the activity bar icons, the file tree animations, and the status bar at the bottom.
"Any sufficiently advanced portfolio is indistinguishable from an actual IDE."
About Me
Hi there! I'm Rafael Carrión, a Senior Software Engineer / Solution Architect / CTO based in Nuremberg, Germany. I'm currently working at noris network AG as Senior Software Engineer, and I'm also the co-owner and CTO of Technit Solutions México , where I've led the development of 30+ mobile applications.
What I Do
Senior Software Engineer at noris network AG and CTO/Co-owner of Technit Solutions México with 15+ years of experience in solution architecture, full-stack development, and mobile app development. Led development of 30+ mobile applications and enterprise software solutions. Expert in system design, cloud architecture, and leading technical teams.
- Programming Languages: JavaScript, TypeScript, HTML5, Modern CSS, PHP, SQL, Python
- Frameworks & Libraries: Angular, Ionic, NestJS, React, Laravel, Bootstrap, Materialize, Cordova, Capacitor, Tailwind CSS, Astro, Next.js, TanStack
- Testing: Jasmine, Jest, Vitest, Cypress, Playwright, Selenium
- Databases: MySQL/MariaDB, SQL Server, SQLite, Firebase, MongoDB
- OS & Server: Windows, Mac, Ubuntu, CentOS, Porteus
- Cloud & DevOps: AWS (EC2, S3, RDS, Lambda, EB, Amplify), Firebase, Docker, CI/CD, Git, Monolithic Architecture, Microservices Architecture, GitLab CI/CD, GitHub Actions, Nixpack, Coolify, Vercel
My Approach
I believe in understanding business problems first, then designing software solutions that best meet the project's needs. I focus on how technology can solve business challenges, which frameworks and platforms to use, how applications will scale, and how they will be maintained. I'm passionate about software architecture, system design, and leading development teams to deliver high-quality solutions.
"The best code is no code at all. The second best is code that's easy to understand and change."
Key Strengths
Teamwork, Active listening & communication, Leadership, Forward thinking, Comfortable working with deadlines, Creative, Adaptability, Problem-solving, Think outside the box
Beyond the Code
When I'm not coding, you'll find me exploring Nuremberg, contributing to open-source projects, or working on new mobile applications and software solutions through Technit.
Let's Connect
I'm always open to interesting conversations and new opportunities. Find me on:
- GitHub — Check out my open-source work
- LinkedIn — Professional network
- Twitter/X — Occasional tech thoughts
- Bluesky — Occasional tech thoughts
- Xing — Professional network
- Instagram — Personal life
contact.tsx in the file explorer for my contact form.
1// skills.ts - Technical Skills & Expertise
2// Last updated: 2026
3
4interface Developer {
5languages: string[];
6frameworks: string[];
7databases: string[];
8os: string[];
9cloud: string[];
10}
11
12const rafael: Developer = {
13languages: [
14 "JavaScript",
15 "TypeScript",
16 "HTML5",
17 "Modern CSS",
18 "PHP",
19 "SQL",
20 "Python"
21 ],
22
23frameworks: [
24 "Angular",
25 "Ionic",
26 "NestJS",
27 "React",
28 "Laravel",
29 "Bootstrap",
30 "Materialize",
31 "Cordova",
32 "Capacitor",
33 "Tailwind CSS",
34 "Astro",
35 "Next.js",
36 "TanStack"
37 ],
38
39databases: [
40 "MySQL/MariaDB",
41 "SQL Server",
42 "SQLite",
43 "Firebase",
44 "MongoDB"
45 ],
46
47os: [
48 "Windows",
49 "Mac",
50 "Ubuntu",
51 "CentOS",
52 "Porteus"
53 ],
54
55cloud: [
56 "AWS (EC2, S3, RDS, Lambda, EB, Amplify)",
57 "Firebase",
58 "Docker",
59 "CI/CD",
60 "Git",
61 "Monolithic Architecture",
62 "Microservices Architecture",
63 "GitLab CI/CD",
64 "GitHub Actions",
65 "Nixpack",
66 "Coolify",
67 "Vercel"
68 ],
69};
70
71export default rafael; <span class="line"><span class="line-number"> 1</span><span class="syntax-comment">// contact.tsx - Get in Touch Component</span></span>
<span class="line"><span class="line-number"> 2</span><span class="syntax-comment">// Rafael Carrión - Senior Software Engineer / Solution Architect / CTO</span></span>
<span class="line"><span class="line-number"> 3</span></span>
<span class="line"><span class="line-number"> 4</span><span class="syntax-keyword">import</span> <span class="syntax-variable">React</span>, { <span class="syntax-variable">useState</span> } <span class="syntax-keyword">from</span> <span class="syntax-string">'react'</span>;</span>
<span class="line"><span class="line-number"> 5</span></span>
<span class="line"><span class="line-number"> 6</span><span class="syntax-keyword">interface</span> <span class="syntax-type">ContactFormProps</span> {</span>
<span class="line"><span class="line-number"> 7</span> <span class="syntax-variable">recipient</span>: <span class="syntax-type">string</span>;</span>
<span class="line"><span class="line-number"> 8</span> <span class="syntax-variable">theme</span>?: <span class="syntax-string">'dark'</span> | <span class="syntax-string">'light'</span>;</span>
<span class="line"><span class="line-number"> 9</span>}</span>
<span class="line"><span class="line-number">10</span></span>
<span class="line"><span class="line-number">11</span><span class="syntax-keyword">export const</span> <span class="syntax-function">ContactForm</span>: <span class="syntax-type">React.FC</span><<span class="syntax-type">ContactFormProps</span>> = ({</span>
<span class="line"><span class="line-number">12</span> <span class="syntax-variable">recipient</span> = <span class="syntax-string">"rafael@rafaelcarrion.dev"</span>,</span>
<span class="line"><span class="line-number">13</span> <span class="syntax-variable">theme</span> = <span class="syntax-string">"dark"</span></span>
<span class="line"><span class="line-number">14</span>}) => {</span>
<span class="line"><span class="line-number">15</span></span>
<span class="line"><span class="line-number">16</span> <span class="syntax-keyword">return</span> (</span>
<span class="line"><span class="line-number">17</span> <<span class="syntax-type">form</span> <span class="syntax-variable">className</span>=<span class="syntax-string">"contact-form"</span>></span>
<span class="line"><span class="line-number">18</span></span>
19 <Input
20 type="text"
21 name="name"
22 label="Your Name"
23 required={true}
24 value={
25}
26 />
27
28 <Input
29 type="email"
30 name="email"
31 label="Email Address"
32 required={true}
33 value={
34}
35 />
36
37 <TextArea
38 name="message"
39 label="Message"
40 rows={5}
41 required={true}
42 value={
43}
44 />
45
46 <Button
47 type="submit"
48 variant="primary"
49 onClick={handleSubmit}
50 >
51</Button>
52
53 </form>
54 );
55};
56
57export default ContactForm; 1# education.yaml - Education & Certifications
2# Rafael Carrión - Senior Software Engineer / Solution Architect / CTO
3
4certifications:
5 - name: "Certified Application Developer (CAD)"
6 issuer: "ServiceNow"
7 year: 2026
8
9 - name: "Certified ServiceNow Administrator (CSA)"
10 issuer: "ServiceNow"
11 year: 2024
12
13education:
14 - degree: "Master in eCommerce"
15 institution: "Tec de Monterrey"
16 location: "México"
17 year: 2011
18 period: "2010 - 2011"
19 honors:
20 - "Master in eCommerce"
21
22 - degree: "Computer Engineering"
23 institution: "Tec de Monterrey"
24 location: "México"
25 year: 2009
26 period: "2005 - 2009"
27 gpa: "95/100"
28 honors:
29 - "Magna Cum Laude"
30 - "Outstanding grade in CENEVAL final global examination"
31 specializations:
32 - "Project Management Specialization"
33 - "Software Engineering Specialization"
34 - "Computer Engineering Core Curriculum"
35
36 - degree: "Advanced English for Science"
37 institution: "Boston University"
38 location: "Boston, USA"
39 year: 2005
40 period: "2004 - 2005"
41 type: "Language Certificate"
42
43continuous_learning:
44 platforms:
45 - "NOW Learning"
46 - "Pluralsight"
47 - "Udemy"
48 - "Frontend Masters"
49 current_focus:
50 - "Cloud Architecture"
51 - "Security Best Practices"
52 - "System Design"
{
"technologies": ["JavaScript", "TypeScript", "Node.js", "AWS", "Docker", "ServiceNow", "Angular", "AngularJS"]
}
{
"technologies": ["MariaDB", "SQL Server", "Sybase", "LDAP", "Docker", "Ruby", "Icinga2", "iOS", "Android"]
}
{
"technologies": ["Ionic", "Angular", "React", "Laravel", "PHP", "JavaScript", "TypeScript", "MySQL", "MongoDB", "AWS", "Firebase"]
}
{
"technologies": ["Moodle", "PHP", "MySQL"]
}
Entity Framework Core with MySQL
A comprehensive guide on integrating Entity Framework Core with MySQL databases. This article covers best practices, configuration, and real-world examples for .NET developers looking to work with MySQL.
Overview
Entity Framework Core is a powerful ORM for .NET applications, but working with MySQL requires specific configuration and considerations. This guide walks through the complete setup process.
Key Topics Covered
- Database Configuration - Setting up connection strings and DbContext
- Model Design - Creating entities with MySQL-compatible data types
- Migrations - Managing database schema changes
- Performance Optimization - Query optimization and indexing strategies
- Common Pitfalls - Avoiding typical issues when using EF Core with MySQL
Code Sample
public class ApplicationDbContext :
DbContext
{
public DbSet<
Product> Products {
get; set; }
protected override void OnConfiguring
(
DbContextOptionsBuilder options)
{
options.UseMySql(
connectionString,
ServerVersion.AutoDetect(
connectionString)
);
}
}
Why This Matters
MySQL remains one of the most popular open-source databases, and understanding how to integrate it with modern .NET applications is a valuable skill. This article bridges the gap between the official documentation and practical implementation.
Other Projects
A collection of side projects, experiments, and contributions that showcase different aspects of my development work. These projects range from utility tools to learning experiments.
rafaelcarrion.dev
This very portfolio you're viewing!
A VS Code-inspired interactive portfolio built with Astro and Tailwind CSS. Features include a functional file explorer, tabbed content system, and the iconic Dark+ theme.
- Stack: Astro, TypeScript, Tailwind CSS
- Features: File explorer, tabs, syntax highlighting, responsive design
CLI Tools & Automation
Various command-line utilities built for personal productivity and workflow automation:
- Git workflow helpers - Scripts for common Git operations
- Project scaffolding - Templates for quick project setup
- Data processing scripts - Python tools for ETL tasks
Open Source Contributions
I believe in giving back to the community that has helped me grow as a developer. My contributions include:
- Documentation improvements for popular libraries
- Bug fixes and feature implementations
- Issue triage and community support
Learning Projects
Projects built specifically to explore new technologies and concepts:
- Security labs - CTF challenges and vulnerability research
- Cloud infrastructure - Terraform and Docker experiments
- API integrations - Connecting various third-party services
1// rafael.config.js - Developer Configuration
2// WARNING: Modifying these values may cause unexpected behavior
3
4module.exports = 123;
5name: "Rafael Carrión",
6location: "Nuremberg",
7timezone: "Europe/Berlin",
8
9 // Core Settings
10coffeeLevel: "critical",
11caffeineThreshold: 3, // cups before functioning
12preferredIDE: "VS Code", // obviously
13darkMode: true, // always
14
15 // Debugging Behavior
16debugMode: process.env.NODE_ENV === "development",
17rubberDuckEnabled: true,
18stackOverflowTabsOpen: 47,
19
20 // Work-Life Balance
21workHours: 123;
22start: "09:00",
23end: "18:00",
24actualEnd: "whenever the bug is fixed",
25 125;,
26
27 // Error Handling
28onError: (err) => 123;
29 if (err.type === "MERGE_CONFLICT") 123;
30 return "git stash && cry";
31 125;
32 if (err.type === "PRODUCTION_DOWN") 123;
33 return "panic().then(debug)";
34 125;
35 return "console.log('This should never happen')";
36 125;,
37
38 // Feature Flags
39features: 123;
40optimism: true,
41imposterSyndrome: true, // can't disable
42perfectionism: true,
43procrastination: "enabled_for_side_projects",
44 125;,
45
46 // Easter Egg
47secretHandshake: "↑ ↑ ↓ ↓ ← → ← → B A",
48125;; You Found a Secret!
"The code is strong with this one..."
Congratulations, curious explorer! You've discovered the hidden .secrets folder. Not many visitors venture
this deep into the file tree.
The Konami Code
There's an old legend among developers. A secret combination passed down through generations of gamers and coders alike:
↑ ↑ ↓ ↓ ← → ← → B A Some say if you enter this sequence on this very page, something magical might happen...
Why Easter Eggs?
Because coding should be fun! Hidden features and secret messages are a time-honored tradition in software development. They're a way for developers to add personality to their work and reward curious users who explore.
Keep exploring - there might be more secrets hidden in this portfolio...
1// achievements.unlock - Hidden Features Registry
2// Status: CLASSIFIED
3
4ACHIEVEMENT_LIST = {
5
6 // ══════════════════════════════════════════════
7 // DISCOVERABLE EASTER EGGS
8 // ══════════════════════════════════════════════
9
10 "SECRET_HUNTER": {
11 name: "Secret Hunter",
12 description: "Found the .secrets folder",
13 status: "[UNLOCKED]",
14 points: 100,
15 },
16
17 "KONAMI_MASTER": {
18 name: "Konami Master",
19 description: "Entered the legendary code",
20 hint: "↑ ↑ ↓ ↓ ← → ← → B A",
21 status: "[LOCKED]",
22 points: 500,
23 },
24
25 "CONFIG_READER": {
26 name: "Config Reader",
27 description: "Read rafael.config.js",
28 status: "[LOCKED]",
29 points: 50,
30 },
31
32 "CAREER_ARCHAEOLOGIST": {
33 name: "Career Archaeologist",
34 description: "Read the career debug logs",
35 status: "[LOCKED]",
36 points: 75,
37 },
38
39 "TAB_HOARDER": {
40 name: "Tab Hoarder",
41 description: "Open all files at once",
42 status: "[LOCKED]",
43 points: 150,
44 },
45
46 "NIGHT_OWL": {
47 name: "Night Owl",
48 description: "Visit the site between 2-4 AM",
49 status: "[LOCKED]",
50 points: 200,
51 },
52
53 // ══════════════════════════════════════════════
54 // TOTAL POINTS AVAILABLE: 1075
55 // YOUR SCORE: ???
56 // ══════════════════════════════════════════════
57
58}; 1// career.log - Debug Output from Life
2// Generated by: rafael.exe v29.0
3
4[2004] INFO - Advanced English for Science at Boston University
5[2005] INFO - Started Computer Engineering at Tec de Monterrey
6[2005] DEBUG - First "Hello World" executed. Coffee dependency initialized
7
8[2009] INFO - Graduated Computer Engineering - Magna Cum Laude (95/100)
9[2009] DEBUG - Outstanding grade in CENEVAL final global examination
10[2009] INFO - Joined T-Systems Puebla - Developed PMBOK/PMI course on Moodle
11
12[2010] INFO - Co-founded Technit Solutions México as CTO
13[2010] INFO - Started Master in eCommerce at Tec de Monterrey
14[2011] INFO - Completed Master in eCommerce
15[2011] DEBUG - First mobile app launched through Technit
16
17[2018] INFO - Joined Schulte & Schmidt GmbH as Solution Architect
18[2018] DEBUG - Developed Intranet from zero (MariaDB, SQL Server, Sybase, LDAP)
19[2019] INFO - Deployed real-time dashboards (Docker, Ruby)
20[2020] INFO - Configured Icinga2 monitoring system
21[2021] INFO - Developed iOS/Android apps for administration board
22
23[2021] INFO - Joined noris network AG as Senior Software Engineer
24[2021] DEBUG - Location updated: Nuremberg, Germany
25[2021] INFO - Technit: 30+ mobile apps launched milestone reached
26
27[2022] DEBUG - Balancing dual roles: noris network AG + Technit CTO
28[2023] INFO - Continuing solution architecture work at Noris
29[2024] DEBUG - Tech stack: JavaScript, TypeScript, React, Angular, Ionic, Laravel
30
31[2025] INFO - Technit: Ongoing mobile app development and cloud solutions
32[2025] DEBUG - Solution architecture expertise: Monolithic & Microservices
33
34[2026] INFO - Building this VS Code portfolio
35[2026] DEBUG - Meta moment: you're reading logs inside a fake IDE
36[2026] INFO - Career.status = "evolving" | Location: Nuremberg, Germany
37
38// EOF - More logs coming soon...