Posted on Leave a comment

Facebook Outage & The Reality Of SDK Creep

Facebook Crashed Many Sites Yesterday

For the second time this year, Facebook has caused major outages of apps across the world due to its negligence and poor code management. Due to a bug introduced into the iOS Facebook SDK, apps on iOS that used Facebook login were crashing. This included: TikTok, Tinder, Spotify and many more.

While Facebook quickly “resolved” the issue, the fact remains that this isn’t the first time nor the last time something like this will happen with large companies and their SDKs and APIs. You see the problem with relying too much on third party solutions is that you are at their mercy. If their solution breaks and you rely on it, then you are screwed with little recourse other than to wait until the engineers at said company resolve the issue. Time lost equates to dollars lost, it’s not a good look.

SDK Creep

SDK creep is exactly what happened yesterday but it doesn’t just happen when something breaks. SDK creep can happen when a new version of said SDK comes out and restricts previous functionality that may have been core to your business. It could come in the form of changes in billing or even the ultimate form of that SDK going away completely. Imagine building a million dollar app and the backbone that powers it suddenly *poof* gone! This is something every developer and software entrepreneur should consider when designing the architecture for their applications.

I am a big proponent of writing your own services when it is feasible to do so from a financial and time perspective. Not only will you not have to worry about a third party service going down, but you also have more flexibility in terms of extension, growth and use.

We are increasingly getting to the point where a few tech giants are becoming the backbone of more and more startups and small companies. We as a tech community need to make sure we don’t give up too much power before we end up with a tech oligarchy or oligopoly.

Stay up to date with my content, products and more by signing up for my newsletter!

Posted on 1 Comment

Code Life Club

Start Living A Code Life

The Code Life club is live! Start living a code life today by investing in websites and apps, automating your routines and taking advantage of all that technology has to offer!

Code Life App POTD

Every day I send out a group email to everyone in the group about my app pick of the day. This is an app or website that is currently for sale that I personally think is a great buy and addition to any app portfolio. I break down the reasons why I believe this app is an amazing pick. 

Discord Premium Role

When you join the Code Life group you get a special premium role on my discord server and can participate in investor only discussions.

Weekly Video Calls

Every week on Sundays I have group weekly video calls with everyone in the club. During these calls I will answer any questions you all may have as well as go over monthly and quarterly group investment goals.

Posted on 2 Comments

Top Programming Languages To Learn In 2020

Programming Is Even More In Demand In 2020

If you are wanting to become a software engineer or want to expand your coding skill set in order to stay in demand then here are the top 6 programming languages you should learn for 2020. By mastering even one of these languages you can secure your marketability in the IT realm for years to come.

Python

python logo

With Python2.7 officially reaching end of life this year, Python3 is the big dawg on the block now. Python is often touted as one of the easiest languages to learn and often taught to new freshman students at universities and with good reason. Python is used in many fields ranging from scaleable web applications such as Instagram, to machine learning and artificial intelligence algorithms.

Java

java logo

Java has be solidified in the game for decades now and likely is here to stay. Java is using heavily in enterprise scale web applications and to a lesser extent desktop GUI applications. Java is a truly interoperable programming language that can be used in embedded systems, web systems and mobile systems. You can also use Java to create Android applications although Kotlin is being pushed as the new language of choice.

C/C++

C++ logo

Ahhh my personal favorite languages C/C++. If you have an itching for system level programming such as writing operating systems, then I implore you to check out C++. It is used whenever you want bare metal efficiency and is also used highly in enterprise level video game productions such as Unreal Engine. If you want to get dirty and personal with computers, then C/C++ are your choices!

Javascript

javascript logo

Javascript has come a long way over the years. Javascript is used in front end web application development to create dynamic web applications. It is also used as a back end language to host web services and as a result you can use one language for a full stack web application. With the advent of web assembly we will start to see javascript used in many unconventional ways. If you have even the slightest inkling of doing web development, then Javascript needs to be on your radar.

Swift

swift logo

Swift is used for creating iOS applications and is the baby of Apple. If your dream is to become an iOS developer then mastering Swift is a must. Tidbit you must own a Mac in order to do iOS development.

C#

c# logo

The last language on the list goes to C#. This is the language used for creating .NET web and embedded applications. If you are a Microsoft junkie then this is the language for you. Many enterprise level companies use C# for their internal and external web operations.

You Can’t Go Wrong With Any Of These

By no means are these the only languages that you should or can learn in 2020 to get a job. I still do PHP development so there is a market for any language. However if you want a wide array of market opportunity I suggest that these be the languages that you focus on. After you get some practice with one of these languages, sign up for Triplebyte and have companies BID ON YOU based on your skillset from a one time technical coding quiz! Also if you need extra guidance on your career path book a 1-on-1 session with me and let me help you!

