Skip to main content

Posts

Showing posts from 2021

20 things learned in 20 years of software development

Some good points: 4. Best code is no code - less code to maintain 6. Sometimes you just have to get started 9. Nobody asks enough about “Why” 11. One of the biggest differences between junior and senior devs is the latter have a well founded, dedicated opionen about tools, with the skill to come to an agreement with others what to use in which context 17. Keep processes as lean as possible 20 Things I’ve Learned in my 20 Years as a Software Engineer  (Simple Thread) 20 Dinge, die ich in 20 Jahren als Entwickler gelernt habe  (Golem) PS. I would add: Having a vision helps to at least roughly steer all activities in the right direction. It needs to be accepted that the vision might change and steering will be adopted!

Software Engineering Salaries at Google: A Guide

Google Engineer Levels Software Engineer II (L3 | 0-1 year of experience) Software Engineer III (L4 | 2+ years of experience) Senior Software Engineer (L5 | Manager I equivalent) Staff Software Engineer (L6 | Manager II equivalent) Senior Staff Software Engineer (L7 | Senior Manager) Principal Engineer (L8 | Director) Distinguished Engineer (L9 | Senior Director) Google Fellow (L10 | Vice President) Senior Google Fellow (L11 | Senior Vice President) Google Software Engineer Salary Base compensation Bonuses Stock Google Software Engineer Stock Options Benefits of Working at Google Insurance & Wellness Transportation Home, Financial, other Google vs Other Technology Companies vs Microsoft and Amazon avg https://careerkarma.com/blog/software-engineering-salary-google/

Different takes on A/B testing with native apps in Google Play and App Store

 A short summary of options: Synthetic Control Method Find a good prediction model on current data - and compare the real data after the change with the predicted data Phased Release/Staged Rollouts Phased release of new version and compare versus old version via tracking analytics You can then compare the same content with different app versions on same OS Implement feature for one OS only - and compare Release for one OS only and compare versus other OS via tracking analytics Feature Toggles Feature toggle via remote config and switch feature on/off defining one or more explicit success criteria via Firebase A/B Testing Feature toggle and config options Feature toggle PLUS config via firebase remote config to not only switch on/off but do more experiments with different settings (color, number of items, sizes) via Firebase A/B Testing Server-driven UI and dynamic endpoints Using server driven UI, you can provide different endpoints and serve different endpoint URLs to the clients via

Staff Engineer: Leadership beyond the management track

  Nice blog post about staff (or engineering manager) archetypes: Staff Engineer: Leadership beyond the management track The Tech Lead guides the approach and execution of a particular team. They partner closely with a single manager, but sometimes they partner with two or three managers within a focused area. Some companies also have a Tech Lead Manager role, which is similar to the Tech Lead archetype but exists on the engineering manager ladder and includes people management responsibilities. The Architect is responsible for the direction, quality, and approach within a critical area. They combine in-depth knowledge of technical constraints, user needs, and organization level leadership. The Solver digs deep into arbitrarily complex problems and finds an appropriate path forward. Some focus on a given area for long periods. Others bounce from hotspot to hotspot as guided by organizational leadership. The Right Hand extends an executive's attention, borrowing their scope and

Point Free: Composable Architecture

Architecture is a tough problem and there’s no shortage of articles, videos and open source projects attempting to solve the problem once and for all. In this collection we systematically develop an architecture from first principles, with an eye on building something that is composable, modular, testable, and more. Composable Architecture - Point Free

Firebase Remote Config now supports automatic personalization!

Firebase Remote Config is a great tool to enable dynamic config, feature toggles or even A/B testing with your native apps. Only thing you need to keep in mind that default update rate is 12h, but there is an official workaround for that for emergency use cases, trying avoid to exceed the quota ( Propagate Remote Config updates in real time ). Now Google took it a step further, allowing automatic personalization via Firebase Remote Config! Last but not least, we’re putting the finishing touches on a new feature of Remote Config, called personalization. Personalization will give you the ability to automatically optimize individual user experiences to maximize the objectives you care about - such as revenue or engagement - through the power of machine learning. After a simple setup, personalization will continuously find and apply the right app configuration for each user to produce the best outcome, taking the load off of you. If you want an early look at this feature and to try it out

