Overnumerousness

Earlier today I was making some notes about an application I am considering pitching to the day job, outlining how the tool would work, who would use it, what they would use it for, and how the existing gigabytes of data that already exists would be adapted to work within this system with minimal effort on anyone's part. The concept is less than a week old, making it far too immature to discuss with colleagues in any real sense, but there is certainly a need for this sort of mechanism within the organization given that our current process is complicated, expensive, and prone to error. As I read through the rough notes to confirm nothing was missed, a familiar thought crossed my mind: why not make this for the world instead?

Every few months it seems another idea pops into my head for something that could help a specific group of people at the day job. Most of these concepts never leave their notebook. A small number receive further refinements or feature ideas over a period of months without moving into the demo or exploratory phase. Others still seem to be made into a functional proof of concept before a single note is written. A lot of the problems that colleagues face within the organization are hardly unique so, by creating something that might enjoy a wider audience, more people might benefit from whatever tool I create.

At least, that's how it's supposed to work in theory.

In reality the vast majority of the things that I've created for the world have seen very little uptake because I'm quite poor at marketing and I invest the vast majority of my day in spending time with family and accomplishing tasks for the day job. The hour or so I have outside of these two areas is generally spent reading articles online or writing new ones here. So by planning a tool that can be used within the day job, there's not just a better possibility that the project will succeed, but a better possibility that time can be dedicated to make it a success.

Time is a key ingredient for most forms of success. Unfortunately, it's forever in short supply and there is generally an endless of active priorities that require attention. Looking at the number of different software solutions that have not yet been — or never will be — pitched at the day job, there is an overnumerousness of tasks that can be optimized and automated away to allow people to focus on the more important elements of their work. Most of these can be generalized and created for a wider audience but, given the struggle I have finding consistent blocks of time for 10C development, would anything ever get completed to such a degree that it might get shipped?

There is a lot that can be shared with the world but, given the complexities of some of the problems at the day job, it would make far more sense to focus on the captive audience I know than the general population I don't.

I Win

The title of this post has been rattling around inside my head for half a day despite the fact it’s incredibly egotistical and not at all accurate, but defines exactly how I feel about how the trip to Tokyo turned out. Today was an opportunity to talk about the "secret project" with a number of managers who have a vested interest in seeing a solution to a problem that teachers across the country have been rather vocal about. Two had seen it, the others had not. Less than 20-minutes into the presentation, everyone was in agreement that the demo was good enough to deploy to a couple of locations as a trial. Before doing such a thing, though, executive approval was required. The CEO agreed to a quick demo and discussion on the topic, gave it the green light, then said “I’m glad we have something to tell the schools now. Every visit has involved complaints about the ‘global system’”. My objectives were accomplished. Teachers at several dozen schools will soon have one less thing to fight with during the day. People were generally smiling and happy. The day could not have gotten better.

Yet the title of this post irks me.

Working in a company of 10,000+ people means that a good number of them are going to be incredibly intelligent, incredibly perceptive, and incredibly competent. I’ve been fortunate enough to work with many people who fit two or more of these attributes and I look forward to working with them in a productive manner in the future, too. The great thing about working with intelligent, perceptive, and competent people is that there is always something to learn along the way. By assuming an attitude of “I win!”, I risk coming across as yet another over-confident, egotistical bastard who doesn’t appreciate the efforts of others, which is most certainly not always the case1. What I presented today may help the organization in the long run, but it was done in a manner that will likely rub some senior-level colleagues the wrong way. While no rules were officially broken, generally when there are questions or concerns involving someone else's project, it's uncouth to reverse-engineer what they've done, hammer their system to extract content, then present it elsewhere in a manner that is completely off the radar.

Justifications aside, I simply cannot shake the feeling that I’ve “won”. What it is exactly that I’ve won? This remains to be seen. Perhaps I've won some new enemies. It could be that I've won the question of whether the day job should be hiring out our jobs to vendors rather than making use of the many people within the company who can accomplish various goals, be they related to software or otherwise. Maybe it's something else entirely.

