ÂO

  • Engenheiro de softwareBrasilOttawa

    Ângelo Ocanã

    Engenheiro de software na Shopify, em Ottawa. Aprendo e construo para a web desde 2007, e ainda tento aprender algo novo todo dia. Gosto de fazer coisas complicadas parecerem simples para quem usa.

  • Blocos, borboleta e o clube
  • Primeira competição de powerlifting
  • Construindo minha mesa de jogos
  • Mais um dia de sol na praia congelada! ❄️🌅☀️🏊‍♂️
  • Pôr do sol no lago
  • nadando na neve + anjo na neve ❄️🏊‍♂️🥶👼🌨️
  • crawl + borboleta = 50m 🏊‍♂️🥶 -12°c, sensação de -19°, vento de 30km/h. Hoje foi difícil, quase desisti de ir 😅
  • 1 ano atras :D já estou quase recuperado depois da pandemia :/
  • Primeira marcenaria no estilo japonês, sem parafusos
  • -16°C espantou a maioria, mas 4 corajosos apareceram pro mergulho hoje 🥶🧊💪🦵🏊‍♂️
  • Primeira vez escalando, foi divertido 🤩, mas dolorido 😅
  • churrasco o ano todo! hamburguer as 7h a -19° 🍔🥶
  • O que eu faço? Eu amo borboleta 😭🥶🧊🏊‍♂️
  • 🔝
  • Um anjo na neve pra refrescar 😇 e um nado depois de mais de 1 hora tirando neve
  • Recuperando a resistência de novo 🙏 estava muito frio hoje🥶 -18c, rajadas de vento de 24km/h, mas o sol e o dia estavam lindos 😍
  • 🧗🔝💪
  • Não acredito q fiz essa mesa de jogos! Comecei a um mês atrás, deu muito trabalho mas valeu muito a pena! Muito contente com o resultado :D
  • Frio 🥶❄️
  • 🙏 #altitudegymkanata
  • 🔥🔥🔥
  • dia lindo pra ir à praia 🏖️😍🥶❄️
  • Ainda longe da meta de 10 reps em 2025, mas feliz com o progresso, comecei o ano com 1 rep 🦵🏋️‍♂️🔥
  • Primeira nevasca da temporada ❤️❄️🌨️ melhor hora pra ir pra academia 😅
  • Frio 🥶❄️
  • Levantamento terra
  • mandioca com coxa na churrasqueira, sera q vai dar bom?
  • gelo pra curar a dor
  • Agachamento livre pesado
  • #ribs #dutchoven #bbq
  • Cortar gelo dá muito trabalho 🥵 ainda bem que deu certo e agora temos um buraco comprido pra nadar ❤️
  • Minha nova academia no Brasil haha
  • #ribs
  • TBT de ontem 😅, primeira vez 3 voltas (150m), minhas costas estavam congeladas e quase não mexiam na última volta
  • Minha nova academia no Brasil haha
  • Tortilhas na churrasqueira
  • 100m 🏊‍♂️🥶
  • Última série do melhor exercício pra peito
  • Linguiças defumando na grelha
  • Esqueci os óculos de natação hj 🤦 Foi muito difícil nadar borboleta 🥶🥶🥶
  • Estou fazendo levantamento terra novamente depois de um bom tempo sem :D
  • Bifes selando no carvão
  • Nadando entre blocos de gelo azuis
  • ah não 🤣
  • shopify summit - Roots, Weezer, Girltalk.
  • Primeiro nado no gelo da temporada com meu amigo lendário Tom 🥶😍🧊🏊‍♂️🩲
  • #basketball #trampoline
  • meditação, cobra e sapo.
  • Primeiro nado no gelo da temporada, piscina de 15m 🥶🏊‍♂️🧊
  • treino de perna 🔥🦵
  • NYC
  • muita gente hoje e eu tive o prazer de ajudar a cortar o gelo 🔪🧊❄️🥶🏊‍♂️
  • Será este o exercício mais difícil de perna? 🦵
  • Cachorro-quente brasileiro 😋🇧🇷🇨🇦
  • Serrei +60 cm, 3 reps de desenvolvimento 😅, borboleta que não deu certo (minha cabeça congelou, comecei a beber água e não conseguia parar 🤦😅)
  • Remada cavalinho 🐎💪🦵🔥
  • shopify summit - Roots, Weezer, Girltalk.
  • melhor piscina do mundo 😅🥶🏊‍♂️
  • Remada curvada old school no meio de um longo treino de costas
  • 🐧🐧🐧 briga no zoológico de Calgary
  • 🧊🥶 a piscina está ficando mais comprida, aumentamos mais hoje, agora tem mais de 8 metros, rumo aos 20~25m 🙏
  • dia de perna 🔥
  • Pôr do sol de Toronto da CN Tower
  • Ah não, o bloco de gelo perfeito quebrou 😭
  • Perna e peito no Brasil
  • Feijoada 😋
  • Borboleta na piscina de gelo
  • devagar se vai ao longe 🔥💪🦵
  • Que fofo 🥹
  • Sem nado hoje
  • feliz ano novo! último treino de perna do ano, testando agachamento pistol no Smith, é muito difícil 🤯🦵💪
  • primeiro churrasco da temporada de neve 🥶🔥🥩❄️
  • Que dia lindo e quente (-1c) pra ir à praia congelada! 🏖️ 🥶❤️🏊‍♂️
  • novo recorde no agachamento 🤯🔥😁🦵
  • Cavalo-marinho entre corais
  • Entrando no lago congelado
  • Minha meta pra esse ano é agachar com 3 anilhas de 20kg de cada lado por 10 reps. Já é maio e ainda estou em 2 reps 😭😅🙏🦵
  • sushi & bacon, isso é crime?
  • Caminhando sobre o lago congelado
  • Remada com barra do chão
  • Anêmonas no aquário
  • Entrando no lago gelado
  • Ketchup, mostarda e picles na pizza de pepperoni da Costco
  • Melhor jeito q eu achei pra treinar trapézio sem sentir dor no pescoço
  • Tubarão-touro deslizando
  • ventando muito hoje 🌬️🥶❄️
  • Fatiando o bife grelhado
  • Agachamento profundo
  • Floresta de algas no aquário
  • -8°, sensação de -15°, vento de 29 km/h, água correndo rápido... o mergulho gelado mais difícil da temporada 🥶🏊‍♂️🧊
  • Acendendo a churrasqueira na neve
  • Remada pesada com halter
  • Peixes tropicais no recife
  • Levantamento terra com blocos de gelo pra poder nadar 🧊💪
  • Novos pesos desbloqueados hoje 🔥
  • Águas-vivas na luz azul
  • mais 3 blocos de gelo tirados hoje, agora a piscina tem mais de 10 metros 🧊❤️💪🏊‍♂️🩲
  • Usando todos os pesos do hotel no leg press 🦵🔥 isso q sou frango, um bodybuilder de verdade só ia fazer aquecimento 😅
  • Arraias deslizando no aquário
  • 4h pra reabrir 70% da piscina de gelo a uns -20°c 🥶🧊🏊‍♂️🌤️
  • semana passada eu falhei, mas hoje 1,5 rep, rumo às 10 reps em 2025 🙏🦵🔥
  • Tubarão nadando por cima
  • Nadando entre placas de gelo
  • primeira vez com 5 anilhas, mas ainda não estou pronto 😅 quem sabe na próxima 🙏
  • Águas-vivas à deriva
  • boliche 🎳
  • Remada unilateral
  • Primeiro dia de escorregar na neve nesse inverno 😍🥶
  • Andando de moto no brasil depois de 2 anos, eu não esqueci como pilota :D
  • Cadeira extensora
  • #ribs #airfryer
  • 🐒🐒🐒 zoológico de Calgary
  • ponte, a mais difícil de todas. Socorro! Não consigo levantar depois disso 😅⚰️
  • Peixes no aquário
