Develpreneur: Become a Better Developer and Entrepreneur

Rob Broadhead
undefined
Sep 17, 2018 • 22min

AWS Database Services - Relational to Big Data

The AWS database group of services is positioned to cover any need you have for storing and accessing data.  We have looked at files and general storage.  These services are more specific and are true database solutions. Aurora The popularity of MySQL and PostgreSQL was recognized by Amazon.  Thus, they saw that a high-speed solution that was compatible with those SQL platforms was going to be worthwhile.  They have made it easy and cost-effective to spin up an Aurora instance.  I highly recommend you take a look at it for your needs.  The setup alone will reduce your headaches even while providing enterprise-class availability and backups. The Classics You may want to stick to a database engine you know.  That is ok with Amazon.  They offer solutions (with or without a provided license) for every well-known vendor.  This includes Oracle, SQL Server, and more.  You can take advantage of a cloud solution without re-engineering your solutions.  It is as easy as pointing to a new server. Superfast Access The AWS database group includes Elasticache for the equivalent of pinned or in-memory data.  This will give you the fastest access to your data although at a higher cost.  Of course, this is a solution that you know when you need that sort of speed.  You can also go the other direction and look at their offerings for big data or NoSQL.  The maintenance headaches around administering a database are taken on by Amazon.  I recommend you check these out so you can get your solutions out faster.  
undefined
Sep 14, 2018 • 26min

Project and Task Management Applications (Free and Low Cost)

In this episode, we look at some free and low-cost task management applications.  Some of these do more and add on project management or even invoicing features.  However, they do all help you keep track of the work you (and your team) need to get done. Many Excellent Options If you spend a few minutes and peruse the massive list of potential tools in this area from G2Crowd (see link below), then you will see there are almost too many options.  When you need to find the best tool for you in this realm, then a search with additional keywords will help.  A field of options this numerous needs to be reduced to make any progress.  I recommend you improve your search by specifying whether you need free, time-tracking, team support, chat, or reminders.  There are other useful terms, but these are a good start. Why This List? There is a broad range of requirements in this field.  The tools available will match up better with specific combinations of these.  Since I have no idea what your requirements are, a valid question is how this list was created.  What do these task management applications have in common? A critical factor in creating this list was tools I have some experience with.  I have done a few evaluations of this family of solutions the last few years and spent more than a few minutes with each of these.  The requirements were different each time.  Therefore, this is a short list that should allow you to get to three or fewer options that are a good fit for whatever your requirements are.  You will be well served to do some additional research for your needs using these as a starting point for what is available and building your list of wants and needs. Resource Links Huge List: https://www.g2crowd.com/categories/project-management Asana: https://asana.com Trello: https://trello.com Basecamp: https://basecamp.com Jira: https://www.atlassian.com/software/jira Todo.vu: https://todo.vu Wrike: https://www.wrike.com/main/ ClickUp: https://clickup.com Monday: Monday.com Avaza: https://www.avaza.com Hive: https://hive.com
undefined
Sep 12, 2018 • 24min

Software Patterns - The Abstract Factory

In this episode, we look at the Abstract Factory pattern.  This is a creational pattern which means it has to do with creating and utilizing class instances.  There is also a Factory pattern that will be covered later in the series. The Abstract Factory Defined It helps to start with the "Gang of Four" definition and then we will dig into that. Provides an interface for creating families of related or dependent objects without specifying their concrete classes. This may seem a bit abstract.  However, it is a crucial cog in creating an object-oriented application or system.  As always, the real world provides us with some good examples of how this would be used.  Think of an automobile factory.  Within a complex, there are multiple assembly lines or configurations to create various models of cars.  Each configuration would be a "factory" that produces an instance of a specific class of car.  An abstract factory would be a way to utilize the similarities across those lines.  Similarities may include references to workers, process steps, or other such items.  You can refer to the quality assurance process without having to specify it for a specific model. Applying The Pattern You may wonder where an Abstract Factory is useful.  As it happens, this is a pattern that is nearly as useful as a class definition.  When you use a factory pattern, you expand the flexibility of your application.  There are some excellent examples, but we will stick with one for now.  This may even be common usage in your experience. For our example, we will have an address book application that can use a text file, a MySQL database, or an API to save data.  The backend that we use does not change the standard features we need.  A short list of these features is going to look familiar. Load Data for a record Save Data Load a list of data based on criteria Create a record Delete a record The good news (and power of the pattern) is that we can build a standard interface with these features and plugin the backend system we need.  We just need each of them to adopt the same interface, and then we can "ask" for the one we want at runtime.  This can be a requirement based on user preferences or something like this might be a solution to an application that is connected some of the time. Java, PHP, C#, etc. The good news about this pattern is that the coding is very similar no matter the language you use.  The Abstract Factory itself provides functionality and is an interface.  In our example, we can call it the DataStore interface.  This will have each of the methods listed above defined, and then we will have a concrete implementation that uses the interface for every data store type we want. When we need to add support for a new data store type, it is just another class we can plug in.  The usage will be to expect the interface (DataStore), and then we pass in the appropriate instance.  That makes this a pattern that we can efficiently use to solve a wide range of OOP problems.  Keep it in mind the next time you need to support multiple approaches as part of your solution.  
undefined
Sep 10, 2018 • 23min

