If you like the kind of projects and technologies I’ve been working on, I’m available for hiring. I’m mainly interested on remote freelance projects (both short and long term), but sometimes I’m open to consider employee positions or on-site projects, if both tasks and offer are interesting, and we can negotiate the terms and conditions. You can get more info about my past work experience at my LinkedIn profile or at my Curriculum Vitae
My ideal job (AKA Santa’s letter)
Note: this mostly target employee positions, that’s what I aspire in the long-term, but most of the topics also apply to freelance projects.
How could it be?
- Company has something that makes it different from the other ones, and makes it to not be “just another one”. It can be anything, like a really interesting and unique project, exceptional perks, being a boost in my career, incentive workers initiative and personal side projects, a lot of paid holidays, being able to work with and learn from a known and prestigious person… Anything that differentiates itself, and if having several alternatives with equal conditions, could make me choice to join it instead of any of its competitors.
- Makes a difference, both for my career and to make the world a better place.
- A responsibility position with decision on projects and company future, and with real possibilities to improve both of them, also in ways not directly job related but also oriented to work conditions and the company itself.
- Travel frequently. I’m a travel junkie, so although I understand the concerns of others, for me it’s a plus, so the more the merrier. If it’s for assistance to conferences, double score :-)
By the way, this points are a common factor of the big guys, like Google, Apple, Microsoft, Amazon… Salaries, labor conditions, prestige and the kind of projects they work with, give them a fast past in my priorities list, and you can get into it too if your offer seems to me as interesting as theirs
What could it have or provide me?
- Interesting, creative and stimulating projects, allowing me to learn about new skills, technologies or knowledge areas that can be of my interests (not necessarily just only related to computer engineering).
- Research & Development projects, specially in academic contexts. Jobs with real possibilities of publishing academic papers will always be of my interest and have priority over others than don’t.
- Incentive workers to improve themselves and achieve technical excellence. This includes (but not only just sticks to) that the company fulfills the Joel’s test
- All company code and intellectual property (at least the one not directly related with the company’s business model) is published as Open Source and/or as Creative Commons.
- 100% remote positions with flexible schedule and management based on async communications, with clear specifications, roadmap and requirements. This does not exclude of having face-to-face meetings, but based on my experience, usually a hands-on meeting once each two months is more than enough.
- Travel expenses and fully paid accommodation during all my relocation time, no matter how long is it.
- Bonuses and benefits directly accountable to both my own performance and the company one.
- Acknowledge of my involvement in the company (including voluntary overtime), being this in both short term benefits and revenues (bonuses, extra paid holidays, travels for leisure or business, technological equipment…) and long term ones (additional shares or equity).
Main expertise areas
- Projects auditories
- Project structure and code quality
- Development best practices
- Open Source and Open Standards evangelization
- Systems programming
- Software & systems architecture
- WebRTC consulting & architecture
- Expertise consulting
- Technical leadership and guidelines
- Design of high performance systems
- Design of clean and minimal specifications, protocols and APIs, with special attention to details, corner cases and not-so-common use cases
- Backend & full-stack web development
- Frontend web development & web APIs
- Mobile multi-platform apps (React Native, PWAs)
And more specially, to do what any others can’t :-)
More in detail info about my knowledge areas and experience can be found in the uses page.
Other areas I’m interested to work with
- Research & Development, high-edge technologies and new specifications
- Operating systems design
- Filesystem design
- WebAssembly
- Drivers development
Areas willing to improve or learn
- Robotics
- FPGAs and/or hardware design
- Rust programming language related projects
- Unsupervised machine learning
- Artificial Intelligence and Machine Learning
- Natural Language Programming
- Quantum computing
Open Source professional collaborations
Additionally, I’ve been contracted to work in the design and development of some Open Source projects for the next companies:
Private collaborations
Interviews FAQs
Interesting or habitual questions I’ve been asked during job interviews, or when negotiating with clients to work on a freelance project.
Expand
🤝 Introduction questions
Why should I hire you? What makes you different from other candidates?
Computers engineering has been my vocation since I was 14 years old, and since then I’ve been involved with computers in a lot of aspects, like being one of the most active member of MadridWireless and AlcorconWireless citizen wireless groups or Madrid Macintosh Users Group, or being one of the founder member of Robotics and Domotics Spain Association. I’ve been working as computers programmer professionally since 17 years old, and also being involved in Open Source communities since then. I love puzzles and anything that can be an intellectual challenge to me (that’s one of the reasons I started to learn chinese), and for me programming is like a sort of creative jigsaw. Due to that, I’ve been involved in the development of more than 300 Open Source projects, some of them awarded in national championships, and also I’ve being invited to do keynotes and stand-up at several national conferences, and I’m proud to say that I have been able to work all my life in my true passion.
My background has provided me a lot of experience and knowledge in almost all computers engineering areas, both professionally or in side projects, so I can be able to understand the implications of each decision at several levels (extra costs, delays, performance issues, bandwidth usage, user experience, possible bottlenecks…), and clearly explain the systems tradeoffs and business implications that are derived for each one of them. I love high edge technology and to know how everything works and what’s able to do. This gives me a tendency to put technology on its limits, sometimes unconsciously and another on purpose, by using the code or service beyond the developer original intention, but also to find and use the most concise, specific and idiomatic way of doing the things by using any available feature or design decision that can help to write a clean and maintainable code, that usually leads me to find bugs and usage corner cases. That also has lead myself to put high attention on code quality and to develop simple and minimal APIs in all the code I develop, and to enforce that high quality standards on others.
What do your think about code tests? Do you do take-home code assignements?
Short answer: NO.
Long answer:
I have no problems about doing technical interviews, but I have a “no unpaid code tests” policy, that apply to both pair-coding tests but more specially take-home code assignments. I have more than 16 years of Open Source code in my Github account and my projects portfolio, that clearly show my capabilities and code quality standards, and the time I spend on your code tests is money I’m not earning on my freelance projects, or time I’m not with my friends, family or hobbies.
If you consider that’s not enough and need to check yourself my work, you can contract me for some hours as a freelance to do an actual task in your code base, so you can evaluate my work on first hand. If you still insists that I need to do an unpaid code test or take-home code assignment, for me it’s an almost instant discard of your offer, specially if I’m told so at the end of an interview instead of tell me how the full selection process is before hand. That’s rude, and I feel betrayed by you making waste my time, and it shows how low do you value your employees-to-be work-life balance if you don’t respect it starting at the selection process.
By the way, big guys like Google, Apple, Microsoft, IBM, Amazon, Facebook, Ebay… don’t do code tests, but instead they do in-site technical interviews, paying flight tickets and hotel rooms if needed. They value their employees and candidates time and invest in them, so don’t be more picky than them, and show that you are truly interested in your candidates too.
Where are you located?
I travel frequently and don’t have a fixed location. Mostly I’m living in western Europe (UTC to UTC+2 timezones), but I’m also frequently visiting United Arabic Emirates and India (UTC+4 and UTC+5.5 timezones).
If your question is related to adjust your salary offer to life level costs, you can target your offer to the region of London, Great Britain for western Europe projects, and Abu Dhabi or Dubai, United Arabic Emirates for middle East and Asia based projects.
Are you available to relocate?
I’m interested mostly just only on 100% remote positions, specially regarding freelance projects. I can consider in-site or hybrid job positions or relocation depending of the conditions, mandatory ones are:
- job location needs to be easily accessible in public transport, or company provides a driver, cab or taxi. All transport costs will be paid by the company
- daily commute time will be considered part of my paid working hours, being that regular or extra ones depending of the assigned schedule. Commute hours can be compensated as extra paid holidays or free days too
- all this conditions needs to be specified in the contract
Additionally, for in-site or hybrid job positions:
- in Madrid (Spain) area, company will pay meal diets for all the days I would need to be presential
- in outside of Madrid area, company will pay both arrive and leave flight or train tickets (also if it’s in a daily or weekly basis), and accommodation for all the time I would need to be presential
Finally, if due to costs, times or logistics permanent relocation is mandatory, additionally:
- company will provide accommodation during all the time of the trial period, or all the in-site time for freelance projects. After that, company will provide a monthly bonus or salary / honoraries increment to cover flat rental costs
- inside Spain, base salary will be equal or better to what I can get for an in-site position in Madrid (Spain)
- outside Spain, base salary / honoraries will be at least a 30% higher or better to what I can get for a similar job position working on remote, and company offer will also includes social benefits equal or better to the Spain basic legal ones, including health insurance, paid holidays, work and legal rights…
If it’s not possible to meet these requirements, I’m also able to work 100% on remote and travel as frequently as required, as far as company pays flight / train tickets, diets and hotel room. In fact, I’m a travel junkie, and I would consider the requirement of need to travel frequently as an advantage of the job position :-)
💻 Technology
What’s your favorite tech stack?
I don’t have a fixed one and I’m flexible with the technology to be used, it mostly depends on what one does the best fit for each project, but in general terms, depending of what’s the project scope and in order of preference, my favorites ones are:
- Low level: Rust or
C/C++
- High level: Node.js or
Python, depending on the priority on each poject
about IO performance or code readibility. I also love to use high level
languages for non-critical low level programming when possible, like
filesystems, hardware drivers, automation, building
tools… or, why not, full operating systems :-) At this
moment I’m also considering
Rust
as an interesting alternative for these tasks too. - UI: CLI and terminal tools, web-based technologies, or ReactNative
- web frameworks:
- backend: JAMstack, fastify, Django or Twisted. It also depends of the fit of technology to each project, or availability of resources, allowed time or off-the-shelves libraries
- frontend: React Native (both for portable
mobile aps and web),
React, and for performance and code compatibility
with desktop and server, combined with
Rust
compiled to WebAssembly
Are you interested in learning new technologies? Which ones and why?
At this moment I’m learning about Machine Learning and AI, where I’m more interested in Natural Language Programming and Understandable Neural Networks, and I’m improving my skills with Rust programming language. I’m also interested on learning about Quantum Computing, and recently I self-teached about Verilog HDL and hardware design. I’m also interested on improve my knowledge about video streaming and network protocols.
I’m a hands-on learner and a bit obssesed with technical details, so if I get some interesting project between my hands or find something that I think can be fixed or improved, I don’t have problems learning new skills or knowledge that can be useful to me to do it, specially if they are stablished and future-proof industrial standards and not just some temporally fashioned or hyped libraries and frameworks.
What are the three things you think are the most important to improve a software project?
- Write specs and document the behaviour that should have the project, and keep it updated while it’s being implemented with its actual one
- Register and trace all the errors, so they can be replicated later
- Fully automate all processes, remove the human factor always that’s possible
🏆 Achievements
What’s the technical challenge you are most proud of?
I’ve designed and developed my own Operating System NodeOS with more than 6000 stargazers on Github and winner of national Universitary Free Software Championship. It was also my bachelor thesis, graduated with distinction.
You can find more info about this and other projects I’ve worked on and that I’m proud of, both mine or from others, in the projects page.
Could you share some numbers about the projects you’ve worked on? e.g.: users, requests, downloads, etc
- NodeOS has more than 6000 stargazers on Github
- Published more than 175 packages in npm
- 3 times winner of CUSL, spanish national Universitary Free Software Championship (PirannaFS, ShareIt! and NodeOS)
- Worked on 2 adquired start-ups (Kurento and lingbe)
- Referenced in the book HTML5 for Masterminds by J.D. Gauchat due to my pioneer work on WebRTC with DataChannels-polyfill
👨 Personal questions
Tell me about a real life, non-technical hack you’ve done
Five guys offers a veggie sandwich, where you can add grilled cheese as an extra. At the same time, they also offer a grilled cheese sandwich. You can add to the sandwiches all the toppings that you want by free… and they have available as toppings all the same ingredients that are part of the veggie sandwich, minus the grilled cheese. So, the hack is, by taking as basis a grilled cheese hamburguer and adding as toppings all the ingredients of the veggie sandwich, you can have a cheese veggie sandwich also cheaper than the original veggie sandwich alone. The first time I put in practice this hack, the cashier was not funny at all, as if she would be angry with me for discovering that loop-hole.
As a side note, I personally find Five Guys hamburguers to have too much fat, being in my opinion this “hack” or the original cheese veggie sandwich the only tasteful ones they have. That’s how I found this loop-hole in the first place, and since then my “hack” sandwich is usually the only product I consume from them the few times I buy there.
What are your hobbies outside of work?
Besides working on my own research side projects, I like running, travelling, dinner out, visit museums, going to cinema or reading, between others.
What achievements are you more proud of, outside of technology?
I’m mostly proud of the achievements with my personal side projects (technology is my hobby), but besides that, I’m also proud of have done the New Year’s Eve 10km run in 53 minutes, and that I’ve started learning chinese.
If you could be able to organize an intelectual dinner, what three people (live or dead) would you invite?
The two first ones would be Nikola Tesla, and my friend Elisenda Bou, one of the most brilliant minds I’ve ever meet 😛
Third one would be a bit more difficult. Thomas Edison is a good option as a justapoint of Nikola Tesla, but although being a good inventor too, it was a bit prepotent and pretentious. Leonardo da Vinci would be my next option (was one of my idols since a child), but it’s a bit topic and outdated, so in a more actual context I would have doubts to choose between Elon Musk or Steve Jobs. That would make four and no three persons, but being there all of us 5, that would be a really interesting dinner and maybe new projects or new ideas would appear there.
I’m not sure if Steve Jobs could sound a bit cliche or more like a strange selection, since he’s the only one that’s not an engineer. Apple is now a consumer product and a status symbol, but before his death, due to his high standards Apple computers were a simbol of quality and things well done and a creative tool. It’s documented that he wanted macOS to be an Open Source operating system like Linux, and this was not possible because by doing so, Microsoft would have not ported Office suite to it. Something similar happened with iTunes Store, where he doesn’t want to use DRM on their published songs, allowing them to be freely usable and redistribuible, and he was forced to add it by an exigence of discrographic records. This kind of ideals about free and open knowledge and culture are something I totally feel identified myself with.
What things do you have in your personal “life’s to-do” list?
My major dream since I was a child was to became an astronaut, since I had the idea that as a scientist, it was not possible to get higher, both literal or metaphorically. The main reason was to feel ingravity, so since now I’ve lost almost any oportunity to became an astronaut, now on absolut top of my list is to do a zero G fligth 🙂.
In second place, it’s to do a travel around the world. I don’t have a particular destination or route, just only to visit as most countries as possible… and return to my journey’s origin from the other side :-D Relate to that, a recent incorporation to the list is to became myself a member of the Travelers’ Century Club, that represent travelers who have visited 100 or more of the world’s countries and territories (by the moment I’ve visited 13 and counting). Also related to this is to visit Antartica and join the 300 Club 😀.
How do you expect your boss should be?
The most important things, it has a technical background, so it can understand when i explain what problems does we have or why something can’t be done.
The second one, make money is not its priority, and it’s managing the company because really love what it’s doing and believe in the company itself, also when it’s in losses. It must not take decissions just only based on economics, no matter the consecuences.
I truly believe that work must be done by some reasons besides money itself (it’s acceptable to work focused on what can we get with that money, though), and make money must be just a side effect of working, not its main reason to be. I have already changed jobs in the past just for that single reason, where nobody cared by the company and everybody was there only for the (huge) monthly payment, including me. When I got myself that I was not behaving according to my ethic principles, I left the company.
🏢 Company culture
What types of companies have you worked in? e.g.: startups, consulting, enterprise, agencies, etc
I’ve worked for some stablished enterprises like Telefónica, and a couple of times for consulting firms or freelance agencies, but the ones I’ve worked more times and enojed the most has always been freelance projects on my own and startups, some of them later adquired by bigger companies like Kurento (adquired by Twilio) or lingbe (adquired by italki).
What type of company would you like to work for and why?
I like to work on startup companies, or in a startup-like minded team, since they are the most creative and dynamic ones. I would like to work on research & development or on a company that has its own product, and a company that’s mostly focused on the quality of their product over any other aspect, instead of being directed by sales department or any predefined deadlines.
In short: I want to work on an engineering company, not just a technological one.
What do you look for in a company or project?
- Engineering companies, not technology ones.
- Innovation, design of new technologies, and usage and development of open and standard specifications. I totally identify myself with the motto of my alma mater, the Rey Juan Carlos University: non nova, sed nove (“not a new one, but in a new way”).
In a similar way, I consider myself a practical person but with ethical principles, and hope the ones of clients and companies I work with are aligned to mines:
- “Make money” is not one of the company main priorities (both directly or indirectly), nor it’s of their clients, or at least it’s not the main purposse of the project I’m going to work with. I work mostly for the project and the technology themselves and what I can learn from them, not for their revenues. Acording to my ethos, money and beneficts must always be a collateral effect of work and a medium to achieve experiences, not a main objective by itself.
- If money is a direct or indirect core concept of the project up to the point that removing it makes the project pointless, probably I would not be so much interested on working on it. Other elements like the technologies being used or the project concept or the oportunities that it can provide me can help, but definitely not by the project itself alone.
Do you prefer to work alone, or as part of a group?
I like to work in a group, specially on small ones focused on a single project where there’s a clear roadmap on what to do, or where technical expertise of co-workers is high and everybody is trying to do their best. This open the door to the posibility of discuss the different approachs to the problems and learn ones from the others. In the same way, when I have a lead or expert role, I like to surround me of co-workers with good technical skils so I can take in account their points of view too when defining the project architecture, the development guidelines or the project quality bar that other have to follow. In other cases where that’s not possible, I usualy like to work as part of a group where people can be focused each one on an area of the code that they can master and know in detail and manage it on their own, so everybody can be able to focus on their knowledge area.
What do you value the most about a team?
- Team lead is somebody I can learn from, or somebody humble that know its limits and when it’s better to trust in the experts knowledge, also when they are lower on the company hierarchy
- Team members are motivated, distressed, and working together for the same goal
- Everybody is focused trying to achieve technical excellence, and doing their best instead of doing it fast
- Co-workers are technically as good as me or better, so I can be able to learn from them, or they have initiative and are eager to learn and improve themselves
As cleary explained at https://mailchi.mp/bonillaware/sabotear-tu-empresa, these points are a direct result of having a motivated team, and that’s a responsability of the company itself:
To motivate our team members -beyond a correct retribution- we only need to create an environment where they can do their work well, where each time they can do it better and, in addition, they contribute to a purposse whom they believe, beyond earn more and more money.
Do you currently have a job? What do you like and dislike about it?
Currently I’m working as WebRTC Architect for Dyte as my main job and as part-time freelance developer, consultor and auditor. In that way, I’m always actively looking for freelance projects to work on remote in my spare time (maybe yours! :-D ).
👍 Likes
- 4-days work weeks
- walking distance from my home
- lots of schedule flexibility
- reduced day all the year
- over average payment
- interesting technological area (chatbots)
👎 Dislikes
- legacy code and design decissions, and almost no time sloted to fix them
- architecture complex and very cohexionated, with lots of inter-dependencies between projects
What would motivate you to change job?
- The most important, an interesting project that caught my attention and motivates me to do the change by itself, no matter any other things like salary, relocation or social beneficts. This can be the project topic, technologies being used, the profesional or academic career oportunities that it can offer me…
- A salary according to my expectations.
- Quantity and quality of social beneficts provided in addition to the salary, specially restaurant card, public transport card, gym subscription, remote work, flexible schedule…
What would motivate you to join a new project?
- Higher salary maintaining or improving all my perks and social beneficts
- Work on a research project, ideally somewhat related to own research areas
- Position with responsability that could help me to improve my career both profesional and academically, with publishing of papers
What you are looking for in your next job?
A project I can feel my own and get involved on it, helping to define its shape. Also a project that can make me proud of and help to learn new things and improve my career, ideally both profesionally and in academic areas.
If I made you an offer, what would make you to reject it?
If we get up to this point, probably I would have already consider the pros & cons regarding changing my current job, so only I would reject a job offer if the tasks I would be involved are not motivational enought, or the final salary difference with my current job would not compensate the change (this is specially important in the case when relocation is required and it makes me a drop in my buying level and/or life quality), so it’s better that we discuss these topics in the first interview to don’t waste everybody time.