Blog

Progress, Technology, and AI

AI has really become such a point of contention in my career field that I find I have a lot to write about it. This is an interesting time. There has not been such a useful and divisive technology as LLMs for quite some time. These moments reveal a lot about technology, human nature, and history.

First, let me pontificate a little about the current state of the software development field. In January of 2020, almost everyone worked in an office full-time. A small number of my colleagues at that time were fully remote, often because their spouse or significant other had to relocate, and they worked out a deal with the employer to keep their job and perform it remotely. This was not a standard arrangement. Then in March of 2020, almost 100% of us became full-time remote workers whether we liked it or not. I won't bother elaborating because we all lived through this experience.

Prior to the Covid-19 crisis, software developers had enjoyed a decade or longer of unchecked prosperity, as demand for new services like mobile applications, cloud computing, and software-as-a-service products just kept growing. Economic factors contributed to this growth as well. The Federal Reserve in the United States and similar banking institutions around the world injected liquidity into the economic system to recover from a huge economic collapse that occurred in 2008 and 2009. In a similar move, the governments of the world did a similar thing in 2020 hoping for a quick recovery from the Covid-19 economic crisis. This led to a big boom in hiring and investment in 2021. In that year, we saw cryptocurrencies and Web 3 become household names. The job market for software developers became extremely red-hot, along with the housing market. Everyone assumed that this trend would continue forever. But after a year or two or economic frenzy, everything came crashing to a halt as the governments of the world reversed course and began pulling liquidity out of the system to stop run away inflation.

Humans are great at getting used to things being the way they are, and then assuming, because a situation has persisted for a few years or months, it should naturally continue forever. We prefer stability over constant change. But nature and history shows us that constant change is the norm. If you look back even a few decades, work and the types of jobs available were completely different. Nobody in 1970 was a software developer, unless you count the researchers and academics who were busy inventing the field. The United States and much of the world have experienced long periods of economic decline or stagnation, even within the last few decades.

As software development became easier, and the benefits of software became apparent, corporations started investing heavily in software and business computer systems. Many of these initial attempts to computerize the business operations of corporations were clumsy and awkward. But nevertheless, it was obvious there was a huge benefit to adopting the new technology, even if nobody knew how to make the transition. There were mistakes along the way but now, a few decades later, we all enjoy the benefits, often so much that we take them for granted as natural.

I think we are in a similar state with LLMs. There is an obvious business value in replacing customer service requests with automation for trivial requests or moving data around in a spreadsheet or summarizing the notes from a meeting. These are tedious problems that don't require much human ingenuity. Just as we no longer want to do tedious jobs like basket-weaving, knitting, and stitching by hand, I doubt that most people really want to be writing spreadsheets and answering customer service calls.

Eliminating tedious, dangerous, or difficult work has long been part of what was called Progress. Progress was understood to be both a scientific and technological progress but also the progression of society from a lower to higher form. Standards of living would improve as the technology changes slowly trickled into our lives. The radio and television brought entertainment and news to the masses. Medical advances prolonged life and cured disease. Then sometime around the mid twnentieth century we became cynical about Progress with a capital-P. Pessimism became pervasive. There are lots of proximal cause of the mallaise, the two most obvious being the horrors of World War II and the Cold War nuclear standoff. From a certain perspective, it feels quaint or naive to think that new technology is improving life and making the world better.

The latest wave of Progess is AI. I am one of those weird people that is not pessimistic about Progress, though I do think that caution is warranted. We should not, for example, let everyone run a nuclear reactor in their backyard, even if we had the technology to do so.

What I have noticed is that people who are pessimistic about Progress seem to have fixated on one moment in history as the mythological Golden Age, during which culture, technology, and social structures were perfected. If we could just go back to that time, so they claim, all the problems we face today would go away in an instant. For the Amish this is the 1690s. For arch-conservatives in the United States it might be the 1950s, a decade nestled comfortably between the horrific 1940s and the tumultuous 1960s.