AWS Storage Services - Low Cost Cloud Space

In this episode, we take a look at the AWS storage services group.  This includes some of the older services like S3 and elastic block storage.  If you have not had a look at these offerings recently, then it is worth your time to get reacquainted with them. Fast to Slow Access One of the primary differences in storage types is how fast (or slow) the data can be accessed.  The Simple Storage Service (S3) has become an almost ubiquitous service for websites and document storage platforms.  This is easy to use, and many tools (including WordPress) have plugins that make it easy to offload static files (images and even CSS or JavaScript) to S3 as a form of CDN.  The access is reliable, quick, and has backups and failover built in.  The amount of time this service has been around makes it easy to find examples and tutorials for working with this service in your platform of choice. Brrr - Glacier The name of Glacier implies slow moving, so it makes sense that this service is not the most responsive.  Your files can take minutes or days to retrieve.  However, the price per GB is incredibly low, and that makes this a perfect way to store off-site backups or other files you may never need to access.  The interface is not as pervasive and straightforward as S3, but you probably do not need an easy to use solution.  This is a service you may only upload files to once a quarter or annually.  When you think of this as a replacement for tape storage, then it will make a lot more sense to you. Truckloads of Data The snowball services embrace the reality of moving vast amounts of data.  Sometimes it is easier to ship a hardware device to load data and then mail that rather than flood a network pipe with a data transfer that takes days or weeks.  The snowmobile service is a literal truckload of data with devices that you can quickly transfer your exabytes of data onto.  This is an enterprise-class service, but an excellent example of how much data we may deal with on a regular basis.  
undefined
Sep 7, 2018 • 31min

Financial and Accounting Applications (Free and Low Cost)

This first episode of the season on free and low-cost tools looks at finance and accounting applications.  I assume that these will not be the most fun and exciting applications we cover.  However, they will be some of the most critical to any business. Accounting Applications For You As we go over the applications in this episode, it is essential for you to remember that the best tools will be the one that works the closest to your current processes.  When you find yourself fighting against your application, then it is time for a change. These tools have a range of features and types of business that they focus on.  The good news is that there are free trial periods available for each of them.  Take advantage of the trial to check out how hard or easy they are to use in your regular accounting tasks.  Also, your accountant will most likely need to use these, so get their input as well.  There is no need for you to love a tool and have your accountant either hate it or not have systems that can integrate with your choice. In The Cloud? One of the concerns you may have with some of these solutions is the viability of a financial application in the cloud.  I have to agree that any time you open your systems up to the Internet, there is a chance of getting hacked.  That means security is a valid concern.  However, you will want to ensure the availability of backups and a solid uptime over security.  There is no value in having your data safe and secure while you are not able to access it. In particular, consider the nightmare of having to get entries in before an audit deadline and the systems are down.  A cloud provider can have this problem,  but you can too.  What if your laptop gets left on the roof of your car or is dropped, or your desktop in plugged in during a lightning strike.  All of these situations have happened to people I know (including myself).  The cloud can be scary, but avoid making it seem more dangerous than it is.  When in doubt, use safety mechanisms like multi-factor authentication or the highest encryption levels available. Helpful Links Here are the sites we discuss in this episode. http://www.freshbooks.com http://quickbooks.intuit.com https://www.kashoo.com http://outright.com http://www.xero.com https://www.waveapps.com/accounting https://www.oneup.com
undefined
Sep 5, 2018 • 24min

A Look at Software Design Patterns

