Jan Wilmake's Blog

Chat with This Blog

programming

All blog posts tagged with programming

Moving away from my 150k LOC Monorepo

4/1/2024

Details the transition from a 150k LOC monorepo to a decoupled, open-source architecture where each package is its own repository, simplifying distribution and collaboration.

Installing MacOS without an internet connection

1/1/2024

Investigates creating a completely internet-free development environment with large LLMs, exploring privacy, security, and focus benefits while documenting installation challenges and workarounds.

scalable-ideas

1/1/2024

Demonstrates how LLMs enable scalable knowledge work by breaking down complex tasks into API-driven subtasks, using building websites for GitHub repos as a practical example.

Why are systems always so hard to integrate with other systems?

1/1/2024

Analyzes the barriers preventing seamless system integration and proposes solutions like API search engines and GPT normalization to overcome vendor lock-in and integration complexity.

Fly + Bun for browser automation. An unfinished attempt

12/1/2023

Chronicles an attempt to create a scalable browser automation API using Bun and Fly.io, exploring the FLAME pattern and analyzing cost structures for AI-powered web scraping.

Creating a domain control panel

9/8/2023

Documents the creation of an automated domain management system using NameCheap and CloudFlare APIs to streamline the process of turning ideas into working websites.

Running everything from a single server isn't that easy

9/6/2023

Reflects on the challenges and lessons learned from attempting to run frontend, backend, and multi-domain hosting from a single server, ultimately choosing a more pragmatic hybrid approach.

Multi Domain Locale Hack NextJS

9/1/2023

A clever workaround for generating static pages for multiple domains in Next.js by repurposing the locale feature, including a high-performance multi-domain markdown setup.

Resize your layout with a draggable div in React

8/11/2023

A tutorial on creating a draggable horizontal resizer in React for dynamic layouts, inspired by VSCode's resizable panels, implemented as a reusable React hook.

Tailwind Darkmode Issues

8/11/2023

A technical solution for fixing Tailwind CSS dark mode class precedence issues in TypeScript monorepos by using the bang (!) modifier to force proper styling.

Classification tasks with ChatGPT

1/1/2023

Presents a simple yet powerful method for using ChatGPT to perform fast parallel classification tasks, such as determining gender from names with 250ms response times.

Global Search/Replace with Regexes in VSCode

1/1/2023

A practical guide to using regular expressions for global search and replace operations in VSCode, including techniques for matching across newlines and common pitfalls.

E2E Testing ChatGPT AI plugins with using MRKL

1/1/2023

Demonstrates how to create end-to-end tests for ChatGPT AI plugins using the MRKL technology, with practical examples testing a ScrapingBee plugin.

Lessons learned building the second version of FriendTime

7/13/2021

Key product development lessons learned from building FriendTime v2, including the importance of simple validation before adding features, avoiding premature monetization, and the underestimated time cost of final touches.

The Dev Lifecycle

9/28/2020

A reflection on the cyclical pattern of working regular jobs to save money, then quitting to work on side projects until broke, and exploring three potential paths to break free from this cycle.

How to scrape public information from LinkedIn, Facebook and Twitter using Javascript

10/25/2019

A technical guide to web scraping using Puppeteer and JavaScript to extract public information from social media platforms while navigating anti-scraping protections.

Install An Express+MySQL App on a remote server

10/20/2019

A step-by-step guide to deploying an Express and MySQL app on a remote server using Linode or DigitalOcean, including Nginx, Node, MySQL setup, and CloudFlare integration.

Application Loader gone in XCode 11? This is how you upload your app now

10/17/2019

How to upload your iOS app after Apple removed Application Loader in Xcode 11 by using the Transporter app instead.

How to use CloudFlare with Ghost with automatic SSL

5/15/2019

Setting up Ghost CMS with CloudFlare's automatic SSL using flexible encryption mode and proper nginx configuration to avoid redirect loops.

The advantages of open sourcing

5/15/2019

The strategic advantages of open sourcing code including feature separation, attracting developers, community contributions, potential revenue through licensing, and viral growth opportunities.

The solution to the PO Fallacy - How to code more, and plan less

5/1/2019

Overcoming the PO Fallacy by moving todos into the codebase instead of GitHub to reduce context-switching and increase time spent coding versus planning.

