Hey! I'm Aleksandr.

I'm a front-end developer and writer with an eye for design. I love learning new things and sharing my discoveries with others. You can read my blog, learn more about me, or get in touch.

Recent Blog Posts

  1. Awaiting Multiple Promises with Promise.all

    Learn how to use JavaScript's Promise.all method to await multiple async operations, like batch uploads.

  2. Cleaner Type Predicates with Derived Types

    Type predicates are a powerful TypeScript feature that allows you to narrow down an abstract type to a more concrete type. Together with derived types, they can greatly reduce repetition in your code.

  3. Respecting Font Size Preferences: Rems and 62.5% Base Font Size

    Setting your base font size to 62.5% allows you to think in pixels but use rems to respect users' font size preferences.

  4. Don't Use a Fixed Line Height

    In typography, the ideal line height for text depends on a variety of factors, including font size, line length, and font family.

  5. 11ty: The Good, the Bad, and the... Possum?

    A review of 11ty, an extensible static site generator written in Node that supports a variety of template languages.

  1. How to Format Code on Save in VS Code with ESlint

    Improve your developer experience by setting up ESLint and configuring VS Code to format code on save for JavaScript, TypeScript, and React projects.

  2. CRLF vs. LF: Normalizing Line Endings in Git

    Line endings can differ from one OS to another. Learn the history behind CRLF and LF line endings and how to enforce line endings in git.

  3. Why I Don't Like Tailwind CSS

    On paper, Tailwind CSS sounds like a great idea. In reality, it suffers from the same problems that it tries to solve.

  4. SVG Tutorial: How to Code SVG Icons by Hand

    Learn the basics of SVGs so you can code your own SVG icons by hand, without always relying on icon libraries.

  5. Be Careful with Async Functions that Return Booleans

    Suppose an async function returns a boolean. What happens if you check the return value without awaiting it?

  6. Creating Aspect Ratios in CSS

    Learn how to give any element an aspect ratio in CSS, using the modern aspect-ratio property or a trick with percentage padding.

  7. Hesitation Is Defeat

    After a one-year hiatius from Sekiro, I returned to face the final boss—and, through painful persistence, triumphed.

  8. How to Sort Ant Design Tables in React (the Easy Way)

    The Ant Design UI library lets you sort tables by one or more columns, using a sorter prop. But the syntax can get quite repetitive. Let's fix that!

  9. Goodbye, GitHub Pages—Hello, Netlify

    GitHub Pages is a great option for hosting your site... until it isn't. Here's why I moved to Netlify.

  10. Creating a Responsive Navbar Without Bootstrap

    Want to create a navbar that works on mobile and desktop? Ditch the frameworks—in this tutorial, we'll create a responsive navbar using HTML, CSS, and JS.

  11. How to Add a Copy-to-Clipboard Button to Jekyll

    Add a copy-to-clipboard button to your Jekyll blog with a simple include and a few lines of JavaScript.

  12. Getting Started with Jekyll and GitHub Pages: Your First Website

    Jekyll is a static site generator that makes it easy for you to create a website. Learn how to get started with Jekyll and GitHub Pages.

  13. Finite State Machine (FSM) Tutorial: Implementing an FSM in C++

    Finite state machines (FSMs) are used in lots of different situations to model complex entity state. In this finite state machine tutorial, I'll help you understand the FSM design pattern by building one from the ground up for a simple use case.

Software Projects

I have experience with a wide range of stacks and enjoy working on projects that have a strong UI/UX component. Below are just some of my software projects that I'm most proud of.

  • Scribe

    Text editor developed with the Qt framework. Features standard file operations, syntax highlighting, brace autocomplete, and auto-indentation.

    • c++
    • qt5
    • qtcreator
  • CattleLog

    A mobile app that provides easy access to cattle records for the VanWagner Cattle farm.

    • android
    • kotlin
    • sql
  • U.S. Gun Crimes

    A database-driven web app that lets you explore U.S. gun crimes for 2013–2018.

    • react
    • typescript
    • express
    • sql
  • This Website!

    My online resume and blog, created with 11ty, Sass, and JavaScript. Built with a mobile-first responsive design.

    • 11ty
    • sass
    • javascript
  • Embody

    Embody is a top-down dungeon crawler inspired by the Binding of Isaac where you can possess slain enemies to assume their model, stats, and weapon.

    • c#
    • unity
    • game-ai
  • Want to see more of my work?

    Check out my other repos:

    GitHub