A seguirtrack2.fit
  • Projetos pessoais · track2.fit

    Treine pesado. Registre fácil.

    Um app de treino que eu desenho e construo de ponta a ponta, no iPhone, Apple Watch, iPad e na web, sempre sincronizado.

    Abrir o track2.fit Como construímos · em breve

    O site do track2.fit: Train hard. Log easy.
    track2.fit no iPhone: a semana, um treino em andamento, histórico e medidas do corpo
    Registrando uma série de supino no Apple Watch
  • track2.fit no iPhone: a semana, um treino em andamento, histórico e medidas do corpo

    Ele já sabe o que vem depois.

    Sugere o próximo treino, preenche pesos e repetições e registra séries inteiras a partir de uma frase.

  • Registrando uma série de supino no Apple Watch

    Registre a série pelo pulso.

    Timer de descanso, batimentos e recordes, sem pegar o celular entre as séries.

  • Histórico de treinos com mapa de calor e divisão por músculo no iPad

    O quadro completo.

    Histórico, medidas do corpo e recordes, organizados no iPad.

  • O site do track2.fit: Train hard. Log easy.

    E na web.

    Os mesmos treinos em qualquer navegador, sempre sincronizados.

  • Offline primeiro.

    Cada aparelho guarda a própria cópia e sincroniza quando pode: do relógio para o celular, do celular para a nuvem, da nuvem para o resto.

  • TRACK2.FITAndroidem breve

    Android e Wear OS.

    A caminho. Grátis e sem anúncios.

