The road to team productivity

Tianyi Wang

Stack Shuttle

2 years

9 startups

Stack Shuttle

10 web apps

10 mobile apps

8 API servers

Stack Shuttle

3 Software Engineers

1 Designer

1 Project manager

Secret

☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️ ☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️ ☕️☕️☕️☕️☕️☕️

☕️☕️☕️☕️☕️

☕️☕️☕️☕️☕️☕️☕️☕️☕️☕️

 

Elixir is a dynamic, functional language designed for building scalable and maintainable applications.
Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.

Phoenix brings back the simplicity and joy in writing modern web applications by mixing tried and true technologies with a fresh breeze of functional ideas.

Since it’s built with Elixir and runs on that awesome Erlang VM, it’s fast as hell and has excellent support for handling very large numbers of simultaneous users. Erlang's reliability is 99.9999999%,  5 mins downtime a year. More information is a Google search away.

  • FP

  • Ecto database layer (like an ORM)

  • Hex.pm

  • interop with Erlang

  • Concurrency and Distribution

  • Services orientated architecture  

  • API

  • Websocket support

  • GraphQL support (Absinthe)

  • Reusable Components

  • Great Community

  • Great developer toolings

React Native

With React Native, you don't build a "mobile web app", an "HTML5 app", or a "hybrid app". You build a real mobile app that's indistinguishable from an app built using Objective-C or Java. React Native uses the same fundamental UI building blocks as regular iOS and Android apps. You just put those building blocks together using JavaScript and React.

Expo apps are React Native apps which contain the Expo SDK. The SDK is a native-and-JS library which provides access to the device's system functionality (things like the camera, contacts, local storage, and other hardware). That means you don't need to use Xcode or Android Studio, or write any native code, and it also makes your pure-JS project very portable because it can run in any native environment containing the Expo SDK.

Expo also provides UI components to handle a variety of use-cases that almost all apps will cover but are not baked into React Native core, e.g. icons, blur views, and more.

Finally, the Expo SDK provides access to services which typically are a pain to manage but are required by almost every app. Most popular among these: Expo can manage your Assets for you, it can take care of Push Notifications for you, and it can build native binaries which are ready to deploy to the app store.

Other stuff

Postgresql, Gitlab, AWS

Sharing  

It's not just about sharing code

  • Knowledge

  • Conventions

  • Good practices

Quality

It's okay to create technical debt, at some stage it's preferable to create a solution which considers "bad".

 

The most important thing is to pay the "debt".

 

Refactoring  Regularly > Big refactoring every 3 months

Quality

  • Documentation

  • Tests

  • Monitoring

Our Secret Weapon

Spacemacs

Thank you!

@tian_yi_wang

Team productivity

By Tianyi Wang

Team productivity

  • 675