For many people I talk to who are in their 20s or 30s in the United States, this Golden Age seems to be the 1990s in America, a period after the Cold War was resolved but before the events of 9/11 plunged the country into war. During the '90s, internet technology transformed society with its always-on information access, but the internet at the time was fairly simple and not heavily commercialized. Supposedly this is when all the problems with housing affordability, job insecurity, war, political crisis, and rampant technological upheaval did not yet exist.

For even younger people in their early or mid-20s, perhaps, this Golden Age might be the first decade of the 2000s.

It is curious to note that the Golden Age is always a time period that we, ourselves, do not remember living through. Arch-conservatives didn't really live in the 1950s and have no idea what it was really like. Young Americans do not really remember the 1990s. Instead, they idolize a mythologized version of this period that cherry-picks the best of the decade. It is a form of escapism. If only the clock could be turned back to the mythical Golden Age, all our problems would vanish.

Why should we logically choose to live in 1997 instead of 2007 or 1957? We can pick individual elements of each time period and say "this was better then" but we cannot actually cherry-pick from history and we do not have the means to evaluate one time period against another. What reason do we have to believe that life in 1957 would be better for us than life in 2025? If we can question this then what makes us so confident that the future will not be better than the past?

Demanding that Progress slow down or grind to a halt because of one particular negative effect of new technology feels foolish in this light. In this respect, those who insist that LLMs be banned or heavily restricted in order to protect workers or prevent a supposed threat to democracy are no different from the Amish or the arch-conservatives. They just have a different Golden Age in mind. But it can't be 2018 forever.


The AI Question

The crisis of the day is AI. Depending on who you ask, AI is either going to destroy the world through an ecological disaster, make everyone unemployed, take over the military, become racist, or some combination thereof. This is mostly a Western phenomenon. From what I've been told, companies in China do not seem to have this apocalyptic view of AI, and see it in a more neutral manner. AI seems like it is becoming the new political subject about which everyone has an extreme opinion. With political figures commenting on this technology day by day, one must keep up with the gossip about what so-and-so said about AI or risk having a wrong opinion.

Even the pope warned about the effects of AI. It is important to note that the Vatican also was opposed to trains.

I do not think that LLMs will have the same effect on society as trains did. But it is possible. An LLM is really just a piece of software. And software has been reducing the need for workers since before I was born. We take this for granted. All software has been slowly "destroying jobs" by making something that was difficult easier to accomplish.

For example, today I had to get some photos printed from the neighborhood Walgreens. It took all of 5 minutes for my order to be processed, because there is almost nothing for the clerk running the photo area to do. They simply connect a printer to the web portal that Walgreens uses and print the photos on the paper. Fifty or sixty years ago, this operation would have required a dark room and specialized skills, not to mention skill from the photographer in storing and transporting the film. The level of knowledge and experience needed to produce a photo is much lower now, which means that this is a job now done by one person with almost no training. As a consequence, it is not a high paying job. In fact, I would guess the clerk at this Walgreens was earning minimum wage or close to it.

When you are browsing your hundreds of photos on your iPhone or on Instagram, you probably do not think about how many photographers and photo printers you are putting out of work.

Another example we take for granted is bank tellers. It has been literally years since I had to go to a physical bank branch. But for many decades, this was in fact the only way to do banking, and many bank tellers and other bank employees were required to help people deposit checks, provide account balances, and so on. I am old enough to remember when I had to stand in line at the bank to deposit a paycheck in my checking account. There was no other way to accomplish this at the time.

I do not think anyone would give up their banking smart phone application in favor of driving across town to a building to deposit your paycheck or get some spending money or even just check your account balance. Today we have a smart phone app in our pocket that can perform all these functions instantly. Yet this application is "destroying" thousands of jobs by doing what was once done by bank tellers in a cheaper and more convenient way that almost everyone prefers.

I could go on but I think the point is clear enough. None of us would give up these conveniences provided by technology.

But we have a recency bias when it comes to technology. We are afraid of LLMs "destroying" jobs because they are new and we have not yet seen what they can do once they are matured, On the other hand, we are all quite comfortable with smart phones at this point and so mobile applications do not strike the same fear for us.

