The End

Today, my youngest will attend school for the final day. For fifteen years, we have woken them, dressed them, fed them, and helped them get out the door. After today, we are done.

The bittersweet is overwhelming me.

For Sarah, Rachel and April

Twenty five years ago, I was celebrating my 21st birthday with my college roommates. However, I received a call from my dad that abruptly ended the celebration. My cousin and her three young daughters had been murdered by their father; one of them in the arms of her grandmother who was trying to protect her. He had purchased a gun in Seattle and then drove down to Oregon and shot them in their front yard. The oldest had just come home from her first day of kindergarten.

My dad picked me up from my apartment, and we drove down in silence to my great-grandmother’s house. The extended family was gathering to be together and to try and understand what had happened. Twenty five years later and I’m still not sure any of us understand. Can you ever really understand something like that?

Today, an eighteen year old kid murdered twenty-one people in an elementary school, and those memories have flooded back to me. I can remember that night like it was yesterday. As I try to process this horribly tragic event, I am sickened by my emotions. They aren’t the emotions that I should be feeling. I’m not feeling anger; I’m feeling resignation. I’m feeling a disappointment in myself because I cannot muster the outrage that the murder of children should evoke.

I don’t want this to be normal in the world I live in. But I find that anymore I simply feel helpless. I know that deep within I still have intense feelings of anger, but over and over and over and over again that rage runs headlong into the hopelessness. It just hurts too much.

We should be better. But we aren’t.

I’m sorry Sarah, Rachel and April. We keep letting you down.

A Year of Holidays

If you follow Silverpine on any of the major social media platforms (LinkedIn, Twitter, Instagram, Facebook) you may have noticed that our logo tends to change around many of the holidays. For the past year, our amazing art director, Nicole Levin, has been creating mini-masterpieces that help us celebrate many of the holidays that Silverpine employees observe.

There are a couple reasons why we did this. The most obvious one is that it’s fun! It’s been a very rewarding exploration of using our logo in the context of a wide variety of different types of holidays. I’ve had many people internal and external comment about how much they enjoy them. However, we also did it as an exercise and demonstration of the intention of the Silverpine brand.

These holiday logos are a demonstration of the meaning behind the Silverpine brand. I’ve always envisioned it as an amplifier for other brands — Silverpine augments and amplifies, but never gets in the way. This logo exercise is a small attempt to illustrate that concept.

Nicole and I have already discussed adding more holidays to the mix over the next year, and perhaps even tweaking or improving some of the past ones. Have a favorite? Let us know which ones you like! My favorite is definitely the Halloween spider pictured here.

Silverpine – The First Decade

It was 10 years ago this month that Silverpine was founded. Neither Ryan nor I had a plan when we set out. All we knew was that we wanted to build iOS and Android apps for other companies. We had been creating applications for small form factor devices for a long time, and we knew we could use that to help others — the “app revolution” was underway, and we wanted to be a part of it.

In the early days, we took every project that came our way. It was just Ryan and me, and we needed to find a way to pay the bills. Looking back now, it is clear that we had no idea what we were doing, and we were very fortunate to survive. But in some ways it was easier. When I would explain to people what Silverpine was, I would just say “We build apps for other people.” It really was as simple as that. Me. Ryan. Coding away on projects that we had probably vastly underbid. I honestly have no idea how we made it.

