Project Nayuki


About

Introduction – me and the site

Hello there! I’m a software developer who goes by the name Nayuki. My background is that I live in Toronto, Canada and studied computer science at the University of Toronto. Besides computer programming, I am also interested in mathematics, photography, and anime. As you look around, you’ll notice they are the main topics on my website.

I maintain this website to share stuff that is meaningful to me, including:

  • Explaining my understanding of how things work: [0], [1], [2]
  • Showcasing my work for its quality or uniqueness: [3], [4]
  • Talking about one of my personal circumstances: [5]

Elsewhere on the web

Most of the work I produced is hosted on this website (Project Nayuki), but some work is hosted elsewhere. Here is a list of the other sites, with the most important ones at the top:

Site Link Topic
GitHub https://github.com/nayuki Coding projects
GitLab https://gitlab.com/Nayuki Coding projects subset backup
Stack Overflow https://stackoverflow.com/users/839689/nayuki Programming Q&A
Stack Exchange https://stackexchange.com/users/446566/nayuki Various Q&A
Reddit https://www.reddit.com/user/nayuki/ Controversial opinions
Hacker News https://news.ycombinator.com/user?id=nayuki Controversial opinions
MyAnimeList https://myanimelist.net/animelist/nayukim Anime series watched
Flickr https://www.flickr.com/photos/nayukim/ Leisure photography
Goodreads https://www.goodreads.com/user/show/4970007-nayuki Books read
Wikipedia (English) https://en.wikipedia.org/wiki/Special:Contributions/Nayuki Pages copyedited
YouTube https://www.youtube.com/user/ProjectNayuki Technical videos
SoundCloud https://soundcloud.com/project-nayuki Transcribed music

Donate by Bitcoin

Bitcoin Bitcoin

If you found my writing or code to be helpful, please consider making a donation to show your support.

Contact Nayuki by email

Please select your reason and read the details.

Need help for free?

Don’t ask me to debug your code.

I’m not interested in your personal project. Helping you would not improve the quality of my work and would not generate content that helps other people. I’ve other things to do with my time.

Don’t ask me to explain ideas to you.

If you don’t understand my work, read it again carefully. Modify, experiment with, and debug the code. Look for other resources online that cover the same topics. Put in the effort to learn, as I will not spoon-feed you.

Don’t ask me to recommend learning resources.

Many people want to increase their skills in math and programming. Education is a tricky subject, and not every approach (idea, explanation, textbook, etc.) works for every student. There’s a lot of trial and error involved, and learning requires a massive time investment. I am not your personal tutor, and I don’t keep a list of recommended materials/books/articles/guides. Please browse Google and YouTube to find endless educational content. In the end, you are responsible for teaching yourself.

Don’t ask me to publish new stuff.

I reserve the right to choose which topics to work on and when to do it. This website is an unpaid hobby of mine, and I am not beholden to requests from random Internet strangers. If you want to see new content, either pay me or make it yourself.

Where you can get free help:

Please use the public forums/services above.

In summary

I put out my articles free of charge. I don’t answer personal requests for free.

I prefer to write for the public audience because hundreds of people can benefit from my words over the months and years. I dislike handling very narrow and specific questions/explanations/problems in a private one-on-one context. My time and attention are better spent on other things like working on upcoming articles.

No marketing or commercial solicitations

I will not accept commercial requests such as:

  • Polls, surveys, market research
  • Guest posting, link exchange
  • Promoting your company, service, or product
  • Job recruitment
  • Selling advertising space on my pages
  • Search engine optimization (SEO), digital marketing

Here are examples of poor feedback.

Greetings, acknowledgements

If you think my published content is useful and helpful, I would be happy to hear that! At minimum, please mention the title(s) or URL(s) of what you’re talking about (because I published hundreds of items and have trouble reading minds). Also, talk a bit about your background – e.g. who you are, what you do, and any work you published (website, blog, code, video, etc.).

Copyright, licensing

Read my policy in the bottom section of this page, follow the instructions, then contact me.

Found a mistake

I aim to publish reference-quality works on my website. I welcome all typo and factual corrections, no matter how small the change is, and no matter how long ago I last updated the piece.

If you spot an error in my writing, math formulas, or program code, please report it to me without hesitation. Mention the URL and include text quotes so that I can locate the problem among my hundreds of pages.

If the issue is not completely obvious, please provide justifications and details as necessary. If you are not sure whether your suggestion is correct, mention that and forgiveness will be granted.

You published related work

I read a lot of stuff to expand my knowledge. If you worked on a topic that overlaps with my stuff, I might be interested in hearing about it!

Generally speaking, I want to see work that goes above and beyond what I did. (This means I rarely want to see introductory/beginner-level material.) It can be a completely independent work or something built upon mine. It can be something having the same overall ideas as me but differing on the details, or it could be something using a totally different approach.

You can share a link to the relevant work or send file attachments. Don’t require me to read/review/comment on it (but I might do so if I’m interested).

Paid development, advice

You can see based on my web articles and Git repositories, the topics that I have expertise in and the quality of the work I produce.

I might be available for hire on tasks such as: Customizing my existing programs for your needs, building new applications within my domain of competence, adding functionality to your codebase, debugging code/designs, writing English text about technical topics.

As my time is limited, please be specific about your demands – e.g. specifications, constraints, deliverables, success criteria. I may refuse projects that are vague or underspecified, because I would not feel justified to charge money for a result that you might be unhappy with.

Other reasons, notes

If you wish to contact me for a reason not listed in the major categories above, please be respectful and understand that I may refuse your request. Generally speaking, you should talk about things relevant to my interests, and avoid asking for help on your problems. You should show that you put effort into your ideas, by providing prose/code as necessary.

Examples of decent feedback and poor feedback from readers.