What I want, more than anything else the day job can offer, is to hear colleagues say that they want to use my software. I understand this is a very captive market and that there is generally nowhere else to go. That said, by creating something that people want to use, I feel an incredible sense of accomplishment; I have taken complaints, worries, and concerns and built something else. Is it better? It's not for me to judge.

The system I’m trying to replace at the day job was created by intelligent people. The problem comes down to expectations. People at the school level in Japan expect software that will present them with a dearth of features designed to help them do their job. The system from HQ in the US checks all the boxes, but fails in execution. Mine excels at execution while failing with a simplified set features. Rather than thinking "I won", it might make more sense to look at this as a group effort and proclaim that we won.


  1. I will not lie and say that I always appreciate the efforts of others, as this is demonstrably false. There are several examples on this website alone where I say that someone has gone out of their way to help, and I’ve snubbed them for whatever reason. I am not at all a good person, nor can I pretend to be one. What I can do, however, is aim to be better today than I was yesterday. I honestly try to do this, though there are many, many examples of when I’ve failed.

Five Things (I Sometimes Miss)

While walking the puppy this evening a familiar scent wafted through the cool air. It was of tobacco mixed with a hint of red wine, like the Colt's Old Port cigars my father would occasionally smoke … and that I would occasionally enjoy as a young adult. Almost 20 years have passed since the last time I lit a cigarette, and it reminded me of a couple of things that I occasionally miss while half-a-world away from where I grew up and learned what not to do.

Du Maurier Cigarettes

A number of friends of mine smoked while in high school. I have no idea how they managed to get their regular supply of cigarettes, nor do I know why the school turned a blind eye to the practice1. While in school, I didn't take up the habit as I just didn't have the money for it. The fact that my mother smoked a pack a day2 at the time meant that there was always a ready supply of second-hand smoke in the house, so there really wasn't much point to putting lit leaves into my mouth aside from the sense of community. After finishing school, when I started earning regular money, I decided to pick up the habit for a while. The reasoning remains a mystery, but I distinctly remember enjoying having a cigarette in my mouth while drawing, sketching, and coding. Whether it was lit or not did not matter.

When I smoked cigarettes, it was always Du Maurier. This is what my friends enjoyed, and it was different from what any of my parents smoked, which meant it was good enough for me. Some time around the summer of 1999, shortly after I moved into my own apartment, I was at a convenience store and saw packs of Colt's Old Port cigars behind the counter. When I was much younger, my father would enjoy a pack of these perhaps once a year. So, being a walking self-contradiction, I picked up a pack and finished them over a gluttonous weekend of video games and pizza.

As the year 2000 quickly approached and my passion for computers continued to heat up, I had to make a decision: I could either quit smoking to afford the seemingly constant upgrade cycle, or I could make do with the Pentium 150MHz system I had and maintain the habit.

I quit smoking cold turkey and haven't touched a tobacco product (to my knowledge) ever since.

That said, I do sometimes miss the friends and and fun I had while smoking.

Tim Horton's Donuts

Tim Horton's Donuts

While I understand that Tim Horton's in Canada no longer bakes its own donuts, and the recipes have changed, and the chain is a shell of its former self, I'll admit that I do wish I could step back in time to enjoy a Boston Creme donut with a large coffee, double-cream, and not-a-hint of sugar. The Mr. Donuts in Japan is far, far superior than anything I had while in Canada, but sometimes there's nothing like a too-sweet donut with a mediocre cup of coffee alongside.

Cool Ranch Doritos

These things are not at all good for you, but I would have at least two big bags every weekend. One on Saturday, and one on Sunday, usually while playing Age of Empires in the basement apartment I rented in Hamilton between 1999 and 2001. Life was simpler back then, and my stomach was much stronger. Only twice have I had a small bag of these Doritos since I turned 30 and both times resulted in gross disappointment. Perhaps it's because I wasn't playing Age of Empires at the time ….

The Internet Before AOL Joined

Believe it or not, there was a time in the Internet's short life when the worst thing you could do is refer to Star Trek as "Star Track"3, or say that The Phantom Menace wasn't all that bad. Now it seems that the worst thing anyone can do on the Internet is to use the thing as there will always be some group to take offence and demand blood. This isn't the fault of AOL nor the initial wave of fresh-faced web surfers who were unaware of the existing nascent cultures on IRC and Usenet, but this was when I started to notice a rising tide of anger and frustration posted to the web4.

