# Lucas Bittencourt > Lucas Bittencourt is a software engineer focused on AI who builds AI and agent systems for production, works as an AI Forward Deployed Engineer and builds tools such as AI Summarizer. This website is the portfolio and technical blog of Lucas Bittencourt, in English and Brazilian Portuguese. ## About - [Home](https://lucasbittencourt.dev): who Lucas Bittencourt is and the latest blog posts - [GitHub](https://github.com/lucasgdb): open source repositories - [LinkedIn](https://linkedin.com/in/lucas-bittencourt): professional profile and experience ## Blog posts - [Self-hosting at home: ports, firewall, reverse proxy and DNS](https://lucasbittencourt.dev/blog/self-hosting-at-home): A step-by-step guide to publishing an app from your own computer on the internet with your domain: public and private IPs, NAT, CGNAT, ports, firewall, Docker Compose, Nginx as a reverse proxy, DNS and HTTPS with Let's Encrypt, with commands for Linux, macOS and Windows and how to test each step. - [Big-O notation](https://lucasbittencourt.dev/blog/big-o-notation): Learn what Big-O notation is, the difference between time and space complexity, the most common complexities from O(1) to O(n!), and how to analyze the complexity of your own code. - [NodeJS event loop](https://lucasbittencourt.dev/blog/nodejs-event-loop): Learn how Node.js really works: the main thread, the libuv thread pool, the event loop phases, microtasks, how to avoid blocking the event loop, and when to use worker_threads, child_process, cluster or containers to scale. - [Modern JavaScript](https://lucasbittencourt.dev/blog/modern-javascript): Learn modern JavaScript concepts like optional chaining, rest - spread - nullish coalescing operators, immutable array methods, Object.groupBy, Set methods, iterator helpers, structuredClone and much more. - [React Performance](https://lucasbittencourt.dev/blog/react-performance): Learn how React renders, memoization, referential equality, the React Compiler, memo - useMemo - useCallback, why the key property matters, avoiding derived states and effects, transitions, code splitting and Server Components. ## Services - [Services](https://lucasbittencourt.dev/services): AI Forward Deployed Engineer services, hourly or per project ([em português](https://lucasbittencourt.dev/pt-br/services)) ## Tools - [AI Summarizer](https://lucasbittencourt.dev/tool/ai-summarizer): Summarizes, with AI, only the part of a page or PDF you pick, reads it aloud or turns it into a video, and fills in forms. [Privacy policy](https://lucasbittencourt.dev/tool/ai-summarizer/privacy) - [Video Downloader](https://lucasbittencourt.dev/tool/video-downloader): Finds the videos on a page, files and HLS or DASH streams, and downloads them inside the browser. [Privacy policy](https://lucasbittencourt.dev/tool/video-downloader/privacy) · [EULA](https://lucasbittencourt.dev/tool/video-downloader/eula) ## MCP server - [MCP server](https://lucasbittencourt.dev/mcp): how to connect an AI assistant to this website with the Model Context Protocol, and the AI concepts behind it - MCP endpoint (Streamable HTTP, read-only, no authentication): https://lucasbittencourt.dev/api/mcp. Tools accept a `language` argument ("en" or "pt-BR"). ## Português (Brasil) The same content translated to Brazilian Portuguese: - [Início](https://lucasbittencourt.dev/pt-br): quem é Lucas Bittencourt - [Servidor MCP](https://lucasbittencourt.dev/pt-br/mcp) - [Ferramentas](https://lucasbittencourt.dev/pt-br/tools) - [Servidor em casa: portas, firewall, proxy reverso e DNS](https://lucasbittencourt.dev/pt-br/blog/self-hosting-at-home): Guia passo a passo para publicar uma aplicação do seu computador na internet com o seu domínio: IP público e privado, NAT, CGNAT, portas, firewall, Docker Compose, Nginx como proxy reverso, DNS e HTTPS com Let's Encrypt, com comandos para Linux, macOS e Windows e como testar cada etapa. - [Notação Big-O](https://lucasbittencourt.dev/pt-br/blog/big-o-notation): Entenda o que é a notação Big-O, a diferença entre complexidade de tempo e de espaço, as complexidades mais comuns de O(1) a O(n!) e como analisar a complexidade do seu próprio código. - [Event loop do NodeJS](https://lucasbittencourt.dev/pt-br/blog/nodejs-event-loop): Entenda como o Node.js funciona de verdade: a main thread, o thread pool da libuv, as fases do event loop, microtasks, como evitar bloquear o event loop e quando usar worker_threads, child_process, cluster ou containers para escalar. - [JavaScript moderno](https://lucasbittencourt.dev/pt-br/blog/modern-javascript): Aprenda conceitos de JavaScript moderno como optional chaining, operadores rest - spread - nullish coalescing, métodos imutáveis de array, Object.groupBy, métodos de Set, iterator helpers, structuredClone e muito mais. - [Performance no React](https://lucasbittencourt.dev/pt-br/blog/react-performance): Entenda como o React renderiza, memoização, igualdade referencial, o React Compiler, memo - useMemo - useCallback, por que a propriedade key importa, como evitar estados derivados e effects, transitions, code splitting e Server Components. ## Optional - [Blog index](https://lucasbittencourt.dev/blog): all posts ([em português](https://lucasbittencourt.dev/pt-br/blog)) - [RSS feed](https://lucasbittencourt.dev/rss) ([em português](https://lucasbittencourt.dev/pt-br/rss)) - [Website source code](https://github.com/lucasgdb/lucasbittencourt.dev)