Read a number of interesting books this month. People have been recommending me such good books and courses.


Ruby Under a Microscope

It is the lot of a professional to be accountable for errors even though errors are virtually certain.

Your career is your responsibility. It’s not your employer’s reposnsibility to make sure you are marketable. It’s not your employer’s responsibility to send you to conferences, or to buy you books. Woe to the software developer who entrusts his career to his employer.

Of all the unprofessional behaviours that a programmer can indulge in, perhaps the worst of all is saying you are done when you know you aren’t.

Learn how to ask for help. When you are stuck or befuddled, or just can’t wrap your mind around a problem, ask someone for help. It is unprofessional to remain stuck when help is easily accessible.

Professional programmers often suffer from a lack of diversity in the kinds of problems that they solve. Thus professional programmers practice on their own time. It is not your employer’s job to help you keep your skills sharp for you. Practicing is what you do when you aren’t getting paid. You do it so you will be paid, and paid well.

Professionals evaluate the priority of each task, disregarding their personal fears and desires, and execute those tasks in priority order.

Professionals do not make promises that they can’t keep, and they don’t make commitments that they aren’t sure they can meet.


This month, I’ve been playing some physical programming games. It’s really fun, and I think most programmers will find it fun. I feel games like these can help non-programmers get a taste of what programming is like.



  • BlockSpring is pursuing a similar vision as I’m pursuing with BotSquad. Very interesting project. I learned a lot from it, especially with regard to third-party OAuth authentication and managing secrets.
  • There’s also and StackHut.
  • I keep having to re-write parts of BotSquad as I devise new requirements. Polyglot worker support is one of them. Ideally, agents should not be limited to a single language. I’m very fearful of feature bloat, but this makes the project more extensible. There’s also a lot of scalability and resiliency issues.

  • I’ve been thinking a lot about my future career path. Is this the eponymous final year crisis?
  • Worryingly, I’ve noticed that I haven’t touched SheetHub in some time now. There’s an open pull request I need to finish. Some UI elements also needs fixing. I should work on SheetHub before school starts.
  • I should really finish pg_tags so I can dogfood it for an upcoming project. Note to self: need a force_lowercase configuration option.
  • On the flipside, I’m spending more time outdoors and actually enjoying my summer holidays. I forget I tan easily.