Skip to content

Commit

Permalink
Merge pull request #5 from luca-matei/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
luca-matei committed Mar 25, 2024
2 parents 3bece7f + ff6eeb5 commit b5eb940
Show file tree
Hide file tree
Showing 8 changed files with 312 additions and 11 deletions.
37 changes: 37 additions & 0 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Deploy to Server

on:
push:
branches:
- main

jobs:
deploy:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Deploy to Server
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ secrets.PORT }}
source: "."
target: "/home/${{ secrets.USERNAME }}/digital_marmot/lucamatei.eu-temp"
script: |
rm -rf /home/${{ secrets.USERNAME }}/digital_marmot/lucamatei.eu
mv /home/${{ secrets.USERNAME }}/digital_marmot/lucamatei.eu-temp /home/${{ secrets.USERNAME }}/digital_marmot/lucamatei.eu
cd /home/${{ secrets.USERNAME }}/digital_marmot/lucamatei.eu
echo "SENDGRID_RECEIVER=${{ secrets.SENDGRID_RECEIVER }}" > .env
echo "SENDGRID_SENDER=${{ secrets.SENDGRID_SENDER }}" >> .env
echo "SENDGRID_API_KEY=${{ secrets.SENDGRID_API_KEY }}" >> .env
yarn install
yarn build
sudo systemctl restart lucamatei.eu
241 changes: 241 additions & 0 deletions docs/cv/cv.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,241 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Resume</title>
<link href="https://fonts.googleapis.com/css?family=Roboto:400,500,700&display=swap" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<style>
@media print {
@page { size: letter; }
@page { size: A4; }
}
body {
font-family: 'Roboto', sans-serif;
line-height: 1.5;
}
.icon {
margin-right: 0.5rem;
width: 1rem;
text-align: center;
}
.fa-circle {
font-size: 0.25rem;
vertical-align: middle;
margin: 0 0.25rem;
}
</style>
</head>
<body class="container">
<div class="flex flex-wrap pb-10">
<div class="w-1/3 text-right pr-5">
<h2 class="opacity-0">Resume of</h2>
<h1 class="text-6xl font-bold">Luca Matei</h1>
<h2>Full Stack Developer</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600 flex flex-nowrap">
<div>
<ul class="list-none">
<li><i class="fas fa-phone icon"></i>+40 771 344 046</li>
<li><i class="fas fa-envelope icon"></i><a href="mailto:hello@lucamatei.eu" class="text-blue">hello@lucamatei.eu</a></li>
<li><i class="fab fa-linkedin icon"></i><a href="https://linkedin.com/in/lucamatei" class="text-blue">lucamatei</a></li>
<li><i class="fab fa-github icon"></i><a href="https://github.com/luca-matei" class="text-blue">luca-matei</a></li>
<li><i class="fab fa-telegram icon"></i><a href="https://t.me/lucamatei" class="text-blue">lucamatei</a></li>
<li><i class="fas fa-globe icon"></i><a href="https://lucamatei.eu" class="text-blue">https://lucamatei.eu</a></li>
<li><i class="fas fa-map-marker-alt icon"></i>Bucharest, Romania</li>
</ul>
</div>
<div class="pl-10">
<img src="me.jpg" alt="Luca Matei" class="rounded-md w-40 h-40 mt-1">
</div>
</div>
</div>
<!-- Summary -->
<div class="flex flex-wrap pb-10">
<div class="w-1/3 text-right pr-5">
<h2 class="text-2xl font-bold">Summary</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<p class="mt-2">I design and implement complex systems, having a proven track record of developing and enhancing SaaS platforms with Python and JavaScript frameworks in Linux environments.</p>
</div>
</div>
<!-- Experience -->
<div class="flex flex-wrap pb-2">
<div class="w-1/3 text-right pr-5">
<h2 class="text-2xl font-bold">Work Experience</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
</div>
</div>
<div class="flex flex-wrap pb-6">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">Full Stack Developer</h2>
<h2 class="text-lg pb-2.5 text-gray-600">getitAI, Inc.</h2>
<h2 class="text-sm text-gray-600">Oct 2023 - Present</h2>
<h2 class="text-sm text-gray-600">Remote, Contract</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<ul class="list-none">
<li class="mb-3">Developed and enhanced the knowledge base infrastructure for AI-driven sales agents, involving tasks such as refining database functionalities, improving search algorithms and optimizing storage connections.</li>
<li class="mb-3">Implemented a highly reusable component that enables pagination, full-text search, filtering, and sorting capabilities for dynamically updated tables, enhancing user experience and data accessibility.</li>
<li class="mb-3">Assisted in the onboarding process for new team members and participated in multiple code reviews.</li>
</ul>
</div>
</div>
<div class="flex flex-wrap pb-10">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">Full Stack Developer</h2>
<h2 class="text-lg pb-2.5 text-gray-600">Signed NDA</h2>
<h2 class="text-sm text-gray-600">July 2023 - Present</h2>
<h2 class="text-sm text-gray-600">Remote, Contract</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<ul class="list-none">
<li class="mb-3">Played a key role in both designing and building vital API components, focusing on creating solutions that were both durable and capable of scaling effectively.</li>
<li class="mb-3">Led the complete redesign and implementation of a high-capacity system across multiple servers, optimizing for user-customizable request handling and efficiency.</li>
<li class="mb-3">Managed various DevOps tasks, including setting up CI/CD pipelines, load balancers, and databases, and performed maintenance on both bare-metal servers and VPSes, prioritizing security and high-availability.</li>
<li class="mb-3">Significantly improved API performance by overhauling its architecture, resulting in increased development speed, stability, scalability, and flexibility.</li>
<li class="mb-3">Developed and integrated a comprehensive credits system for the API, working with third-party subscription managers like Outseta.</li>
<li class="mb-3">Engaged in peer code reviews, providing constructive feedback to enhance code quality and team collaboration.</li>
</ul>
</div>
</div>
<!-- Projects -->
<div class="flex flex-wrap pb-2">
<div class="w-1/3 text-right pr-5">
<h2 class="text-2xl font-bold">Projects</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
</div>
</div>
<div class="flex flex-wrap pb-6">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">Personal AI SaaS Platform</h2>
<h2 class="text-sm text-gray-600">Personal</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<ul class="list-none">
<li>A platform built with NextJS and Python that simplifies your life by merging everyday tasks with AI-driven analysis and suggestions.</li>
</ul>
</div>
</div>
<div class="flex flex-wrap pb-6">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">DevOps Automations Tool</h2>
<h2 class="text-sm text-gray-600">Personal</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<ul class="list-none">
<li>An automated tool for managing networks, servers, and services on a home network or small cloud through a Python API.</li>
</ul>
</div>
</div>
<div class="flex flex-wrap pb-10">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">WSGI Web Framework</h2>
<h2 class="text-sm text-gray-600">Personal</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<ul class="list-none">
<li>A backend framework written in Python for creating presentation websites, featuring a YAML CMS and a CSS framework akin to Tailwind CSS.</li>
</ul>
</div>
</div>
<!-- Courses -->
<div class="flex flex-wrap pb-2">
<div class="w-1/3 text-right pr-5">
<h2 class="text-2xl font-bold">Education</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
</div>
</div>
<div class="flex flex-wrap pb-6">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">Certifications</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<ul class="list-none">
<li>Backend Developer by Meta (9 courses)</li>
<li>Frontend Developer by Meta (9 courses)</li>
<li>IT Automation with Python by Google (6 courses)</li>
<li>Python for Everybody by University of Michigan (5 courses)</li>
<li>Machine Learning Specialization by IBM (1/6 courses)</li>
</ul>
</div>
</div>
<div class="flex flex-wrap pb-10">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">Highschool</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<p>Colegiul Național „Mihai Viteazul” București</p>
<p>Mathematics and Informatics Profile</p>
<p>Graduated in 2022</p>
</div>
</div>
<!-- Skills -->
<div class="flex flex-wrap pb-2">
<div class="w-1/3 text-right pr-5">
<h2 class="text-2xl font-bold">Skills</h2>
</div>
<div class="w-2/3 pl-5 text-gray-600">
</div>
</div>
<div class="flex flex-wrap pb-6">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">Python</h2>
<p class="text-sm text-gray-600">#uwsgi #asyncio #openai #unittest #httpx #lxml #black</p>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<p>I started coding in Python with the release of version 3.2 in 2011. My work spans scripting, gaming, web development, automation, and more recently, projects involving Large Language Models.</p>
</div>
</div>
<div class="flex flex-wrap pb-6">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">Linux</h2>
<p class="text-sm text-gray-600">#debian #openssh #qemu #nftables #nfs #bind9 #isc-dhcp-server #dnsmasq #bash</p>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<p>Since getting my first computer, I've used Debian for everything from setting up servers and building networks to managing services and fixing system issues. I host my projects on VPSes that I manage myself.</p>
</div>
</div>
<div class="flex flex-wrap pb-6">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">Open Source</h2>
<p class="text-sm text-gray-600">#pydantic #llms #automations #saas #tools</p>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<p>I've helped improve Pydantic and I'm looking to do more work on open-source projects. You can find all my personal projects available for anyone to see on my GitHub.</p>
</div>
</div>
<div class="flex flex-wrap pb-6">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">Backend</h2>
<p class="text-sm text-gray-600">#fastapi #postgresql #redis #celery #dramatiq #supabase #sqlalchemy, pydantic</p>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<p>I work with ASGI REST APIs daily to support SaaS platforms. In 2020, I developed a framework on a uWSGI server to manage the backend of multiple presentation websites.</p>
</div>
</div>
<div class="flex flex-wrap pb-6">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">Frontend</h2>
<p class="text-sm text-gray-600">#nextjs #react #typescript #javascript #tailwindcss #bootstrap #material #sass</p>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<p>I mainly work on backend development, but I'm also good at making user interfaces and connecting them to the backend. In 2020, I built a CSS framework from the ground up to give websites a look similar to what you get with Tailwind CSS.</p>
</div>
</div>
<div class="flex flex-wrap pb-6">
<div class="w-1/3 text-right pr-5">
<h2 class="text-lg">DevOps</h2>
<p class="text-sm text-gray-600">#railway #github-actions #bitbucket-pipelines #hetzner #haproxy #pgbouncer #git #docker #prometheus #grafana #sentry #supervisor</p>
</div>
<div class="w-2/3 pl-5 text-gray-600">
<p>I can install and take care of Linux, web, and database servers, along with containers, making sure they handle traffic smoothly. I've also set up systems for continuous integration and delivery, as well as monitoring tools.</p>
</div>
</div>
</body>
</html>
Binary file added docs/cv/luca-matei-resume-en.pdf
Binary file not shown.
Binary file added docs/cv/me.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/cv/version-1.pdf
Binary file not shown.
7 changes: 5 additions & 2 deletions src/app/(app-sections)/contact.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ export default function Contact() {
</div>
</dl>
</div>
<p className="text-xs leading-5 text-gray-500">
<p className="text-xs leading-5 text-gray-500 lg:block hidden">
&copy; 2024 Luca Matei. All rights reserved.
</p>
</div>
Expand Down Expand Up @@ -264,14 +264,17 @@ export default function Contact() {
>
{isLoading ? (
<div className="spinner-border animate-spin inline-block w-4 h-4 border-2 rounded-full"
role="status">
role="status">
</div>
) : (
"Send message"
)}
</button>
</div>
</div>
<p className="text-xs text-center leading-5 text-gray-500 mt-16 lg:hidden">
&copy; 2024 Luca Matei. All rights reserved.
</p>
</div>
</form>
</div>
Expand Down
4 changes: 2 additions & 2 deletions src/app/(app-sections)/courses.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ function Course(course: Course) {
</p>
</div>
<div className="mt-1 flex items-center gap-x-2 text-xs leading-5 text-gray-500">
<p>{course.courses} courses</p>
<p className="whitespace-nowrap">{course.courses} courses</p>
<svg viewBox="0 0 2 2" className="h-0.5 w-0.5 fill-current">
<circle cx={1} cy={1} r={1}/>
</svg>
Expand Down Expand Up @@ -131,7 +131,7 @@ export default function Courses() {
</div>
<div className="mx-auto max-w-7xl px-6 lg:px-8">
<div className="mx-auto max-w-2xl lg:max-w-none lg:mx-0">
<div className="mt-16 grid grid-cols-1 lg:grid-cols-2 gap-12">
<div className="mt-16 grid grid-cols-1 lg:grid-cols-2 lg:gap-12">
<ul role="list" className="divide-y divide-gray-100">
{courses.map((course, index) => (
index % 2 === 0 && <Course key={course.id} {...course} />
Expand Down
Loading

0 comments on commit b5eb940

Please sign in to comment.