i360 Dev 2022

At the end of August 2022 I was able to attend https://360idev.com/

 

Sunday August 28th

I360 Dev pre conference workshops

 

Entry and greeting

Swag that I was given

Design System vs Style Guide

Never constrain width or height of any view that contains text

  • Device size
  • Device orientation
  • Localization
  • Dynamic type

Xcode 13.4.1

Tutorial project

https://github.com/mpospese/DSTutorial

 

Optional:

  • Figma.app (in case you don’t like the website)
  • https://www.figma.com/downloads/
  • Base Design System (Uber)
  • https://www.figma.com/file/eit8RZXY7SDkYDYJIHGIi3/%E2%9D%96-Base-Gallery-(Community)
  • Your Design System (in case you want to build colors / typography, etc. from that)

https://www.figma.com/downloads/

  • Download Figma Desktop Apps, Mobile Apps, and Font Installers
  • Download the Figma desktop app for macOS or Windows as well as the font installer and device preview apps (40 kB)
  • https://www.figma.com/downloads/
  • Check out https://webaim.org/
  • Identifying and Fixing ios Accessibility issues
  • What does accessibility mean to you?
  • Accessibility is Usability
  • Microsoft Accessibility ToolKit
  • European Accessibility ACT
  • Section 508 & ADA
  • Cognitive
  • Learning Difficulties
  • Anxiety
  • Mental Illness
  • Illiteracy
  • Low education
  • Non-native speaker

Motor

  • Missing digits
  • Restructured movement
  • No movement
  • Lack of fine motor skills
  • Gestures
  • Voice control

Vision

  • Colour Blindness
  • Low vision
  • No vision
  • Zoom
  • Voice over
  • Animation
  • Dark mode
  • Adjustable text sizes

Hearing

  • Deaf
  • Play controls for audio
  • Separate volume controls

How to find them?

Accessibility Accessor in Mac OS

To join the workshop you’ll need a Mac with Xcode installed, and you’ll need to clone this repo:   https://github.com/rwapp/GalacticHolidays

Mon August 29th

Keynote

  • I always let the current job define me
  • A mental Reset
  • Code is Ephemeral
  • Products evolve
  • Technology evolve
  • Jobs are Ephemeral
  • Relationships are Forever
  • How do we foster
    • Be kind
    • Be aware
  • Adjusting Priorities
  • Even when world is shattered I can still do this.
  • A blueprint for caring less
  • Leave work at work
  • “Have fewer useless opinions”
  • Embracing rediscovery

Using metric kit to measure app performance and stability

  • MetricKit is a new framework in iOS 13 for collecting and processing battery and performance metrics
  • A way to pull out key metrics on going live
  • SwifitUI performance for demanding app
  • Keep view body simple
  • Owned data is @stateobject
  • Passed data is @observedObject

Advanced Code-able

  • App.quicktype.io
  • “Data drives your app. You have to think about it.”
  • Common patterns
  • AnyCodingkey/multiple containers
  • Drilling down with nested containters
  • Top-level wrappers, custom or dictionaries
  • Engineering Beautiful and Accessible Text
  • y-mattertype
  • github.com/yml-org/ymatterType
  • Making Text Accessible
  • Accessibility Labels
  • WCAG 2.0 Contract Checking

August 30th

The Darkside of Diversity & Inclusion

  • Why diversity?
  • Can you measure?
  • How to measure improvements?
  • What is the problem?
  • Culture Fit
  • Unconscious bias
  • Tribal mentality
  • Actual Racism/Ableism/Bigotry
  • You can cultivate inclusion if you don’t feel safe.
  • Learn Respectful Discourse
  • “When I argue I wanted to be right” when I argue I represent other people
  • “It doesn’t matter to be right, when others are suffereing”
  • What can we do?
  • Advocate for others
  • Be outspoken
  • Swift Plugin

A Discourse in Humane Development

  • Short term memory
  • Extensive Capactiy
  • Active working memory
  • Cognitive

So I was a Intern in 1999

1999

Sometime in the spring of 1999 i spent a week emailing every company on www.careerlink.org looking for a internship. Of all the companies I emailed only 1 of those companies responded. Farm Credit Services of America. This lead to a phone interview and a in person interview at the Farm Credit Building on 19th and Douglas

 

