Joao Fernandes

Personal Information

Date of Birth
November 15, 1988
Portuguese, with US work permit
Living in
San Francisco Bay Area

Work Experience



Senior Academy Engineer

As a Senior Academy Engineer at OutSystems R&D, I led, implemented, and shipped technical writing projects with minimal supervision. For this, I constantly interacted with engineers, product managers, and end-users. I've created:

  • Documentation and samples for 10+ public APIs/SDKs;
  • Scenario-driven documentation for customer-facing IDEs and ALM consoles. This increased page views by 1.5 times, and decreased maintenance costs;
  • Several online training courses for developers with 60+ videos in total. These videos have 500+ unique monthly viewers.

Worked with the development teams to ensure OutSystems Platform requires almost no training or documentation. I reviewed:

  • APIs/SDKs to ensure they're consistent and easy to develop with;
  • UI copy across the whole product: IDEs, management/configuration consoles, and website.

Helped scale internal processes by creating customer-facing documentation for prospects and partners:

  • Created a knowledge base for the support team. This decreased the number of incoming support tickets;
  • Created an evaluation guide for prospects. This helped scale pre-sales and product management processes.

Overall, I helped shape the team's day-to-day processes, long-term roadmap, and hiring process.



Software Engineer Intern

Did my Master's thesis at OutSystems. I explored how to make a complex software product easier for first-time users.
I compared several alternatives, and extended OutSystems Platform IDE embedded tutorials, in order to:

  • Capture learning metrics and adapt the level of assistance provided;
  • Embedded self assessment quizzes in the tutorial.

During the internship I also participated and led several usability tests, that resulted in direct improvements to the product.


Instituto Superior Tecnico


MSc, Multimedia and Intelligent Systems

Finished with 17/20 a MSc in Computer Science, majoring in Multimedia Systems with a minor in Intelligent Systems. In this course I:

  • Did several Human-Centered Design projects;
  • Developed 3 games;
  • Solved a job-shop optimization problem;
  • Read the Mythical Man-Month, so decided to take a course on Project Management. This was a big mistake, since the course was focused on waterfall and other outdated practices;
  • I was also getting curious about managing and scaling teams, so I took a course on Organizational Architecture.
  • University of Madeira


    BSc, Computer Science

    Finished with 14/20 a BSc in Computer Science.

    This was where my interest for usability was born. Sometime after finishing a course on Human-Computer Interaction, I attended a talk by Don Norman. At first the talk seemed superficial, but looking back, it made me buy the Design of Everyday Things. Reading it was like drinking knowledge from a fire hose.

    Talks and Publications

    Write the Docs 2015

    Presented at Write the Docs, Portland. I told the story of how at OutSystems we had stopped trying to document UIs, and started to document tasks. I talked about the impact this had on our processes and culture.
    You can see the talk on my blog.


    Published an article on InfoQ that expands on the Write the Docs talk. The article explains why you should avoid documenting UIs, and what you should do instead.
    You can read the article at InfoQ.

    Writing Samples

    Technical Skills

    Programming Languages

    I'm able to understand C, C++, C#, Java, Javascript, and SQL. I like Python, but have few experience using it.


    • Proficient with HTML and CSS, and enjoy using Markdown for writing documentation;
    • Proficient with SVN and have some experience using Git;
    • Some experience with UNIX tools like Find, Grep, and Sed;
    • Experience with documentation generators like Doxygen, Javadocs, and Robohelp.


    Listening Reading Speaking Writing
    Portuguese Native Native Native Native
    English Native Native Native Native
    Spanish Independent User Independent User Basic User Basic User

    Soft Skills

    I love working in fast-paced environments, where I have to manage competing priorities. I always try to understand how I can contribute to the company's ultimate goal, and I constantly challenge the status quo.

    I have some management and leadership experience. I changed my team's day-to-day processes, helped define the long-term roadmap, and defined the hiring interview process. I also held regular one-on-ones with the team's new hires.

    Other Interests

    What really excites me is learning something new every day. For that reason, I'm always reading books, doing online courses, or learning more about existing competitors.

    My favorite reads of 2015 were: Zero to one, The hard thing about hard things, Mindset, Making users awesome, Crucial conversations, and Search inside yourself.