

Develpreneur: Become a Better Developer and Entrepreneur
Rob Broadhead
This podcast is for aspiring entrepreneurs and technologists as well as those that want to become a designer and implementors of great software solutions. That includes solving problems through technology. We look at the whole skill set that makes a great developer. This includes tech skills, business and entrepreneurial skills, and life-hacking, so you have the time to get the job done while still enjoying life.
Episodes
Mentioned books

Nov 4, 2019 • 22min
Win Projects And Jobs Better With These Three Tips
Our career path will inevitably require us to try to win projects or land a job. There are simply no ways to avoid that. That means that almost every time you apply for a project or position, there will be others to compete against. Here are three ways to put your best foot forward and separate your proposal from the others. While these do not guarantee wins, they will help you stand out and get you in the door (literally or figuratively). Win Projects By Addressing Details The easiest way for someone to throw out a proposal is when it does not address the requirements. Boilerplate applications and responses that skip over the details will almost always be ignored before reading even half of the proposal. The more you can focus on listed (and implied) requirements, the better. This step allows you to highlight how well you are a fit and that you have shown the author respect by thoroughly reading the request. A detailed response also shows a thoughtful and professional approach to work that can often move you way ahead in the line against the competition. It is depressing how many applications for important roles and projects show almost no forethought. That also happens to be a leading reason for projects to fail. Why hire someone that does not show much concern for your project? Landing a Project for Your Side hustle Remove Fluff - Focus On Needs There is a time and a place for marketing materials. Yes, your proposal should include some of this material to sell your case. However, that tends to be "fluff" and not pertinent to the reader in making a decision. Limit the marketing and general content. Make an introduction, provide a little background, then dive into how you can address their request. Consider how much time is required on the other end to read numerous proposals and dig through for details to compare vendors. The easier you make their job, the more likely you are to start on the right foot with them. References, Examples, and Suggestions Words are great, but concrete examples are better. Include references and examples of past work where applicable. Also, the closer your previous work is to the type requested, the more that helps those that will decide on a winner to see how good you will be. You lower or remove risk when you can show that you have done the same work before. Finally, do not be afraid to include some suggestions among the references and examples. You can throw out ways that past solutions you have provided will be a good fit for them. It may be even better to show how adjustments to previous solutions can provide a better end-result for this new project.

Nov 1, 2019 • 20min
Three Tips To Avoid Writer's Block And Find Content Topics
Writer's block is a nasty situation when you are trying to crank out regular content. This may be for a blog, a podcast, or a brown bag lunch session. In all of these cases, we want to get straight to the work of creating the content. When we lack a topic or direction, that is not an option. This situation can lead to a lot of lost time while we try to find a subject. However, there are some areas where we can explore and often get past that block quickly. Recent Events The first area to explore is recent events. Although technology moves fast, the other areas of our life tend to be dynamic. That means any area of focus is going to have new events to work with. Your unique take on a situation is always a potential topic for an article. If not a personal view, then try to find someone you can interview or query for their thoughts. When that does not work, you can move over to item two on our list. Something Learned or Experience Much like recent events, we are always learning and experiencing things that can prove attractive to others. We can also reach back to things we learned months, years, or even decades in the past. Even everyday learning experiences like riding a bike or tying a shoe can be a lead-in to your topic. The more recent events will be more likely to erase that writer's block. However, you may want to consider older lessons learned when you are desperate for a topic. New Technology Always Breaks Writer's Block We often talk about how fast technology moves. That makes it a perfect source for information and ideas to break through writer's block. Check out some of the popular blogs and news sites for ideas. You can also visit vendor sites for the tools you use. Whether you find a new announcement, a beta to play with, or the latest general availability release, you can often find a series of articles around these areas. An Excellent Technology News Blog