. My interview consisted of asking me what I want to do. Which is programming and going down to the cafeteria to buy a pop. After being told I was hired on that day. I was told I would receive a letter in the mail in a few weeks to accept the offer officially.

 

When I received the letter and saw my hourly rate. I thought $13.00 an hour was a big deal. The previous summer I think I made $6.25 an hour.

My internship was from May to August.

Highlights on which I can remember.

The company took all interns to Des Monies to see a Iowa Cubs baseball game, farm visit and to just hangout for a few days.

 

My project was taking employee images off a 3.5 floppy disk. There were about 300 disks which 6 to 9 images on them. It took about 3 weeks to manually do this.  Saving them by networkid to a shared location. Then writing a program that would auto size them in VB6. The image was for the Company Directory so you can see who a person was.

This was for Access America which looked at the time.

 

So before the internship ended. I talked to the leader about being a full time employee when I graduate. He said reach out next year.

April 2000

So a few weeks before my graduation in April I get a call from Farm Credit Services of America having a developer position open. I never did apply for that position and didn’t get a interview. I was called two weeks before I was to graduate and told they hired another person, but because they like what I did during my Internship they created another position for me.

I started May 15, 2000. That day I started my professional career and had my first team outing that Friday.

 

Last thoughts

Come to think of it, I never actually applied for a position here. I just kept showing up everyday and getting paid.  So I am probably just on my 20+ year of being a intern. Come Monday I wonder if I will still be technically employed?

Let me know your thoughts.

Remember the reason of being a intern is to make where you are at, World Class.

 

AWS re:Invent 2022

I was able to attend AWS re:Invent in Las Vegas from November 28th to December 2, 2022.

AWS re:Invent is a learning conference hosted by AWS for the global cloud computing community.

Reasons to Attend AWS re:Invent

  • Get focused and actionable aws content for taking both my employer and career to the next level. This unique conference offers a depth and breadth of technical and nontechnical content to refine cloud strategy, improve developer productivity, increase application performance and security, and reduce infrastructure costs.
  • 150+ Deep Technical Sessions
    • Discover application architecture and development tips for apps I care about: web, mobile, serverless.
  • Our 100+ partners featured in the Expo have achieved AWS partnership, which means they have proven abilities to support you in scaling your security efforts.
  • Get your questions answered by the engineering teams that built the AWS Cloud in “Office Hours” and sessions lead by AWS architects, developers, and product leads.
  • Engage with other AWS users to share use cases, and connect with diverse professionals from around the world.

As an attendee you pick the sessions and schedule you want. I did find myself changing schedules hourly based on availability and campus.

The sessions are record for most part. A attendee is able to go back and watch on demand.

Aws Reinvent Day 1

Application Integration Patterns for Microservices (session)