But we did make it! And one of the more important things we did during the early years was to develop a few core principles that run through the company today:

  1. We wanted control over our schedules, and we wanted to have the kind of flexibility that neither of us felt we had in our previous jobs. We both had young children, and it was important for us to be able to be present in their lives. In a practical sense, this meant that we were committed to being a remote-only company from day one. After nearly two years of a global pandemic, most people look at that aspect of our company as a positive benefit (and it is!). But before COVID, when I had conversations with potential clients I could often sense in their replies that they doubted we were a “real” company. I don’t know that we ever lost out on any projects because of this, but I felt that it added a level of suspicion to our conversations. Nonetheless, we held fast to our dedication to remote work.
  2. We wanted to work specifically on mobile technology. We didn’t want to just be developers for hire; we wanted to use our expertise in the projects we worked on. Over the past 10 years we have had many different people approach us about building websites, and we almost always turn them down, particularly if there isn’t a mobile component to it. There are thousands of development shops that do web development, and that’s just not who we are. Ryan and I have been developing software for small form factor devices since the early days of the Palm Pilot. We have a deep understanding of the implications and limitations of designing and developing for mobile devices. Silverpine was and is a mobile-first company.
  3. We didn’t want to grow the company unless we absolutely had to. When I left my previous job, I managed around 200 developers across several different sites, and I hated my life. Some days, I would be on the phone from six in the morning until seven at night. With Silverpine, neither Ryan nor I wanted that type of lifestyle. We knew that one of the primary factors influencing our work/life balance would be the size of the company. We have known many different people and companies in the consulting space that have grown quickly, only to burn out and eventually fold. We wanted to avoid putting on wax wings at all costs. I know that some people equate growth with success, and those people will probably never understand the concept of constraining growth as a tenet, but I can honestly say that I haven’t regretted this choice for a second.

Even with these principles as our foundation, we have grown, and we have changed, significantly. The funny thing about building things with your clients is that if you do great work, you end up repeatedly working with them to the point that things become more like a partnership. And the one thing you absolutely need in a partnership is trust. At about the five year mark, we realized that our business started changing — our clients had developed an immense trust in us. As a result, we started taking on more and more of the breadth of work in our projects, including the strategy, scoping, and the UX/UI work. Without realizing it, we had pivoted to become an agency rather than a “dev shop”.

As we continued to evolve into an agency, we began to help our clients at a much deeper, more meaningful level. While we were still building great apps, we now found ourselves consulting on strategy and designing the user interfaces that we would be building. This is the point where we were able to truly showcase and highlight our understanding of user experiences on small screen devices.

It’s also the point where we had to confront growth at a much more significant scale — instead of just being a company of developers, we now had to become a company of developers, project managers, designers, QA, etc. We had to evolve to be able to take on all phases of a project from conception all the way to production. This forced us to do some difficult soul-searching. At the end of the day, we had no choice but to bring on more people, and I’m incredibly glad that we did! Silverpine now has some of the most wonderful folks that I’ve ever had the pleasure of working with. Across all of our disciplines, we’ve been incredibly fortunate to grow with people that share our company values.

And this brings us to the end of our 10th year — where we find ourselves today: Silverpine is an amazing group of 20+ people working 100% remotely with some amazing clients and partners. We are an agency that is involved in the many different aspects of strategy, design, and development. We are an agency that creates interfaces that make people smile. And ultimately, we are an agency that helps our clients bring value and meaning to their products and brands in ways they never imagined.

I feel incredibly fortunate and privileged to have had the experiences and professional relationships these past 10 years. If you’re reading this and you’ve worked with us or along side us, please know that I am deeply appreciative of the time that we have journeyed and will journey together. For me, it has always been about people and relationships. Without our people, Silverpine would be nothing.

So where are we headed? I truly don’t know! I have some guesses, but I have no idea if they are correct because the one thing I have learned is that I don’t know nearly as much as I think I know. However, just as we did for the first 10 years, I’m sure that we will continue to change and evolve.

Thank you.

AirAware!

Ever since the incredibly awful fires/smoke that we encountered in Portland in September of 2020, I’ve been thinking a lot about the environment on a very local level. I fully admit that I was caught off-guard by my first climate related emergency, and I learned quite a bit about air quality terms like AQI. I also discovered some of the various monitoring networks with publicly available data, and sort of developed an itch to participate in some of them. One aspect in particular that surprised me was how awful the air quality inside my home became. I also realized that while the air quality networks could tell me what the outside AQI was, nobody could tell me what it was inside. So, I eventually purchased an Awair Element to put in my office to help me keep an eye on it. Of course, being a tinkerer, I couldn’t help notice that Awair provides an open API for connecting to and monitoring their devices. And so, what would eventually become AirAware was born!

So, after a couple weeks, I had what I felt was a pretty decent reusable framework for iOS to connect to and fetch data from Awair devices. But by then I had an itch. I felt like I had just scratched the surface of what could be done. So after a bit more Googling, I found a number of other devices and networks that allow connecting to their APIs, and I decided to pull them into AirAware as well. In the end, I decided to add support for an initial 5 devices/networks:

