Hi! I'm Bruno,

A full-stack Jedi Web Developer.

Full-stack Web Developer

This is my story. It's a bit long, but I've kept only the important and relevant parts to Web Development.

From Backend to Frontend

I've been building web sites and web apps roughly since 2003. In late 2003 I started a Web Development & Web Hosting company, that was sold in 2009 to a company of which I became CEO and Project Manager — Wozia.

Building a company all by myself required me to learn a lot about every aspect of Web Development and Web Hosting. From the Systems Administration to UX, and the frontend JavaScript.

My interest in GNU/Linux grew stronger and I ended up replacing my main OS (Windows XP) with Ubuntu in 2005. I helped the Ubuntu community in the forums and IRC, translating, submitting bugs, ideas, etc. I got a great knowledge out of compiling kernel modules and packages, just to get Wi-Fi, a graphics card, or bluetooth working, for example. This experience was one of the most valuable in my life.

Having had clients early on from all over the world, like France, Spain, Chile, Canada, England, and the US was also incredibly valuable and provided me with a lot of experience.

Greater challenges

The Web Hosting part of Wozia was sold in 2011 and the focus of the company became bespoke Web Development, together with providing SaaS (Software as a Service). In 2012, emotionLoop was created as a way of separating bespoke Web Development from the things we did for the community, including plugins and SaaS (and some side projects — some already terminated).

Having total creative control of a product was empowering. It was great to try and learn new things, without risking much.

I'm Driving app for Android was an app I did for Android mainly to try out Android's SDK, and to see if I still remembered Java well enough. It was enlightening and I got to work with some fun APIs. I also got to understand Android's quirks a bit more. It's incredibly hard to maintain an app for Android "without profit", so I open sourced it. I believe I'll have time to get back to it and improve it, later on, but it's definitely not a priority.

Whoever knows me, knows I love a lot of things about 37Signals and that they've highly influenced my life, and not only professionally. This is also true for some Zen approaches to life, that I've applied to work as well.

Scratching my own itch, I developed SiteLog. It's a very nice product that has helped a few people solve a simple problem — knowing if their site is up or not —, without going through much trouble.

Of the people, by the people, for the people

One of the products I'm most proud of creating, though, is visualCaptcha.

One day I got really annoyed at a reCaptcha that was insisting in throwing me unwritable words and I thought "there has to be a better way of doing this". I started a search for captchas and eventually found Fancy Captcha. Sadly, shortly after looking through its code, I realized it was very easy for a bot to override it.

I set out to create a sensible, visually appealing, non-frustrating captcha alternative. One that everyone could benefit of. Security and ease-of-use were the priorities. Long story short, I came up with visualCaptcha.

The next big challenge was accessibility. It had the same problem on every captcha, it increased difficulty and frustration in its users, by being very hard to understand the letters pronounced. The solution had to be easy to understand, while hard for any bots to use it as an "easy access" to override the captcha's security. I ended up joining another form of captcha (easy questions for a human to understand, that are hard for most bots to analyze), having the words clearly pronounced.

Summarizing, I'm very proud of the research and solutions I came up with for visualCaptcha. It's not complex in programming or anything, but I really like what it solves and how it solves it.
It's also open source.

An affair with Python

When I started wanting to learn how to code for the Web, I ended up choosing PHP because it was easier and more similar to C (which was what I knew better back then).

I didn't lose sight on Python, though. I liked it a lot, but PHP made me do things faster.

In 2010, while looking for a nice framework for a complex project (an ecommerce/crm/support infrastructure), I got tempted by Django, but the circumstances again required something quick to be done. I ended up creating a lightweight PHP framework for the project that was used in a few other projects.

Then, in 2012, I wanted to give Django a chance. I was reading a few things about Python and just couldn't let it pass again. I built a Project Manager in Django (Unity), and I loved doing it. I got to work with many different aspects of Django and Python, and it was great to do so. I built a couple more projects with Django, but for "quick and dirty" things, I tend to prefer PHP. For more complex/structured things, though, I favor Django, if I'm allowed to choose.

Stop learning, start dying