This season will take a look at the software design patterns that we should know.  Each episode will dig into a pattern and how to implement it.  Some of these will be very familiar, and some may open your mind to a whole new approach to software solutions.  In this first episode of the season, we look at why patterns matter at all. Proper Object-Oriented Design Software design patterns are the next logical steps once you are comfortable with OOD.  It is one thing to create objects to model your system.  However, patterns show us ways to use objects to model functionality and even bootstrap our applications with core object-oriented programming principles. There are four main aspects of object-oriented programming. Encapsulation Polymorphism Inheritance Abstraction These features are the essential part of a solution that is object-oriented by definition.  The software design patterns we look at will help us take these four aspects and implement them in practical and even complex systems. Build On Experience One of the best parts about using patterns is that they are best practices in tackling object-oriented challenges.  Some of these obstacles will be new to you either because you have not had a need for certain functionality, or because you chose a non-OOP solution to the problem.  These patterns have even been built into modern languages.  Thus, some patterns will be very familiar. The patterns were created to help out developers when OOD was relatively young.  We are now another two decades more experienced, but these patterns are still relevant.  Yes, there have been some changes and additions over the years, but they have withstood the tests of time remarkably well. Not For Everyone As we tackle individual patterns throughout this season, we will look at examples in multiple languages.  That may help you understand how to use patterns but not when.  We will try to present situations and applications of each pattern.  However, your particular application may not need to use a specific pattern and will almost definitely not need to use all of them.  That is ok.  The patterns will be ready and they will be waiting when you need them.
undefined
Sep 3, 2018 • 25min

AWS - The Compute Family of Services

This season (season 4) will cover the groups of services Amazon provides in their AWS offerings.  Each episode will focus on a particular group and review the included services from a high level.  We have created posts over the last year to go a little deeper into each service.  However, this season will give you some great ideas on where to start and what they currently offer. The Virtual Machine We start our season with a focus on the "compute" family of services.  These cover a few different ways to handle your cloud-based applications.  The first we look at is the traditional virtual machine.  This service starts with the elastic compute cloud (EC2).  We use this service as part of our Launch Your Internet Business class and embrace the free tier to keep your startup costs down.  The pricing around EC2 can be a little confusing, so Amazon has added LightSail as a more natural way to manage your VM. Flexibility The power of a cloud solution and a VM is the ability to be flexible in how many resources it uses.  Amazon has provided Elastic Beanstalk to automate the grow and shrink needs of a VM.  It is not a trivial service to understand.  However, it is very powerful and well worth the time spent mastering that service.  You may find this too much for your needs if you stick a single server and a small number of users.  On the other hand, it is nice to know your site can handle a flood of interest. Containers Developers have progressed from VMs to containers as the latest hot platform.  Amazon is right there with us and added compute services to run containers on top of EC2 instances.  They have Fargate as an over-arching management service that will help you spin up a container instance without worrying about the underlying VM details.  This is all we want from a container including a lack of need for a system specialist that crafts the adequately sized VM. The "compute" services are the core of so many of the AWS offerings that this is a perfect place to get started.  Go ahead and take advantage of the free tier to spin up your VM and play around with it for the next year (until the free period expires).  This is as effective a "try before you buy" deal as I have found.
undefined
Aug 31, 2018 • 22min

Management By Walking Around - With Remote Teams

There are a large number of management strategies that have been pushed over the years.  The study and promotion of these approaches is a cottage industry unto itself.  One of my favorite ideas is Management By Walking Around.  This is a practice that works excellent for traditional office environments.  However, it becomes a bit of a challenge when some or all of your team is remote. Casual Communication A key to management by walking around is the idea that you can get all you need from informal communication.  Formal channels like status reports and meetings are sufficient.  These methods are just not the most effective.  There is also the challenge with reducing bias in communication that comes from a formal report.  When you are communicating with remote workers, it can almost always feel like the conversation is formal.  This is only heightened by so many of those workers being kept in the loop via status reports and similar scheduled communications. The disconnected way that we communicate with remote staff makes this even more of a challenge.  Our opportunities to have a conversation are limited when it takes long periods of time between responses.  Fortunately, modern technology has provided us with tools that help us have conversations with remote staff.  This can even happen when someone is on the other side of the world. Old School I would be amiss if I did not mention a phone call.  Rather than "dropping in" at the desk of a staff member, you can call them for brief discussions.  Allow these calls to have a sort of introduction period to remove some of the formality.  For example, ask the recipient how they are doing, what the weather is like, and if anything notable is going on.  Keep it light and casual.  Long-distance phone calls can rack up a sizeable bill.  However, you can use voice over IP tools or even video calls to achieve the same result and often at a low or free cost. Chatting Online chat tools like Google Talk, Slack, and similar applications are cheap, easy to use, and well-suited for informal conversations.  You often will have the option of including multiple people in the discussion or a one-to-one direct message.  These are becoming very common with teams, and a manager will find it useful to stay in the loop with these as well.  They are great tools for informal and quick conversations as you would have in a "walking around" approach. The very term "Management By Walking Around" implies physical movement.  However, that is not the case.  The modern work environment can allow you to touch base with your entire staff while never leaving your seat.  Take advantage of this way to stay close to your team and maintain a constant, helpful presence.  
undefined
Aug 29, 2018 • 24min