Developing Ci/CD pipelines with AWS (session)

  • (chalk talk)
  • AWS code pipeline
  • Easy for organization to replicate a good tool
  • Observability
  • Security
  • Authorizations
  • Ux
  • Shared libraries
  • Chaos testing
  • Static Code Analysis
  • Rollback is always a option
  • Make it harder to do the wrong thing
  • Enablement and education
  • Building a community (start with this so conversations are easier)
  • Make it easy and right thing
  • Boiler-plate
  • Measure adoptions, report
    • Metrics (# of deployments, #of rollbacks)
  • Embrace
    • Security, operations, quality
  • Project Planning
  • Dashboard
  • Tech debt reduction

Aws AppSync workshop

https://awsworkshop.io/

Building modern data architectures on AWS (session)

  • Data Strategy- start anywhere
  • Unify
  • Modernize
  • Innovate
  • Modern data Architecture
  • Catalog
  • governance
  • data at any scale
  • best price performance
  • data access
  • AL & ML
  • Data Discovery
  • Seamless data integration with AWS Glue
  • Building event-driven architecture with ios sensor data
  • Best practices
  • Data discovery
  • Define business value
  • Migrate and modernize
  • Data tiering
  • S3 storage
    • Use iam across
  • Encrypt data rest and in-motion
  • Store the data in optimum format

AWS ReInvent Day 2

Modernize your iOS Build Pipelines with Amazon EC2 Mac Instances

  • How to manage mac instance on EC2
  • AWS Nitro architecture
  • Amazon EC2 M1 Mac Instances
  • EC2 make gets same experience on EC2
  • Don’t want build to talk to internet
    • Private subnet
    • Security concerns
  • Technical Deep Dive
  • Run aws api to create mac instance
  • FirmWare is set by amazon
  • Automate
    • How to install xcode?
    • Sometimes you need full disk access
    • Over provision
    • Cost perspective will be for hosts
    • Use AWS services from on-premise environment
    • Customers who got best value
  • Migration opportunity helps evaluate architecture

Operational Best practices for Event-Driven Architectures

 

  • AWS Operation excellence
    • Activities after workload
    • Operate and Prepare
  • Api (rest)
    • Swagger/sdk
  • Event Consumption
    • Schema registry
  • Backward capability
  • Mitigate deployment risks
    • Small changes
    • Cd/cd
    • Testing

When we saw event-driven it is decoupled, but semantically there is coupling

Versions and event filters

  • Schema registry is managed by a producer
  • What if we push both versions?
  • How do you reach consensus between producer and consumer?
  • Schema Testing:
  • Schema diff id: swagger and schema
  • Do this in an automated approach? Ci process???
  • Ambiguity
    • You may not be able to catch everything
  • Schema repository Testing
  • AS a consumer you can be selective on processing fields
  • You can add logging and meta data to a contract
  • Testing
  • Emulation
  • Mocks
  • Testing in the cloud

Build with Prototype: Be a customer obsessed developer

  • Goals
  • Industry patterns to inform product roadmap
  • Enabled feedback flywheel
  • Ownership-> expertise – insights
  • Iterate quickly
  • Engaging the developer Community
  • Prototype
  • Graph QL API Accelerator
    • Accelerator Endpoints for developer and test
  • Blue print application
  • Enrich the developer experience
  • Customer Obsession
  • What is around the corner
  • Collecting meaningful feedback
  • Ramp up time

Create a Mobile Service for enterprise success

  • Learn what scalability is in mobile service and factor it into a service connection
  • Solutions as patterns
  • Capabilities of a scalable mobile service
  • Secure
  • Resilient
  • Elastic
  • Modular
  • Automated
  • Interoperable
  • Pivoting to a API Gateway Pattern
  • Front door or façade pattern
  • Minimal impact on existing services
  • Rollout new services incrementally
  • Visibilities of API
  • Static Content Hosting Pattern
  • DATA per service/materialized view
  • Scalability
  • Highly available
  • Caching when possible
  • CloudFront? Amazon S3
  • Amazon DynoDB
    • Key Value
    • In memory cache
  • Performance optimization: Effectiveness
  • Spatial Locally Pattern
  • Pre-Calculation Pattern
  • Event Based Async Patterns
  • Optimization
  • Separate read and write stories
  • Store pre-calculated data nearby
  • Redundant data when necessary to minimize resource consumption
  • Extensibility
  • Pub/sub pattern
  • Orchestration pattern

AWS Day 3

Modern Mobile Application

Best Practice for securing your software delivery lifecycle

  • Security Challenges
  • Compliance and security
  • When you have a security incident
  • DevOps is a philosophy not a team
  • DevSecOps
  • SLSA Framework
  • Guardrails
  • Security is a conscious process
  • Software bill of materials (SBOM)

Build Machine learning models efficiently with Amazon SageMaker notebooks

AWS Day 4

Advance Serverless workflow patterns and best practices

https://serverlessland.com/reinvent2022/api309

  • Step Functions
  • From code to workflow
  • Standard vs Express
  • Cost is better for Express
  • The “REST” Easy Pattern
  • The “Call Back” Pattern

Automating and evidencing key compliance security controls

  • 3V’s
  • Cloud aptitude
  • Mental Models
  • Plan for risk management

Replay

Replay is the after party event for AWS which allows you to unwind after a long four days of training.

Learn Swift Omaha November Meetup

I attended https://www.meetup.com/LearnSwiftOmaha on Kotlin Multiplatform on iOS. The purpose of the discussion was to talk about how to interact with KMP on iOS and the current state of KMP on iOS. Here is the link to the https://kotlinlang.org/docs/reference/multiplatform.html

 

There was a discussion on what this really is in regards to Android and iOS. A sample was created to show the project in Android Studio that builds the plumbing to work on different devices.

2019 Android Dev Summit Day 2

Day 2

The day started with checking out the codelabs.

Jetpack Compose Codelab

https://codelabs.developers.google.com/

Lightning Talks Round 1

Managing Companion Devices

What’s New in C++/Native Support in Android Studio

Advanced Haptics: The When, What, and How of New Haptic APIs

Adopt Wide Color Gamut

Turning the Page: Migrating to ViewPager2

Platform Android Studio and Tooling

Secure Your Data – Deep Dive into Encryption and Security

Jon Markoff, Nicole Borrelli

Strategies for data encryption on Android using Jetpack Security. The key takeaways include: learn to encrypt data safely on device and use the AndroidKeyStore.

Outline the challenges with data-at-rest encryption.

Best practices for data encryption and key management.

Deep dive into why and how Jetpack Security library was built.

Jetpack security Library

Hardware backed means it runs a separate memory space.

BiometricPrompt

  • AndroidX Library
  • Recoverable errors

Tink

An opinionated guide to Dependency Injection on Android

Manuel Vivo, Daniel Santiago Rivera

Dagger has become the recommended way to do Dependency Injection on Android. However, there are many ways to use Dagger! Come hear why we recommend Dagger, the best practices including recommended setup in multi-module projects, and what plans we have to improve Dagger in Android so that you can create a solid, extensible solution for managing dependencies in your app that scales to large projects.

Dagger

How The Android Team Makes Widgets Accessible

Shailen Tuli, Qasid Sadiq, Lyla Fujiwara

In this intermediate level talk, we cover accessibility using real world examples. You’ll find out about accessibility in framework and androidX code, and learn about support for accessibility in Android widgets. Along the way, you’ll discover good patterns that can make your UIs shine for accessibility/

Accessibility Service

Talkback

ViewPager : Flip through

Logical Direction vs Direction

Testing for accessibility

Testing Code lab

https://codelabs.developers.google.com/ads19/

End to end Tests

Integration Tests

Unit Tests

Android Studio: Debugging Tips n’ Tricks

David Herman, Justin Nieto

Level up your debugging skills! We all spend so much time in the debugger, and this session teaches you about some of the powerful debugging features available in Android Studio. This talk should appeal to all, from beginners to experts and everybody in between. No matter your level, you’ll take away something to help you chase bugs more effectively using Android Studio.

Java❤️ Kotlin, Happy Together 🎵

Murat Yener, Nicole Borrelli, Wenbo Zhu

Kotlin is awesome and you want to write all your code in it, but what about the thousands of lines of code already written in the Java programming language? Or, maybe you have a library or project that is written in Java and already has been used in so many Kotlin or Java projects.

In this talk, we will look at the best practices for writing Kotlin and Java code that works so seamlessly from the other that the only way to what language it is written in is to look at the source code.

Understanding Compose

Leland Richardson

This session covers the benefits of a declarative reactive UI system like Jetpack Compose and how it applies to real problems that Android developers have today. Additionally, this talk expands on the programming model of Jetpack Compose and some of its implementation details that help you understand how Compose works.

Permissions on Android

Sara N-Marandi, Philip Moltmann

Permissions provide the means for apps to communicate to their users why they need access to the user’s private data. In Android, we want to provide users control and transparency over their data, and have made a number of changes in Android 10 that bring greater restrictions to what data apps can access. We will review the changes in Android 10 and introduce new concepts we have been working on for future releases.

Only 18% of users allow every permission on their device.

Grant a specific feature that requires this permission.

Users share less.

Request the minimum permissions that a feature needs.

Request permissions in context for the use case.

Permissions by libraries

Minimize use of location, especially background location.

Testing Coroutines on Android

Manuel Vivo, Sean McQuillan

Coroutines simplify the way we do async programming on Android. However, testing async code has never been an easy task. In this talk, we show you how to master test asynchronicity with coroutines to get that precious green check ✔️. Which questions do you have to ask yourself before writing a line of test code? How can you test coroutines that use Dispatchers.Main? What if you want to control the timing of your events? Why shouldn’t you use Dispatchers.Unconfined? Come and learn how to test coroutines like a pro.

Android UI Coroutines First

Updated Documentation coming

Always inject dispatchers

Fast, Reliable, isolated

2019 Android Dev Summit Day 1

Back in October,  I attend the https://developer.android.com/dev-summit in Sunnyvale, California.

The conference was at Google Cloud where they give Live Demo’s, Android Previews in code labs, and stream everything on Youtube. 

https://developer.android.com/dev-summit/schedule/day1

Here are my notes:

Android Keynote

  • Kotlin Certification code
  • I received this in a email later on.

What’s New in Jetpack Compose

Adam Powell, Clara Bayarri, Romain Guy

Jetpack Compose was announced at Google I/O and the team has been hard at work ever since. This talk introduces Compose to new audiences, including what the project is and how it is taking shape. The talk also updates people who already know about Jetpack Compose, including how the project has evolved.

Kotlin First

Compose

@composable Functions

Built in Components

Material Components

  • Same terminology to outline
  • Showed built-in Android Studio Emulator

DATA Flow

Event Handlers don’t leak mutability.

Event Handlers

flow down.

Composable code is Dense?

Statement Management over time

Stay away from overloads

Standardize on Coroutines

Type Safety is Nice

Layering is a pretty great idea

What’s New with CameraX

Caren Chang, Xi Zhang

Learn what is new with CameraX since its alpha launch at Google I/O this year, and learn from teams at Google that have been using CameraX in their apps.

December 2019

What’s New in Android Studio

Tor Norbye, Jamal Eason

In this session, we provide updates and demos on new developments and features in Android Studio and how the tools can integrate into your app development workflow.

Builds Speeds

Come in 4.0

  • Profiler for builds
  • Kotlin gradle
  • Progaurd files
  • @composable attribute
  • Emulator embedded in IDE
  • Layout Inspector
  • 3D full stack
  • Click and Swipe Handlers
  • Material Clip icons
  • LiveTempalte setings
  • Log functions shows all parameter’s

 

WorkManager: Beyond the Basics

Rahul Ravikumar, Sumir Kataria

Learn more about WorkManager, the Jetpack library for background processing. This talk introduces intermediate and advanced concepts to address common questions, gotchas, and issues you might see when you deploy to a large ecosystem of users and devices.

 

Migrating to AndroidX: The Time Is Right

Nick Anthony, Tiem Song

Let’s take a deep dive into the reality of migrating to AndroidX! This talk provides the rationale to migrate soon, sets expectations appropriately, and recommends a process for executing the migration as smoothly as possible.

Upgrade to support library 28

Enable Jetifier

Updated dependencies

Use Studio to Migrate to AndroidX.

BashScript

Dan Lew on Github

Alpha vs. Stable

Google Play Billing: The “Purchase Anywhere” Paradigm Shift

Oscar Rodriguez

In the past few years, we have introduced new features into Google Play, that enable users to discover and purchase items and subscriptions in many new ways, from inside and outside the app.

Developers who have adopted these changes in their apps have seen improvements in user experience, and with it, substantial growth in revenue. However, integrating these features into an app or game requires a fundamental change in which you think about how purchases are made and consumed.

This session takes a deep dive into designing for Purchase Anywhere. We will talk about promotions, subscribe-and-install, cash purchases and pending transactions, and remote purchase approvals. All app and game developers using Google Play Billing are welcome to attend.

Subscriptions: RTDN

Create a Promo Code

Purchases are done outside app

Gift Cards

Coming Cash purchases

AIDL is deprecated.

Other Perks

I was able to try the two mobile applications I have developed professional on a Android Foldable phone a Chrome Notebook.

Android for Cars

20 Years working at Farm Credit Services of America

Today May 15, is the day of achieving 20 years of employment with  Farm Credit Services of America.  I feel I have built an impressive legacy of service over those 20 years.

There is no doubt, I have witnessed and been a part of many changes.  I have many stories and experiences I can share over that time.

Here is a picture of the First Application Development Team at Farm Credit Services of America. This was taken on Friday May 19th of my first week of work outside of Cascio’s Steak House.  I was also on my first team outing.

fcszootrip

2020 Spring UNO Coffee & Careers

In early May of 2020 I was contacted by Joe Hayes to be a guest on Coffee & Careers.  

The focus would be careers in technology. A day in the life of developer, What are the different types of roles in the field? What is the needed or desired skill sets in technology.  How a student can stand out and shine?

Here is a link to the YouTube video. If you use a podcast platform like Spotify. The video will show up on the  Coffee & Career too.

On a final note. We did the video using Zoom technology. The one story not on video was our discussion on life. We talked because we are self quarantine working from home. How we are allowing others to see our personal life more. That we are seeing each families and of course why I am in a Sauna.

clip_image002

2019 FALL UNO MISSO Meeting

The Management Information Systems Student Organization (MISSO) is a student group at University of Nebraska-Omaha. MISSO has a general meeting once a month, usually featuring a guest speaker. This past Friday September 13th. Myself and Joni Stewart  were the guest speakers at the September meeting. I also wanted this spot because of talking about Internships and Technology Works here event.

I had set up this visit in early August by emailing the Professor Dr. Paul Van Vliet.

image

Before

The MISSO group does a good job of advertising the meeting.  About a month before the meeting I was asked for a topic. The topic I wanted to talk about was UX in my development process. Here is the abstract:

This month our guest speaker will be Anthony Carlson, a UNO graduate and lead application developer with Farm Credit Services of America. His software journey has been through various forms of service-oriented architecture for client and web applications. As a member of the first team at Farm Credit Services to use an agile methodology for software development, Anthony helped champion practices such as test-driven development and service-level testing. Currently, he is part of the Customer Solutions team where his focus is on iOS, Android, and responsive platforms.

Anthony’s talk is entitled

“How do I include UX in my development process?” How do we know if our software efforts are on the right track? Finding the answers to these questions doesn’t need to be scary, your users want to tell you everything you need to know to be successful. Anthony Carlson Lead Application Developer will explain how to build simple UX practices into any software development processes. Learn real world examples on how to effectively engage your customers and development team with UX basics, when to apply them and how to plan for them.

They take my topic and make a nice graphic to be shared on social media.

Day of Event

At the UNO IT Career Fair on Wednesday I took a selfie in front of the MISSO flier inside PKI. This was going to be

my social Media post.

Screen Shot 2020-07-02 at 1.52.06 PM

I arrived right around 4:30 p.m. to set up.

I also want to make sure my  presentation Would work. I also brought the following

  • Dartboards
  • Internship Fliers
  • Works Her Event card.
  • Business Cards
  • Presentation Pointer

I sponsor Pizza for the group which comes in under $100.00 The group doesn’t charge fees and helping out leaves a good impression of our company. Always remember to get vegetarian pizza.

Presentation

I got us rolling right at 5:00 p.m.

farm-credit-b

Joni started the talk with Internships and “Works Here” Video

I did a presentation on UX in the development process. The group asked good questions about the process.

Next Day

image

The next day we got a thank you email.

image

Another great event to build relationships with UNO.

2019 360iDev Conference Day 4

2019 360iDev Conference Day 4

State of the Conference

“No one hates positive re-enforcement”

I thought I knew but I didn’t

“Success is a lousy teacher”

Book: “The cluetrain manifesto

“Help other become who they are” People over profit

Financial transparency: The coolest thing I have ever seen at a conference.

  • Indie conference
  • Don’t’ do Breakfast
  • Lunch outside, it’s nice outside

  • Speaker Travel, speaker hotel room
  • $103, 063 to put on conference
  • Attendees
  • Sponsorships
  • Talked about how much money the conference made
  • The playlist is by attendees
  • Thanks to the Sponsors
  • Thanks to the speakers
  • Attendees are the ones that come, they should have a say in where the conference is held.
  • Volunteers (room monitors)
  • All in Ticket (not everyone wants it, but it is there)
  • Previous Years Banners (conference yearbook)

Using LLDB, Instruments, and Xcode to understand a codebase

Slides

Straying From the Happy Path: Taking Control of Errors in Swift

If you want to handle more error, then you have to make it easy.

BYOB: Build Your Own (Swift) Backend. Server-Side Swift beyond CloudKit

Piles of Pictures: Process with Turi Create

Slides