Curriculum Vitae
Rodrigo Dias
Software engineer focused on product execution, clear communication, fast iteration, and always going the extra mile.
Experience
- Tutor first- and second-year FEUP engineering students in mathematics, physics, and programming
- Conduct weekly office hours to help students with problem-solving and coursework
- Lead a 10+ member team building AI projects and technical workshops
- Manage the department's technical infrastructure and roadmap
- Solo-built an AI-powered study platform from product design to production infrastructure
- Implemented course workspaces, materials, notes/drawings, AI chat, RAG-assisted workflows, exercise solutions, Stripe billing, usage metering, and feature limits
- Grew @studywithrocco organically on TikTok to 1,000 followers and 500,000 views through study-tip content
Deprecated: I stopped working on Uni’s Easy, and I am no longer actively developing it. I still love the idea of the product as an app that organizes your learning, but it just wasn’t the right form factor nor the right UX. I will most likely come back to a product with a similar intent to this in the future.
The demo below was posted on August of 2025. It shows some of the core features, though it’s the last recorded demo that I have.
Marketing and Growth
I also ran the marketing through a TikTok account (@studywithrocco). I posted study tips and got a few viral videos with completely organic content, which I used to promote the app.
What I built
I wanted to replace the fragmented stack many students (including me) use. The project included:
- Course/module management with rich metadata and instructors/links
- Materials and exercise handling, including PDF/file workflows
- Rich notes and drawings
- AI chat and AI-assisted workflows
- Exercise solutions, including AI-generated solution flows
- Public sharing for notes and drawings
- Pomodoro, focus todos, and progress tracking
And of course:
- Pricing tiers, billing portal integration, usage tracking, and feature limits
- A full marketing website (which I actually loved how it turned out, though I don’t have it live anymore)
Technical scope
I used
Next.js,
PostgreSQL, and
Docker, with
Trigger.dev for the long background jobs. I handled the PWA setup, auth, and all the
Stripe billing logic myself. I also did the AI side, including the RAG logic for retrieval.
I did the product design and UX for the whole thing too—making sure the public sharing and usage tracking actually felt right.
- Build, deploy, and maintain client web applications and infrastructure, including Linux servers, CI/CD pipelines, backups, and disaster-recovery flows
- Deliver custom products with SvelteKit, PHP, Docker, and Cloudflare, handling both application development and production operations
Under Dias Solutions I run two related services:
Web Development - Building custom web products for clients. I usually work with
Next.js,
SvelteKit, or
PHP, depending on what the project needs.
Infra by Rodrigo Dias - Personal infrastructure management service at infra.rgo.pt. I handle the technical stack so clients don’t have to, covering performance optimization, networking, and observability. I provide a direct line for support and use
Synology automated systems for backups and 24/7 monitoring.
- Built core features for Cybersecure.pt, a cybersecurity SaaS for Portuguese SMEs: real-time dashboards, assessment workflows, PDF reports, email delivery, RBAC, MFA/WebAuthn, and multi-tenant access control
- Iterated on a modern Next.js, TypeScript, DrizzleORM, MariaDB, Express.js, Socket.io, Stripe, and AWS S3 stack
Note: The domain
cybersecure.ptnow hosts a new platform that NECHO TECHLAW is building. The project I worked on has been archived and replaced with a different product.
I worked for 2 years at NECHO TECHLAW helping build Cybersecure.pt, a cybersecurity platform for Portuguese SMEs. The company has since pivoted to a different product and replaced the version I built.
Started as a web development intern doing frontend work, later moving to a part-time full-stack role where I took on more backend responsibility. I was responsible for the core application logic and integrating third-party services like
Stripe and
AWS S3.
I implemented key features such as:
- Real-time dashboards and assessment data visualization for end-users and administrators
- PDF report generation and email delivery using
React Email templates - Database schema design and query optimization with
DrizzleORM - Magic link, WebAuthn passwordless, and MFA (TOTP) authentication and role-based access control (superadmin, admin, employee)
- Stripe payment integration for subscription management
- AWS S3 integration for secure assessment file uploads and downloads
- Internationalization (i18n) support for Portuguese and English
- Multi-tenant data architecture with company, division, and user hierarchy
- Comprehensive API routes for assessments, users, roles, notifications, and webhooks
- Metadata management (with multilingual support as well)
- Web interfaces for multiple user roles across customer, admin, and internal workflows
- Database at-rest encryption and backup flows
- VPS-hosted services designed to minimize third-party data exposure
Projects
- Built a Typefully/Buffer-style scheduler that runs as a single Go binary with an embedded SvelteKit frontend and SQLite persistence
- Implemented post scheduling and publishing flows for X, Mastodon, Bluesky, Threads, and LinkedIn
- Added account settings, media-library workflows, a SQLite-backed job queue, and multi-tenant RBAC
- Used coding agents end-to-end to explore AI-assisted development on an unfamiliar Go codebase
OpenPost is an open-source alternative to tools like
Typefully and Buffer. I built it because most self-hosted alternatives like
Postiz were just too heavy and bloated for what I needed. I wanted something that was completely self-contained, where you could run a single
Go binary on your own server without worrying about data leaving your machine or paying for monthly subscriptions.
The app uses a
SvelteKit frontend,
SQLite for local persistence, and can run with
Docker. It currently supports publishing to
X,
Mastodon,
Bluesky,
Threads, and
LinkedIn.
This is still in early development but is already functional for scheduling and publishing posts.
Screenshots