Oct 30, 2019 • 22min
Three Tips for Faster Debugging
It is time for honesty. There is a dirty little secret we need to discuss. It might be surprising even. However, we need to talk about the bugs in our code. We all would like to think about writing error-free code. Unfortunately, we also all know that we code bugs more than we want to admit. Therefore, we spend a substantial amount of our time debugging errors ranging from typos to logical flaws. That leads to the topic of this episode. Here are three ways to approach your mistakes that will lead to faster debugging. Verify The Source is Correct The most common source of errors is not logic or even typos. It is an out-of-date piece of source code. This stale code may either be due to a failed save or cached source that needs to be cleared. Think about it. How often do you hear about or encounter a bug on a web page and your first response is to clear the cache? This issue extends out to properly saving and deploying files. It is incredible how often a simple fix like saving, deploying, or clearing a cache fixes the problem. That all points to the most famous approach to fixing broken software; turn it off and then back on again. The IT Crowd Examples of Support Isolate The Problem For Faster Debugging The idea of fixing a problem where it occurs seems obvious. However, the complexity of modern software can make that a challenge. We often deal with several layers of logic and nested calls. This architecture can make it easy to miss the step that creates the error. That means we need to be intentional in tracking down the code that is broken. When we do not, we run the risk of applying duct tape to a symptom instead of correcting the core error. Verify Assumptions When I look back on the most common mistakes I have made in debugging; assumptions are the bane of my existence. Whether it is an assumption that my code works or that third party sources are correct, the result is the same. We can spend hours chasing down phantom issues when assumptions point us in the wrong direction. This recommendation is similar to isolating the problem. However, assumptions can often lead us away from identifying the real issue. Do not be afraid to peel all of the layers of your logical onion in an attempt to chase down that bug.

Oct 28, 2019 • 23min
Build a Better To-Do List With These Three Tips
Steady progress is an essential step in becoming a better developer. One tool for achieving this is to create a good set of tasks to complete. A daily list is an excellent starting point for building this habit. However, not all approaches are the same. Keep these three items in mind so you can create a better to-do list each day. Simple/Actionable The central idea of a to-do list is to provide a simple plan for getting things done. Thus, these tasks must be well-defined and easy for you to understand. We want to be able to hold ourselves accountable for our list. That is where the simple requirement comes in. We are listing items that will either be "done" or not at the end of the day. If the task is not defined in a way that is easy to assess for completeness, then we are missing the point. Yes, this approach may require us to think about our tasks in a little more detail than we want. However, "design" or planning time will be a good investment while helping us move more smoothly from task to task. https://psychcentral.com/lib/top-tips-for-setting-goals-and-priorities/ Realistic Software developers (among others) are famous for underestimating their tasks. This weakness often spills over to daily task lists as well. I personally run into this problem and have had numerous discussions with others in properly setting daily goals. When you create your list, make sure there is a lot of "wiggle room." Things happen that take us off course. That is ok. We can adjust and work with an incomplete list at the end of the day. On the other hand, a list that never gets completed will tend to lose its value. Think about it. If you ask someone to do something and they tell you day after day that it will get done "tomorrow," when will you give up on it ever being complete? Eat The Frog/Set Priorities We have agreed that putting a task on a list does not mean it will get done "today." Therefore, we need to order our tasks in a way that gets the most important ones done sooner rather than later. Better yet, when we get the things we dislike done first, the other tasks seem easy and enjoyable. There is no reason our tool for accountability can not provide us some victories and endorphin boosts along the way. Habits, Roadmaps, and the Value of Career Momentum

Oct 25, 2019 • 22min
Three Key Skills For Database Developers
Relational databases are an essential piece of many modern solutions. Thus, most developers have some exposure to SQL within the first few years of their careers. Nevertheless, there are a few skills that separate database developers from others. These three areas make a significant difference between those that want to stick out from their peers. Understand Joins (Inner, Outer, etc.) Relational databases are all about the relationships among data. That means you are limited in how you can utilize these tools until you can leverage the relationships as part of a query. Database relationships, at their most simple, will be among tables. That leads to joins. If you are struggling to understand how to join data from two (or more) tables, then you will struggle to retrieve the desired results. Thus, the best first step in mastering SQL and queries is to get comfortable with how joins work. A Summary of Join Types Complex Queries - The Where Clause Once you understand table joins, then the where clause is next. At its most basic, joins gather data for your query and the where clause filters that down to the exact desired results. These two areas are critical to your understanding to craft high performing queries. The where clause is more complicated though, as it tends to have more options and variations. A where clause boils down to a logical expression. That seems to be why many people that struggle with where clauses hit a mental block. The full spectrum of and-or combinations and throwing in inner select statements can quickly overwhelm even the stoutest logicians. However, you can learn where clauses in steps. There are levels of complexity that will provide you the tools required for higher levels of data extraction. The good news is that these tend to have a reduced level of impact. Those first few tiers of where clause understanding can provide all you need for eighty percent (or more) of the requirements out there. A Where Clause Tutorial Stored Procedures and Functions It is possible to do a lot of work with a database and never write a stored procedure or function. However, this is a skill that all database developers have. You cannot honestly call yourself a database developer if you lack the skills to code within the database. That means stored procedures and functions. These tools are not needed for every solution. Nevertheless, they can make a significant difference in the maintenance, scalability, and performance of an application. They are easily underestimated by those that do not understand them. DBVisualizer How To – Easy Database Administration and Usage Database Job Roles and Vendors – Databases Overview Part 2