I am skeptical that AI / LLMs will end up being any different than other technological innovations such as digital photos, smart phones, and trains. All technologies have an impact on society, but it is very easy to panic during the initial transformation. The only consistent observation I can make is that people who resist the technology often end up being forced to embrace it in the end. The Vatican has a Twitter account, for example. I am personally investing in learning LLMs and discovering how they can be incorporated into software development to increase our productivity and efficiency rather than engaging in panic.


A review of Ente Photos

For the last six months I have been evaluating Ente Photos as a solution for photo backup. I think I've had enough experience with the platform now to offer a full review.

Ente promises to deliver a Google Photos or Apple Photos-esque cloud application for managing and storing your photos and videos. The benefit of Ente over these other options is that Ente offers end-to-end encryption. This means simply that Ente employees cannot view your photos. If there happened to be a data breach at Ente, your data would remain secure, because the company does not store the private keys used to decrypt your photos. The platform is designed to offer superior privacy and security compared to Google, Apple, or Dropbox.

I like the convenience of cloud photo storage. I have been using Apple Photos for a few years. I like this platform from a usability perspective. Before that, I tried to keep my photos completely offline but found that the pain of dealing with data transfers from my iPhone was too much. I also hate doing tedious data backup work. A cloud storage backup that runs automatically on my phone is very convenient. I also like the usability of having any photo from my collection available at hand from my mobile device.

What I do not like is the privacy compromise that we must make to use Google or Apple services for photo backups. Both companies actively scan customer photos to train machine learning models and to ostensibly look for illegal content. I don't like this. Apple and Google are very likely scanning the photos to train facial recognition models. This may be used to enhance the photo browser application features, but it also can be used to identify faces in other platforms or the data can be packaged and sold. I do not like my data being used for such purposes. I do think both Apple and Google have excellent security postures, but I prefer a more private approach.

This is a bit of rant, but I think it is important to consider who can access our photos, including profile photos. I do not like having my face publicly searchable online or on any platform where it can be viewed by a stranger or pulled into a database. As AI models improve, there will come a time when it is trivial to generate convincing fake images or videos that appear like a real person, but are competely computer generated fake content. Already this technology is being used to run scams. It will only get worse over the coming years. Rather than wait for law enforcement to catch up to the criminals, I prefer to preemptively keep my personal data inaccesible to anyone that I do not explicitly share it with.

Overview of Features

Ente Photos has an Electron-based desktop application for Mac OS (and presumably Windows) and Linux. This is great for my use case. It also has mobile apps for both iOS and Android. I've tested everything but the Windows app and can confirm that the app works as promised.

The downside with many end-to-end encrypted systems is that from a user's perspective accessing the data can be slow since the client application needs to decrypt the data from the server. This is demanding on the CPU, which translates into battery being drained and sometimes the device becoming hot. With Ente Photos, I have not had too many problems with this. There is a bit of a delay but it is not significant. I think it may be a problem if you are running an older device, however.

Ente has a photo scanning ML technology that promises to provide for facial recognition models without violating customer privacy. You can enable this in the Ente application interface by navigating to "Machine learning" and enabling the feature. It takes a while to run initially as their servers build the indexes needed to train the models. Ente claims this is operation is done privately.

I have not yet used the sharing function but that is another important feature. Ente Photos offers a way to share your photos selectively so that family members can access them. I haven't had occasion to do this yet but will try it out once I have a good use case.

Onboarding Problems

I encountered a problem when trying to transition my full photo and video collection from Apple Photos to Ente Photos. The problem is that Ente's sync feature functions by this process: a) download file from iCloud, b) encrypt file, c) upload encrypted file to Ente's cloud storage. This process is very, very slow for large files such as longer videos, and it uses a lot of CPU and disk storage. My poor little MacBook Air could barely keep up. Unfortunately, the performance was so bad that the process would effectively never complete on my Macbook Air (M1)..