Time

Of all the things I miss, time is at the top of the list for things that I miss the most. When we're young and in school, regardless of how much homework we might have from our "mean teachers", there was always several hours of free time every day. In university this number increased by two. After university, even with a day job, a young person could have as many as 15 hours of free time per day and require only six hours of sleep. That works out to about 65 hours of free time per week5 for a young person to do whatever the heck they want. When I was in my early 20s, this meant upgrading my computer, playing games, goofing around on IRC, and coding unpopular applications for the Palm handheld.

As a 40 year old person with a family, mortgage, bills, and a demanding job, "free time" is something of a luxury. Still, I do what I can to make the time for the things that I enjoy, be it blogging, working on 10C, or freelance jobs that occasionally come through. 65 hours a week is all but impossible at this point, but I can enjoy the 10 or so that are regularly set aside.


  1. So long as people did not smoke on school grounds, of course. Smoking was mostly frowned upon but teachers can only guide teenagers, not control them.

  2. This works out to 25 cigarettes.

  3. Like Tim Cook recently did. Not cool, Mr. Cook. Not cool.

  4. Yes, there were always angry and frustrated geeks online. The more niche the topic, the angrier the crowd. That seemed to be the rule. The ratio is what seemed to change after September of 1993.

  5. 9 hours Monday to Friday is 45 hours, plus 10 on Saturday and 10 on Sunday. That makes 65.

Chicago

In the early 1990s, back when I was barely a teen and "had it all figured out", my future was all about art and architecture. This was before I was introduced to the possibilities of computer programming and before I even considered Asia as a place of residence1. Rarely would I go more than a day without sitting down to draw an elaborate building, be it a skyscraper or a school that didn't rely so much on "hosable construction"2. Occasionally I would even venture to create something residential in the form of a nice house with enough space for people to enjoy. Much of this was inspired by the creative drawings I would see when visiting grandparents, but there was also a book that I distinctly being captivated by that sat ever so prominently in the art room in high school. The book was on the architecture of Chicago with an emphasis on skyscrapers.

Sunrise in Chicago

The building that really captured my attention still stands today at 333 West Wacker Drive and is probably best known for its distinctive curved front. It was designed by Kohn Pedersen Fox, completed in 1983, and even made an appearance in Ferris Bueller's Day Off. Even at 36 years of age, the building looks fresh and modern. Very few buildings can say the same after just a quarter century.

It was from photos and sketches of this building that I would create drawings of my own. Structures of glass and steel would rise into the sky like an organic crystal rather than the giant cereal boxes that so many tall buildings resemble. Roads would curve around the gardens at the base of these structures or, in one instance, dive underground so as not to disturb the peaceful atmosphere surrounding the modern-day obelisk. Most of these pencilled renderings were completely untenable, given that they would insist that the city revolved around them rather than integrate in a symbiotic manner as good architecture demands. These were the sketches of a child, of course.

Studying architecture provided a lot of incentive to learn how to apply mathematics to solve problems3, study how people interact with the world, and appreciate the balance between the beautifully chaotic world of nature and the tranquil order that can be brought about through human ingenuity and creativity. These are skills that I still rely on today despite working in a completely different field.

Sometimes I wonder how my life would have evolved had I not learned how to program computers. Would I have become an architect? Would I have designed yachts? Would I have just taken the easy route and gotten a job somewhere and stuck to it? There will always be questions of "what if" but, at the end of the day, I can't imagine doing anything else. I make a living working from home with just a handful of tools. Despite my occasional rages and bursts of expletive-laced hyperbole, life has been pretty good these past two years.


  1. I'm sure I've shared this before, but I distinctly remember telling my mother and step father at the age of 14 that I would one day live in Japan … to which they laughed and said "yeah, right".

  2. "Hosable construction" is generally how I refer to any building that can have any mishap, be it spilt milk or the slaughter of 1000 cows, cleaned up with nothing more than a hose connected to a water supply. A lot of the schools I attended were concrete affairs. Durable, cool in the summer, but very institutional.

  3. This is something that the schools are not particularly good at explaining. Sure, kids can learn about the quadratic equation, but when should we apply this sort of equation? This is what kids need to know.

