Product & frontend
I build web interfaces from what the product actually needs. Design, requirements and code move together: the frontend isn't a separate layer you paint on at the end.
01 // Software Engineer
joseagus@cadiz:~$whoami
→ José Agustín Cabrera Castillo
I build software with the whole system in mind: where the requirements come from, how it gets tested, and who keeps it running once I'm not around.
02 // About
$ cat about.md

I started out making websites because it was the most direct way I had to build things and watch them work. Over time I moved on to more complex projects, where understanding properly what you're building ends up mattering as much as making it work.
I currently work as a software engineer on naval projects, and it's a stage where I'm learning a lot about how software is built and maintained in demanding environments.
I like understanding the systems I work with properly. How the different parts relate to each other, what sits behind each decision, and what impact a change might have further down the line. In the end the code is only one part of it: there are also the requirements, the tests, the infrastructure and everything else that makes the system actually work.
I also try to keep learning and testing new things, but always for a reason. Rather than knowing lots of technologies, I'd rather understand the ones I use properly and know when it makes sense to apply them in a project.
03 // Skills
$ ls ~/stack
I work across different parts of the software, and what interests me is understanding how it all fits: not just making it work today, but making sure it still makes sense when the time comes to maintain it.
I build web interfaces from what the product actually needs. Design, requirements and code move together: the frontend isn't a separate layer you paint on at the end.
I connect applications and services to their data, with APIs and databases in between. I'd rather have a boring, clear contract between components than a clever one nobody understands six months later.
I use Git, CI/CD, Docker and whatever else it takes so that building, testing and deploying comes out the same way every time. Shipping shouldn't be scary.
I've got a grounding in Linux, virtualisation and networking. Knowing what happens underneath helps when the fault isn't in the code, which happens more often than you'd think.
I try to be there for the whole process: working out what's needed, building it, testing it and seeing how it behaves once it's in use.
// The idea: someone else can pick this code up a year from now and carry on without calling me.
04 // Work
$ ls -la ~/projects
Projects I've taken end to end: working out what the client needs, building it, launching it and sticking around when things have to change.
Academic project · an Instagram-style social network
An Instagram-like social network I both designed and built. Go on the backend, and a frontend laid out by hand with CSS.
It stayed on my machine: it never went to production.
05 // Experience
$ git log --graph --oneline
Initial commit.
06 // Contact
$ ssh joseagus@cabrera
Got a project, a role, or just fancy talking software? Drop me a line and I'll reply as soon as I can.
$ssh joseagus@cabrera
Connecting to Trebujena, Cádiz…
Handshake · ECDHE-ED25519 · OK
✔ Connection established. There's someone on the other end.
Type a command or click one below. Start with help.