Develpreneur: Become a Better Developer and Entrepreneur

Rob Broadhead
undefined
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  
undefined
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.  
undefined
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.  
undefined
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
undefined
Oct 11, 2019 • 21min

3 Habits For Every Day and a Happier Life

We take a turn away from technology in this episode to focus on life.  It is hard to be a better developer when your daily life is miserable.  Therefore, it is vital for us to look at some steps for a happier life.  These little habits are easy to start and can be a significant impact in positive ways. Daily Progress Makes for a Happier Life It may be my personality, but I think one of the worst things is being stuck in a rut.  There is nothing like a rut to make every day seem like a repeat of the previous one.  Thus steady progress is key to a happier life.  Note that our progress does not have to be substantial each day.  Small steps in the right direction still get us closer to our destination.  Take advantage of that fact and look for little ways to make progress on your goals every week, if not every day.  You will avoid feeling like being in a rut and see those goals get closer every day. Use The Value of Steady Improvement to Achieve Big Goals Smell The Roses This recommendation is such a cliche.  Nevertheless, it is entirely correct.  Your particular roses may take many forms.  However, some things make us happy, and we should embrace these when we can.  The simpler the source, the better.  You may find pleasure in the smell of fresh coffee, watching a sunset, or going for a walk.  Make sure you set aside time to do these things regularly.  Those breaks can relieve stress and make you happy.  That will do all sorts of things to make you healthier and lead to a happier life.  You will also find that burnout is not as common and might be able to avoid it altogether. Show Your Appreciation Appreciation and affirmation are falling out of everyday discourse.  We seem to think that any positive comment about others somehow detracts from us.  Ok, maybe it is not that bad.  However, it looks like giving compliments of any kind is a dying art.  This step will not only make you a little happier, but it can also make your work environment better.  Your co-workers will appreciate the positive attitude and often will repay your affirmations in kind.
undefined
Oct 9, 2019 • 25min

Three Suggestions For Better Meetings

There are some activities that are part of any job.  While not all of these are also a common concern, it does seem that one often bubbles to the top.  That bad boy is the meeting.  Whether we are talking about a team, organization, or planning version of these activities, we all have bad experiences with them.  Thus, we can all improve our productivity by tackling ways to have better meetings. An Agenda Leads To Better Meetings The old cliche of a map is required to get to our destination holds in the case of an agenda.  One of the quickest paths to better meetings is to create (and share) an agenda.  This step provides a map for us, and the attendees, to follow so the meeting can stay on track.  While this may seem like just another bit of busywork, it is far from it.  Think about every high-end meeting you have attended.  These examples include classes, conferences, and guide-led vacations.  There is always an agenda.  That is such a staple that you likely question the professionalism of the leader when one is not available.  When you acknowledge that it is a crucial indicator of a professional meeting, then it should be obvious what you should do. Set, And Respect, A Time Schedule The most common complaint about a bad meeting is a lack of respect for the attendee's time.  We sum this up with the statement that it was a "waste of time."  Therefore, we can see that a path to better meetings is finding ways to respect, and not waste, the time of the attendees. This step is easy to take.  Set a schedule, start on time, then end on time.  Yes, I understand that some groups are used to starting late or chatting before getting to business.  You can either put that on the agenda, (e.g., Introductions and general discussions) or launch into the meeting on time and call the room to order.  Once you do this a few times, you will see that the attitude in meetings will change to honor the schedule.  There is nothing magical about this, just set expectations, and make sure you help everyone meet those goals. Time Tracking Solutions – Free and Low Cost Provide a Recap or Summary When you have better meetings, then you will want to advertise the fact.  The best way to drive home the point of how well the time was spent is to provide a recap.  This report does not have to be a detailed minute-by-minute document.  It can be a high-level summary that documents the decisions made, key discussion points, and action items that came out of the meeting.  When you do this, you provide a way for the attendees to see the value of the time spent as well as a forum for clarification if anyone walks away with a different understanding of the results.  This recommendation is not just a CYA tool.  The goal is to ensure everyone walks away from your discussions on the same page and agreeing on the outcomes. Business Communication - Critical For Success
undefined
Oct 7, 2019 • 25min

3 Ways to Embrace and Improve Unit Testing