Ending the Week on a High

Generally at the end of every week I take a few moments to fill out some of the paperwork required by the day job, reporting on what it is I did every day for the week and marking the hours worked. This information is used by my managers as a means to understand where my time is generally spent and by payroll to cut a cheque at the end of the month. While recording the information for the last five days1, I was struck by how much was actually accomplished. It's no secret that I've been rather bored with some of the stuff at the day job these last few months, but this week was quite different. The standard fare of bug fixes, database management, Excel work, and SQL tasks were all in attendance, but so was actual development. Creative muscles were flexed, useful knowledge was acquired, and something new was created.

The last time I felt this good on a Friday night was … I don't know when, but it really needs to happen more often.

The act of sustained creation is something that I enjoy a great deal. We create, change, and destroy things in short bursts a hundred times a day, but how often can we sit down and focus on something for an entire week or more and see that the fruits of that labour are good2? Back in 2016 and 2017, I had the opportunity to work on objectives that were days, weeks, or even months in the making. This was when a new LMS3 was being developed at the day job and incredibly complex problems had to be solved with seemingly simple code.

Many of us enjoy solving problems. Some of us enjoy solving problems with code. For me, I enjoy solving problems with code that encourages people to re-adjust their expectations.


  1. I keep very detailed records of what I do every day in Outlook, which makes it rather easy to report exactly what I did, when, and — if applicable — with who.

  2. By "good", I don't mean "awesome". I mean that the effort resulted in something positive that has brought some marginal amount of order to the chaos of reality.

  3. Lesson Management System, which is a fancy way of saying "a piece of software used in schools".

Pop

Over the last couple of days and perhaps weeks1, I've been working my computers pretty hard to get a number of "high priority" tasks completed on time. As one would expect, this means that machines are running quite hot for most of the day as information is processed, massaged, and organized in the manner it needs to be. One of the nice things about working with computers is that you can tell them what work needs to be done, give them a staggering amount of it, and just let the machine go on its own until everything is complete … or there's an error. Just like people, though, our digital tools do have their limits and I think my MacBook Pro today hit one. While busy processing a bunch of data from a notoriously petulant vendor API, the machine had a very distinct pop! sound, as though something that hit the aluminum body hard. Given that the notebook generally doesn't move and I wasn't typing angrily2, what could have possibly caused the typically silent machine to make a popping noise?

A cursory inspection of the machine revealed no damage. There has been no smoke, nor has any sort of electrical burning smell been noticed. Perhaps I imagined it?

Just in case, I made sure that all my files were saved and that any uncommitted files were pushed up to GItHub. If something were to happen it would be better to have important information saved off the machine so that work can carry on with a different device.

Everything continued to work just fine afterwards and, an hour later, I stood up to have dinner with the family. Shortly after leaving the machine the pop sound happened again. There is nothing else on the desk that could possibly make that sound. Not the printer. Not the 24" monitor. Not my coffee cup. It must be coming from the notebook. It could be an expanding battery, a capacitor that's about to give up, or some other expensive problem that I can neither entertain nor afford right now. However, another cursory glance later, nothing out of the ordinary was found. The notebook is hot on the bottom3, but nothing out of the ordinary. Again, there's no sign of smoke or the distinctive smell of burning circuits. So that the heck might be causing this sound?

There was a time long ago when I would look forward to any excuse to open a computer. That time has long since passed, which is why I'm using a notebook with a  logo for my most important work rather than something else4. I just want the machines to work. Given that I have a rather important series of meetings and demos to deliver in Tokyo on Monday, a dead notebook is not something I'd like to contend with. Hopefully the popping sound is just thermal expansion forcing some glue loose or some other trivial matter.


  1. The days are just a blur lately. What separates one from the next? It's hard to tell.

  2. I'll admit that I do sometimes hammer the keys pretty hard when responding to email. When I notice this, the message is generally left as a draft for an hour or two … unless I opt to burn a bridge or five.

  3. I raise the back to improve airflow. The machine gets noticeably hot when sitting flat on the desk.

  4. I still have Lenovos doing important work. They're just in the background rather than under my fingers