There are potentially other devices and networks that I would love to add support for in the future, but for an initial release, I felt like this was sufficient.

Now, I will stop here and say that I love making frameworks and libraries for other developers. I feel good when I make something and can put it out into the universe to potentially help other people. That being said, will anyone find this useful? Will it help anyone? I have no idea, but that’s ok! The point is that AirAware now exists and is available if anyone ever wants to add air monitoring functionality to their app, or if they just want to see a reference implementation for any of the supported devices/networks.

Technical Notes:

Tools for a Distributed Software Agency – 2021

Last year, I posted an overview of the tools that Silverpine uses, and I thought it might be interesting to revisit our toolset and compare with where we are versus where we were. Many of the tools continue to be the same, but there are a few changes. Read on for the details!

Communication Tools

Without a doubt, Slack is the single most valuable tool for us as a distributed company. One thing that has changed over the past year, however, is that almost all of our clients have now adopted Slack as well. This has been a great improvement as we can now utilize shared channels between workspaces which greatly reduces clutter and overhead. This has allowed us to stay mostly within the Silverpine Slack workspace which makes everything simpler and cleaner in terms of organization and tracking conversations both internal, and external. If you’re new to Slack, or have yet to try it out, I have a few posts here and here to help you get going.

Looking back to where we were last year, it’s clear that teleconferencing technology and tools have rapidly improved. This is one of the few silver linings of Covid. I’ve never held video conferencing software in very high regard, but I can definitely say that the tools have gone from incredibly awful to “ok”. And to that end, Zoom has definitely moved the quality/easy of use bar further and faster than the competitors. We will see if Zoom can keep the crown in the coming year as Teams and other platforms try to leapfrog it. For now, however, Zoom is the best, easiest to use tool for video conferencing for our business.

Last year, we standardized on Dropbox Pro for file sharing and quite honestly, it’s been so seamless to our workflows that I sometimes forget about it. I’m still surprised that Apple or Google haven’t acquired Dropbox yet, but I have no complaints. It just works.

We use Gmail for our email, and thereby get all of Google Workspace (formerly known as G Suite). I said before that I’m not even sure where I would look to replace the email side of the tools, and that still applies. This past year, however, we have also started using more of the other Workspace tools (Sheets, Docs, etc) but we definitely haven’t standardized. Most of the tools are convenient simply because they are ever-present, but if you need to create a document with a significant amount of formatting, you’ll want to look elsewhere.

Development Tools

We have looked at a few alternatives to Github (like BitBucket) but at this point, GitHub is pretty much the de facto standard for source control systems. I will admit that I was a little nervous when Microsoft acquired them, but quite frankly, their service has improved to the point that we now use them for both source control and for our automated build system through GitHub Actions. Their cost model is also very helpful to us now that it’s seat based rather than project based.

The choice of a git tool can be fairly controversial, and we will never mandate a particular app/tool, but we have found that, overall, Tower is a very good, stable, and constantly improving product. They have versions for both Mac and Windows, and their licensing model makes it easy for us to provide seats to any of our engineers that want to use it. I wouldn’t say that it’s a perfect piece of software, but it’s definitely better than using the command line. We’re not barbarians!

Of all the tools on this list, MantisHub is the one that I’m the least confident that we will still be using a year from now. MantisHub is a fairly inexpensive, hosted, bug tracking system that’s based on the open source Mantis platform. It has replaced Lighthouse which we previously used. We made the decision to replace Lighthouse because it has fallen into abandonware status, and lately hasn’t been able to provide the workflow that we need. I wouldn’t say that I love MantisHub, but it’s not as heavy as Jira and definitely less expensive. We are continually looking to improve our bug tracking system so if you have one that you like, I’d love to hear about it.

Design Tools

Sketch has owned the “non-Photoshop” tool space for years, and it remains the default/standard for our designers. Sketch is a familiar, comfortable, design tool that does what it needs to do. The licensing and cost model work amazingly well for an agency and while I wish that their administrative tools were easier to use when managing seats, it’s not something we have to do often. While we were still a Sketch shop this past year, it’s possible that the winds of change are blowing. We’ve been having internal conversations recently about switching to Figma which has quickly emerged as the cool, new kid on the block. I’ve used Figma a bit and its collaboration tools blow Sketch out of the water (at least at the time of this writing.)