Posted on Leave a comment

My Interview With Horizon Radio

Amazing opportunity to be interviewed by Horizon Radio

Horizon Radio

I had the opportunity to be interviewed by Horizon Radio, an upcoming rising radio station based out of IUS campus in New Albany Indiana. During this time we spoke about my transition into tech, what I am currently doing and what I plan for the future. Give me your thoughts and share this interview across your social media platforms.

Posted on Leave a comment

Data Structures & Algorithms: Queues

The queue data structure is easy just like the stack

The Queue Data Structure

Last week I talked about the stack data structure and it’s two operations push and pop. This week I talk about the queue data structure, in a lot of ways it is the opposite of a stack…sorta kinda. Any way the format will be the same.

  • What is a queue
  • What are its operations
  • What are the run time complexities of those operations

What Is It

A queue is a data structure that is a collection of items that follows FIFO (First In First Out) order. This is the opposite of a stack which is LIFO order (Last In First Out). We see queues all the time in our everyday lives, here are a few examples:

  • We are in line at a drive thru
  • Listen to a playlist of songs
  • Send documents to a printer

As far as programming is concerned, you would use queues whenever you want to maintain sequential order in your logic.

The Enqueue & Dequeue Operations

This data structure only has two main operations: Enqueue and Dequeue.

The enqueue method takes an item and puts it at the bottom of a collection. Since accessing a collection has constant runtime the run time analysis of the enqueue operation is O(1).

The dequeue method takes the top element of a collection and removes it from that collection. Once again since accessing a collection has a constant runtime this means the dequeue method has a runtime analysis of O(1) as well.

Conclusion

The queue data structure is simple in its theory and implementation. Like its counterpart the stack, it is used when order matters in your algorithms. For a helpful guide to Big O notation check out my study guide and support this blog! If you have any questions please feel free to comment below.

Posted on Leave a comment

What To Do When You Are Job Hunting

My thoughts on what to do when you are job hunting as a software engineer/

Job Hunting In Tech Isn’t Always Easy

That’s why it sucks when you lose your job and have to start the hunt all over again. You start to get wrapped up in resumes and technical interview prep to the point of paralyzing anxiety. You go through round after round after round and get turned down repeatedly during which time impostor syndrome starts to kick in and you wonder was this the right career path for you, Does any of this sound familiar to you? I can tell you it has happened to me. There is no shame in it.

As I have gone through my #CodeLife journey I have had periods where work was abundant to the point where I could sub contract parts and hire help. I have also experienced bouts of drought and financial hardship. It is in these times of famine where I learned the most about time and resource management and efficiency. During periods where I was searching for work I developed a stategy for not only maximizing my time searching for opportunities but also my sanity.

The Work You Do When You Are Not Working Is As Important As The Work You Do While Working

Read that title again slowly and digest what I am saying. If your goal is to try to find an employer in 2020 you have to put yourself out there. If you are not out on social media promoting yourself you are behind the curve. Make sure you have a website and your up to date resume is on there (save it on Google Drive and just link to that) use your website as a brand and let it be known on social media.

You know the vast majority of software engineering jobs are going to give you a technical interview. Spend some time while you are doing job hunting to learn and understand data structures and algorithms. In my opinion the best way to learn is:

  • Read/watch videos
  • do a small program dedicated to implementation of data structure/algorithm
  • Write a README.md file explaining what you did and how it works
  • upload to Github,com

By sticking to this you have complimented your learning with content creation. Employers love to see auto didactic engineers as well as content creators because that shows you don’t mind helping others.

Don’t Seek Them Out Have Them Seek You Out

Signup for Triplebyte
Sign up for TripleByte and have the companies come to you.

In this day and age you as a software engineer shouldn’t have to put in a ton of groundwork to get a request for an interview. With websites like TripleByte which allow you to take ONE technical coding quiz and hundreds of companies can choose to hire you. One interview to rule them all! LinkedIn and Twitter are always full of discussions from hiring managers, etc about looking for new talent to augment their team so hop in those conversations.

Hopefully these suggestions help you not only in your job hunt but in your overall engineer growth. If you have any questions please leave them as a comment on this article or on the Youtube video. Lastly be sure to subscribe to my newsletter for updates, tips & tricks and more!

Posted on 1 Comment

Data Structures & Algorithms: Stacks

The Stack Data Structure

My video on the stack data structure and it’s operations.