Deadlines: A professional approach to the Side-Hustle

We have focused a lot on the fun part of a side-hustle.  The goal is to enjoy our work as we pour more effort into our success.  On the other hand, we need to have a professional approach to the side-hustle.  It is not enough to say we are working on a side project.  There has to be some effort, dare I say "hustle," that is included in your march to success. Deadlines, Not Soft Dates You have spent time and effort on planning out your side-hustle.  This might include statements or promises made to a client.  That makes those dates you set as part of the plan deadlines.  These are dates where you must deliver what you said you would.  Even though the side-hustle is not your primary job, it still needs to be treated with the same respect and seriousness. What does this mean?  This charge implies that excuses are not an option.  You set a date, and that needs to be met unless you have a strong reason to slip the target.  To be clear, a "strong reason" is not a new release of World of Warcraft nor is it even a date night with your spouse.  All of those things need to be taken into consideration when you set your dates.  Rather than slip a schedule, you should find a way to bring things back on track.  When you do this, you will see success follows. Personal Dates You may think that this insistence on hitting dates only applies to those shared with a customer.  I argue that it is just as important with dates you set for yourself.  You created a schedule.  Thus, you have only yourself to blame if you fall short.  This is where a mastermind group, a mentor, or just sharing your dates with others becomes most valuable.  When you share those dates, you create accountability.  the people you share with will hopefully remind you of dates and ask how things are going. This is probably not going to be as bad as when your boss asks you why a project is late.  However, there should be some sort of negative feeling you encounter, so you have a reason to hit those dates.  The reason can be as simple as bragging rights.  It does not matter.  The goal here is to achieve your objectives on schedule.  This result will add a lot to your likelihood of overall success.  When you consistently hit your dates, you have a good chance of spinning a side-hustle into a career.  
undefined
Aug 27, 2018 • 27min

Perseverance - A Critical Key To Success

When we talk about skills that are important for success, some have a higher value than others.  History has shown us that perseverance is one of those that is the most significant.  Nearly every successful business was created by someone that experienced more than a few failures before that success.  That ability to get up after getting knocked down is perseverance. Bound To Come Some Trouble There is a song lyric about life and the struggles we will see.  There is "bound to come some trouble" in our lives no matter how we live them.  This includes almost every project we decide to take on.  I will allow that somewhere out there someone is cruising smoothly through a project.  However, I find that to be about as rare as a purple unicorn with minty fresh breath. The key to achieving success on any level is to persevere through the challenges along the way.  We should assume there will be obstacles and challenges that require blood, sweat, and even tears.  Let's face it; if our project was easy, then anyone could get it done.  Therefore, we can almost assume that the greatest reward only comes from the most significant challenges. Too Soon We can not always know how close we are to the finish line or at least overcoming the latest hurdle.  However, we can guarantee failure when we quit.  That finish line will never be reached when we stop running the race.  This fact can lead to tragic events in our life when we fall just a little short not due to lack of skill, but instead a lack of perseverance. Business can be a challenge when considering whether to quit or persevere.  Sometimes we are working on something that is futile.  In that case, stopping is a good choice.  We should avoid throwing good money after bad.  On the other hand, we may have a runway that needs to be just a little longer to get our business to take off.  That is a case of perseverance. Knowing The Difference There are volumes written on how to determine whether you have a losing idea or one that just needs more perseverance.  Unfortunately, the choice is not always clear.   For now, just consider whether stopping is a smart choice or one made due to exhaustion.  If your reason for quitting is because it is "too hard" then try to persevere.  Your reward may be right around the next corner.

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app