1. The Burden of Choice

    Whoever would be able to crack the prioritisation code that leads products towards success could potentially spearhead most economic developments. What is this burden of choice in product development?

    By Martinho AragãoOn October 15, 2020
  2. The Worst Decision Of My Career

    A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system

    By Gabriel PoçaOn September 25, 2020
  3. Dictator 1.0: A new perspective

    A few months ago, Miguel and I got together and reimplemented much of Dictator.

    By Fernando MendesOn September 16, 2020
  4. Announcing Alchemy Conf

    How important is the community for you? It's been four years since our last conference. And now we're back.

    By Roberto MachadoOn September 11, 2020
  5. Unsucking your project onboarding

    So you have a new developer joining your project. And, as usual, everything changed in Javascript landscape since 37s ago. At Subvisual we have a system to handle this.

    By Fernando MendesOn August 21, 2020
  6. Elixir console: Safety first

    I suspect that every developer who has dealt with production systems, has also messed up a production system. At least once.

    By Miguel PalhasOn July 23, 2020
  7. Vim as an Elixir IDE

    I would like to talk about how to turn vim into an IDE, with some special focus towards Elixir

    By Miguel PalhasOn July 17, 2020
  8. 5 things you should do when starting a company

    Adverse times can present opportunities. Harnessed correctly, they can boost entrepreneurship and the creation of new business.

    By Roberto MachadoOn July 13, 2020
  9. Your tech stack matters

    Your about to start building a digital product? Here's some consideration to consider before defining your tech stack.

    By Luis FerreiraOn July 3, 2020
  10. Got an idea, now what?

    Having an idea for a digital product might be the start of something beautiful, but it has to be nourished

    By Luis FerreiraOn June 29, 2020
  11. Rebuilding subvisual.com

    In the end of 2018 we started working on a rebranding process for Subvisual. We grew beyond the identity we coined in 2015, and the brand needed to reflect it and our ambition for the future. We now have a story to tell.

    By Pedro CostaOn June 25, 2020
  12. User research is hard, but shouldn’t be complicated

    When I ask someone why they don’t do User Research regularly, usually the arguments revolve around it being very time consuming, extremely complicated to organize, and very hard to get actionable insights out of it.

    By João FerreiraOn June 23, 2020
  13. Going Remote: The Parts No One Tells You

    A lot of companies are allowing their workers to stay remote. Which is awesome. But the situation will now be drastically different. You see, before, everyone was remote. Now, however, you'll have part of your team in office and part of it remote. If not done properly, it won't quite be the best time of your life.

    By Fernando MendesOn June 22, 2020
  14. Fixing Too Many Open Files

    Your production environment is yelling out messages with "Too many open files" and nothing worked so far. Let me show you how to bump those limits up.

    By Pedro CostaOn June 19, 2020
  15. React state management and side-effects with Redux and RxJS

    Over the years I worked on many front-end projects. I don't always enjoy it, but I've found some libraries that make it more pleasant. One of those libraries is RxJS.

    By Gabriel PoçaOn June 9, 2020
  16. How we set and track goals

    Have an inside glance at our goal setting and tracking process, and some extra insights about how we define our goals at the beginning of each year. This is the first of a series of blog posts about how we work our goals at Subvisual.

    By Laura EstevesOn June 4, 2020
  17. 4 Months as a Ginetti

    When I first started running usability tests and conducting interviews, I didn’t know what the hell I was doing.

    By João FerreiraOn May 29, 2020
  18. Subvisual Live Talks: One Month In

    About a month ago we began our Subvisual Live Talks. A new and simple concept: streaming weekly conversations with interesting guests and friends. We've been devoting some time to Elixir and now Ruby and we're very happy with how everything's going. However, we've also reached a point where we want to hear from you.

    By Fernando MendesOn May 21, 2020
  19. 8 Habits To Help You Through The Pandemic Times

    Your brain is constantly building new neural pathways and, if you're staying at home, this can be the perfect opportunity to start breaking bad habits and replacing them with some good ones.

    By Laura EstevesOn May 13, 2020
  20. Continuous Stuff with Github Actions

    Last year, I did a huge migration to GithubActions over at Utrust. Here's a summary some of my main takeaways

    By Miguel PalhasOn April 22, 2020
  21. Announcing Subvisual Live Talks: Zamith, Josh Clayton, Saša Jurić and others

    Last Friday we premiered the first edition of the Subvisual Live Talks, a live stream with a very simple concept: a conversation with interesting guests. The first stream features an hour of exciting conversation between our own host, Zamith and thoughtbot's Boston Managing Director Josh Clayton. There's more to come.

    By Fernando MendesOn April 17, 2020
  22. Plug-based authorisation for Elixir and Phoenix

    A while ago I felt the shame of copying and pasting code around from projects. Eventually, I decided to stop being lazy, extract it and make a hex package out of it. This is story of that project and a walkthrough all the awesome things it does, with very little code. Yay Elixir!

    By Fernando MendesOn April 16, 2020
  23. Apprenticeship and Summer Camp programs

    In 2020 we want to keep crafting our training opportunities.

    By Laura EstevesOn February 23, 2020
  24. Subvisual is hiring a Front End Developer

    We’re now looking for someone who can help us grow even more. Adding another human being to this equation as a full-time member of our company is something that really excites us.

    By Roberto MachadoOn February 10, 2020
  25. Upsert statements with Ecto

    Narrator: Update and Insert at the same time? That sounds groovy! In comes the Upsert! Ecto: What about me? Narrator: You can come too, I guess.

    By Luis FerreiraOn January 15, 2020
  26. Jobs and Timers in neovim: How to watch your builds fail

    Our git flow revolves around a lot of small-ish PRs. We have builds running constantly. Eventually, they’ll fail. And I hate leaving (neo)vim. Especially to watch a red sign telling I did the dum-dumbs. So I did a thing to tell me when the I did the dum-dumbs without ever leaving the cozy comfort of vim.

    By Fernando MendesOn June 7, 2019
  27. It's not Continuous Delivery (yet)

    At Subvisual we have always advocated for Continuous Delivery in our projects. Recently we decided to teach this approach. But it so happened that, in our effort to learn more about Continuous Delivery, we learned that we ourselves are not actually doing it.

    By Pedro CostaOn February 2, 2019
  28. Mirror Conf 2018

    We’re happy to announce the 3rd edition of Mirror Conf! This year our theme is "The Future of the Web", and we’re inviting you to a trip through time, from humanity's first forms of art and culture to the unknown wonders the future might hold.

    By Laura EstevesOn October 2, 2018
  29. Subvisual's Summer Camp

    At Subvisual, everyday is a day to learn something new. Everyday is an intense experience. Everyday is a day for exploring a new topic, a new subject, a new idea.

    By Helena MunizOn June 1, 2018
  30. Continuous Integration at Subvisual

    Learn how we do Continuous Integration, and what tools we use at each step of the way

    By Miguel PalhasOn December 18, 2017
  31. How to program Vim using Ruby

    In this article, I hope to demonstrate how you can program Vim using Ruby.

    By Gabriel PoçaOn September 4, 2017
  32. Typography as Base: From the Content Out

    This blog post was born out of my necessity to find a structure in which I could rely on when designing any kind of web project.

    By Francisco BailaOn June 6, 2017
  33. Tutorial: Deploying Elixir applications with Docker and Digital Ocean

    While Elixir is becoming a popular language for web development, there is at least one topic that I still find lacking: Deploys.

    By Miguel PalhasOn May 24, 2017
  34. How to run Usability Tests with small teams: Crediflux

    It's still common to hear designers or product managers saying they'd like to run usability tests on their projects but "it just takes too much time" or they "don't have the budget for it". Steve Krug's book kinda plays with this wrongful stereotype and offers a practical guide to run a successful Usability Test.

    By João FerreiraOn May 4, 2017
  35. Super-powered Vim, part III: Skeletons

    By Miguel PalhasOn April 28, 2017
  36. Super-powered Vim, part II: Snippets

    By Miguel PalhasOn April 28, 2017
  37. Super-powered Vim, part I: Projections

    One of my main focus of the past few months has been my productivity with my text editor.

    By Miguel PalhasOn April 28, 2017
  38. Design Sprints and the Academia

    To be honest, before this fall I had never taken part of a Design Sprint. It always seemed like a toy for the big boys in startups to play with. Then Eaze happened...

    By Fernando MendesOn April 24, 2017
  39. How to build offline web applications with CouchDB and PouchDB

    You may have heard about Progressive Web Apps (PWAs). These are web applications that leverage the new Web APIs to look and feel like native applications. There is plenty the web can do today that was only available to native applications before.

    By Gabriel PoçaOn April 20, 2017
  40. Product Vision as the Cornerstone

    It always strikes me when someone has to explain what product they are working on and struggle to formulate a concise sentence that is easy to understand. Being an Elevator Pitch or a more techie product explanation, you should instinctively be able to explain what you are doing. Usually, this is a smell for the lack of direction in the team. If you start asking a question, you will notice the absence of a product vision.

    By Roberto MachadoOn March 22, 2017
  41. RubyConf Portugal Gap Year

    We had a blast in the last three years with RubyConf Portugal. Seriously, it was one of the most pleasuring things to do and we can not thank enough everyone that helped us put this together. All of you that attended the conference, all the speakers, sponsors, and volunteers, thank you again for all the support. But friends, it's time for a pause. We will not be organizing RubyConf Portugal 2017.

    By Roberto MachadoOn March 17, 2017
  42. Stress and Recovery Cycle

    This is the second time that I write this text. Naively I deleted the first version, leaving no chance of recovery, which caused me deep frustration. Instead of panicking about this, I took a walk, and a series of deep breaths and here I am writing the second version.

    By Roberto MachadoOn March 15, 2017
  43. The root of all evil

    Spoiler alert: it's premature optimizations.

    By Miguel PalhasOn March 13, 2017
  44. The pain of testing with 3rd party integrations

    Whenever a web app has integrations with external APIs (which, let's face, happens most of the time nowadays), there's usually an increased complexity about it when it comes to testing.

    By Miguel PalhasOn March 7, 2017
  45. Subvisual and TNDS are offering a Design Sprint - Apply now!

    Design Sprints are a great deal for us here at Subvisual. We do them when starting a project, when doing a redesign, when adding new features, and more. They are rooted in our processes now and are the base that sustains our work.

    By Francisco BailaOn March 3, 2017
  46. Announcing MirrorConf 2017: the ultimate digital paradise

    We're ready to announce that the 2nd edition of MirrorConf is happening on October 12-13!

    By Roberto MachadoOn February 27, 2017
  47. How We Share Ownership and Accountability

    Often people ask me how a small team like ours can have relative financial success and still have time to organize two international conferences and several meet-ups while keeping a sustainable work environment where people like to work. I always struggle to answer this.

    By Roberto MachadoOn February 23, 2017
  48. Build Teams of Incremental Learners

    One of these days I was reflecting on the similarities that we have at Subvisual. It is true that we are notoriously different in our personalities, backgrounds, and experiences, but what were the common characteristics that accidentally or by choice we all have? It's easy to spot the values that we share as a company being present in all of us. However, sometimes it's hard to identify if they were consequences of joining this team or if they were already there.

    By Roberto MachadoOn February 22, 2017
  49. Hakuna Matata...

    I never laughed, cried, hugged and loved so much in such a short time. I had the opportunity to meet amazing people during this volunteer experience and I'm sharing some of the stories in this blog post.

    By Laura EstevesOn February 10, 2017
  50. Open files on existing vim sessions

    I recently watched Greg Hurrell's screencast about Opening files in Terminal Vim, in which he showcases an OSX-only solution for being able to open files on Vim when using Finder.

    By Miguel PalhasOn December 16, 2016
  51. The Trail Behind Me

    It has already been a year since my first day at Subvisual. I was no stranger to working with this team then. I made a point of joining the RubyConf Portugal organisation team ever since the idea first came up and I've been involved in all the meetups and activities that I could. Nonetheless, I thought a recap of the events, both those that led me here and those since I've been here, would be a fit way to celebrate the achievement.

    By Pedro CostaOn November 18, 2016
  52. Subvisual Weekly #14

    We've all been there. We spend days, maybe weeks, planning something. We gather all the information and devise the ideal solution for that particular problem. But something happens, and our solution is no longer viable. It no longer solves the problem. The question now is, what's your backup plan?

    By Pedro CostaOn November 8, 2016
  53. Subvisual Weekly #13

    Have you ever found yourself working alone for what appears to be too damn long?

    By Miguel PalhasOn October 21, 2016
  54. Educating for design: Design discipline

    Over the last 4 years, I've had the pleasure of helping out designers on their first experiences in the web. Typically they come with a lot of questions and insecurities, usually all concerning two things: Typography and colors.

    By João FerreiraOn October 19, 2016
  55. A rollercoaster called Mirror Conf

    Imagine you decided to organize an international conference starting 7 months from now. If you've ever been involved in organizing something like this, you know what I'm talking about. Going through all the bureaucracies and logistics, in a race against time. Imagine you'd optimistically planned for around 200 attendees and you had only sold around 50 tickets about a month and a half away from the conference. Picture your budget being vibrant red with those 50 tickets, and the pressure mounting.

    By João FerreiraOn October 17, 2016
  56. Subvisual Weekly #12

    I'm proud to introduce the top geeks: Miguel and Fernando.

    By Gabriel PoçaOn October 14, 2016
  57. Subvisual Weekly #11

    Last week was awesome. On Friday, everyone got together for a company hackathon. There was paper, code, and food all over the place. We even had a delicious meal prepared by a guest.

    By Gabriel PoçaOn October 7, 2016
  58. An exercise in futility

    Code golf is an interesting concept to me: to solve a programming challenge, using not the most efficient or readable code, or the most state-of-the-art solution, but with the smallest code size possible.

    By Miguel PalhasOn October 3, 2016
  59. Subvisual Weekly #10

    We did it. We made it happen. MirrorConf is done.

    By Summer CampersOn September 29, 2016
  60. Trying to stop the madness

    Designers are responsible for a load of tasks during a project and most of the times they juggle several projects at the same time. I struggled with this at first, but with a note here and there, I was able to get things done with only minor flaws once in awhile.

    By Francisco BailaOn September 28, 2016
  61. Subvisual Weekly #9

    I can tell that something's off. Boxes are laying around on the floor, unorganized. People show up at our door asking us to taste food. Phones are ringing all day. And everyone is tense. Everyone but Laura; she's just pulling her hair off.

    By Gabriel PoçaOn September 20, 2016
  62. Educating for design: Context, context, context

    As designers, we get to learn new things every day. Most of them are usually related to the way we discuss design with others, which tends to be a bit chaotic most of the times. Although I'm far from being an expert in these matters, I've come a long way since my fresh-out-of-college design years and I'd like to share some of the little things that we can do/say/think to communicate better with the rest of the team.

    By João FerreiraOn September 15, 2016
  63. Weekly #8

    There's just one thing I need to be ok: alone time. Being by myself is how I recharge and find the motivation to keep going. Knowing this, just imagine how sweet it sounded when I was invited to go to the UK to work with a client at his office. It happened last week, and it was music to my ears.

    By Gabriel PoçaOn September 13, 2016
  64. First steps into product design

    On the 1st of August we started out our internship at Subvisual. The main goal was developing a new product consisting of a financial app that would deal with the process of organizing and registering all the financial data of their organizations. Our target audience would be early stage enterprises like tech startups and small tech companies. Growing a business healthfully is a huge effort by itself, so why not clear the path of minor tasks that are simultaneously so important? So the problem was identified and our opportunity was here.

    By Summer CampersOn September 9, 2016
  65. Subvisual Weekly #7

    Another week, another weekly. For this edition, Gabriel asked me to talk a bit about my thesis and share what I have been learning and doing so far.

    By Fernando MendesOn September 5, 2016
  66. Subvisual Weekly #6

    Our new office is great. The team is growing, so the extra space and meeting rooms help maintain our sanity. We'll be hosting the next editions of BragaJS and BragaUX, so it's the perfect excuse for you to visit us and see it.

    By Gabriel PoçaOn August 29, 2016
  67. Subvisual Weekly #5

    By Gabriel PoçaOn August 22, 2016
  68. Subvisual Weekly #4

    The secret sauce: isn’t it what everyone is looking for? To find some kind of secret sauce? Imagine how amazing it would be if you could just grab a bottle of an exotic substance, and then add a few drops of it to anything. This strange liquid would somehow turn an absolutely normal object into an amazing, delightful, joyful item.

    By João JustoOn August 16, 2016
  69. A Look Into Bloom Filters with Ruby

    I remember one particular class I had. It was late May and, as pretty much every Spring day in Portugal, the sun decided to greet us with a little too much enthusiasm.

    By Fernando MendesOn August 11, 2016
  70. Subvisual Weekly #3

    I'm lucky to have a friend who really knows how to bring people together. He is the brains behind everything our group of friends does, whether it's a Christmas dinner, a summer picnic, or a trip somewhere. We know that he makes sure it happens.

    By Gabriel PoçaOn August 8, 2016
  71. Subvisual is expanding to the US

    We have been working on expanding to a new location for a while now. We love Braga, and it will continue to be to be our home and HQ, but now we have a new office in Boston, MA. I will explain our motivations to do so, and our plans for the following months.

    By Roberto MachadoOn August 4, 2016
  72. From Client to Partner

    Starting a fresh, new project is a wonderful feeling. It is immaculate, filled with ambitious expectations, with an endless world of exciting possibilities that tingle our creative brains.

    By João FerreiraOn August 2, 2016
  73. Subvisual Weekly #2

    Last night I left home to have a drink with a friend. Next thing I know I'm at the office's door. This has been happening a lot. My mind wanders into the future, and my body goes into auto-pilot. Sometimes the mind wanders so deeply that you forget what you were up to in the first place.

    By Gabriel PoçaOn July 29, 2016
  74. Subvisual Weekly #1

    Our journey begins in the sunny city of Braga, as we adventure ourselves through the tall, green, grass. We were not prepared for this. But we pushed through. An empty Pokédex and just one Pokéball in our pockets, ready to take on the world.

    By Gabriel PoçaOn July 22, 2016
  75. We would like to meet you

    At Subvisual we take community building very seriously, and part of it is getting to know its members. We've prepared a small survey to get to know you better.

    By Luis FerreiraOn July 19, 2016
  76. Ruby Bits: Spaceship Operator

    This week on Ruby Bits we've decided to honour the Juno mission entering Jupiter's orbit by discussing another special operator in Ruby, commonly known as the spaceship operator.

    By Luis FerreiraOn July 5, 2016
  77. Stumbling into a product

    This is the story of Shelf, a product we just recently launched but has been in the making for almost 3 years now. Why has it taken so long? What was the process to get it into the wild? Those are the questions I aim to answer with this article, and hopefully you can draw some inspiration to do something similar in your company.

    By Luis FerreiraOn June 22, 2016
  78. RubyBits: Triple Equals

    If you thought that the === operator was something only JavaScript developers had to deal with, you were mistaken. We also have one in Ruby, even though it differs immensely in terms of functionality, from its JS counterpart.

    By Luis FerreiraOn June 14, 2016
  79. Smarter heredoc syntax in vim

    I have lately run into a problem with my editor of choice, Vim, and the syntax highlighting in Ruby files.

    By Miguel PalhasOn June 2, 2016
  80. Launching Subvisual's Summer Camp

    Summer is coming, and most of us are looking for things to do during the summer when we have way too much free time. That's why we decided to create an opportunity for you to spend that time investing in yourself by learning and practicing the craft of software design and development.

    By Roberto MachadoOn June 1, 2016
  81. RubyBits: Source Diving

    Debugging is something that (un)fortunately we as developers are all used to doing, but depending on the language, the techniques and tools might differ, if ever so slightly.

    By Luis FerreiraOn May 24, 2016
  82. Announcing Mirror Conf

    About four years ago, when our company was still taking its first steps and hardly making any money, we invested 250€ to support a small ruby conference called RubyNorte. Since we only had 200€ in our bank account, we actually had to put the extra 50€ from our own pockets. As naive and premature as it was, it is a perfect example of how much we value community, and how it is at the core of our company's culture.

    By Roberto MachadoOn May 18, 2016
  83. Team-shared Responsibility

    By João FerreiraOn May 16, 2016
  84. RubyBits: Type coercion

    Have you ever had to implement arithmetic operations for an object? If so, there is one little method you probably should be aware of, and it's called coerce.

    By Luis FerreiraOn May 10, 2016
  85. A bridge between Redux and Meteor

    The purpose of this article is to demonstrate how to use Redux on a Meteor application.

    By Gabriel PoçaOn April 28, 2016
  86. Ruby Bits: Delegation

    If you've been writing Object Oriented code for a while, you're probably familiar with expressions such as DRY, the Law of Demeter or Composition over Inheritance. One thing they all have in common is that the can be followed by using delegation.

    By Luis FerreiraOn April 26, 2016
  87. Ruby Bits: Enumerators

    Welcome back to the world of `Enumerable` my friend. This time we will be looking at a somewhat hidden feature of most of its methods, they can be used without a block and have a return value that is itself an enumerator.

    By Luis FerreiraOn April 12, 2016
  88. RubyConf Portugal is back!

    We’re ready to announce that the 3rd edition of RubyConf Portugal is happening on October 28-29!

    By Roberto MachadoOn April 8, 2016
  89. Ruby Bits: Bundle open

    If you've ever used Ruby you have probably used Bundler through it's command line tool. There's quite a few things you can do with it. There is even a very useful command which will open the code for a specified gem with an editor you can also configure.

    By Luis FerreiraOn March 29, 2016
  90. Culture Design

    Subvisual started out in 2012 with a team of four. All of us fresh out of college. We also had to account for our team's different cultural background. This posed a challenging context which we failed to understand at first.

    By João FerreiraOn March 21, 2016
  91. Ruby Bits: Each with object

    The Enumerable module is the core of everything in Ruby. It is often said that if you know this module, then you know Ruby and that's not far from the truth, in my opinion.

    By Luis FerreiraOn March 15, 2016
  92. FactoryGirl Beyond the Database

    I've been experimenting with FactoryGirl lately, particularly to deal with test data that's not necessarily tied to the database.

    By Miguel PalhasOn March 3, 2016
  93. Life After Apprenticeship

    When I was finishing my apprenticeship here at Subvisual I wrote a blog post about how it went and especially about what I learned during that period. It has been quite some time now, and I felt it was the right moment to write about how this experience has been.

    By Francisco BailaOn February 25, 2016
  94. A Late Recap of 2015

    A lot happened in 2015 around here at the now called Subvisual. I thought that I should share a recap with all of you, not only to boost our egos a bit by reviewing all the astonishing work accomplished last year, but also to lift the veil for what's coming in 2016. We have set bold goals for the current year, and as scary as it seems to share them with you, it will add an extra layer of commitment since we expect to be held accountable by all of you. Let's start by briefly recapping our last year.

    By Roberto MachadoOn January 28, 2016
  95. Undersampling of Failure

    By Roberto MachadoOn January 22, 2016
  96. Newsletter as a team building exercise

    In this blog post, I will share how we plan, create and send our weekly newsletter that has helped us improve cooperation, communication and responsibility within the team.

    By Laura EstevesOn January 6, 2016
  97. Sending multiple emails with ActionMailer

    If you have ever built a Rails application, you probably have encountered ActionMailer for sending emails. But what if we wanted to send a notification to multiple users all at once?

    By Luis FerreiraOn December 2, 2015
  98. Hacking your own company

    I have a confession to make. A while ago I hacked my own company.

    By João JustoOn November 18, 2015
  99. Shaping a School

    The new edition of Creators School had unprecedented ambitions which required a profound rebrand. Before I get into details about the rebrand, let me introduce you briefly to the project.

    By Francisco BailaOn October 7, 2015
  100. Perfecting a CSS 3D animation

    With recent advances in front-end technologies, front end developers have been going crazy, pushing CSS to its limits and doing all sorts of beautiful animations. Seriously, there are some crazy things out there.

    By Miguel PalhasOn July 17, 2015
  101. Deploying a Crystal application to Heroku

    Crystal is a typed, LLVM compiled language that reads (mostly) as Ruby. It's a modern language that comes bundled with support for WebSockets, OAuth and other niceties.

    By Luis FerreiraOn July 15, 2015
  102. Why Subvisual?

    Rebranding our company was our biggest challenge yet. Figuring out how to convey our values and ambitions through a new brand while honouring our roots was frightening.

    By João FerreiraOn July 6, 2015
  103. Our Biggest Announcement Yet

    Why would a group of people as young as we were start a company? We had no relevant entrepreneurial experience, we were young and straight out of university, so we’ve come to expect that question. Part of the answer is that we couldn’t find a company that would allow us to work on the things that we were passionate about, while obsessively honing our skills. But also, and maybe even more importantly, we were friends. Talent and ambition played a part too, but that friendship became the cornerstone of everything we’ve built. Three years on, and that remains true. We are proud of these roots, humbled even.

    By Roberto MachadoOn July 1, 2015
  104. The Pursuit of Craftsmanship

    After finishing my graduation it seemed natural for me to continue studying and enroll in a master's degree, but by the end of the first semester I started to feel frustrated. It's very rewarding to grasp the knowledge you get from college, but after a few years it gets discouraging. I wanted more. More experience, more responsibility, more visibility. I felt it was time for me to learn by doing, working side by side with more experienced designers, in a professional environment.

    By Francisco BailaOn April 13, 2015
  105. A better reset for the mobile web

    Mobile web applications are expected to work differently from desktop applications. They need to feel responsive to the user's touch. Having worked on a couple of mobile web applications in the last year, I found that I always start by changing the browser's default appearance and behaviour. This article contains my setup to make a mobile web application feel more like a native one.

    By Gabriel PoçaOn April 9, 2015
  106. Game On! RubyConf Portugal is back in 2015

    We're ready to announce that the 2nd edition of RubyConf Portugal is coming and it's going to be bigger, bolder and awesome-er!

    By Roberto MachadoOn February 27, 2015
  107. Getting Hooked

    I said it before and I'll say it again, several times: Automation is awesome.

    By Miguel PalhasOn February 18, 2015
  108. Accessibility Matters

    Not everyone is privileged enough to be able to navigate the web in all it's glory, with all the amazing animations, crazy stuff happening on scrolls, great videos and the latest style for input fields.

    By Luis FerreiraOn February 2, 2015
  109. Lessons Learned from our Winter Company Retreat

    We had our first offsite experience in May when we drove to the beautiful Gerês and spent 3 days blowing off steam, having fun and talking lightly about some of our projects.

    By Roberto MachadoOn December 19, 2014
  110. For Makers

    There's only so much you can do in life. Your time is limited, as well as your focus and your energy.

    By João FerreiraOn December 10, 2014
  111. My experience as an apprentice

    In the last couple of months I've been a part of Group Buddies. I joined this company as an apprentice, where I learnt how to work for the web and to follow high quality standards. I was already coding apps for fun, but I had no idea how the web worked.

    By João JustoOn November 27, 2014
  112. Offline Web Apps with Meteor

    In this blog post I'm presenting a solution to make Meteor apps work completely offline. In fact, Meteor apps already work offline, as long as the user doesn't close the browser.

    By Gabriel PoçaOn November 26, 2014
  113. Easily Merging Pull Requests

    I try to automate all the annoying repetitive things I can. And not long ago, merging Pull Request was certainly on top of my list.

    By Miguel PalhasOn November 24, 2014
  114. Supercharge your git

    By Luis FerreiraOn November 17, 2014
  115. Overview of Meteor Cordova - PhoneGap integration

    I recently started working on the second version of Tripl.it, a mobile app we built with PhoneGap.

    By João JustoOn September 25, 2014
  116. Why you should care about Design

    Design is a way of thinking, a way of looking at things and trying to understand them and to find a different, better way of achieving something. Not everyone is a designer but everyone would benefit from having a design perspective, a sort of disruptive approach to the world, a non-conformed state of mind. It’s about being critical and brave enough to do things differently.

    By João FerreiraOn July 1, 2014
  117. Tutorial: HTML Audio Capture streaming to Node.js (no browser extensions)

    I'm taking the time to write the tutorial I wish I had some months ago. My task was to set up some user voice recording mechanism in the browser. It should record for about one hour, non-stop, saving to a server. The idea was to use the getUserMedia API. No browser extensions should be used.

    By Gabriel PoçaOn June 24, 2014
  118. Adapting education to the way we learn

    When we started out Creators School, I got this scary feeling that we were way out of our league, like we didn't have the experience to teach anyone about anything. But as soon as I got over the panic stage, I got excited about the idea of taking a different approach at teaching. So I did a lot of research about education in order to discover new approaches to teaching and better understand how people embrace learning, how to get them 'in the zone'. I came across some interesting concepts that I'd like to share, to contribute for this fascinating subject that is so critical to our future.

    By João FerreiraOn June 18, 2014
  119. Announcing our Summer Apprenticeship Program

    We are launching two apprenticeships for this summer starting in the end of June. We are looking for highly curious people that are eager to learn more about the magic world of the Web and Mobile. If you are a newly-graduate, finishing your master's degree or just trying to improve your craft, this is a unique opportunity to learn side by side with our amazing team. We don't believe anyone should work for free, so this will be a remunerated apprenticeship.

    By Roberto MachadoOn June 17, 2014
  120. Random (and probably useless) Rubyisms

    Having written and read a lot of Ruby code, I occasionally come across some not-so-well-known features. Or even just a tiny detail that, as useless as it may be, I still find interesting.

    By Miguel PalhasOn May 29, 2014
  121. Dipping the toes in Phonegap

    Like most developers I know, there is a list of things I want to learn and experiment with. Mobile development was on the top of that list until last December, when we took a day off for an internal hackathon and some of us got to work on a mobile app.

    By Gabriel PoçaOn May 21, 2014
  122. We are hiring!

    Join our talented team at sunny Braga, Portugal.

    By Roberto MachadoOn May 14, 2014
  123. The keyword arguments falacy

    Ruby 2.0 came with a feature that I love, that's the keyword arguments. They allow you to make your objects interface clearer.

    By Luis FerreiraOn April 14, 2014
  124. Better pushes with git

    If you've been working with Git for a while you've probably realised that it has a LOT of configs. There's even one which allows you to change the way your branches are pushed to a remote.

    By Luis FerreiraOn April 8, 2014
  125. Our CSS/Sass Project Architecture and Styleguide

    It's an almost impossible task to find a way to write consistent, future-proof and robust CSS. Our process has, until recently, consisted of appending CSS rules in an ad hoc manner to some sort of file organization.

    By Bruno AzevedoOn March 31, 2014
  126. Brace Yourselves, RubyConf PT is coming!

    That's right folks, it's official.

    By Roberto MachadoOn March 28, 2014
  127. Open Source Fridays - 2nd Edition

    On the second edition of the Open Source Fridays, here's what we've done.

    By Luis FerreiraOn March 24, 2014
  128. Open Source Fridays

    Last friday we started a new project at Group Buddies, the Open Source Fridays. This means that for four hours every Friday, every one at GB will be contributing to OSS at some level. It can be by writing documentation, opening pull requests on other people's projects or creating our own.

    By Luis FerreiraOn March 20, 2014
  129. Designer's secret sauce

    When you ask someone about the main ingredient of a good design, most people will probably roam around concepts such as usability, functionality, cleanliness or the one that get’s thrown around most often: simplicity.

    By João FerreiraOn February 11, 2014
  130. Design solutions, not decorations

    By João FerreiraOn January 17, 2014
  131. Why Provisioning Matters

    If you were ever in charge of configuring a web server, you must know how painful it can be sometimes. During your first learning days, you probably spent an awful lot of time SSH'ing into the server, trying out something you just found online. It probably ended up being a slow trial-and-error process before you got your first server up and running.

    By Miguel PalhasOn January 14, 2014
  132. Using calc() for responsive CSS

    If you implement responsive design then CSS's calc() is a must-know feature.

    By Gabriel PoçaOn January 7, 2014
  133. A Toast To 2013! Welcome 2014

    This was the first year of Group Buddies. One whole year creating web applications, dealing with clients, teaching people and having loads of fun while doing it. At the time of making a balance, I have to say: this was a great year for us.

    By Roberto MachadoOn January 3, 2014
  134. Clean Architecture

    One of the hottest topics of the moment in the rails community is application design or architecture. There is an obsession (a good one, I think) with clean, decoupled code, that is easy to maintain and extend. This has led to things such as presenters, service objects, to some extent even rails concerns.

    By Luis FerreiraOn December 27, 2013
  135. Let's Talk Tools

    Every once in a while people ask us what tools do we use as part of our processes. Not long ago, at a workshop I conducted on about Web Project Management, I was able to introduce a couple of free tools that we consider indispensable. So I came up with the idea of listing all the amazing software that we use every day, hoping it can be helpful to anyone reading this.

    By Roberto MachadoOn December 3, 2013
  136. SOLID Principles in Ruby

    If you've been in the development business for a while, especially if working with OO languages, you've probably heard of design principles. That's why, as with many things in the software area, you should use these principles as guidelines, not rules.

    By Luis FerreiraOn November 29, 2013
  137. Teaching Kids How to Code

    CoderDojo Minho, of which I'm a proud founder, is back this week, in parallel with CodeWeek, an EU initiative to promote coding for everyone.

    By Roberto MachadoOn November 26, 2013
  138. Dependency Injection

    Imagine you have a class which gets XML data, parses it and then stores the parsed data on a database.

    By Luis FerreiraOn November 22, 2013
  139. Talking about design @ Explorers Festival

    It was nearly 9:30 on the cold morning of November 7th, when Zamith and I departed from Braga, to attend the Explorers Festival in Lisbon, where we were expected to give a talk each, at 2PM.

    By João FerreiraOn November 19, 2013
  140. When an experiment blows your mind

    Creators School's first edition took place in September and I have to say, it was mind-blowing.

    By Roberto MachadoOn October 29, 2013
  141. Sandi Metz rules at Group Buddies

    A lot has been said in the past months, especially in the Ruby community, about the "Sandi Metz rules for developers", so the purpose of this article is not as much to explain them as it is to show how we apply them here, at Group Buddies.

    By Luis FerreiraOn October 25, 2013
  142. Open your HTML/CSS to Developers

    Have you ever showed your HTML/CSS to a Developer?

    By João FerreiraOn October 23, 2013
  143. Portuguese Ruby Community Renaissance

    Last Friday, me and some folks from the Minho Ruby Brigade went to the very first Coimbra.rb meetup.

    By Roberto MachadoOn October 21, 2013
  144. This is Our Story

    We have been wanting to bring our blog to life for a while now, and that day has finally come. Let me take this opportunity to tell you how we got to where we are today.

    By Roberto MachadoOn October 14, 2013