Oct 23, 2019 • 21min
Productivity Habits To Start Your Day Right
One of our often stated goals is to make progress on our goals every day. That leads us to look for ways to create daily habits that promote progress and productivity. In this episode, we look at three productivity habits you should adopt for a proper mindset before getting into the craziness that many days become. These are easy to do and highly recommended among modern productivity gurus. List Your Goals For The Day The simplest thing you can do to start your day is to make a plan. Likewise, the simplest plan you can make is a list of tasks. This habit can end your day or start it, but in either case, the goals are to set priorities and reasonable goals each day. Think of this as your roadmap for the day. When things get hectic, or your mind wanders, you can return to this list to regain focus. As a bonus, this also provides a way to claim small victories each day. That may seem trivial. However, we all have days where we are ecstatic to have any good news in our life. Use The Value of Steady Improvement to Achieve Big Goals Review Your Schedule Planning is a great way to start your day. That includes looking over your prior commitments. Give your calendar a once-over at least and make sure you have a high-level view of where you need to be and when. An appointment you forget about or that you scramble to fit in (because you forgot about it) can be a substantial negative impact on your productivity. Of course, it also can cause you to annoy or lose the respect of others. Our lives tend to be very busy, and that makes it easy to overlook or forget an appointment. Therefore, a habit of starting each day with a review of your schedule is needed and will reduce the risk of that embarrassing situation. Quiet/Reflection Time Taking time out is one of the better productivity habits you can create. We see this in many situations. A little time to "take a deep breath" is a key step in thinking outside of the box or other epiphanies. When we start our day in some style of reflection, it helps us positively set our attitude. The return on investing a little quiet time is rather amazing. However, do not take my word for it. Try it out for a week or two, and see how effective it is for you. Mindfulness Tools

Oct 21, 2019 • 23min
Three Everyday Applications For Developer Productivity
We live and breath technology. Thus, most of us have several everyday applications for developer productivity. While each of us has our way to work and preferred applications, there are three options you should look into. These are personal favorites and great ideas to up your game in a short time. Codacy Static code analysis is one of those areas where developers do not do an excellent job of using the tools available. That can be a significant problem in our goal to become better developers. Therefore, I chose my favorite as our first application. Codacy is more a site than an application in the traditional sense. Nevertheless, this SAAS solution can help you improve your code quality in minutes. Try this site out for any language you code in. The only extra work needed is to link your git repository to the site and wait for the analyzers to run against your latest commit. The value is incredible, and worth your time to try it out. https://codacy.com Code Review and Analysis Tools (Free and Low-Cost) Grammarly Whether you are an avid writer or someone who hates putting together an email, Grammarly can help you. This plugin and desktop tool gives you spelling, grammar, and usage checking all in one simple interface. It can run alongside whatever editor you are using and is like having a professional reviewer on hand for even your most insignificant communications. Thus, while this is essential for your professional communications, it is one of those everyday applications that can make you seem smarter while improving productivity. The less you like writing and grammar, the better. This solution takes all of that off your hands and can serve as an educational tool by providing suggestions and explanations for the same. Trust me; you will see your writing quality improve overnight. https://grammarly.com Evernote The last of our developer productivity applications is one that is useful seven days a week. Evernote provides a note-taking tool you can access anywhere. It has become more than a simple editor over the years and offers ways to track and edit emails, attach documents, share content, and more. The ability to share that content effortlessly across devices is ideal for the modern connected society. Instead of trying to remember what device held that document or where you stashed a note, Evernote can be a one and only stop. There is also a search feature to help you quickly retrieve multiple notes on a topic. https://evernote.com