My Coding Principles

3/24/2019

A collection of personal coding principles including avoiding premature optimization, keeping things simple, composition over inheritance, and maintaining low learnability.

What is the best way to test new features in your React Native App?

3/19/2019

Comparing seven methods for testing new features in React Native apps, from local testing to Expo channels, beta roles, and Firebase A/B testing.

I just made an app in 26 hours

3/10/2019

How I built Dunbar, a relationship management app, in just 26 hours by leveraging high motivation, Expo, minimal boilerplate, and open source libraries.

Redux Light and Universal endpoints

3/8/2019

Introducing Redux Light, a minimal boilerplate approach to Redux that prioritizes composition over inheritance and faster time to context while maintaining clarity.

Forcing your app users to update the app

2/24/2019

A guide on implementing version control in your mobile app to force users to update when needed, using backend endpoints and update screens with over-the-air or store updates.

How got get your app under control? Remove wildgrow, KISS, monolithize

2/24/2019

How to regain control of a clumsy startup codebase by simplifying development ecosystems, using JavaScript only, vertical scaling, and considering monoliths over microservices.

Migrating to Expo to become more lean and stable

2/24/2019

A step-by-step guide to migrating an existing React Native project to Expo or ExpoKit for more stability, OTA updates, and streamlined development workflow.

Upgrading from Wix Navigation v1 to Wix Navigation v2, or React Navigation v3?

2/13/2019

A comprehensive comparison of Wix Navigation v1, v2, and React Navigation v3, analyzing their problems, solutions, and migration effort for React Native apps.

About scaling horizontally without sharding: How many RPS are possible without sharding? Is this between-step worth it?

1/30/2019

Analyzing the feasibility and bottlenecks of horizontal scaling without sharding using multiple nodes with a single MySQL database and load balancing.

Never let your API go down with a flexible client

1/29/2019

How to prevent API downtime by implementing a flexible client that monitors server CPU load and automatically reduces query frequency during high load periods.

Scaling my Node JS GraphQL Server Vertically to 5k RPS on a single machine

1/29/2019

Achieving 5k+ RPS on a single machine through vertical scaling with CPU-optimized cloud servers, avoiding the complexity of horizontal scaling for early-stage startups.

Seven mistakes I think my software company made building their React Native App

1/16/2019

Seven critical mistakes to avoid when building React Native apps including premature complexity, messy codebases, lack of product-market fit validation, and poor user retention strategies.

Chat-BaaS: Chat Backend as a Service

1/11/2019

A startup idea for Chat Backend as a Service that provides universal chat functionality with open source front-end components and automated scaling for React Native and Node JS apps.

Scaling Horizontally to one million RPS

1/11/2019

A comprehensive geo-scaling plan for horizontally scaling to millions of RPS using automated server splitting, merging, and load balancing based on community sharding.

The new hackers will impersonate the ones you love

1/11/2019

How advancing AI tools for face and voice replication will enable sophisticated impersonation attacks, making verified platforms essential for online security.

Today I open-sourced nearly 10% of my codebase

1/11/2019

Open sourcing React Native libraries including Super Image, Super Actionsheet, and Data Forms to share reusable components with the developer community.

Big reason to use React navigation over Wix navigation

1/10/2019

Why React Navigation's component-based approach is fundamentally better than Wix Navigation's registerComponent method for managing wrapper components and screen mounting.

Why code ownership is a must for agile development

1/5/2019

Exploring why code ownership is essential for agile development and how feature ownership can diminish inefficiencies and bottlenecks in development teams.

Wet code and inline styles

4/2/2018

A controversial take on coding practices advocating for inline styles and WET code over DRY principles to prioritize development speed and reduce abstraction overhead.

My 7 key ways to keep my Code Quality Ultra High

3/13/2018

Seven key principles for maintaining high code quality, balancing concerns like DRY principles, naming conventions, external dependencies, and reducing time-to-context.

React Native App Structure: Fat-, pure-, wrapper- or screen-components?

3/13/2018

An exploration of component organization strategies in React Native, introducing a folder structure based on component types including fat, pure, screen, wrapper, and universal components.

The rise of the Solo Dev Startup — 7 Reasons why writing useful apps on your own becomes moore easy

3/9/2018