- Published an offline-first Android app for Portuguese shift workers, reaching 100+ downloads from nurses in Portugal
- Implemented shift scheduling, overtime/night-shift pay logic, municipal holidays, and monthly reports
Started as a family tool, then grew into a public Android app for Portuguese shift workers. I wanted to handle the annoying real-world details around overtime, night shifts, and holidays without needing a server or a complex login.
The stack is
Framework7 +
Svelte 4 +
Vite +
Capacitor, with local persistence and native packaging. The app includes calendar-based shift management, municipal-holiday configuration, and automated monthly reports.
- Produce Portuguese STEM and computer-science explainers for FEUP students, covering calculus, RISC-V assembly, formal languages, algorithms, and theory of computation
- Own the full publishing workflow: topic selection, scripting, examples, recording, editing, thumbnails, and distribution
I use this channel as both a teaching outlet and a forcing function for learning. If I can explain a topic clearly, I usually understand it much better myself too. Most of the videos are in Portuguese, as they are primarily aimed at helping my peers at FEUP.
Selected videos
- Manage a secure Synology NAS with tons of other interconnected selfhosted services
- Maintain a declarative infrastructure repo for NixOS and nix-darwin machines (personal and servers)
Running my own personal infrastructure stack since 2022 (see my nix-config for more context on it).
Outside of my nix-config, I also manage a Synology-based homelab that runs the self-hosted apps and services my family uses, including
Synology Drive,
Immich,
Jellyfin,
Audiobookshelf, and
Paperless-ngx.
I eventually want to move my Synology machine to NixOS as well whenever I find the time.
- Built a privacy-first social platform for my high-school capstone, centered on friend-only sharing and QR-based connections
- Shipped an Expo/React Native mobile app with private posts, maps, rewind summaries, real-time chat, Stripe-powered credits, and push-notification flows
- Built a separate PHP/MySQL landing site and backoffice with multilingual pages, waitlist/contact flows, and usage dashboards
The Actual World was my Professional Aptitude Project for high school. It consists of a mobile app (the-actual-world/mobile) and a separate landing/admin site (the-actual-world/landing).
The mobile product was built with
Expo / Expo Router +
React Native,
Supabase,
PostgreSQL,
Stripe, maps, QR codes, and push-notification tooling. The landing site and backoffice were built separately in
PHP /
MySQL, with multilingual content, download/waitlist/contact flows, and admin analytics.
The technical setup involved push notifications, QR code generation for secure connections, and a custom backoffice in PHP for analytics.
Onboarding and account creation
I designed a guided onboarding flow to introduce the app’s focus on privacy and authentic sharing.
Auth and account recovery
Privacy, security, and account controls
Friends, private graph, and feed
Posting flow and social interactions
Posts supported text, images (automatically captioned), locations, tagged users, and comments.
Maps and rewind summaries
Browse memories on a map (with clustering) and generate rewind-style summaries from recent activity or journal/write personal notes.
Real-time chat
Credits and premium mechanics
I experimented with a credit system and paid mechanics too, including buying and gifting credits, which tied into the Stripe/payment side of the product. This was so that the social media didn’t need to be supported by ads, but instead pay per what you use.
Settings, personalization, and the landing/admin side
Education
Activities
- AI Department Lead at ACM FEUP Student Chapter
- Educational YouTube channel on CS & math topics (in Portuguese)
- Academic Tutor at Consultório FEUP
CV Highlights
- Relevant coursework: Algorithms & Data Structures, Operating Systems, Databases
Year 1: Linear Algebra, Math Analysis I & II, Discrete Math, Fundamentals of Computer Systems, Programming Fundamentals & Advanced, Computer Architecture, Theory of Computation, Physics I & II
Year 2: Algorithms & Data Structures, Databases, Operating Systems, Software Design & Testing, Algorithm Design, Software Engineering, Statistical Methods, Web Languages, Computer Lab, Introduction to Quantum Mechanics, Professional Communication
Year 3: HCI, DB & Web Apps Lab, Computer Networks, Security, Functional & Logic Programming, Parallel Computing, Compilers, Computer Graphics, AI, Capstone Project
Activities
- Won TECLA 2024 competitive programming tournament (1st place)
- Helped organize a CS:GO and CS2 LAN tournament
CV Highlights
- Final grade: 19.9/20, top of class
- Self-taught programming during high school
Completed the IT and Multimedia Technologies track at Colégio de Gaia. Subjects covered included Computer Applications, Fundamentals & Computer Architecture, Programming Techniques, Database Implementation, Internet Programming, Multimedia Technologies, Digital Games, and a final Technological Project.
During these years I also focused on competitive programming and organized a CS LAN tournament, which eventually led to building my first substantial projects.