A seguirJump Over Jump
  • Projetos pessoais · Jump Over Jump

    Faça o seu próximo salto.

    Como damas, mas ninguém é capturado. Pule qualquer peça, encadeie saltos e leve as oito para casa, em qualquer navegador.

    Programado à mão em 2014. Refeito com IA em 2026.

    Jogar Como construímos · em breve

    1. InicianteUm começo tranquilo
    2. 2014Meu primeiro bot, programado à mão
    3. ClássicoPreservado de uma versão antiga
    4. EspecialistaPlaneja várias jogadas à frente
    5. MestrePensa mais fundo, até 3 segundos
    6. NeuralPura intuição · 5,8 mi de parâmetros

    Seis bots, do tranquilo ao Neural.

    Um iniciante, os dois bots das minhas versões programadas à mão, bots de busca que planejam jogadas à frente, e o Neural: ele olha o tabuleiro uma vez, não busca nada, e mesmo assim venceu o Mestre em 19 de 24 partidas.

  • Link da sala copiado

    Você vs Amigo

    Jogue online com um amigo.

    Abra uma sala privada, mande o link e jogue ao vivo de qualquer celular ou navegador. Sem cadastro, e o servidor confere cada jogada.

  • Tem espaço no topo.

    Três pontos por vitória, um por empate, para pessoas e bots. Ainda é cedo, então poucas vitórias já levam longe.

    • 4 lições
    • 30 idiomas
    • Funciona offline
    • Tabuleiro 3D
    • Claro e escuro

    Aprenda em um minuto.

    Quatro lições curtas ensinam as regras jogando. O tabuleiro é animado em 3D, fala 30 idiomas e funciona offline.

  • Bastidores

    Doze anos de reescritas.

    Toda vez que eu queria aprender uma linguagem, refazia o mesmo joguinho.

    Bots do iniciante a uma rede neural, salas online para jogar com amigos, e o bot original de 2014 ainda esperando a revanche.

  • $ git log --reverse --date=short
    2014-10-25  Init
    2014-10-27  Board
              …
    c_sharp_phaser/JumpOverJump

    2014

    C# + Phaser

    A primeira versão, programada à mão para aprender uma game engine.

  • O tabuleiro de 2016, verde-limão e azul-petróleo

    2016

    TypeScript, Angular 2, Meteor

    Uma só linguagem no cliente e no servidor.

  •   a b c d e f g h
    8 ● ● ● ● ● ● ● ●
    7 · · · · · · · ·
    6 · · · ● · · · ·
    5 · · · · · · · ·
    4 · · ○ · · · · ·
    3 · · · · · · · ·
    2 · · · · · · · ·
    1 ○ ○ · ○ ○ ○ ○ ○
    > c1 → c4

    2017

    TypeScript funcional

    As regras reescritas como funções puras, com uma IA simples e interface no terminal.

  • JumpOverJump/
    ├── bend/   # massively parallel
    ├── c/      # tiny + fast
    ├── typescript/
    ├── c_sharp_angularjs/
    └── c_sharp_phaser/

    2024

    Bend e C

    Código massivamente paralelo, e a engine menor e mais rápida que consegui escrever.

  • Escolhendo um oponente neural na versão de 2026

    2026

    Refeito com IA

    Um oponente neural, salas online para amigos, e o bot de 2014 ainda lá para ser vencido.