I believe I overlooked our use of Zeplin in my previous tool list. That is a fairly significant oversight on my part! We’ve been using Zeplin for years now and I don’t see that changing any time soon. Zeplin is a very robust tool that engineers and designers can use to easily export image assets out of Sketch (or Figma) and import directly into project workspaces. Zeplin provides that “last mile” in the asset pipeline and supports exporting for web, iOS or Android, each of which have differing format requirements. We love Zeplin!

A critical part of our development process with clients is our prototyping phase. We work extensively with them to help them understand how the UI that we are designing will translate into UX. Particularly when working on mobile platforms, the interface really needs to “feel” right, and InVision is the prototyping tool that we utilize.

Operational/Finance Tools

Like nearly every other small business in the U.S. we use Quickbooks to manage our finances. I don’t have a lot of good things to say other than the fact that our CPA prefers us to use Quickbooks.

Silverpine’s web content is fairly static, and in general our web traffic is very low. I think it’s mostly visited by people who are curious about who we are in the hopes of potentially partnering with us on a project. To that end, we don’t really need much in terms of web hosting, so we use Squarespace. One of the best things I can say about Squarespace is that it is easy to get a decent looking web page up, quickly. They have a plethora of templates and basic customization is very easy. If you start wanting to get fancy, though, it gets incredibly clunky, quickly. It’s also slightly expensive in comparison to some of its competitors. That being said, we’ve been using it for years now without too many complaints.

One new addition/change to our set of tools is that this past year we dropped Blinksale and replaced it with Harvest for invoicing clients. A lot of people use Harvest for time tracking, but it also has a good set of invoicing tools and reports. Both Blinksale and Harvest are good tools and are fairly similar in terms of cost, but Blinksale seems to cater its tools more towards freelancers and less towards agencies. Harvest seems to do a better job of catering to both groups, and it’s made our invoicing processes much easier this past year.

People like to get paid. That seems to be a nearly universal truth, and for us, Gusto is how that happens. We’ve been using Gusto for quite a while now and they have done a fantastic job at continuing to roll out new features and products that really complement their core offering, which is payroll. We use Gusto for both employees and contractors, and I haven’t heard a single issue about it. Gusto does a really good job at tracking taxes and tax reporting for federal, state and most local requirements and many times they will pro-actively alert us about upcoming changes. On top of that, their customer service is very responsive so when we do have questions about things, they get back to us quickly with real answers. Gusto is fantastic.

Do You Need A Website?

TLDR; Yes you need a website, and we just redid ours! Check it out! https://silverpine.com

Many years ago when Ryan and I were bootstrapping Silverpine, we ran very lean. I’m talking bare-bones lean. Some would say that we ran on a shoestring budget, but quite honestly, I doubt we would have justified the purchase of a shoestring at that point.

During that period, we were starting to develop our client base and define who we were as a company, and we didn’t give much thought to our website. At that point, if I remember correctly, we hadn’t acquired the silverpine.com domain, and we only had silverpinesoftware.com. The site was comprised of a single web page that said “SILVERPINE SOFTWARE” and it had a mailto link at the bottom (for anyone that was so impressed by our invisibility that they might want to contact us.) Our focus was on mobile development at that point, so we figured that it didn’t really matter if we had a web presence.

However, our clients noticed. I clearly remember receiving a phone call from our primary contact at Very-Large-Corp. We had just signed a contract with them to do some work and had jumped through the hoops to get Silverpine into Very-Large-Corp‘s invoicing system. He called me because he was very concerned that if our invoices showed up on reports it might prompt people to investigate us a bit. If they wanted to know more about us, they surely would go look at our website. If they looked at our website, they would question whether we were an actual company. This could potentially raise some red flags with people within Very-Large-Corp and cause him (and us) trouble. I remember his words very clearly: “I need you to put up a real website as soon as possible.

So, I spent that weekend creating a very bland website that was mostly populated with stock images. It wasn’t pretty. It wasn’t amazing. But it was a real website. We were somehow legitimate at that point.