Honors
- In this 46-hour hackathon, we built Ark, an offline-first mobile survival app with maps, guides, wiki archives, weather caching, news, secure notes, and file management
- Implemented an on-device AI assistant using llama.rn, local embedding models, SQLite FTS, and sqlite-vec to retrieve relevant offline knowledge
My first hackathon experience: a focused 46-hour sprint sponsored by
where my team built Ark, an offline-first mobile survival app. We placed 3rd and turned the prototype into an open-source project that we are continuing to develop.
What is Ark?
Ark is designed for situations where internet access is unreliable or unavailable. It brings together offline maps, wiki archives, survival and health guides, cached weather forecasts, offline news, encrypted notes, file management, and practical device tools such as compass, coordinates, level, and emergency utilities.
The app also includes an offline AI assistant that runs directly on mobile. It can search across the user’s downloaded guides, notes, documents, maps, RSS items, cached weather, and wiki content to answer questions using local context, in a local environment.
Tech Stack
- Mobile:
React Native / Expo, Expo Router - State:
Zustand - Offline Storage:
SQLite, SQLite FTS, sqlite-vec - Security: SQLCipher, SecureStore, Local Authentication
- AI: llama.rn, local GGUF chat models, local embedding models, RAG
- Maps: MapLibre React Native, offline map regions
- Content: offline guides, PDF/HTML readers, ZIM archive support, RSS feed + Weather caching and reading
- Device Features: Expo Sensors, Location, Battery, native OCR module, native ZIM reader module
What I Learned
This hackathon taught me how much can be built when the I focus intensely on a single product/thing, even for a short period of time. My mind was literally thinking or doing things related to Ark for the entire duration. It also taught me an important execution lesson: in hackathons, a polished core flow and clear pitch usually matter more than building every possible feature (even if they do end up pretty polished which was our case).
Ark was technically ambitious and already useful by the end, but we spent too much time debugging edge cases and implementation details that judges never saw. For future hackathons, I would prioritize the strongest happy path first, polish the demo earlier, and only then expand the feature set.
Ark is now open source at github.com/rodrgds/ark.




- Top of class, IT and Multimedia Technologies, Colégio de Gaia — final grade: 19.9/20
- 1st place out of 360 teams, TECLA 2024 — Aveiro Multilanguage Computing Student Tournament
- Top 25 teams in final phase — solved algorithmic problems in Python and C++ under time pressure
My teammate and I won two laptops for our performance in the final round, where we solved algorithmic problems in
Python and
C++.




- 2nd place, TECLA 2023 — Aveiro Multilanguage Computing Student Tournament
My teammate and I were awarded an
Arduino kit for our performance in the final round.
Certifications/Courses
CS50’s Introduction to Artificial Intelligence with
Python. Covers search algorithms, knowledge representation, uncertainty, optimization, machine learning, neural networks, and natural language processing.
AI governance certification covering generative AI, global AI laws, compliance obligations, AI risk management, and governance frameworks. 8 modules, 1.5 IAPP CPE credits.
Google’s Cybersecurity Professional Certificate on Coursera. Covers security foundations, SIEM tools, Python for security, and incident response.
ISO 27001:2022 Information Security Management Systems lead auditor course. Covers ISMS implementation, audit planning, and risk management.
- EF SET (Standard English Test): C2 Proficient, 78/100
MIT’s “The Missing Semester of Your CS Education” course. Covers command-line tools, debugging/profiling, Git, Vim, and other practical developer skills often overlooked in CS curriculum.
Completed both the 2020 edition (in August 2023) and the 2026 edition (in May 2026).
Topics covered: Shell, Command-line, Dev Tools, Debugging, Git, Packaging, Agentic Coding, Beyond Code, Code Quality, Shell Tools, Vim, Data Wrangling, Version Control, Metaprogramming, Security.
CS50’s Introduction to Computer Science. The course that got me seriously into programming at 14. Covers
C,
Python,
SQL, web basics, algorithms, and data structures.