Software Dev

From Four Wheels to Two – Lyft Engineering

This is Lyft’s approach for adding a major new feature to their app. -> eng.lyft.com/from-four-wheels-to-two-403bcf1cbf59

I heard about this on the iOS Dev Discussions podcast.

Summary

  • Stay simple and lean
  • Reimagine over reinventing – ““Is it faster to rebuild this or reuse this, and what will we regret later?””
  • Launch what matters

Feature flags, feature modules, launching early and iterating small, facing questions they didn’t have answers to until they did some real world experimenting and iterating.

Love this…

Every new feature is a chance to start with a clean slate, and it’s often tempting to immediately build for scale. We all want our products to launch to massive fanfare and usage, but more often than not, the path to success for new features is slow and steady. With steady growth in mind, we designed our first architecture to support exactly what’s needed for our first product iteration, and nothing more

Also…

The computer scientist in me was angry, but when the datasets are small enough, reasonable tradeoffs can be made in the short term without sacrificing the user experience. When choosing the “rewrite” approach, it’s important to be confident that the code will stay simple and easily explainable. In this case, the algorithm wasn’t perfect, but it worked reliably and quickly.

The World

The Trouble with Manager Objects – Ben Sandofsky

Benjamin Sandofsky, a Software Engineer in San Francisco, California.
— Read on sandofsky.com/blog/manager-classes.html

A technical pet peeve of mine, this post does a nice job articulating why “manager” classes in software design can be a problem. To me, a “manager” class is like saying, “this class does some stuff” and the stuff has no boundary. But what does this class do? What is it’s purpose? It might be a sign of an unfocused and unsustainable design.

Or as the post says:

Managers can be a symptom of poorly-defined responsibilities. When you think about it, the word “Manager” means nothing. In object oriented programming, every class is a manager. Cocoa Touch could have UIApplicationManager, UIViewManager, and even a humble NSStringManager.

Software Dev

The Many Offline Options for iOS Apps – Device Blogs – Medium

Offline mode is no longer just an extra feature you could choose to add to your app — it’s something many users expect. I’ve often seen developers force their favorite offline solution on a problem…
— Read on medium.com/device-blogs/the-many-offline-options-for-ios-apps-2922c9b3bff3

Summary

Runs through Caches vs. Databases and when each is a better fit. Basically, databases are better for a finite set of data that you can save “all” of, perhaps a game of personal database. Caches are better for something that is too big / complex / dynamic to save “all” of, e.g. social media, web, etc.

Also covers the idea of using a queue (or EveneBus) for offline tasks and mixing strategies.

Software Dev · The World · You

The fastest-growing well-paid job: app developer

Takeaway: App developers are not the fastest growing job. But they are the fastest growing well-paid job.

There is one six-figure salary job that is seeing more openings than any other over the next few years: app developer. The U.S. will add over 255,000 app developer positions to the job market between 2016 and 2026, more than any other high-paying job

https://www.linkedin.com/feed/news/the-fastest-growing-well-paid-job-3911825/