However, time marches on and as it does, websites age and look crustier and more stale with every passing day. To that end, we decided that in 2020, we would give silverpine.com a facelift and in the process better showcase who we are and what we do. Conceptually, Silverpine embodies something that is clean, sleek and entirely complementary. The design of the website is intended to demonstrate this visually and show how a variety of strikingly different designs all work with Silverpine. The intention is that we enhance and improve existing brands and products and hopefully it’s now clear, visually, how we do that.

What we have today is amazing and I love it, but it’s also just the start. While we very often cannot talk publicly about many of the products we work on, we can add more content that continues to explain and expand on what we are and how we do it. The new website design provides a framework and a roadmap for adding and enhancing this. I’m extremely excited to grow the content so keep checking back from time to time, and if you haven’t already, go take a look!

Oh and if you wanted the answer to my question? Yes, you need a website.

Apple’s Native Apps Trojan Horse

Apple announced SwiftUI at WWDC 2019 and like a lot of people, I mostly ignored it because I knew that it would need some time to mature before it would be ready to use in production software. I also wasn’t sure if it would “stick” in terms of long term, viability. However, after another year of development, it’s clear that Apple has made a commitment to it. The newly announced Widgets and App Clips as well as enhancements to WatchOS definitely push developers hard towards SwiftUI.

SwiftUI appears to be Apple’s answer to the React programming movement, and given the similarity of SwiftUI to React, I expect a lot of the response will be positive. However, I believe this to be a bit of a Trojan Horse in relation to cross-platform development. As I mentioned earlier, apps that want to use some of the newer technologies, like Widgets, have no choice but to use SwiftUI. For an app that’s written natively in Swift, this will be easy. Apps written in cross-platform environments will have to work a lot harder.

Eventually, Widgets and App Clips will become expected functionality for many apps, and while most cross-platform solutions already support mixing native code with non-native code, the level of complexity of supporting these will essentially require developers to be fluent in multiple languages and multiple development environments. I’m very curious to see how these cross-platform development communities respond and adapt to this change because over time this will erode one of their key advantages.

Zoom Insecurity

I recently wrote a roundup on the current state of video conferencing software and one of my comments about Zoom was that it has a history of abusing privacy and not taking security seriously. It looks like my concerns were well founded this week.

  1. According to The Washington Post, your Zoom videos are visible by anyone on the Internet
  2. Security expert Bruce Schneier explains how Zoom not only captures and stores personal data about you, it “secretly displayed data from people’s LinkedIn profiles, which allowed some meeting participants to snoop on each other“. He also explains how Zoom’s encryption is paper thin which becomes even more important because of the next item
  3. Researchers at the University of Toronto documented how Zoom calls often get routed through servers in China.

Every single one of these items is cause for concern on its own, but taken together should really give pause to anyone using Zoom, especially when there are so many other good choices out there.

 

The Silverpine 2020 Bracket Challenge

The NCAA basketball tournaments (men’s and women’s) are something that I look forward to every year, and we always have a Silverpine bracket competition which is a lot of fun. Obviously, those didn’t happen this year which was very disappointing, but understandable given the situation.

Not to be deterred though, we went ahead and held our own competition this year during our weekly video call with the whole company! The way it worked was that I would say two items over the call and then everyone would write their pick on a piece of paper and hold it up to the camera. For example, I would call out “elephant and giraffe” and everyone would have to write down either elephant or giraffe. The pick with the most votes would move on to the next round until we were able to crown a 2020 champion.

The first round competitors were largely paired together like “Cake vs Pie.” However once we proceeded to the second round, people had to choose from several non-sequitur items like “Seattle vs Taylor Swift.” Some of the pairings had clear winners while others were decided by a single vote, and it was a nail biter down to the end. The Final Four consisted of Dog, Blue, Pie and the ultimate Cinderella pick – Aquarium. In the championship, though, Dog easily coasted past Pie for the win and became the Silverpine 2020 Bracket Champion.

The whole “competition” was a lot of fun and a nice little stress relief, but it also was a great way for the team to get to know each other better. (We found out that one of our employees is a huge pie fan, and that another prefers C++ over dogs!) I actually think we might make this an annual event as the feedback on it has been overwhelmingly positive. Below is the completed bracket. No comments on my terrible handwriting!

bracket.jpg