I contacted Ente about this problem. They recommended manually downloading the large files and manually uploading them to the Ente Photos application. This worked but was a laborious and slow process.

The onboarding process is definitely the low point of the experience.

The rest of the features of Ente Photos work great. The facial recognition is not quite as good as Apple Photos but I don't rely on it that much. It mostly does what I need it to do, which is to serve as a user-friendly cloud photo storage app with browing capabilities.

Surprising Integration

I started onboarding my data from an iPhone device, but I am now switching to a Pixel 9a running Graphene OS, which I'll write about at another time. What has surprised me is that once I got Ente Photos setup on my Graphene OS device, the Ente Photos app works as the photo gallery app on Android! This means you can set your wallpaper photos directly from Ente. It's a suprising and wonderful integration.

Overall

On the whole I am pretty happy with Ente Photos. I paid for a whole year which I like to do to encourage E2EE products, and it seems like the company is growing and actively investing in new features. They rolled out a "light mode" recently to improve the UI integration with desktop and mobile OSes.

Overall, I think that Ente Photos is a great solution if you want an experience like Apple Photos or Google Photos but you don't want to compromise on privacy.


Smart phone designers are confused about what they are designing

I am about to receive my new Pixel 9a device. I carefully think about my purchases before I make them. I have spent probably a total of 45 minutes at Best Buy playing with the Pixel 9a before committing to this purchase. While I am pretty happy with the device and I think it is a good deal for a new device with seven years of security updates, I have noticed some odd things about smart phone design in recent years.

For one thing, phones are simply getting too big. There is really no functional reason to have a phone with a larger than 6 inch screen. The smallest iPad model is currently 8.3 inches. There are currently zero options available to buy a new phone that is smaller than 6 inches. You might think that cheaper devices would have smaller screens, but this is not true. The low end Android models I looked at are actually slightly larger, wih the Moto G clocking in at an absurd 6.7 inches. Every year, phones get slightly larger. I remember a time when the trend in cell phones was that they were getting progressively smaller. This was parodied on Saturday Night Live. The ideal size of a smart phone is about 4 inches, in my opinion. This makes the device easy to use with one hand and easy to fit into a pocket.

Second, I've noticed there is a focus on providing extremely bright 120 hz screens. As someone who spends hours a day looking at screens, I assure you that the human eye can barely discern the difference between 60 hz and 120 hz. Higher refresh rate screens make no difference unless you are playing high-end video games where the refresh rate actually impacts the reaction time in a game, and even then, it really only matters for competitive gamers, which are a small minority of gamers.

The brightness of the screen is also advertised as a selling point. I do not recall ever finding myself unable to see my phone's screen because it was not bright enough. Whatever the regular amount of brightness has been for the last decade has been good enough for me. What are you doing with your phone that you need it to be extraordinarily bright?

I have to ask myself, what are these device owners designing for? What kind of use cases are they studying when they come up with these features?

I do not think they are thinking of the smart phone device as a communication device anymore. Instead, they are trying to cram the features more appropriate for a gaming PC into a small portable device that is somehow expected to fit in someone's pocket.

I cannot decide if I am just out of touch and this is what everyone is doing with their phone now, or if this is just the latest excuse to sell the general public technology that they really do not need.

It seems like the trend is now to try to make smart phones do everything, the way that we used to have our home PCs handle email, word processing, and gaming.

A quest for a digital audio player

I want to write a bit about my journey with music in recent years. First, I should note that I never liked the idea of streaming music. I prefer to own my music and keep the digital files downloaded from the store or ripped from a CD that I purchased. I have been doing this for years. For many years I carried around an iPod or Walkman MP3 player device in my pocket with a quality pair of in-ear headphones. I like this setup because it does not rely on a stable network connection or mobile data. I get very frustrated if I'm going for a hike or working out at the gym and my music suddenly stops playing because my network connection is unstable. The audio quality also is much better with local high-definition files and a good pair of headphones than any streaming service can reliably provide.