I always want to learn more. More things. More about the same things. Things from other areas I know nothing about.

This broad knowledge pursuit has provided me with a few epiphanies, that sometimes lead to other epiphanies. I love the feeling you get when something "clicks" and connects other things in a line of cohesion, coherence and understanding.

Amongst many things, what I've been learning more about recently is UX/HI (User Experience and Human Interfaces) and Design. From a few books to a few articles to a few authors, it's been an enlightening path.

I also learned, in that same path, that the more broad knowledge you have (different areas), the more you can bring to a given area. A great example (and quote) is found in an interview with Oliver Reichenstein, by The Verge, where living in Japan and learning about a different culture transformed his vision about Typography.

I'm really passionate about learning more in Design and UX/HI, specially when it comes to presenting information in a way we, as humans, instinctively understand it. It's really connected to an area I know very little about, that I also want to improve in the future, Cognitive Science.

On top of things

This is really related to what I said above, but in the area of learning more about what you know, and specially in the Web Development area — where everything moves in a lightning-fast pace —, it's important to be aware of the latest tools, trends, and methodologies, and understand them.

Note I'm not talking about being a pro on (or even learning) all of them, but understanding what they're good for, their pros and cons, and knowing when to choose them.

2012, specially, has been a great year for new tools to mature and appear. CoffeeScript, Backbone.js, LESS/SCSS, Responsive Design, among others, have grown so much. It's really exciting to be a part of the web at this time.

Since I started in CleverTech, I've been able to learn more about Node.js, AngularJS, and PostgreSQL, which is being extremely fulfilling. The business and operating knowledge I'm also now getting is being extremely valuable.

Working remotely

I've worked in a few offices, all with great environments and perks, but I definitely prefer the advantages of working remotely, from home. Tools like Skype, Campfire, HipChat, and Google Hangouts have made it possible to have a few of the "office" pros, without having some of its cons. I love how productive and happy I am with working from home.

Writing a book

I've never thought about writing a book. I had some ideas for Sci-fi books and I was good at writing poems/verses, but it was never something I aspired to do. However, in August 2012, I was invited by a great and well-known publisher to write a book about JavaScript for experts. I ended up choosing to write about jQuery Plugin Development for Pros. There weren't many great books available that I knew about, and it was something I felt there was a need to exist.

I accepted writing the book merely because it was a new challenge I had never faced. I like those kinds of challenges. I was really excited about it.

Sadly, when the book was near completion, the publisher backed out and didn't want to publish what I had written. It wasn't "book material", but rather "web material", in their opinion. It had too much "code" and little "text".

I ended up deciding to publish the book in eBook format on my own, because of the feedback I had gotten from a few excerpts I had shown some developers, and because I believed in what I had written.

I wrote an article about the whole experience, that you can read here.

Major Achievements

  • Captcha research and development applied on visualCaptcha;
  • Pro jQuery Plugins eBook;
  • Started a profitable web hosting company alone, from scratch, and sold it;
  • Started a profitable web development company alone;
  • Handled solely a website with over 100K hits/day, from Frontend to SysAdmin/DevOps;
  • Road safety Android application, I'm Driving;
  • Contributions to Ubuntu (translations and beta testing), from versions 5.04 - 9.04.

What I master

Programming (in general, and specific experience with a lot of PHP, MySQL, JavaScript, jQuery, CoffeeScript, Node.js, AngularJS, LESS, SASS), Responsive Design, Mobile-first design approach, Project Management, Business Operations, HTML(5), CSS(3), Nginx, Apache, Linux SysAdmin, Memcached, Redis, Git.

What I'm good with

Django/Python, Backbone.js, UX/UI, AWS, Solr, Starcraft, Jedi Knight, Counter-Strike, Nuclear Dawn.

What I love, but still need more XP

Human Interfaces, Cognitive Science, Artificial Intelligence, Design, Meteor, Laravel, Quantum Physics, Advanced Mathematics.

Currently

I'm a full-time COO (and Responsible for Customer Satisfaction) at CleverTech, and have a few interesting free/open source projects going on at emotionLoop.