An analysis of seven technological and cultural trends making solo app development increasingly viable, from React Native and Apollo GraphQL to open-source libraries and Moore's law.

The most complex app I ever made, made it to both app stores!

3/7/2018

A brief celebration of successfully launching MasterCrimeZ to both iOS App Store and Google Play Store after 4 months of development.

Creating a performant GraphQL Server - node is harder than I thought!

3/6/2018

An exploration of performance optimization strategies for GraphQL servers built with Node.js, covering benchmarking, database pooling, Dataloader, and production deployment techniques.

How to connect your app to a server?

3/6/2018

Technical considerations for connecting React Native apps to servers, covering SSL requirements, CloudFlare configuration, error handling, and connection testing strategies.

Must have Tooling & Programs

3/6/2018

A quick overview of essential development tools and productivity apps for building React Native applications, including VSCode, ESLint, Prettier, RescueTime, and WakaTime.

[Notes of a programmer]: Apollo store updates

3/6/2018

Technical notes on the four methods of updating Apollo's client-side cache, comparing automatic updates, refetchQueries, manual store manipulation, and optimistic responses.

Setting up a GraphQL Backend without GraphCool

3/6/2018

A comprehensive guide to setting up your own GraphQL backend with Node.js, Express, Sequelize, and MySQL, including deployment to a remote server with Nginx and SSL configuration.

Shortcuts Cheatsheet

3/6/2018

A comprehensive cheatsheet of keyboard shortcuts and terminal commands for VSCode, MacOS, React Native Simulator, Chrome DevTools, and common Git workflows.

Should you go web or native?

3/6/2018

A decision framework for choosing between web and native app development, evaluating capabilities, platform preferences, user acquisition, retention strategies, and cost considerations including PWAs versus React Native.

The Expo Edge - why you should choose Expo over bare React Native

3/6/2018

A comprehensive comparison of Expo versus bare React Native and ExpoKit, outlining advantages like build automation and OTA updates, and disadvantages including app size constraints.

The MVP Challenge - From 0 to MVP in 100 days: Using Expo

3/6/2018

A comprehensive guide to building an MVP in 100 days using React Native and Expo, covering coding style decisions, architecture choices, work ethic, and a detailed workflow from setup to launch.

Workflow query creation (React Apollo)

3/6/2018

A step-by-step workflow for creating GraphQL queries in a full-stack React Apollo application, from schema definition to client-side implementation.

The Multiple Personality Coder

2/27/2018

A humorous exploration of different mental modes developers shift between while coding, from debugging to perfecting UI, illustrated through fictional programmer personalities.

Handling time on your server, using different ORM's in node: Sequelize and mysql2. Beware!

2/4/2018

A technical deep-dive into timezone handling issues when using Sequelize vs mysql2 in Node.js, exploring how different ORMs process timestamps differently and cause validation problems.

How I’m going to make 2018 my most impactful year yet — A clear vision, fear-setting, and a crystal clear plan.

1/19/2018

A personal manifesto outlining ambitious 2018 goals, using fear-setting and extreme accountability measures to build two apps while pursuing a vision of working productively in paradise.

Real artists Ship - A look back at 2017.

11/9/2017

A reflective look back at 2017 as a year of learning React Native and JavaScript, documenting the journey from ideas and failed projects to finally achieving productive flow and being ready to ship real products.

About working offline

8/20/2017

An experiment in setting up a complete offline development environment for React Native to enable productive programming during multi-day mountain treks in Bulgaria, demonstrating that remote work doesn't require internet.

What coding teached me about business (and vice versa)

7/4/2017

Six key principles learned from coding that apply to business: structure, logic, efficiency, automation, independence, and transparency.

My view on React Native and why I think it's the future

7/3/2017

A comprehensive guide to React Native covering setup, tooling, libraries, and why it's the future of cross-platform development for web, Android, and iOS.

WordPress versus Ghost - Read this if you're serious about writing

6/15/2017

A comprehensive comparison between WordPress and Ghost CMS from a blogger's perspective, arguing that Ghost's modern Node.js architecture makes it superior for serious writers and journalists despite requiring more technical knowledge.

I feel like a Tesla without wheels

6/14/2017

The journey from WordPress frustrations to learning JavaScript, React Native, and Node.js to bring software ideas to life.

← Back to all posts