Quality Assurance is an art as well as a skill.  We all can randomly break things.  However, testing is not just about breaking things.  It is also done with the goal of providing a sense of quality and stability.  Thus, we need to be intentional with our plans.  This process starts at the smallest level so let's look at three ways to improve unit testing. Create and Test For Exceptions, Notifications, and Messages One piece of the user experience is messaging and notifications.  These may appear to confirm a step, show success, or point to errors.  When we build a unit of code, then we need to include ways to provide feedback for these messages.  This functionality provides a way to improve unit testing.  Unit tests are often built to show the "happy path" and then an invalid path or two.  A better approach is to walk through the code for every possible category of failure and ensure it handles each one correctly.  The notifications and messages are indicators of these failure categories.  You can see them in the requirements.  However, the code provides a perfect level of granularity for us to exercise each logical path.  When we are done writing our tests, there should be a validation of every error or success code and message the unit can produce. A General Approach To Testing Strategies For Developers Improve Unit Testing Through Edge Cases This suggestion is a common one in our past discussions.  Nevertheless, this is an essential piece for us to improve unit testing.  Code tends to break as we get to the edges.  This trend is due, in part, to that being where details become critical. Also, it comes from how many test values are not on the edges.  We tend to test around the happy path more than edges.  It is easier to randomly pick values closest to the happy path in many situations so that should be expected.  The details are a critical part of high-quality code.  Thus, those are what we want to center our tests around.  Provide unit tests that are just inside, just outside, and precisely on the limits of acceptable values.  The majority of bugs live here so match that knowledge to your testing approach.  Build And Test As You Code When we test and find a bug, the amount of potentially broken code is critical to a fix.  The faster we narrow down the scope to the lines that cause the bug, the shorter the time to start on a fix.  Thus, it is only logical to reduce our testing to small and well-known units of code.  While unit testing should focus on small chunks of code, those are not always stand-alone n nature.  There are often system-level rules and data that provide assumptions for our functional piece.  When we are unsure of the quality and validity of those other units, then we might see a false fail for our code.  Therefore, we are going to be able to tests and fix better if we are building on pieces that are known to be correct.  We will see this when we test as we develop.  This approach also helps to create a good habit of writing unit tests for all of our code.  In the end, we should not consider a unit as "done" until there are unit tests for that code as well as the source itself. Simple Guide to Testing: Don’t Forget To Test Your Code.
undefined
Oct 4, 2019 • 25min

3 Quick Ways To Manage Email

It is impossible to provide modern productivity suggestions without including a way to manage email.  This form of communication has done so much for us in shrinking the world.  On the other hand, it is also a substantial use of our time.  There are several important conversations we want to track.  However, there is also an endless stream of spam.  Here are some suggestions to help you with this modern struggle. Manage Email By Checking Less One of the most overlooked ways to reduce the time spent on email is to reduce how often you check.  Many of the mail clients are configured by default to check every minute or so for our latest email.  This approach makes it hard to maintain any form of focus.  Even if the email itself is pointless and we merely glance at it, we still stop to check that notification.  Pavlov's dog would be proud of us.  Set the mail server check on your devices to hourly or less.  You will find yourself more productive almost immediately. There is a common misconception that we need to check and respond to an email immediately.  That is what a phone call (or even a text) is for.  We should not expect a near-instant response to an email, nor should we provide one.  When we rush to respond to an email, we are more likely to make mistakes, and we tend to miss out on the strengths of that mode of communication. Use Filters or Rules Spam filters are commonly used to reduce email in our inbox.  However, that is just the first step.  Most mail clients include rules and filters to apply to the mail that gets to that inbox.  These tools can sort, forward, reply, and even delete messages.  This approach is not necessarily for beginners.  However, most of the rule creation tools are pretty easy to understand.  Thus, you can start simple and grow up to complex rules and actions over time.  I took this path and grew to hundreds of rules and hours of saved time over a period of a few years. Store, Save, and Search The most intimidating part of a desire to manage email is a huge inbox.  We can easily decide there are so many messages in there it is a lost cause to manage them.  Sometimes this even leads to people refusing to read a large number of their emails.  This refusal can also extend to potentially critical messages.  When you have a way to categorize and store emails quickly, this situation can be averted.  Instead of a scarily full inbox, you can manage smaller groups of messages at a proper time. For example, you might push notes about your kid's sports or school to a "bucket" for reading at night.  You might also find it useful to throw all of those funny emails from your crazy Aunt to a bucket for reading when you need a laugh.  The end goal is to manage email by reading messages on your schedule rather than as they come in.  This step alone will be significant in your attempt to tame this electronic beast. Cross Platform Mail Client – Free and Low Cost Five Things To Take Off Your Plate and Streamline Your Work
undefined
Oct 2, 2019 • 21min