Then at some point, I was convinced to try Spotify and stuck with it for a number of years, while still going back and purchasing albums from the bands that I like. I would then keep my MP3 music collection on my MacBook Pro which I managed with iTunes. I thought this was a good combination. Spotify was functionally the same as "internet radio" and my MP3 collection was the equivalent of a CD or vinyl collection. I was happy with ths setup.

Then in 2019, Apple committed a mortal sin against music lovers. The company began replacing its iTunes platform with the Apple Music streaming service. In order to encourage adoption of Apple Music, Apple offered several months of the service for free. One day, I decided to try it out as an alternative to Spotify. Apple Music was already installed on my laptop, and was suspiciously un-uninstallable. I agreed to the terms to try out Apple Music on the free trial plan. The Apple Music service then without my prompting took the MP3 collection from my hard drive and deleted the files, "replacing" them with cloud versions of the same tracks. There was no option to undo this. My files were permanently deleted by Apple. Thankfully I had a backup. This told me that I would need to move away from Apple's ecosystem and manage my music files with some other software, unless I wanted to be strong-armed into using their streaming service. At about the same time, Apple discontinued the iPod line, so I no longer had any reason to do business with Apple when it came to music. I downloaded VLC on my Mac and began using it for managing my music collection. As much as I wished to uninstall Apple Music, I was not allowed to -- Apple made it a required app for every user of Mac OS.

I then became very cautious of streaming services and especially suspicious of Apple. Apple's music model was clearly changing from selling quality computers to technology enthusiasts to instead selling monthly subscriptions to a suite of cloud services. Apple's computers and phones are now just thin clients for the cloud services. This may be a good model for driving revenue but it is a user-hostile practice. No longer are Apple's customers expected to store and manage their own data. Their data would instead live in a cloud service managed by Apple. Other companies of course were choosing a similar business model.

In early 2020, I purchased the Sony Walkman NW-A55. This remains my primary music player today. It is an excellent player that is snappy and has no bloat. It simply functions as a music player, as it is intended to. The NW-A55 plays FLAC and high def MP3s and it has a lot of excellent EQ options to give great depth to the sound. However, all good things must come to an end, and my aging NW-A55 began to have issues after several years of heavy use. The headphone jack stopped connecting and the screen is now partially broken.

This led me to a search of a new player in the last year. I originally planned to replace the NW-A55 with the next device in this series from Sony, but unfortunately, that device is the NW-A306 which is known to have issues with the volume control. Specifically, Sony has added an unremoveable volume limit for devices sold in the US and Canada. The only workaround to this is to purchase a device from Japan and pay additional fees to have it imported. I don't want to do this. I have decided to instead purchase another NW-A55 from eBay from a seller in the US.

Before making this decision, I also evaluated another option for my music player, which was the Hiby M300. This is the device recommended by audiophiles as an "entry level" device. The sound quality was quite good once I found the right combination of player and EQ settings. However, I found that it had intolerably slow SD card access speed. The NW-A55 takes a long time to boot up, but there is no delay reading from the SD card once it is booted. The Hiby device took 8-10 seconds to start playing a new album. The audio quality was good but I cannot tolerate such a delay given how I use my device. I am also not thrilled about the idea of running Android on a small music player.

So back to the NW-A55 I go. I will try to keep the second device working for as long as possible, since it is now an endangered species. The NW-A55 offers everything I want in a player. I would buy one of the newer Sony device except for this problem with the volume control. I do not like that Sony aribtrarily enforces a volume limit and this makes me concerned there will be other limitations put on the device.

I like my devices to be simple and completely under my control. I do not like the manufacturer making decision on my behalf about how to use my device.


My tools

The following tools are what I use for most of my daily computing. I make no claim to keep this list completely up to date.

I prefer to use multi-platform tools. I switch between Linux and MacOS. I also distrust services, and prefer to manage files vs. having a service that I have to connect to, when this is possible. In general, I try to balance between: minimalism (owning fewer things and consuming less); digital minimalism (avoiding distractions and user-hostile designs); privacy/security; and freedom (as in "libre").


Why I left Cloudflare