Following my Big-O notation post I decided to talk about stacks. A stack is a simple data structure that provides LIFO (Last In First Out) functionality. It is used in a variety of ways such as functions (the undo command), parsers, regular expression evaluation and backtracking algorithms to name a few.

Operations Of A Stack

In your everyday life you see and interact with stacks all the time: a stack of books, a stack of cards, a stack of dirty dishes or a stack of cash 💰. In all of these scenarios think about how you interact with them. You always put stuff on top and take off the top element. You wouldn’t grab the bottom dish in the sink would you? No, you grab the top dish and work your way down. This is how a stack works.

There are only two main operations you have when using a stack; push and pop. The push operations pushes a new element onto the top of the stack, whereas the pop operation removes the top element of the stack. It is because of the simplicity of only working with the top element that the runtime for insertion and deletion on a stack is O(1)!

What’s Next?

The stack data structure is one of the easiest to comprehend and conceptualize! In my next tutorial and video I will go over the queue data structure and its operations enqueue and dequeue. If you haven’t subscribed to my Youtube channel please do so, so you can be in the loop and catch my livestreams. For more data structure and run time analysis help, check out my cheat sheet and support the blog!

Posted on 2 Comments

An Introduction To Big O Notation

Big O Notation Isn’t That Hard

Big O notation is a big topic (see what I did there 🙂 ) in computer science, used to describe algorithmic complexity. MIT defines Big O as the following

Big O notation (with a capital letter O, not a zero), also called Landau’s symbol, is a symbolism used in complexity theory, computer science, and mathematics to describe the asymptotic behavior of functions. Basically, it tells you how fast a function grows or declines.

From MIT’s website

Basically Big O notation breaks down how many steps an algorithm takes to complete. We use the letter O because we are finding the order of the function also called the rate of growth. As the input of a function grows, how does the function scale?

There are many ways to write an algorithm, but you want to always make sure your algorithm can perform the same with large input sizes as they do with small input sizes. This is why when analyzing an algorithm you count the number of steps it will take to complete said algorithm. Let’s take an example

function myLoop(n){
  int x = 0;
  for(int i=0; i < n; ++i){
     x += n;
   }
  return x;
}

This algorithmic complexity is O(n), why? It is O(n) also called Big O of n because this algorithm grows proportionally to the size of the input n. Let’s break down the steps.

int x = 0;

This is O(1) also called constant time because the computer will always take the same amount of time and resources to create an assigned variable. No matter if n = 100 or n = 100000, int x = 0 will always take the same amount of time.

for(int i=0; i < n; ++i){
     x += n;
   }

We have to go through every element in n for this function. In this case we have to go through every element, then we are doing an addition which like variable assignment is constant time, so this analysis is O(n)+O(1).

So overall this algorithm runs O(1)+O(n)+O(1). We can drop the constants so this simplifies the algorithmic complexity to O(n).

Rule of thumb if you see a for loop you will more than likely have O(n) somewhere in your analysis. Every NESTED loop will add an exponent to your analysis so this would be O(n^2) because you have to go through the loop n^2 times

for(int i=0; i < n; ++i){
     for(int i=0; i < n; ++i){
     x += n;
   }
   }

Big O Notation & Data Structures

Some of you have had the unfortunate experience of doing a technical interview and were asked to give the run time of the algorithm that you created and were stumped. The best advice I can give you is memorize and understand basic data structures. Most algorithms will use basic or variations of the most common data structures such as lists, queues, hash maps, etc. Knowing these and how they work will drastically reduce the complexity of technical analysis. I have a Big O notation cheat sheet that breaks down the complexities of common data structures. It really helped me and I know it can help you too!

Summary

Big O notation is just a fancy word for “How does this function scale as input increases over time”. In this blog I gave a theoretical overview into what Big O is and in my next post I will do more deep dives into data structures and break down their algorithmic complexity. Big O isn’t something you are going to get on the first try or first attempt so I will be breaking it down into bite size chunks and we will go forward a blog at a time!

Posted on Leave a comment

CodeLife 2020

2020 Is Going To Be Monumental

I have spent the last few years of my life creating the building blocks for this year. All of the late nights building prototypes, time spent building my social media presence on Twitter and Youtube and time spent networking has all culminated to this year. All the pieces are here and it is time to put it into action.

With my apps in place I am not creating any NEW projects in 2020, all my time will be spent augmenting and improving the apps I already have on my servers and Android developer account. This includes spending more time blogging on this very website. This website will serve as a central hub for my progress this year on all my entrepreneurial endeavors in 2020 it’s all about ownership and controlling the narrative.