Desktop Security - Three Ways To Turn Aside Hackers

There are many areas where our three suggestions can make a quick improvement.  Desktop security is one such topic.  The subject of security comes up every day in the news and our work.  It is all around us.  However, we can use tools wisely or not.  Here are three you should use properly. Strong Passwords The list of typical passwords is laughable.  Of course, it also should bring tears.  A password of "123456" or "password" is not going to stop anyone that has a little desire to get to your system.  While a stronger password is the first step, that is not enough.  You should also avoid reusing passwords and change them regularly.  The less time a hacker has to guess your password, the harder it will be to gain access to your systems.  Also, if you use a password somewhere that gets hacked, that becomes compromised.  Whatever the value is, throw it out and do not use it again. A Strong Password Generator Virus Scan For Desktop Security Virus scan tools are everywhere.  Use them.  This recommendation includes non-Windows machines.  While Windows has been historically a target of viruses, nasty things are showing up on other platforms now.  You also want to be sure you do not pass on an infected file even if it did you no harm.  The only thing worse than being hacked is being the person that others trusted when they got hacked. Some Free Virus Scan Tools Use A VPN A VPN, or virtual private network, is like creating your tunnel to the Internet.  Your data will be encrypted and harder for others to "sniff."  This used to be a tool for those that wanted to avoid being tracked for nefarious purposes like pirating software or content.  However, that is not the only reason to keep others from spying on your data.  To the contrary, these days, it is vital for us to think about security when we jump on any public network.  This action is one that occurs daily, so the sooner you adopt a VPN, the sooner you will be a harder target for hackers. VPN Tools You Can Try
undefined
Sep 30, 2019 • 22min

Three IDE Options For Improved Productivity

Our tour of three things you can do to make your life easier will look at IDE options in this episode.  We all have our favorite IDE within the first year or two of professional development.  That usually falls into either the Eclipse or Visual Studio camp.  However, there are a lot of other options available.  While your primary tool is useful, these additional tools may provide a better choice in specific instances. JetBrains IDE Options This family of tools may be your primary source for IDE options.  While they have a flavor specifically targeted at a broad range of platforms, they also have a "feel" that is maintained across each of them.  This suggestion may be the most expensive (i.e., not free) of the IDE options we look at in this episode.  Nevertheless, there are free download trial options, and I think you will find them worth the money.  I have done so, and I often return to the Jet Brains site to keep up with their latest offerings. The Jet Brains Home Page Visual Studio Code Visual Studio is a large and full-featured product.  It should be among the first considerations when you are considering team development IDEs that can be used to build enterprise systems.  However, all of that functionality and power comes at a cost in size and resource utilization.  When you want a simple, yet powerful and extensible IDE, then Visual Studio Code is a good fit.  The user experience with this tool is not the same as its full-blown brother.  Instead, this seems to fit smaller projects and individual file editing needs in a comfortable way.  I use it on an almost daily basis to edit configuration files, text files (small and very large), and any task that is helped by a macro.  I do not view this as a competitor to the other tools out there.  Instead, this is a helper tool you will find useful to install on your development machine.  By the way, do not let the Visual Studio name dissuade you.  While the Visual Studio tools are Microsoft products, they do have versions that run on non-Windows platforms very well. Check out the Visual Studio Code Home Page Database IDE Options This is another bucket item with several options.  While there are some excellent IDEs for databases that work with several engines, there are some good ones that are platform-specific.  Instead of trying to match a platform to a tool, we just kept this a general point.  You will spend a lot of your time working on and in databases.  That goes with the territory.  Although you can always fall back on command line query engines, these tools will make you more productive.  They often will teach you a few things about advanced features as well.  Is there anyone that does not like to save time and learn new stuff? Learn More: Database IDE’s you should check out

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