Lean prioritization matrix

  We are sorting the stream of stakeholder request and product ideas in a KPI-weighted table. The Matrix This 2x2 matrix low effort vs. high effort high value vs. low value is a nice and easy consumable visualization model. The Weights Suggested weights are Reach How many customers does the feature impact? Customers New/existing target groups Revenue Will it drive revenue either direct or via extended CLV? Acquisition Will the feature help drive new customers? Efficiency Does the feature help drive efficiency in customers’ lives – be that internal customers (colleagues), or external (paying) customers? Brand Does the feature enhance your brand awareness? The classification/quadrants Top left to bottom right Q1 Do it now! Q2 Break it down and put in prio sequence Q3 Gap filler Q4 Forget about it... for now. Andy Wicks - Mind the product

Xcodes.app - The easiest way to install and switch between Xcode versions

  The easiest way to install and switch between multiple versions of Xcode. If you're looking for a command-line version of Xcodes.app, try xcodes . GitHub.com RobotsAndPencils

iOS and iPadOS Usage

Please find here the official Apple stats of the iOS and iPadOS update rate - of the device sold the last four years (sic!). Apple Developer

How to make your iOS (and Android) app secure

Checks No Non-SSL connections (http only) Black-box check with proxy, e.g. Charles Proxy Enable Apple Transport Security (ATS) to enforce SSL Make sure all used backend services use TLS v1.2+ and do not allow TLS v1.0 or v1.1 any more Deprecation of TLS 1.0 and TLS 1.1 Make sure to use secure Cipher-Suites (see BSI recommendations ) Make sure servers do not support SSLv3 protocol any more! Make sure your ePrivacy / GDPR and Apple Tracking Transparency ( ATT ) implementation reacts correctly on opt-outs of tracking Consider public key pinning / certificate pinning for additional security vs. man in the middle attacks Make sure all used libs have the latest patches/versions - and are still maintained Make sure to request required permissions only! Make sure no hard-coded client secrets are present See also  Secret Management on iOS , Tim Dolenko swift-secrets Use KeyChain for storing data securely and check File Data Protection Avoid screen recording and capturing in production app

Getting Started with Swift on Android

The Swift stdlib can be compiled for Android armv7, x86_64, and aarch64 targets, which makes it possible to execute Swift code on a mobile device running Android or an emulator. This guide explains: How to run a simple "Hello, world" program on your Android device. How to run the Swift test suite on an Android device. GitHub

AppMon/MobSF - Automated framework for monitoring and tampering system API calls macOS, iOS and Android

  AppMon is an automated framework for monitoring and tampering system API calls of native macOS, iOS and android apps. It is based on Frida . It consists of the following components: AppMon Sniffer - Intercept API calls to figure out interesting operations performed by an App AppMon Intruder - Manipulate API calls data to create change app's original behavior AppMon Android Tracer - Automatically traces Java classes, methods, its arguments and their data-types in Android APKs AppMon IPA Installer - Creates and installs "inspectable" IPAs on non-jailbroken iOS devices AppMon APK Builder - Creates APKs "inspectable" on non-rooted Android devices GitHub Mobile Security Framework (MobSF) is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing, malware analysis and security assessment framework capable of performing static and dynamic analysis. GitHub

FF Chartwell: Defining pie chart, bar charts and many others via vector font!

  With FF Chartwell you can define Charts via OpenType font, and transform a string, e.g. " 60+ 30 + 10 " into a Pie Chart 60%-30%-10% including color support (not only b/w!) without rendering anything: directly via font without using any images! Check this out: FontBlog FF Chartwell So great!