A seguirCarreira
  • Carreira · de hoje até o começo

    Onde eu construí coisas.

    7 empresas desde 2008. Role para o lado para ver cada uma.

    1. Shopify2021–Hoje
    2. Kinaxis2018–21
    3. Freelance2007–18
    4. Total On Demand · POL2011–15
    5. Empresário Cobrança2010–11
    6. Media W2010
    7. Upgrade Consultoria2008–10
  • 20182021

    Kinaxis

    Desenvolvedor principal · Ottawa, Canadá

    O que eu construí

    Uma grande aplicação web em TypeScript e React para planejamento de cadeia de suprimentos. Desenhei o monorepo, cacei problemas de performance e vazamentos de memória, e escrevi nossa própria biblioteca de gerenciamento de estado, inspirada em Redux, Reselect e Recoil.

    1. Nossa própria biblioteca de estadoInspirada em Redux, Reselect e Recoil, feita para o tamanho e a velocidade que a aplicação precisava.
    2. Revisões e mentoriaMais de 100 pull requests revisados por mês, e sempre por perto para ajudar o time.
    3. Tech talksPalestras internas frequentes, e trabalho próximo com UX e produto para desenhar novas funcionalidades.
    • TypeScript
    • React
    • Redux
    • RxJS
    • Angular
    • C#
    • .NET MVC
    • Jest
    • Jasmine
    • TestCafe
    • webpack
    • styled-components
    • Sass
    • Ramda
  • Kinaxis · Destaques

    1. 01 Nossa própria biblioteca de estado

      Inspirada em Redux, Reselect e Recoil, feita para o tamanho e a velocidade que a aplicação precisava.

    2. 02 Revisões e mentoria

      Mais de 100 pull requests revisados por mês, e sempre por perto para ajudar o time.

    3. 03 Tech talks

      Palestras internas frequentes, e trabalho próximo com UX e produto para desenhar novas funcionalidades.

  • 20072018

    Freelance

    Desenvolvedor independente

    O que eu construí

    Sistemas e sites para envio de SMS, academias, e-commerce e empresas, em paralelo a todos os empregos. Entre os clientes e projetos: Staffgeist, Hive, Empório Viña Real, APM e o primeiro Jump Over Jump.

    • C#
    • .NET MVC
    • AngularJS
    • TypeScript
    • Node.js
    • SQL Server
  • 20112015

    Total On Demand · POL

    São Paulo, Brasil · a mesma empresa, renomeada

    O que eu construí

    Plataformas de campanhas de incentivo e recompensas para grandes marcas: uma rede social para cada campanha, jogos, metas e resultados, quizzes e galerias de fotos. Depois, a POL, um e-commerce onde as pessoas trocam pontos por produtos de varejistas parceiros. Construí o motor de busca dela com Lucene.

    Para Vivo · Telefônica · BASF · Volkswagen · Sony · L’Oréal · B2W · Magazine Luiza · Walmart · Casas Bahia

    • C#
    • .NET MVC
    • Web API
    • WebForms
    • WCF
    • Entity Framework
    • Lucene
    • RabbitMQ
    • SQL Server
    • PostgreSQL
    • jQuery
    • DDD
    • TDD
  • 20102011

    Empresário Cobrança

    São Paulo, Brasil

    O que eu construí

    Um sistema de negociação de dívidas para pessoas e empresas de todo o Brasil, com cálculos financeiros complexos, geração de boletos e importação de milhões de registros. Também controle de acesso com captura de foto e sistemas internos de RH, financeiro e CRM.

    • C#
    • WCF
    • WPF
    • WebForms
    • Windows Services
    • Ext.NET
    • SQL Server
  • 2010

    Media W

    São Paulo, Brasil

    O que eu construí

    Software de frente de caixa para as lojas Cadê o Nenê, integrado a impressoras fiscais e máquinas de cartão.

    • C#
    • Windows Forms
    • MySQL
  • 20082010

    Upgrade Consultoria

    São Paulo, Brasil

    O que eu construí

    PriManager, um sistema web de gestão de obras para clientes como Eletropaulo e CDHU; um sistema de infraestrutura para as escolas estaduais de São Paulo (FDE); e um ERP e CRM internos.

    • C#
    • .NET
    • Telerik
    • Web Services
    • Flash · ActionScript
    • Google Maps API
    • SQL Server
A seguirPosts
A seguirDiga oi.