Better Than the Alternative

For a little over half an hour yesterday, just about every website that I am responsible for keeping online fell offline. The first indication that there was a problem was a series of messages on Nice.Social. Then I tried a few other 10C-based sites and couldn't load anything reliably. Having seen this a couple of times before, I thought that my ISP had once again changed my static IP assignment1. Testing the theory proved this idea wrong, though, so I tried other remedies. Rebooting the router did not fix the problem. Rebooting the server did not fix the problem. Then I decided to check CloudFlare and saw the very same messages afflicting their site that afflicted mine: 502 Bad Gateway.

Turns out that CloudFlare, a service that I rely on quite a bit, was taken offline by a software update gone bad.

CloudFlare Message

In the first couple of hours after service was restored, when geeks could get back to being angry on forums, a number of people said that they have "had enough of CloudFlare" and will take their business elsewhere. Others lamented that the Internet had become "too brittle" as a result of people being so dependent on a handful of American companies for critical services. Some even said things so absurd that it makes no sense to repeat them, but feel free to explore some of what people on TheRegister had to say.

As a paying customer of CloudFlare, I'll admit that there was quite a bit of frustration when none of my sites — inside or outside my home — or services were responding to web traffic but would handle SSH just fine. That said, "things happen" and systems became unavailable for anywhere between 27 and 50-odd minutes2. My SLAs with clients need to be carried out and, in all, this service outage will cost me about $40 in credits that I'm applying to accounts. Not a huge amount, but not something I would like to hand out daily. Will I be moving off their service to use someone else? Not a chance.

While it's unfortunate that there was frustration and downtime, there's really nothing better or easier that I'm aware of. A number of my APIs have integrations with the CloudFlare API, making it possible to programmatically create, update, and deactivate DNS records, SSL certificates, trigger DDoS protection, and more. More than this, the people at CloudFlare have been pretty open about the problem and work hard to have one of the most reliable systems on the planet. Jumping ship because of an occasional hiccup like this would be premature. If it becomes a monthly or weekly pattern, then I'll be more incentivized to find or create an alternative. Currently this simply isn't the case.

I trust that CloudFlare will learn from the mistake and ensure it doesn't (easily) happen again in the future.


  1. Yes, I know. I've had the same conversation with their tech support on numerous occasions. It still seems to be that every 45 to 60 days I'm given a drastically different IP address.

  2. Based on server access logs here at home as well on Amazon's EC2 instances.

Seeing More Grey

If there is just one thing that I remember about the summer of 2019, it will be the rapid onset of grey hairs. There has always been a handful of non-brown hair peppering the top of my head or eyebrows, but never before has the number of visible grey hairs grown at a noticeable rate. I don't mind the grey hairs, nor do I have any particular feelings towards the occasional strand of white. If anything, these melanin-poor strands add a little bit of character.

Interestingly enough, there's also a lot more grey on Nozomi now that she's well into her 9th year. Every summer she (somehow) manages to shed enough fur to fill a large garbage bag and, after brushing her for nearly half an hour every morning, she's more grey than gold1. Will she one day be completely devoid of her golden fur? Time will tell, but I do hope she maintains her youthful energy for walks, dinner, and hugs regardless the colour of her mane.

Nozomi and I are certainly showing some signs of our age. Fortunately neither of us feel particularly old just yet.


  1. This is an exaggeration, but the silver fur really is noticeable when we're close together … which is most of the day.

Knowing Better

Today was one of those rare days when the stars aligned to allow an incredible amount of work to get done at the day job. Colleagues were busy with their own tasks, managers were focussed on other people, and, for a little over eight hours, I could focus not on the work I should have been doing but the work that needs to be done. While I may fall behind on some of my tasks, I am confident that my efforts last week and this week will save a lot of time, hassle, and money over the coming months because “I know better”.

The quotes are important in that statement. There are literally tens of thousands of people around the globe who I can consider a colleague. There are hundreds of managers as well. To declare that I, an individual employee who spends more time talking to his dog than his boss, can know better than the scores of hard working thinkers across the company can seem a little too hubristic even for me. Sometimes, though, good things can result from the efforts of a single person.