CloudMed Billing, Trusts Generator, QF Credit, TMAH, 401K Apps

These are the apps that I am focused on for 2020, all of them have brought me income or are in the position to bring income in 2020. CloudMed Billing was the first app that ever brought me residual income and is the center piece in my article from a couple years ago. It is a web app used by healthcare clinics to collect post-insurance payments on medical collections. It’s still going strong and I haven’t made any improvements to the app in about a year. My goal for 2020 is to make it a PWA and gather at least 3 additional clinics as clients. I actually do not plan on this being a long term asset that I scale up, right now it’s just a cool residual stream. If anything my exit strategy is to try and sell the app once I acquire 10 clinics.

Trusts Generator has done VERY well in its first few months of existence, I am really proud of the progress it has made and even prouder that I have created a product that directly helps the lives of people. Trust Generator is a PWA and Android application that allows for anyone to create a trust. The feedback I have gotten from those who have used my service is heart-warming. Especially in the black community we lose a lot of what little wealth we have to death and probate so to be able to provide a solution to that and make it affordable is a win-win. In 2020 my plan is to improve the UI/UX and do some targeted marketing campaigns.

QF Credit was the last app I put out in 2019. It too is a web app and Android application that assists with removing fraudulent and negative items from your credit report. Simply fill out the form and we will take care of reaching out to your creditors for you! All for the low cost of $9.99! The feedback for this has also been phenomenal and as a result I will be focused on rebuilding the UI/UX and doing heavy marketing campaigns.

Treat Me At Home took a back seat this year as I was figuring out legality issues with service providers in specific fields. Now that that has been sorted out I am spending this year growing my provider list in the Louisville area and FINALLY rolling out the product. The PWA and Android app are live and the iOS app will be finished soon.

Lastly there is 401K Apps! This is probably going to be my long term baby! It’s an investment app that allows you to own percentages of apps and websites and will be verified on the blockchain! It will be open to accredited and non-accredited investors! The app is being developed currently and more details will emerge over this next 2 quarters.

Stay Tuned!

I feel like I have finally mastered this codelife thing 🙂 I will be keeping everyone posted on here and my Youtube page as well as Twitter. If I can live this life, you can too and I want to serve as motivation, here is to a clear 2020!

Posted on Leave a comment

Recap Of 2019 & What’s Next For 2020

2019 Has Been A Wild Ride

That is an understatement! 2019 has been heaven as well as hell. Both professionally and personally I have been through a lot, learned a lot, built a lot and reaped a lot. I owe a great deal of my success this year to you, my subscribers and followers. Without further ado this is my recap of 2019.

My Patreon Is Live

I have created a patreon to support my content creation and side projects, I am asking my followers to give at least $1 and become a patron. If 10% of my followers do this I can dedicate all my time to creating free tutorials and live streams dedicated to open source technologies and entrepreneurship. Not only that but patrons at the $10/month level and up get first look access to all of my side projects and startups before anyone else!

Apps Apps APPS!

I have been putting out PWAs (progressive web apps) and Android apps out like nobody’s business! I found out about this awesome website that allows me to generate an APK from a PWA in a few simple clicks! This has honestly been good for me mentally to get these ideas out of my head and clear my backlog. In 2020 I am looking forward to renewing my Apple developer account and port over these NativeScript apps over to iOS.

To check out my android apps head over to my android developer page. Two of my most proud web/mobile apps I made were Trusts Generator which allows anyone to easily create a trust for estate planning purposes; and Quick Fix Credit which allows anyone to dispute fraudulent items on their credit report with ease.

Twitch Was Fun….I’m Going Back To Youtube

If you haven’t subscribed to my channel head on over and do so. I will be doing more in depth computer science videos such as explaining various algorithms and design patterns. I will go more into the theory of computer science as well. This is because these topics transcend things such as what is the best web framework to learn for 2020.

With that being said I will still be doing live stream coding sessions but they will be reserved for my patrons. These livestreams will be focused on full scale projects, everything from the coding, to the deployment, to the marketing campaigns.

2020 Is Focused On Me

I had an epiphany this year. I’ve spent most of my life writing code for other people, and haven’t spent any time growing what I have that already works. I already have apps that are making me money without me putting in any advertising or redevelopment. I’ve been lazy and just collecting the checks but I have opportunities to let these fully take care of me….I’M SLIPPING!

With that being said I am no longer taking any additional clients for 2020. I am fully committed to growing my brand and my businesses. As much as I enjoy writing code, I cannot continue to give my time and energy to others and forsake my calling. 2020 is looking like a clear vision and I cannot wait to go into it with you all my followers and fans.