Oct 18, 2019 • 21min
Three Technical Certifications To Advance Your Career
There are many ways to advance your career and earning potential. A degree is one path. However, technical certifications tend to be easier to earn and equally as valuable. The process of going through a certificate track is an excellent way to learn new skills and validate them for others. The challenge with this path is to select the technical certifications that are best for pay and the latest jobs. AWS Solution Architect/Google Cloud Architect Everyone has heard about the Cloud. Unfortunately, that does not equate to a lot of highly-skilled resources being available for the needed work. While there are several Cloud vendors in the industry, the Amazon and Google platforms are the most popular. There is a lot of work out there for those that pursue it. On the other hand, there are a lot of people that desire those jobs. That combination makes these perfect areas to acquire a technical certification. The more advanced your certificate, the better. The positions you win can be long-term and high-paying, along with being cutting edge. These technologies are also here to stay. Therefore, the time and resources you invest in these certifications will have plenty of time to provide a return. https://aws.amazon.com/certification/certified-solutions-architect-professional/ Scrum Master The "Agile" methodology and scrums, in particular, are prevalent. Thus, certifications related to them are in demand. This area is one where a lot of people think they can do the work. However, they do not completely understand what needs to be done. The argument against these sorts of technical certifications is that the underlying concepts are not that hard to understand. Nevertheless, it seems few people spend the time doing so, and that makes certifications valuable to employers. Rather than building some form of technical evaluation, a hiring manager can fall back on requiring a certified scrum master. That provides them the comfort of having someone that knows what they are doing to run the ever-increasingly necessary scrum process. CISSP/CRISC Security is a huge topic. It even spills out into the non-technical world on a daily basis. This fact makes the security-related jobs highly visible, and they have commensurate pay. While any security certificate is useful, these high-end technical certifications can kick-start your career. They are becoming similar to technical degrees, six-sigma, PMP, and other niche certifications that are often requirements to even apply for a position.

Oct 16, 2019 • 21min
Three Important AWS Services Developers Should Know
We spent an entire season going over Amazon AWS services at a high level. That shows how many options you have available in that world. However, there are some options that are more important AWS services to know. These are the core offerings upon which many other services are built. Thus, it provides a good foundation for growth. Elastic Compute Cloud (EC2) The first of our important AWS services is the Elastic Compute Cloud. The short name for this service is EC2. This service provides a virtual machine. While the size, power, and storage can all vary, at its core, EC2 is a virtual machine. There is a free tier option for this service that will allow you to create a UNIX server and work with it for a year. The power will not allow you to run a highly popular web site. However, you can create a little development server, run a web or application server, and get familiar with all that you need for such a device. While this may not seem very valuable to a software developer, it is an excellent secondary skill and experience to have. EC2 is also a unique way to play around on a UNIX command-line and work with security. Installing WordPress on Amazon AWS EC2 Launching Your Apache Web Server on Amazon's EC2 Simple Storage Service (S3) While EC2 is a foundational service for processing, S3 is a foundational storage option. This service is used by a lot of applications and sites to store data securely on an enterprise-grade platform. Thus, you can backup files here, treat it as a CDN, or even as a file server of sorts. The S3 administration tools are easy to learn, and you can get up and running in minutes. Also, the API is easy to learn and provides several examples to kickstart your development. Cloud 9 This service provides a cloud-based IDE you can use for coding on your EC2 (or another vendor VM) server. While this is useful for making adjustments to server-based code, this has grown to be good enough for creating virtual development environments in the Cloud. Even better, this tool and its features are regularly improving. Therefore, keep up with the latest developments here as the tool that is "not quite there" today may be your tool of choice next year.

Oct 14, 2019 • 21min
Three Important Development Languages For Your Career
In this episode of three things for improving your career, we look at important development languages. This is not a look at a primary language. There are a few good options, and the best will depend on your situation as well as where you live. These will provide you more tools for solving problems while enhancing your resume in crucial areas. Javascript Frameworks (React or Angular) Javascript has grown into a language that is used in a lot of development. There are even situations where a javascript framework can create an entire solution. There are several frameworks available. However, the good news is that once you learn one, the others will be comfortable to use as well. The popularity of React and Angular makes each of them an excellent place to start. Product Catalog: Building a Mobile App with Appcelerator Swift The use of Swift for native Apple applications makes it one of the most important development languages for that platform. There are other ways to create those applications. However, Swift provides a lot of power and is not too hard to learn. The swift language is based on objective-C. It is object-oriented and provides a lot of library features to help you solve common problems. Swift is a language that is substantially different from C-Sharp, Java, PHP, and other popular development languages. That makes it excellent for expanding your coding skills as well as a valuable one on your resume. Python We see a lot of javascript filtering into platforms like NetSuite, Salesforce, and many others. This situation leads to developers learning javascript to solve specialized, non-solution, problems. Python is one of our important development languages for the same reason. There are a lot of powerful libraries and tools that are driven by this language. An example that jumps to mind is the scraping tool, Scrapy. There is a lot of power in that tool, and you can find similar results with serverless solutions. The low overhead and ability to quickly create useful code has made this an excellent language for a broad range of tasks, utilities, and applications. Amazon Lambda – Go Serverless