Looking at the recent efforts in context can provide a more complete picture of the dilemma that I’m faced with. Here’s the gist of the situation at the day job:

  • several hundred colleagues across the country are not at all happy with a new piece of software from HQ that they’re forced to use
  • they have organized amongst themselves to write up a list of grievances with the software, ranking them from high to low priority
  • they have explained how they need the software changed to better do their jobs, complete with pictures

First of all, I’m really impressed with the list everyone put together. It provides actionable information that a person can actually use to make something better. Just saying “the software sucks” is not at all productive. Second, the fact that there are diagrams to look at is just outstanding. Could they make the work any easier?

The problem, however, is that senior management is deaf to these issues. They believe the new software tool is both the future and absolutely perfect in its current incarnation. Senior management has never used the software, though, but the middle management that surrounds them is quite happy with the tool despite also not using it in a classroom setting. Having worked in the classroom for almost a decade, I can tell you that bad software can make a great teacher look mediocre, and an uninitiated teacher look far worse. The schools need something better and fast, which is where my little act of disobedience comes in. The company needs someone to listen to the teachers and provide solutions and, as they’re not being responsive enough, I’ve taken it upon myself to provide the solution. This is the correct use of my time, though it may not seem like it at the moment.

A lot of people who have worked for a large organization have likely run into this sort of situation a number of times, where colleagues are dealing with friction and something needs to be done. Given the freedom and flexibility to self-manage, the average employee might have the requisite knowledge or skill set to provide a solution, but management refuses to permit the problem from being solved because of various reasons1. The only way forward is to redirect some time towards the bigger problem and hope the consequences are sufficiently light to warrant the risk. It’s generally easier to beg forgiveness than ask permission. If the solution a person provides is a good one, permission can always be retroactively granted and followed up with a “thank you”.


  1. Some of these reasons may be completely reasonable, too.

Five Things

Over the last few years I've managed to build a number of software tools for the day job, allowing people who work at the school-level to more quickly put the computers away and focus on the students in front of them. Having worked at the schools for nine years, I've had the opportunity to talk to a lot of colleagues and get their input on what it is that software would need to do in order to make their jobs easier. When I was transferred out of the classroom and into IT, I put a lot of this knowledge to good use to create some of the systems that students, instructors, and school staff rely on day in and day out. While I technically no longer write software for the company1, I do end up building a lot of software to help people answer questions, collate information, or otherwise get a job done in a manner more efficient than an Excel sheet can offer.

A couple of months ago some new digital textbooks were rolled out across the company. This is the first official digital textbook system2 from my employer and the response has been … less than ideal. There are over 2,000 teachers across Japan, and the vast majority of them have done nothing but complain about this newer system as it's slow, counter-intuitive, and cares more about flash and pizzaz than the job it needs to perform, which is presenting learning materials that are stored as static HTML files. Not a day goes by where there isn't at least one email waiting for me in the morning from an instructor who has gotten fed up enough with the new system that they invested some of their personal time to find my email and send a message asking me to fix it. Unfortunately, I can't fix it. The project isn't mine and, to make matters worse, I've burned every bridge with the department that was responsible for commissioning the project3. So even if I wanted to try and help by making some changes to the source and sending it up the chain as a pull request in Git, nothing would happen. Also, I'm buried in a number of other high-priority, mission-critical tasks that make it pretty much impossible for me to help.

Which is why I've chosen to simply "cheat". Some time was dedicated on Thursday and Friday to reverse engineer the API4 and I've managed to build a system that can scan the entire textbook library, grab the titles that do not exist in the digital textbook system I created, pull the HTML (and parse it into something that makes sense), and save a bunch of additional metadata to the database so that additional features like "search by grammar point" can exist. This week I'll invest two or three hours a day to getting the UI tweaked so that it looks better on a tablet, which is the primary way instructors use the textbooks, as well as ensuring that page loads are completed in under 0.25 seconds. Given that the new system needs about 12 seconds per page load, teachers will appreciate the speed increase. Hopefully by this coming Friday I can hand off this temporary solution to the right people in Tokyo who will then authorize it for release across the country.