I am self-taught in security. So I felt very fortunate to have the security team at Cloudflare reach out to me in late 2020. I interviewed in November and December 2020, and accepted the offer the following January.

In many ways, this was my dream job. I was managing a system that was processing a huge volume of data for one of the largest cloud services in the world and where uptime really mattered. It was a great engineering challenge. I inherited a system built for much smaller volume, and had to quickly plot a course to scaling it up. I was working 10-12 hours a day most days, and managing 24/7 on-call by myself (in fact, I *created* the on-call rotation and most of the monitoring). It was invigorating but tough. Management knew we needed more staff, so the plan was to eventually hire a larger team with the timeline around late 2021 and into 2022. The company was at that time also talking about re-opening the office and doing a "return to office" mandate, which I was personally looking forward to.

Unfortunately, as the economic environment changed, this created pressure on many companies, especially tech firms, to cut costs. So the hiring budget we were promised never really materialized. Budget for US-based roles dried up. However, we had someone transfer from another part of the company who was thankfully in my area so we were able to work in the office together. We were also able to hire two engineers in Europe to work remotely. We had a strong team and this was enough to do preliminary work on the project and maintenance on the existing system, but not a full sized team. Our manager expected more budget for hiring to open up, but it never did.

A series of leadership changes followed. In summer of 2023, the group was "reorganized" and all the teams that were building software within the security org were reassigned to different roles in the company. All active project work was cancelled, and my manager was let go.

Cloudflare insists that the company does not do layoffs and has never fired engineers for non-performance related reasons. This is false. This was basically a layoff event for my team. The entire management structure was let go, except for the individual contributors. ICs were kept on staff but expected to continue supporting their previous team's initiatives. The transition plan was not well executed, if it was considered at all. The ICs on the security team were transferred to other teams, but for a month we had no idea what team we would end up on, and no manager to report to.

When the dust of the "reorg" settled, I found myself juggling projects for two different, unrelated teams. One was my new assignment, the other was my previous team, which now lacked a full-time manager. This was a very significant increase in responsibilities. Because of the contracting job market, I didn't feel I had any choice but to accept this situation, and personal circumstances made it an unusually bad time for me to lose income. I also had some hope that I would get to move on to my new team assignment, because I liked working at Cloudflare, and I didn't want to leave.

I was and remained in good standing with the company, but I was given an impossible assignment. After six months I was still working on-call for two different teams, on-boarding to a new project, and also being assigned last-minute work on my old project, which was now cut down to only two engineers, including myself. A series of stressful events led to me working even more hours, with no hope of the situation improving.

I was not sleeping, and I felt my health declining. My life outside work was seriously affected. I tried to keep a professional demeanor and positive attitude and to complete the assignments I was given. I often found myself thinking, "what is the plan here?" Management reassured me that change was coming, but after six months, and after talking it over with family and friends, I decided that this was an unsustainable situation, and it was not likely to change anytime soon. I resigned in January 2024.

I was with the company for almost three years. The promises when I first joined were never fulfilled. There was no locally based team for me to work with. My project was dead and all the work that had been done for it would be deleted. The office remained 95% empty most days. Instead of taking on a role in a growing engineering team, my job became a solitary 24/7 on-call support role. I was also not allowed to move to a new project so a transfer was out of the question. I was working to onboard to my new team assignment, but I was still being pulled off to do hours of unplanned work for my previous team, yet I was still going to be evaluated based on my contributions to my new assignment, which I couldn't even focus on. It was all very confusing, frustrating, and made me question my entire career path.

It was time to let go, and seek another path.

I am grateful for the experience. I'm professionally better off for my time at the company and I still think Cloudflare is an incredible company. The decisions by a few executives does not make me think less of the products and services the company offers. This very website is hosted on Cloudflare. I use Cloudflare every day to secure my own home network, run my personal website, and manage my domains. I plan to use Cloudflare for many future projects that I build. I have huge respect for my former colleagues. I am still interested in security, and I hope that I can find my way back to working on security projects in the future.