And now it's time for the list part of this article: Five things that education-support software needs to get right.

It needs to be fast

Speed is crucial, and it's always so disappointing to see when software that cost more than my house is slower than poorly-configured WordPress site. Pages should always load in less than 1 second, ideally showing the text before any images or other bandwidth-heavy assets begin downloading. Too many applications try to be "fancy" with their animations showing spinning arrows while assets are loaded in the background. Teachers don't have time for this when they're flipping a page mid-lesson. Load the text and get the heck out of the way.

It needs to be intuitive

When people were trained to use the new digital textbook software, the sessions ran for about 80 minutes. Eighty minutes for 2,000+ teachers is a lot of wasted time and money. Training for my digital materials was not required because the interface operates like a typical Kindle, which most people already knew how to use, even if they've never used a Kindle. Also, my LMS will have links to the exact page an instructor is going to need for their class built into the person's daily schedule. Tapping a button would open the book you needed to the page you needed with the resources and notes you needed in under a second. Changing pages could be done by swiping or tapping the edge of the page. There were no animations at all. Things just changed and got out of the way.

It needs to let a teacher see exactly what a student sees

Instructor books have included student pages for over a hundred years. Teachers rely on this in order to plan better lessons. If a teacher has to guess at what a student is seeing when they open their textbook — or use any other learning material — then the support pages are nothing of the sort.

It cannot have any friction

Far too much software in the workplace contains far too much friction, disincentivizing people from using the tool in the first place. If the software is being designed primarily for use on a tablet, dispense with the dropdown lists unless they're rarely needed or honestly necessary. Arrows to toggle between pages and chapters work far better. If there are audio components in the lesson, show a scrubber bar and the length of the audio. Let people quickly skip ahead or skip back by 5, 10, or 15 seconds to quickly get to the audio segment they seek. Are there page numbers? Show them!

It must be critiqued by the people using it, not managers

The software that I've built for the day job has been critiqued a lot over the years. Sometimes very harshly. Sometimes very justly. The feedback has always been welcome, though, as it means that the person criticizing the tool (hopefully) cares enough about their job to want to do it better. The first version of my digital textbook system had a number of complaints in the first couple of months, and near-daily updates worked through those issues one at a time. This made the system much, much better for everyone5. People can sometimes be incredibly harsh when providing feedback and they can sometimes be incredibly wrong. It's important to listen and, ideally, respond back. Sometimes a harsh critique can be resolved with a little more training and a mental note to revisit a design element later.

Over the last couple of years, I've tried to adhere to these five things when building things for use at schools because it's the efforts of the teachers and students that ensure I receive a salary. If I make their lives harder, then there's no reason for them to keep me around. If I actively work to solve their problems, then everybody wins.

A lot of the software used by teachers and schools is just awful, but it really needn't be.


  1. As a "senior systems administrator", I'm in charge of data. Fortunately, this was made intentionally vague as heck by some senior managers who knew that my move valuable work is generally the stuff I was never asked to do.

  2. Funny story, I built the first digital textbook system for the company as a proof of concept while still teaching lessons back in 2014. In 2015 there were a couple of revisions made to handle some new feature requests like embedded YouTube videos and whatnot but, the demo I built in 2014 is still used today across Japan as part of the Lesson Management System I later developed.

  3. The bridges were burned because I despise office politics and petty betrayals. Far too often they would take work done by me or other colleagues and claim it as their own to senior management or, worse, describe us as an "unhelpful roadblock" because we're not dropping every other task to attend to their whimsical demands.

  4. This revealed a host of actual security concerns, as I've learned that authentication tokens can exist forever so long as they're used once in a 24-hour period. Also, by poking at the API, I've found it possible to get access to areas that my account shouldn't have access to. This "security theatre" can take place because the front end changes the menus and options based on the account permissions. So long as someone doesn't know how to use a RESTful API client, the data is "safe".

  5. It's a shame that HQ in the US has decided to throw 99% of my code away come November for stuff written by external vendors in Chicago, New Delhi, and Sydney. Alas, I'm still employed, so shouldn't complain too much.