In this episode, we discuss our journey through podcasting, where it all started, where it lead us, and why we are stepping away from it.
Read more ›
The post A Farewell To Our Fans appeared first on Complete Developer Podcast.
When major system issues occur, it's already too late. With large scale problems, it usually takes a while to diagnose the issue, fix it, get it through testing, and get a fix deployed. This is true even of hotfixes. It's better to try and predict where issues may arise before they happen.
Read more ›
The post Preempting System Issues appeared first on Complete Developer Podcast.
Dude, that was terrible, you shouldn't do it that way. This is an example of terrible feedback from a peer. In order to be useful you want your feedback to be direct and actionable.
Read more ›
The post SMART Feedback appeared first on Complete Developer Podcast.
As your system scales, eventually you'll find that your database is the source of all your problems. Apps are often a lot easier to scale than databases, but eventually you have to deal with the database itself.
Read more ›
The post Database Sharding appeared first on Complete Developer Podcast.
Four square is more than a game for the playground. It is also an effective communication tool used to provide concise information about a project or task.
Read more ›
The post Four Square Reports appeared first on Complete Developer Podcast.
With the rapid evolution of tools and frameworks, anything you learned in school or in a coding bootcamp has a short lifetime. If you want a long-term development career, you have to learn HOW to learn from the resources available to you.
Read more ›
The post Getting the Most From Programming Tutorials appeared first on Complete Developer Podcast.
Understanding the differences and similarities between ACID and BASE databases is important in architecting software solutions from small personal blogs to large enterprise level platforms.
Read more ›
The post ACID vs BASE Databases appeared first on Complete Developer Podcast.
APIs are a huge part of development today and one of the most common types of API out there is a RESTful API. REST stands for representational state transfer, which is a software architecture that imposes conditions on how an API should work. Essentially, it was created as a set of guidelines for how communications should work between disparate systems on a complex communication network (like the internet). REST is implemented atop HTTP and uses the standards in the underlying protocol as part of the standards for communication. In a RESTful API, client and server applications are considered to be independent, that is, details from one should not leak into the other, to the extent possible. This also implies that API calls for the same resource should look the same regardless of where they come from – indeed this is required to decouple the client and the server.
RESTFul APIs are built around the inherent statelessness of HTTP. That is, a persistent connection between the client and server is not assumed. This has profound architectural implications in regards to how resources are accessed and mutated. In order to make this disconnected architecture perform well across the internet, this also means that caching will be used heavily. Caching implies further architectural constraints around resource access, as well as careful coding server side to ensure that items are cached (and removed from cache) appropriately. This helps both client side speed and server side scalability. In addition, the lack of a session makes it far easier to spread a workload across multiple servers, as there is no need to synchronize state between them or keep sessions sticky.
Restful APIs are pretty much bog standard web technology at this point. Not only do complex frontends use them, but clients, QA, and other parts of your own system will often do so as well. While Rest APIs are generally standard at this point, there are a lot of mistakes you can make when designing them that make it harder to use your API, create excess load on the server, or just generally increase the frustration level of all involved parties. Certain antipatterns also look good initially, but end up causing problems later when your system gets more users, or more HTTP savvy integrators working with it. We hope this brief overview is enough to save you some time up front on your next API project.
LinksJoin Us On PatreonLevel Up Financial Planning The post API Anti-Patterns appeared first on Complete Developer Podcast.
There is a common demonstration, that we’ll do as a thought experiment, when talking about priorities. It has a person fill a bucket with sand, then try to add as many pebbles to the bucket as possible, following that they are to add larger gravel, then fist sized rocks. The obvious thing that happens is the bucket fills with sand and they are not able to add much else to it. Then they are instructed to add them in the reverse order so that larger rocks first, then gravel, then small pebbles, then the sand. Doing it this way more large items are able to be added to the bucket then the smaller ones fill in the space left by the larger items.
This is used to demonstrate the necessity to prioritize the important items and fit them in first then go in order down to the least important. The larger rocks represent higher priority item whereas the smallest grains of sand represent the least important items. If you fill your time with low priority items you won’t have space for the higher priority ones, but if you start with the larger ones then you’ll be able to fit smaller and smaller ones into the gaps.
Where it gets tricky is in determining where an items falls in priority. Typically the very high and the very low priority items are obvious. A medical emergency is a very high priority item, responding to a friend request from someone you haven’t met is a very low priority item. The rest of the items may not be as obvious and be more difficult to prioritize.
Prioritization can help you to maximize your efforts onto the items and tasks that will give you the most reward. However, a problem with the bucket example (demonstration) is that once you fill in all the gaps with the smallest grains of sand there is no room to breathe in the bucket. It becomes difficult to make adjustments when everything is packed so tight into the bucket. The same is true of your schedule, when you pack too much into it you don’t have capacity to make adjustments. This can work for a while, especially when you are at crunch time but shouldn’t be the norm as it is not maintainable. Use the information discussed here to guide you when you are planning out your priorities and don’t forget to leave some room to breathe in your schedule.
LinksJoin Us On PatreonLevel Up Financial Planning The post Prioritization appeared first on Complete Developer Podcast.
Mob programming is a technique for getting multiple developers in the room, working on the same code. While possibly not the best technique for many situations, it really shines in certain narrow use cases. When it does work, it can often produce impressive results that a few separate developers couldn’t produce on their own. The collaborative aspects of mob programming are similar to pair programming in some respects, with very similar upsides and downsides.
In a mob programming session, a stakeholder and the team will first identify the goal of the session, which should be a testable outcome. Then everyone works together to come up with a general strategy and procedure for getting the work done, including what tools will be used to accomplish the work. This is a critical first step if you want to avoid stopping and rewriting code frequently while everyone else is watching.
Then, when the session begins everyone goes into a room and works together. One person will be typing for a while, while the rest of the team looks at the screen (or hopefully a projector) while the first person works. They will offer feedback as the first person does some work. The person writing the code will change frequently so that they don’t burn out. The rest of the team is there to support the first person as well as to offer feedback about various aspects of the code. In effect, this allows for the session to have the blessing of the entire team, and to incorporate the knowledge of the entire team. More tasks will probably be assigned to various team members as a result of the session as well.
Mob programming is a seldom-used, but often powerful approach to getting software written. While it’s not always the best choice, it can be very useful for improving team collaboration or for exploring areas where there are gaps in the team’s knowledge.
LinksJoin Us On PatreonLevel Up Financial Planning The post Mob Programming appeared first on Complete Developer Podcast.
File transfer protocols provide a standardized method for transferring files between two or more computers or servers over a network. They define the rules and procedures that are used to ensure that files are transferred efficiently and securely. Typically, they involve a client-server model where the client computer initiates the transfer request and the server computer responds by sending or receiving the requested file. During the transfer process the protocol specifies how the data is formatted, transmitted, and received.
In addition to the basic file transfer functionality, many protocols also provide additional features such as authentication, encryption, compression, and error detection/correction. These features help to ensure that files are transferred securely and without errors, even over unreliable or unsecured networks.
There are several protocols used for file transfer, each with its own advantages and disadvantages. Features like authentication, error detection, and encryption help to ensure that files are transferred securely and without errors. Different protocols have different strengths, making it possible to choose the best one for a particular use case. Some protocols lack security features, making them unsuitable for transferring sensitive data. Others may be slower or more complex to use than others, which can be a disadvantage for certain applications.
File transfer protocols are essential for transferring files over networks, whether for personal or business purposes. They provide a reliable, standardized way to transfer files that is widely used across a variety of industries and applications. This is just an overview of the more common protocols available. Use the information about them and about the important characteristics the next time you need to make a decision about which protocol to use in a particular use case.
LinksJoin Us On PatreonLevel Up Financial Planning The post File Transfer Protocols appeared first on Complete Developer Podcast.
A distributed denial of service attack, or DDOS is an attack in which a hostile party attempts to disrupt the normal functionality of a target server, network, or service by overwhelming a target and its related infrastructure. The goal is to disable the service, or at least degrade functionality enough to impact users. These attacks can occur for a variety of reasons. In some cases, an unscrupulous competitor may decide to attack to drive your customers to them. Sometimes DDOS attacks are used for hacktivism, or as a part of a larger military or political conflict. Sometimes it is just for fun. In addition to these potential motivations, sometimes DDOS attacks are part of a larger scam – essentially, you are expected to pay to avoid having your servers attacked.
While this may not sound too impressive yet, in 2019 the average cost of a DDOS attack was around 2.6 million dollars. The average in 2018 was around 1.6 million dollars. The numbers are continuing to rise, with the number of DDOS attacks increasing by 22 percent increase in the number of DDOS attacks hitting financial firms. There are individuals and groups online offering DDOS-as-a-service. It’s possible to launch a large, damaging, and expensive DDOS attack on a competitor for a fairly low price. There is no reason to think that this trend will not continue to increase.
Some DDOS attacks can be mind-bogglingly huge in scope. The largest (so far) sent packets of data to 180,000 web servers, each of which sent data to google. The attack averaged around 2.54 Tbps (terabytes per second) of data to google. Google managed to mitigate another attack that would have been even larger in June of 2022. That attack peaked at 46 million requests per second, lasted about 30 minutes and was conducted by more than 5000 devices from 132 countries. Not only do DDOS attacks represent a substantial risk for website owners, but they can also be used to create a “fog of war”, while other more insidious attacks occur.
While DDOS attacks are not something developers deal with every day, it’s important to understand them, because you are likely to be in the room when your organization discovers that it is under attack. Because these attacks can often look a lot like standard web traffic at a larger scale. It can be tricky to diagnose them and even more tricky to mitigate them. In practical terms, most web developers won’t have to do much to mitigate DDOS attacks – instead, we’re often called to identify them so that the problem can be forwarded to operations, networking, or devops personnel. However, it’s still important to understand the characteristics of DDOS attacks, because they are fairly common.
LinksJoin Us On PatreonLevel Up Financial Planning The post DDOS Attacks appeared first on Complete Developer Podcast.
Mob programming is a technique for getting multiple developers in the room, working on the same code. While possibly not the best technique for many situations, it really shines in certain narrow use cases. When it does work, it can often produce impressive results that a few separate developers couldn’t produce on their own. The collaborative aspects of mob programming are similar to pair programming in some respects, with very similar upsides and downsides.
In a mob programming session, a stakeholder and the team will first identify the goal of the session, which should be a testable outcome. Then everyone works together to come up with a general strategy and procedure for getting the work done, including what tools will be used to accomplish the work. This is a critical first step if you want to avoid stopping and rewriting code frequently while everyone else is watching.
Then, when the session begins everyone goes into a room and works together. One person will be typing for a while, while the rest of the team looks at the screen (or hopefully a projector) while the first person works. They will offer feedback as the first person does some work. The person writing the code will change frequently so that they don’t burn out. The rest of the team is there to support the first person as well as to offer feedback about various aspects of the code. In effect, this allows for the session to have the blessing of the entire team, and to incorporate the knowledge of the entire team. More tasks will probably be assigned to various team members as a result of the session as well.
Mob programming is a seldom-used, but often powerful approach to getting software written. While it’s not always the best choice, it can be very useful for improving team collaboration or for exploring areas where there are gaps in the team’s knowledge.
LinksJoin Us On PatreonLevel Up Financial Planning The post Basics of Git appeared first on Complete Developer Podcast.
Most of us have a reasonable working definition of what “agile” means in a software development context. We all know what it is SUPPOSED to mean, what it means when implemented correctly, and we even probably have some expectations when another developer uses the term. But when talking to a non-technical person, especially someone in an upper management role, we often have a hard time articulating it. And the results of this can be disastrous. There are plenty of magazines, websites, and podcasts that delve into what agile can do for an organization from the executive perspective. And because these are often written by people who stand to make a great deal of money if someone hires them, they can often veer into showing agile as a “silver bullet” for all the organization’s problems. Furthermore, developers can exacerbate this by assuming that management understands the word the same way that they do.
One of the greatest weaknesses that developers have is a bias towards assuming that other people have the same knowledge as we do. This, by the way, is a very common and normal human failing, and it’s something you’ll see in any group with specialized knowledge. Developers who find themselves in non-agile (or fake agile) environments are often quick to complain and suggest doing things in a more agile manner. While this is fine if you explain exactly what you mean, it is absolutely NOT FINE if you don’t. It’s best to be aware that there are a lot of misconceptions going around about what agile is and what it is not. You really, really want to avoid having management try to implement “agile” in the way that they understood it from an article they read in a business magazine (ask us how we know).
Explaining agile to non-technical people, especially executives, is difficult. It’s also something that you are likely to have to do, especially as some segments of the business press do so in an incorrect fashion. If a non-technical person has heard of agile, they probably have misconceptions about it that aren’t going to help. Well-implemented agile will make most organizations more responsive to change and will allow for quicker delivery of working software, but the way that that happens is a bit counter-intuitive. If you aren’t used to it, it’s easy to get the wrong impression of what should be happening at th earlier stages of the process. Worse still, if a non-technical person is in a decision-making position for the agile team, they may force agile to be something that it is not. It’s important that we explain these things correctly, otherwise agile-gone-bad has the potential to be as bad or worse than any other methodology.
LinksJoin Us On PatreonLevel Up Financial Planning The post Explaining Agile To Non Technical CoWorkers appeared first on Complete Developer Podcast.
Almost all development work today is done on teams, both due to the complexity of our work and the sheer volume of it. As time has gone on, development work has also become more intensely collaborative, and “throwing work over the wall” has been acknowledged as being a terrible idea. As a result, the personalities of one’s coworkers has become more and more important. Unfortunately (or fortunately, depending on your perspective), developers exhibit a lot of personality quirks that are common in the larger population, but we often have our own unique “spin” on them.
It’s important to realize that most personality quirks, no matter how irritating, are there because they serve a purpose. Sometimes a personality trait was useful in dealing with a dysfunctional environment in a previous workplace, and sometimes the personality trait is currently useful in your current environment. Personality is often closely tied to emotional reactions to a situation, and as a result, you often find that you have to address those emotions in order to work well with a person with certain personality traits.
While extreme versions of personality traits are often a serious problem, more mild versions of certain personalities can still create some difficulties in a work environment, both at the individual and team level. The trouble is, a lot of these personality characteristics are supremely useful in some circumstances as well, so you probably don’t want to cause someone to change their personality. Rather, you want to figure out a way to work with them so you get the upsides while avoiding the downsides. In some cases, their personality will change over time, but that’s something that is their choice, not yours. You just have to figure out how to deal with it in the meantime.
There are a lot of personality types in development that can create problems in team dynamics, but it’s important to realize that these personality types are there for a reason and that they serve as an adaptation to a specific environment. When encountering (or embodying) these personality characteristics, it’s important not only to see how they annoy you and cause problems, but to also see where that viewpoint is useful. It’s also very useful to figure out how to engage with that viewpoint, both to help with team dynamics and to help the individual growth of team members.
LinksJoin Us On PatreonLevel Up Financial Planning The post 404 Personality Not Found appeared first on Complete Developer Podcast.
ChatGPT is a powerful language model developed by OpenAI that has been trained on a massive amount of text data. It is capable of answering a wide range of questions and generating text in response to prompts. ChatGPT has been used in a variety of applications, including chatbots, language translation, and text completion.
For software developers, ChatGPT can be a valuable tool for improving code quality and efficiency. By using ChatGPT, developers can ask natural language questions about their code, get suggestions for improving it, and even generate code snippets. This can save developers time and help them catch errors and improve the readability and maintainability of their code.
ChatGPT is a powerful language model that has the potential to transform software development by making it easier for developers to understand, write, and maintain code. With its ability to generate natural language descriptions and code snippets, provide intelligent code completion suggestions, and identify potential code smells, ChatGPT is a valuable tool for developers looking to improve their code and streamline their development process. As NLP and machine learning continue to evolve, we can expect to see more innovations like ChatGPT in the software development space.
This episode was completely written by ChatGPT.
LinksJoin Us On PatreonLevel Up Financial Planning The post ChatGPT for Developers appeared first on Complete Developer Podcast.
Breaking down your goals into more manageable tasks creates the flexibility to adjust as needed and brings clarity to the goals. When seen from the perspective of a step by step process goals are seen not as daunting behemoths to be gazed on in wonder but as complex things that can be accomplished through diligence and careful planning. This makes the process of achieving a larger goal more achievable.
In order to break down a goal it must be SMART: specific, measurable, achievable, relevant, and time-bound goals that provide a clear and concise road-map for achieving your desired outcome. Specific goals are clear and unambiguous, while measurable goals have clearly defined criteria for success. Achievable goals are challenging but realistic, while relevant goals are aligned with your personal or professional aspirations. Finally, time-bound goals have a clear deadline, providing a sense of urgency and helping to track progress. By setting SMART goals, you can break down complex tasks into smaller, achievable steps and stay focused on your ultimate objective.
Accomplishing smaller steps along the way can provide a sense of accomplishment and keep you motivated to continue working towards the goal. Breaking down your goals increases your accountability as well because it provides a simpler road-map for you to follow in order to reach your larger goal. This simpler road-map helps you stay on track when going after larger, seemingly impossible goals. Throughout this year we are showing you how we break down our goals, use the information in this episode and the examples throughout the year to make even your most lofty goals doable.
LinksJoin Us On PatreonLevel Up Financial Planning The post Breaking Down Goals appeared first on Complete Developer Podcast.
Depending on your use cases, your application may need to work well on Apple, iPhone, Windows, Apple, Linux, and even various types of tablets. And that’s just if you are looking at the US market – international markets have loads of other options. This is part of the reason web applications are so popular – it’s a way of making cross-platform concerns into someone else’s problem. And frankly, that’s a pretty rational approach, as dealing with the quirks of dozens of desktop, mobile, various tablets and the like is often more than an application development team can handle.
However, a web application, even with all the fairly-recent advances in things like PWAs, may not be sufficient for your clients’ needs. In particular, if you are dealing with disconnected data, memory or processor intensive applications, or just applications that use the file system, you may need to run your application outside of a browser sandbox. And if you do need to support multiple platforms, building a cross-platform app is often the correct choice, both from a business and a development standpoint.
But, like most things in life, there are tradeoffs that you need to consider. By definition, any cross-platform framework that you use is going to mean yet another layer of abstraction between you and the system on which you want to run. And all abstractions, every last one of them, tend to leak. All abstractions are simplifications of a more complex problem. While that simplification may be beneficial, you’ll need to take special care to make sure they are not OVER-SIMPLIFICATIONS. If they are, then you are going to have to work around them. This is, essentially, the core problem in cross-platform development.
Cross-platform applications offer a lot of advantages both to developers and to the companies that employ them. That said, there are a number of pitfalls that you figure out after you’ve worked on a few of them. The added complexity of these applications can often be difficult to see up front – usually by the time you find something that is difficult or impossible to handle, you’re already well into sunk cost territory. However, many of the problems you’ll encounter with any cross platform application framework (whether mobile or otherwise) are actually fairly predictable. If you know what the likely issues are going in, you can more effectively evaluate the risks they pose before you’ve invested in learning and using a cross-platform tool.
LinksJoin Us On PatreonLevel Up Financial Planning The post Cross Platform Pitfalls appeared first on Complete Developer Podcast.
“The habits we choose to live by can shape our lives and define who we are.” – Stephen Covey
As software developers, our habits can greatly impact our success and the quality of our work. The 7 Habits of Highly Effective People is a book written by Stephen Covey that outlines key habits that successful people have in common.
Last year we discussed these from a negative sense, talking about 7 habits of unsuccessful people. These 7 habits are ones that were not developed but discovered when looking at the most successful people and what they have in common. The most successful people will exhibit each of these habits in one way or another in their lives and/or careers.
Each of these habits can be applied to your life and career. From being proactive and beginning with the end in mind, to putting first things first and thinking win-win, these habits can help you become more effective, improve your relationships, and achieve your goals faster. By seeking first to understand and synergizing with others, you can foster creativity and build stronger relationships. And by sharpening the saw and taking care of your physical, mental, emotional, and spiritual well-being, you can maintain a healthy work-life balance and continuously improve your skills and abilities. Use this information to adopt these habits and become the most effective version of you.
LinksJoin Us On PatreonLevel Up Financial Planning The post 7 Habits of Highly Effective Developers appeared first on Complete Developer Podcast.
Architecture projects are some of the most fun projects in development. Or at least they often appear that way. There is often the perception that in these projects you can fix all the little things that annoy you in your work environment. You can make it easier to roll out new features, while keeping the system more stable and easier to maintain. While this can be true, there is some risk here. In particular, many architecture projects seem to have no purpose other than massaging the egos of the developers on the project. While you might get away with this for a little while, it will eventually cause problems for you. It’s also very easy for developers to get caught up in “building castles in the sky”. Left unattended, developers tend to build more and more complex things over time – it’s one of the things most of us enjoy. While often useful within a proper context, it’s far easier to get lost in the weeds on architecture projects.
It’s also a mistake to think of architecture projects as projects that don’t have customers. An architecture project almost certainly has some indirect impact on clients, otherwise why do it? Your clients also include the rest of your team. Other developers will have to deal with the implications of your changes. QA will likely have to change test procedures. Operations may need to deal with new and different errors while deploying brand new resources to various environments. Your database administrators may deal with changes to system load. Your security team will likely have new things to audit and potential new vulnerabilities to worry about. Even groups like customer support, sales, and the like may be impacted, depending on what you are doing.
Architecture projects can be fun and can provide huge improvements to software systems, provided that they are conducted correctly. However, many developers (ourselves included at various points) get too focused on the architecture considerations we are dealing with, while ignoring the impact on the rest of the system. This can cause a perfectly good architectural solution to fail in a drastic manner. It can also alienate the rest of the team, irritate management, and actively harm customers in a way that WILL cause problems for your team, if not the entire organization. Fortunately, most of the big mistakes you can make are very easily avoided, provided that you plan ahead, use an iterative approach, and involve the rest of the team.
LinksJoin Us On PatreonLevel Up Financial Planning The post Software Architecture Mistakes appeared first on Complete Developer Podcast.
Social engineering is defined as the use of psychological tactics to manipulate individuals into divulging confidential information or performing actions that may compromise their organization’s security. Social engineering attacks often target the weakest link in an organization, which is the employees. They are looking for easy access into a system.
It is important to have a firm grasp of social engineering as software developers since we are in a unique position to create security systems and protocols that are resistant to social engineering attacks. By understanding these attacks, developers can build systems that better protect against them.
Social engineering is a serious threat to software developers, as we are often targeted because of our access to sensitive information and technical knowledge. It is important to be aware of the different types of social engineering attacks, such as phishing, impersonation, baiting, pretexting,. This is not an exhaustive list as social engineers are always coming up with new ways to access things they shouldn’t. Use the best practices discussed to reduce the risk of falling victim to a social engineering attack.
LinksJoin Us On PatreonLevel Up Financial Planning The post Social Engineering appeared first on Complete Developer Podcast.
The unix philosophy was originated by Ken Thompson and describes a set of cultural norms and approaches to minimalist, modular software development. This philosophy was based on the experience of the leading developers of the unix operating system. In the early days of software, there weren’t as many software tools as there are today – in fact, software tools (that is, tools that software developers use to build software), were not really around, at least not in a form you’d recognize today. Software tools, as envisioned by the original unix developers, were a set of simple tools that could be combined to accomplish a task. These included things like source code editors, compiles, debuggers, and the like. This was also the philosophy for building unix operating systems and is largely still in use today at some level in every major operating system.
There are a number of historical descriptions of the unix philosophy, going all the way back to the early 1970s. While emphasizing different points, they all were trying to reach the same result, that is, making it as clean as possible to build software in a modular, transparent, and combinable manner. These approaches favored simplification of code and systems over raw performance (although obviously, performance implications still had to be considered as well). The approach also introduced ideas that we are still refining today, such as early and iterative testing of new ideas, rather than building the entire system before doing any testing at all. They even talked about larger systems being composed of smaller tools with smaller scope being composed together to produce the required functionality. You might recognize the former as sounding similar to what you’ve heard while learning agile and the latter to resembling discussions about the single responsibility principle, as well as microservices.
While the unix philosophy is old, it’s still very relevant for the way software is built today. In particular, the lessons of the early unix pioneers will probably always be relevant for software development. They learned the hard way about what is required to make stable, maintainable software for general purpose computing. Even in today’s world of massive, distributed, cloud-based systems, the early lessons from the old unix days are still good ones. After all, you can still see echoes of the unix philosophy in today’s discussions about microservices. This is unlikely to change, even in your lifetime, because these principles are based upon hard won knowledge at a time when computing was very different than today.
LinksJoin Us On PatreonLevel Up Financial Planning The post Unix Philosophy appeared first on Complete Developer Podcast.
You don’t have to be a morning person to start your day off right. A good morning routine can make a tiring stressful day survivable and possibly enjoyable, whereas a poor morning routine can destroy even the most enjoyable of days. The less of a morning person you are the more important a routine becomes as it reduces the requisite cognitive functioning early in the morning when you may not be fully awake or aware.
However, a morning routine is nothing without a good night before it. That’s why we talked about nightly routines first a few weeks ago. For a successful morning routine your nightly routine should be established and you will need to get a good night’s sleep. Though there are times that this may not happen, which is why having the routines at night and in the morning are there. Also, with a good nightly routine you are able to set things up for yourself to get more done in your limited morning hours.
As you can see the implementations of the elements of the morning routine vary but they are still there. How you implement your routine may be different based on your life, schedule, and circumstances. You may have small children to get ready for school, or you may be in school yourself and have a roommate. Whatever your circumstance take some time to find a way to incorporate these elements into your morning and you will see a significant difference in your day.
LinksJoin Us On PatreonLevel Up Financial Planning The post Improving Your Morning Routine appeared first on Complete Developer Podcast.
We had an issue with out CDN, we apologize for the issues with access to the episode HTTPS and SSL. We fixed it on the website but the podcatchers did not update because the RSS didn’t push a new episode. This apology should fix that so that you are able to listen to that episode now.
Thank you for listening,
Will and BJ
The post Apology appeared first on Complete Developer Podcast.
As security concerns have become more and more important on the web, there has been a growing movement to make sure that communication between the client and the server is ALWAYS encrypted. There are many reasons for this. For one, encrypted communications are more difficult to spy upon, and more difficult to tamper with in transit. It also means that people feel safer dealing with sensitive data online, including financial transactions, medical information, and private conversations. To varying degrees, secure protocols also help assure the client that they are sending data to the correct recipient as well – after all, there is no such thing as secure communication without verifying the recipient. Encryption on a transport channel is also small, but critical part of the larger security picture – if you can’t trust the data coming in, many other operations on that same data are a bad idea at best.
HTTPS is intended to help protect traffic on the web, both from people spying on it in transit, as well as people who want to tamper with the traffic en route. While this may not sound like a particularly scary problem, it is actually very insidious. If a third party can tamper with data in transit, they can insert false information, or even compromise the client with things like malware. SSL and HTTPS are commonly used on the web to help protect traffic from these threats.
While HTTPS and SSL are not that complicated on a surface level, the implications of them are often not discussed in detail. It’s kind of a shame, really, as they provide a lot of value and are there for good reason. While there is a tremendous amount of depth to these topics, they really aren’t that complex at a surface level, which is where most of us will encounter them. Understanding these basics will help you make sense of a lot of things you encounter while building web-based applications.
LinksJoin Us On PatreonLevel Up Financial Planning The post HTTPS and SSL appeared first on Complete Developer Podcast.
Mike Acton gave a talk at the Game Developer’s Conference back in 2019. In that talk he detailed behaviors that he expects from developers he works with regularly. They are positive statements that he then discusses the problems arising from a lack of each behavior.
In a previous episode we reacted to the first half of Mr. Acton’s list. We gave ourselves a time-box to keep from going over and better facilitate discussion. As with the first set, sometimes we’ll agree with him and sometimes we may not.
This is a long list, it took two episodes just to discuss the whole thing. When hearing or reading it the list may appear overwhelming. You may think, how can anyone possibly exhibit all of those behaviors. It is probably not possible for any one person to exemplify all of these behaviors all of the time. You should strive to improve in the areas where you are not showing these behaviors. Every little step is progress toward becoming a better you and living a better life.
LinksEveryone Watching Is FiredJoin Us On PatreonLevel Up Financial Planning The post Everyone Listening Is Rehired appeared first on Complete Developer Podcast.
At work, your boss probably (hopefully) has a pretty good idea of what needs to be accomplished in the next few months. Many business owners have found that productivity frameworks, like the twelve week year, help considerably with productivity. There is a good reason for this – Parkinson’s law specifies that the work will expand to fill the time allotted to it. Systems like the 12 week year help reduce the amount of time available, meaning that (within limits) things get done in a more efficient manner and prioritized differently. A system like this is also helpful in the sense that you only have to have very detailed plans for the next quarter, rather than for the entire year. Since so much can change in a few months, it makes sense to organize your planning process in a way that allows you to plan in a more responsive manner. It also helps to provide urgency to your current priorities in a way that most companies only experience at the end of the year. Many organizations experience a spike of sales during the last quarter because people are trying to meet their yearly goals before the year ends.
So, what is the twelve week year? Essentially it is a system that is built on 8 ingredients of success – three principles and 5 disciplines. The three principles are accountability, committment, and “greatness in the moment”. This last one needs some explanation – it essentially means doing your best work to do what is needed, even if you aren’t feeling it in the moment. There are also five disciplines – having a clear, consistent vision, breaking your vision into a plan with priorities, using process tools to stay on track, using measurements for feedback, and effectively using your time. In a business context, these things work well due to having some portion of the supporting structure in place.
The twelve week year framework essentially helps with accomplishing your goals by treating a 12 week period as if it were a year. You have 12 weeks of focused and planned-out work, followed by a week for planning, reviewing, consolidation, celebration, and a little bit of a break. This cycle and overall structure is very useful when you are trying to be more personally productive, but you do have to modify things a bit to make it fit with your own life. In particular, barring a rather strange psychological makeup, you probably don’t have an adequate mechanism for enforcing process controls on yourself in your own life. You also have a bit more of a chopped up and unpredictable schedule in your personal life than what you would have in the office, so that has to be taken into account as well. Further, you may find it difficult to measure progress in some areas, and your workflow may be very vulnerable to disruption.
The structure of the twelve week year can help you a lot on being productive on your own personal projects, provided that you modify it slightly to deal with the less structured and more chaotic nature of your personal life. Because your personal life is probably not as structured as a business needs to be, some modifications will need to be made to provide appropriate structure. Additionally, because you probably do already have a full time job, this structure has to be modified further so that you don’t end up burning yourself out. Finally, it’s critical to rotate your focus between several different areas of your life over time in order to keep things balanced – your day job probably has one single function, but your personal life does not.
LinksJoin Us On PatreonLevel Up Financial Planning The post 12 Week Year Overview appeared first on Complete Developer Podcast.
In a talk given at the Game Developer’s Conference, Mike Acton discussed what annoys him about most of the developers he’s worked with over the years. He lists them as positive statements and then discusses why a lack of that particular statement annoys him. While they were written for game developers they are generic and apply across the development landscape.
This will be a little bit different from other episodes. We will go through Mr. Acton’s 50 things expected of developers reacting to them as we go along. Sometimes we will agree with his assessment and other times we may not.
To make this easier and be able to hit all of them we have group related ones while still keeping them in the original order. Some we will talk about as a group, others we will discuss individually. We are putting a time-box on this episode and will get through as many as we can within that time.
There is a lot to unpack in these expectations and the consequences of not meeting them. Your goal in improving yourself and becoming a better developer should be to meet as many of these as possible. Don’t feel terrible is you do not meet them all, none of us meet all of them all of the time. Keep doing what you are doing to meet the ones you are meeting. The ones that you haven’t gotten yet can become future goals for you to work toward while improving yourself. Also, look for these in other developers when times are good. They will be an indication of how it will be working with them during the difficult times.
LinksEveryone Watching Is FiredJoin Us On PatreonLevel Up Financial Planning The post Everyone Listening Is Fired appeared first on Complete Developer Podcast.
While this year’s theme is time management, there are some things you should get in order before you start trying to structure a productivity system to help with your time management. In particular, you need to actually be able to track tasks that you need to do, whether they are on your most critical projects or not. You need to be able to focus on a single tasks or similar types of tasks effectively for a period of time. You need to be able to manage useful documentation, as well as more secure data so that you don’t waste time due to lack of structure. You also need to be able to track things like your habits and moods as part of creating useful feedback for your productivity system so that you can continue to improve. You also need to have some tooling in place for lightweight automations – a task that is done for you automatically ceases to be a burden, after all. Finally, you need to have a clean way to plan your work, beyond the level of what a todo list application can provide.
The most effective time management and productivity system you can build is one that provides just enough structure to meet your needs and then gets out of the way. However, there are some things that seem to be common to most such systems, especially systems that developers build for themselves. As developers, we have some things on our side when trying to improve our personal productivity. For one, we tend to understand how systems can be wired together and automated. We also tend to be a little bit more comfortable “rolling our own” as far as software is concerned – if we don’t have a simple tool for a simple purpose, we can build one. However, therein lies the challenge. As developers, we can build systems, but we need things to be structured reasonably well if those systems are going to tie into other systems. Towards that end, we need to understand the various roles that different pieces of software play in our productivity systems along with which things they CANNOT do well.
While improving your time management and general planning skills is absolutely critical, they are severely hampered unless you have some other things in place to help you. These underlying structural pieces will make it easier to better manage your time and productivity, as well as making it easier to automatically track what you’ve done. Even better, because you are probably a software developer (or at least a techie), these tools can really help you scale up what you are doing, to the point where larger automations or outsourcing can help you further. These tools also help you to remain relatively location and context agnostic, which means that you can continue to operate your productivity system no matter where you are. Best of all, if done properly, it all connects together well enough that you can use the right tool for the job in the moment while being certain that the data is available in some future moment when you need it.
LinksJoin Us On PatreonLevel Up Financial Planning The post Time Management Baseline appeared first on Complete Developer Podcast.
This is one of the most fun episodes we record each year. Both Will and BJ look forward to reviewing their predictions from the previous year and creating new ones. It’s important to stay up to date with the changes in technology, especially in your particular field.
While this year was less unpredictable than some other recent years, it did see a lot of interesting developments both in tech and outside of it. For many people, it has been a tough year and nearly everyone has had to make some adjustments. Whether we like it or not, though, this year is nearly over and the new year is about to begin.
In many respects, 2022 was a mop-up operation for the things that happened in 2020 and 2021. While the pandemic story and other things caused by it are far from over, for many, this year did represent a bit of a return to something resembling normal life. However, like all years so far in this decade, a number of curve-balls were thrown. We hope you made tremendous personal progress this year. We look forward to 2023.
PredictionsBJ’s PredictionsThere will be a boom of AI created art. Already AI artwork is selling within the art community. This will trickle down to the regular buyer, we may even see AI artwork in big stores like Target within the year. That said, with the prevalence of AI artwork, even stories, human created and original works will become a premium.
We’re going to see a social media decline at some point. It may not be this year but I’m predicting it now. From the inane censorship issues to Elan Musk buying Twitter and bans on Tik Tok because of it’s parent company. I’m predicting that the newest generation is going to push back and we may even start to see a move away from using social media as a form of communication.
Renewed turmoil in the Middle East. Iran is disbanding their decency police force and as of this recording considering removing or revising some of the laws around what women must wear in public. While this is a win for women’s rights and freedom, there will be zealots who do not like these changes. This is likely to lead to unrest and that area becoming another hotbed.
New suppliers for cheap computer components will emerge. With the current and looming issues between the US and China among other things there is an opportunity for a new or several new suppliers for cheap electronic parts. It would be nice if we could get some manufacturing back on US soil but not likely so I expect to see one or more of the US allies (US influenced) countries to emerge and a new hub for exporting cheap parts.
Will’s PredictionsSignificant supply chain issues will continue and will be exacerbated by governments being dumb. These may correspond to supply shortages, or be the results of war. These shortages will almost certain impact fossil fuels, food, medical supplies, and electronics. While this will make both consumers and business more price sensitive, it may open up opportunities as well. There may be a lot of money to be made for those who can save companies a lot of money.
More global flashpoints will flare up. If anything, the situation in Ukraine and all the rhetoric around it, didn’t make anyone look like a definite winner who can’t be beaten. As a result, other parties are likely to become more bold. This will lead to large scale human migration in addition to shortages. You’ll also see an increase in tension between western countries and the rest of the world, as the latter have grown tired of being pushed around and the leaders of the former are desperate to keep attention off their failed policies at home. This might open additional fronts in the chaos.
There will be a lot of tech layoffs. Many tech companies have excessive headcount and a lot of them have become slow and unproductive as a result. However, there will still be plenty of companies hiring and at good rates in an effort to avoid employee attrition due to inflation. Now is a good time to really lean into the effort of expanding your skill-set and personal network before you need it.
Outsourcing is going to get more complicated and may offer less of an advantage than before. Besides the complications that a supply chain issues and wars create, standards of living are rising in many places outside the west. This tends to raise the salaries of overseas workers. There will also probably be more regulatory pressure applied to make sure that citizen data from certain zones (probably the EU, not the US) doesn’t end up on overseas servers. As emerging markets get better, this may also create opportunities for serving those markets, rather than one-size-fits-all solutions that are more common to the bigger markets. And all this is without considering the risk of widening regional conflicts.
LinksJoin Us On PatreonLevel Up Financial Planning The post Predictions 2023 appeared first on Complete Developer Podcast.
The theme for 2022 was resilience. Over this past year most of us have gotten at least one lesson on the importance of resilience, whether it was because of a job loss, a major change in a relationship, a death in the family, or because their entire social life was upended. However, the fact is, life changes, and sometimes changes a lot in a very short period of time. Fragility is the natural state of things – it takes systems, planning, and preparation to set things up so that they can be relied upon, even if the assumptions underlying the system become unstable. Note that resilience doesn’t fix things that are fundamentally wrong – it just smooths out the disruptions that occur when surprises happen.
It’s been an interesting year for us this year. We hit several of our goals, others changed due to life circumstances, and even others are still in progress.
Sometimes it would be nice to not live in times that will be in the history books other times it’s exciting to see what’s going to happen. No matter what is going on in the world around us we learned this past year about being resilient and creating goals that will stand through even the tough times. As we go into 2023 we will spend our time learning how to better accomplish our goals by managing ourselves and our time wisely and breaking our goals down into manageable chunks that we can accomplish.
ResolutionsBeejGet at least one Azure certificate. Yes this is a carry over from last year but I still plan to complete it especially now that I’m on the regular performance plan schedule at work. I’m going to follow Will’s advice and get the fundamentals (AZ 900) certification first, then work toward the developer (AZ 204).
Learn to play 4 worship songs on the keyboard, not the synth (playing whole notes). Be able to play the full song along with the recording of the band playing. At least one will be a fast song, likely the third one I attempt to learn. I’ve already learned to play some parts of songs but not a whole worship song. As a bonus goal, outside of my control, I’d like to be able to play the keyboard with the band either in practice or at a special event like a creative night.
My long term goal is to become fluent in Albanian. For this next year I plan to get more regimented with my study by setting aside daily time to study Albanian. I also aim to have a full conversation in Albanian beyond small talk/casual greetings.
Create a creative space in my house for doing all the creative activities (painting, music, writing, photography, etc.) that I do. I spend most of my free time involved in some sort of creative activity. The largest room in my house is barely used when I’m awake, bedroom. Over the course of the year I plan to move my office into the spare (creative) room, then move my bed into the room I now use for an office. After doing that I will turn what is now my bedroom into a creative arts room.
My primary goal for the year is to maintain the gains (or losses) I’ve made this past year. I’ve reached a healthy weight and am developing a healthy lifestyle. That said I also want to push myself as that will keep me focused more than maintenance. Right now I’m running about 10 miles per week on average (1.5 on lifting days and 2-3 on cardio days). I injured myself pushing too much too soon this past year so I’m going to increase but slowly. My goal is to work myself up to averaging 20 miles per week (2 on lifting and 5-6 on cardio and adding 4-5 on weekends).
Cutting back and focusing on saying no this past year along with hurting my knee running has shown me the benefit and necessity of rest. In addition to continuing to have a night for creative endeavors, this year I plan to take one day off completely from any sort of work. A big part of this is reducing screen time so less time in front of the computer, watching TV, and playing on my phone. I’m going to track my screen time on each of these devices and aim to reduce it by at least 30% by the end of the year.
Will
Time management is hard to get right. While you (hopefully) don’t want to be a jerk to everyone in your social circle, you have work to do. Not only do you have the day to day stuff, but you probably career aspirations and personal goals too. And there really aren’t any goals worth doing that don’t take a substantial investment of time and attention over a long period of time to achieve. That’s just the way it is. And if you’ve ever tried to achieve something big and failed, odds are good that the time required to do something was a big part of the problem. We only have so much time on this earth and then we are gone, and it’s a real tragedy to live a life where you don’t dream big and achieve big. However, that tragedy will be yours if you do not manage your time well.
The modern world is also full of distractions. Whether it is due to the tons of electronic devices around us at all times, begging for our attention, or due to the demands of the swarms of people around us, there is always something to do. Whether the task is valuable or not, we’re all confronted with different priorities vying for our attention. Some of them are total wastes and scams, while others are some of the most valuable relationships in our lives. Many others are harder to figure out, however, as their value is speculative, and highly dependent on what you really want from life.
And that in itself can be another clue to the problem. What do you want? Is that different than what you think you SHOULD want? Is it different than what the people around you want? Does what you are doing match your larger goals, or are you trapped in an endless hamster wheel of minutea, whittling your life away one clock tick at a time, until, when you are too old to do anything else, you look back and realized your lost your most valuable asset to things you didn’t care about at all? Or will you focus and drive yourself to achievements that you never thought possible because you harnessed your time and attention to the best of your abilities and doing so provided you opportunities you could have never predicted? The choice is yours, but your results depend greatly on how you manage your time, in particular, how you avoid mis-managing your time.
Better time management is easy, in theory. In practice, its mostly the result of being focused on SMART goals, and doing the right things to move towards those goals, at the best time to do so, while avoiding being derailed. While simple to explain, you’ll find that it takes a lot of effort over a very LONG time to actually stick. Most people’s time management is a mess because it’s very hard to get right. However, there are some simple things you can avoid to ensure that your particular dumpster fire of time management is burning brighter than most. Thankfully, that’s really all it takes.
LinksJoin Us On PatreonLevel Up Financial Planning The post Time Management Mistakes appeared first on Complete Developer Podcast.
One of the first behaviors learned in becoming an influential leader is to be a good follower. This involves a change in perspective for many from trying to constantly be in charge or take control to letting others have the reigns and instead following their lead. It can be relaxing to not be the one making decisions, though it can also be stressful if you don’t always agree with those decisions. Becoming a good follower is just as difficult, maybe more so, than being a good leader.
Understanding how to follow contains several benefits that may not appear obvious. First, it improves your leadership skills. This goes beyond the modeling followership to understanding what it is like to be your subordinate and how to make their lives better and easier to follow you. Another benefit that seems counterintuitive is that you gain more control over your own career. You may not be able to manage up to every leader you have, however as you become a better follower you will know what you can and cannot do. You will also become more adaptive as an employee and be able to adjust to almost any leadership style or lack thereof.
As a leader you want those who you lead to be good followers so you will need to set the example for them to see how you expect them to behave. Many of the traits of a good follower are also traits of a good leader. Leaders and followers are roles that we all have to varying degrees in different aspects of our lives. You may be a leader in one place and a follower in another. Understanding and exemplifying good followership will improve your leadership skills by helping you to understand what is going on with those who follow you.
Understanding how to follow well is something that will help you no matter where you are in your career. Even if you own the company and do not report to anyone, you are still following market trends and customer requirements/requests. Understanding what is involved in being a good follower will guide you not only in following others but in leading them as well. This is not an exhaustive list of the traits and characteristics of a good follower, but some of the more important ones that you can be working on and improving now. Use them to start working on your own following skills.
LinksJoin Us On PatreonLevel Up Financial Planning The post Being A Good Follower appeared first on Complete Developer Podcast.
The terms ‘habit’ and ‘routine’ may be used interchangably by some, however they are not the same thing. A habit is a piece of a large routine. Habits require a cue to get them started, for example washing your hands after going to the bathroom is a habit. This hand washing habit is cued by you going to the bathroom, whereas other handwashing habits may be cued by chopping peppers, handling raw meat, or food being ready to eat. Washing your hands is not a routine, though it may be part of your morning routine or your meal prep-routine.
Routines then are collections of cues and habits that we do with consistency. A morning routine is a set of cues and habits that we do every morning when we wake up and then a nightly routine is a different set of habits and cues that we do every evening before going to sleep. These routines help us to maintain consistency in our lives and makes it easier for us to get redundant daily tasks out of the way without out requiring much thought or effort.
While morning routines are very important for starting your day off right, in order to set yourself up for success there are things you should do the night before to ensure that you are at your best. Routines, especially in the evening, allow us to set limits and better control our own behaviors. Evening and night time are when we as humans tend to be more lax on our discipline. You are more likely to overeat or overindulge in other areas in the evening than any other time of day. Having a routine that you do regularly helps to maintain the discipline that you’ve had throughout the day into the evening.
This is just a high level overview of the things you can do to set up your nightly routine. Many of the suggestions here have had their own episodes in the past or will have them in the future. These are not hard and fast rules that you must follow in order to have a good night’s sleep or be more productive. It is a lifestyle change and that takes time to alter past behaviors and previous habits. Don’t get discouraged if it takes a bit to get into the routine and you have to remind yourself constantly or keep setting reminders to do things. Along the same note, give yourself some understanding if you miss a day. Rather than think the whole week is ruined, pick back up the next day as if you didn’t miss. Doing so will give you better progress toward starting a goal than having a perfect week.
LinksJoin Us On PatreonLevel Up Financial Planning The post Creating A Nightly Routine appeared first on Complete Developer Podcast.
If you are working with integrations in a large software project, you are probably aware that the complexity of these projects often leads to additional errors that are harder to predict and troubleshoot. It’s very similar to the situation many people encounter when dealing with complex object models – it takes forever to dig through the mess to find the problems. As a result, object oriented developers have a set of heuristics for finding areas that are potentially problematic. These are typically referred to as “code smells”.
In larger, more complex scenarios with multiple interacting services, there is also the concept of a “smell”. While a full list of these integration smells is far too large for a single episode, there are certain smells that are pretty easy to spot, even in a system that you just started working on. While these “smells” by themselves are necessarily a proof that something is actually a problem, they will quickly point you to locations where a problem might exist for further research. Like most heuristics, they need to be backed up with data, which is much easier to get from a few suspect locations instead of an entire ecosystem of services.
There are dozens of possible integration smells that you will discover throughout your career. However, there are a small subset that you will consistently see and that you are likely to notice early in a new environment. While not necessarily a problem in themselves, these smells are simply things that should inspire you to investigate more thoroughly. It’s important to be able to recognize clear antipatterns, but it’s also important to be able to have a heuristic for things that might indicate that a particular antipattern is in use. In fact, the latter is even more useful, because it can also quickly point out quirks in a system’s architecture that are worth exploring.
LinksJoin Us On PatreonLevel Up Financial Planning The post Integration Code Smells appeared first on Complete Developer Podcast.
So you got a new job and you are starting in a couple of days. You are probably both excited and anxious. What will the first day be like? If you are like many people, your first day at a new job will be something that happens to you, rather than something you control. Not ideal.
Read more ›
The post Add Value On Your First Day appeared first on Complete Developer Podcast.
Hustle culture is defined by the idea that there is always more to achieve or attain. It’s the work hard attitude that when combined with working smart can lead to great success. Hustle culture is a lifestyle of continuing to push and only take minimal breaks to rest. If you aren’t careful can lead to overwork and burnout but if done correctly will drive you to go further than those around you. While full on hustle culture may not be the best fit for everyone we can still learn from some of it’s concepts like the millionaire mindset.
A million dollars really isn’t a lot of money, inflation aside it’s a matter of perception and how you see that amount of money. If you think it’s a lot then you’ll always struggle to get it. You’ll see it as this almost unattainable goal. Remember being a kid and $20 was a lot of money, some of us spend that on coffee daily. When you see a million as not much then it become mentally attainable.
Once you get past the internship and possibly first year or so as junior developer the salary for developers is not small. In most places it is easily enough for a single person to live on and if you are wise can support a family. Relying on your salary or savings is not going to move you forward though and will potentially be disastrous if you lose that job and have to eat through savings during a recession in order to survive.
Not everyone may want to be a millionaire, you may be happy and content with the lifestyle that you have and don’t want to put in the effort to get to that million mark. You may have other seemingly impossible goals that are more important. The millionaire mindset, while primarily focused on building finances can be applied to any giant goal that you may have.
These are just a few of the attitudes that it takes to think like a millionaire. It’s a change in your mindset that you do in order to make progress. It is possible to become a millionaire without doing any of these, this isn’t the one and only path. Even if you don’t want to be a millionaire, these are useful for going after any large goal that may seem impossible. They are helpful hints or personal hacks that will make the path a little bit easier on you as you travel the journey from where you are to your goal. Use them to help you achieve the impossible.
Links Join Us On Patreon Level Up Financial Planning The post Millionaire Mindset appeared first on Complete Developer Podcast.
There are a lot of different types of developers in the field. Some will be your basic 9-5 workers who are the backbone of most development shops. They are there to get a job done and when their day is over they go home to their own lives. On the other extreme are the ones to live, breath, eat, and sleep coding. When they aren’t working on at their day job they are building side projects, attending or giving lectures, or hosting development podcasts. Both extremes, and everyone in between them can be good software engineers. You don’t have to dedicate your life to coding to be a good engineer, but it will take some effort on your part to learn and grow.
When thinking of what makes a good software engineer a lot of people think about algorithms, data structures, etc. These make for a good computer scientist, which is an academic label. Software engineer is a job role that uses knowledge of these things but is not defined by them. The goal is to produce value to a company by helping them to earn money and grow.
So what does make a good software engineer or developer? {using the terms interchangeably here, yes they can have diff meanings.} A good developer is not only able to write code that solves problems, but has knowledge and ability in other areas of software engineering from the architecture to build process to delivery.
This list of 10{+} rules are a great starting point on your journey to becoming a good or great software developer. You don’t have to dedicate your entire life to the art of writing code to be a good engineer. You can do it while having a life outside of work and development. That said, it does take effort to go from average or mediocre to becoming a good developer. The rewards are absolutely worth the effort as you will set yourself up for more trust at your current job and be in a better position when applying for a promotion or new role later on. So make a bit of effort now for more rewards later on.
Links Join Us On Patreon Level Up Financial Planning The post 10 Rules To Be A Good Engineer appeared first on Complete Developer Podcast.
You can make a lot more money as a self-employed software developer. It can really help you build a better life, where you pick the kind of work you do, the kind of people you work with, and can even set the hours you want. While all of this is true (and is said endlessly to developers), there are some downsides to being self-employed. None of them are things that should make you completely avoid self-employment, but they are things that you need to consider if you are thinking about being your own boss. If you don’t, you may get some very unpleasant surprises while working for yourself.
We’ve both been self employed at different points in our careers. While the experiences included some of the best experiences of our careers, they also included some of the most boring, tedious, frustrating, and frankly enraging experiences of our lives as well. There’s a lot of stuff about self-employment that most people either don’t realize, or believe isn’t a big deal. This is the stuff that gets you. Whether it is dealing with the obscene amount of paperwork that insurance companies require for you to liability insurance, the way taxes work, cashflow management, or simply the sudden shift in your social dynamics, becoming self employed is not a small change in your lifestyle. In fact, it can be fairly drastic and, if you are poorly prepared, can absolutely destroy your ability to make a living.
Being self-employed is a huge step towards financial freedom, and security. It can seriously improve the quality of your life over the long term. However, it does have its downsides that you need to mitigate. It’s something we highly recommend doing, so long as you are prepared for it. Too often, people have a bit of a rose-tinted view of self-employment and quickly get discouraged when they find out that it isn’t what they thought it would be. If you want to do this, be prepared and think about the issues we’ve raised – if you handle them well, it can work for you.
Links Join Us On Patreon Level Up Financial Planning The post Downsides of Self Employement appeared first on Complete Developer Podcast.
“Only when the tide goes out do you discover who has been swimming naked.” – Warren Buffet
Downsizings happen. While most mentally healthy individuals don’t like firing people and upending their lives, sometimes it can’t be avoided. There can be many reasons for this. When times are good, people forget how bad things can get and during their optimistic planning, they assume the good times will continue. And even during good times, major disruptions to industry can obliterate thousands of jobs with little warning. It’s not just in tech, lots of old mining and manufacturing concerns all over the planet suddenly dried up, leaving their empty husks in towns full of the recently unemployed. It’s a cycle as old as human civilization and it always visits us again.
However, there are usually warning signs. Whether it’s an overheated market (cough real estate cough), war or threats of war, or even demographic changes, such as the large scale retirement of the baby boomer generation, the world is always going to shift under our feet. We simply have to be ready to deal with it. Recessions, even really bad ones, are survivable (as evidenced by the fact that we’re still here), but they are unpleasant. However, it gets much harder to survive them if your habits are unsustainable and predicated on good times continuing forever. And as developers, we tend to get lost in our own worlds of new libraries and frameworks, while the rest of the world “does its thing” outside. But it will intrude someday.
It is daunting to consider the possibility of getting laid off. You may think your employer will cut you loose, but you should understand that it is not always under their control either. As a result, to the extent possible, you should always be making sure you aren’t the first target of a layoff and that you are positioned well to survive a layoff if and when it happens. You may even find that if you do this well, that your situation actually improves during a recession, as not everyone goes broke during a recession. Most of the advice here is good even when the market is booming. We hope this has been useful for your preparations for the upcoming “festivities”.
Links Join Us On Patreon Level Up Financial Planning The post Layoff Resilience appeared first on Complete Developer Podcast.
Some people claim they procrastinate because they are lazy, whereas others claim they do better under the pressure by waiting until the last minute. Still others say they enjoy the rush of getting things done at the last minute. Procrastination is rarely about laziness, while it may be true for a few when it comes to procrastinating for the majority of us it is about motivation and prioritization. You may be overworked, on the verge of burn out and put off starting something to give yourself a little breathing room. It may also be that you don’t have a clear priority in your schedule or tasks and everything seems to be top or bottom priority. In our episode on motivation we discussed why working under pressure of waiting until the last minute doesn’t improve performance but actually hinders it. If you haven’t already, you should check that episode out.
Procrastination comes in two different types acute and chronic. Acute procrastination happens because of immediate circumstances around the task or the time you are attempting to accomplish it. These may change throughout the day or week and are situational depending on the task, time of day, etc. typically stemming from low energy levels or elevated emotional states. During these times your behavior changes from the normal. This type of procrastination isn’t always a bad thing because sometimes you put off starting a new tasks to give yourself a break between tasks throughout the day. Chronic procrastination, on the other hand, has a deeper, more lasting cause that can be tied to burn out or other psychological or mood issues. This tends to happen all the time or whenever you are faced with certain types of tasks or goals. It can stem from an excessively high expectation perfectionism, or a lack of assertiveness. Each of these have different ways of preventing us from getting work done.
Overcoming procrastination comes down to three main areas: Awareness, Time Management, and Motivation. Like the first steps for a recovering addict, you must be aware that you have a problem before you can even begin to overcome it. This goes beyond just knowing that you procrastinate to understanding your reasons and process for procrastination. A big part of overcoming your tendencies to procrastinate will be how you manage your time. There are things you can start doing right now that will reduce the work you put off to the last minute. The final area is motivation, procrastination really boils down to a lack of motivation. When you are motivated to do something you are not going to wait to get it done.
A recent meme states to start a project, when you start to procrastinate on that that project start another. Then when you procrastinate on the second project work on the first one. This might not be the best advice coming from a meme, but it’s an interesting way to think about the problem of procrastination and possibly a creative solution for some. The tips here are designed to help you better understand yourself and the reasons for your procrastination. Use them when you notice that you are putting off tasks until the last minute or waiting to do the things that you know you can and should be getting done. Don’t wait, today is the day to stop procrastinating.
Links Join Us On Patreon Level Up Financial Planning The post Today Is The Day To Stop Procrastinating appeared first on Complete Developer Podcast.
It’s very hard to build a large software project without having to undergo major refactorings every so often. Whether it is due to changes in your platform, changes to the market, team growth, regulatory changes, or just dealing with an ever-increasing amount of customers and their data, at some point your current approach will become insufficient. When that happens, you may be tempted to “just rewrite the application”. This is nearly universally a mistake however, pulling off a solid rewrite is almost always several times as difficult as a major refactoring and it always takes longer than you think. And given how awful large refactorings can be, this should generally make you want to avoid a rewrite.
That said, a large scale refactoring is still very difficult and very risky endeavour. While your team is busy on refactoring, your competition is not sitting still. You’ll also be navigating political problems – if the people who built the current system are still there, you’ll need to be careful not to alienate them. And there are political problems with the larger business as well. People outside of technology typically have a hard time understanding why software refactorings need to happen – they don’t understand why you couldn’t “get it right the first time”. Most people outside of tech don’t realize how much every decision is really about dealing with tradeoffs in the present, rather than long term best practices (or even how often the latter change). Furthermore, the difficulty of dealing with scaling is almost never linear – having 10X as many records as you did before can often result in the system taking 30X to 100X as long to process a request.
However, there is some hope. You can conduct a large scale refactoring of an application over time, without excessive risk and without alienating your team and the rest of the business. Several factors come into play. First, information diffusion throughout the team has to be respected – any change you make is going to take time to be accepted and for everyone to get used to it. This process cannot be rushed. Second, you still have to get “real work” done for you stakeholders – the rest of the world is not sitting still. Third, you have to manage team morale and cohesion carefully – large refactorings are disruptive and require that you change code that other team members have written. Finally, you have to resist the urge to change “everything that’s wrong” about the system – it’s tempting, but it WILL cause you to fail.
Large refactorings are risky. Not only is it very easy to make sweeping changes that cause major problems for your application, but large refactorings can also derail your team for weeks or even months, while your competition keeps moving. In addition, if not managed carefully, large refactorings can demoralize your team and create conflict. In addition, large refactorings require that you manage team morale as well as the political situation outside your team. However, if you follow the suggestions we’ve given here, large refactorings will be easier, but not easy. Nothing makes a large refactoring easy, but there is no reason to make it harder than it has to be.
Links Join Us On Patreon Level Up Financial Planning The post Managing Large Refactorings appeared first on Complete Developer Podcast.
At some point in your career you will have to initiate a difficult conversation. You may be a senior developer who has to address issues in the code with another developer or you may be in a lead or management position and have to address an issue between employees. Whatever the situation that prompts the conversation it’s not one that you look forward to having. These conversations are ones that must take place, though you don’t want to deal with it and wish it would just go away.
While there are some people who enjoy conflict (looking at you Enneagram Type 8’s), the majority of us try to avoid it as much as possible. The more pragmatic know that it is necessary even if they don’t enjoy it. It seems easier to just avoid the conversation than deal with the emotional fallout and uncomfortable discussion around it. Unfortunately, avoiding difficult conversations means that nothing changes and can lead to resentment causing even more conflict that leads to a more difficult conversation than would have happened had the initial issue was been addressed.
It can be hard to grasp that conflict in and of itself is not a bad thing. Having difficult conversations and disagreements is an essential part of working on a team. It’s how we get from the Storming to the Norming phase in team formation. These uncomfortable, difficult conversation actually create an environment where employees and coworkers feel safe bringing up issues and talking about problems.
It’s never easy when you have to initiate these difficult conversations. The biggest takeaway here is to plan the conversation before it happens. Doing so will help to ease the anxiety of having the conversation and keep you focused on the facts of the situation. Remember the ultimate goal is to find a workable solution to the issue that everyone is willing to work toward. When you do inevitably have a difficult conversation at work use the information here to help guide you toward a resolution that everyone involved supports. It will not always work out the way that you want, but you will be more likely to get to your ultimate goal by following these tips.
Links Join Us On Patreon Level Up Financial Planning The post Difficult Conversations appeared first on Complete Developer Podcast.
If you aren't constantly dealing with the database, you probably have some misconceptions about how indexes work. These misconceptions not only tend to bite you, but they tend to do so at the worst possible time, when your system is under load or when you've just rolled out a new feature.
Read more ›
The post Database Indexing Mistakes appeared first on Complete Developer Podcast.
What motivates you when the rewards seem far off? What drives you to keep pushing when you are tired and worn out? It's not likely the pay or some big reward at the end. It is your own intrinsic motivation.
Read more ›
The post Basic Psychological Needs of Motivation appeared first on Complete Developer Podcast.
In many development shops, Single Page Applications (or SPAs) are the user interface of choice, especially if they are already in use in other systems. While this is often a laudable and reasonable choice, it's a good idea to understand the tradeoffs of going with this approach.
Read more ›
The post Tradeoffs of Single Page Applications appeared first on Complete Developer Podcast.
You've made it, you've accomplished your goals. Now what? How do you continue to be successful? Success and failure are intertwined and success if not stable can lead to failure.
Read more ›
The post Success Stabilizers appeared first on Complete Developer Podcast.
If you are lucky, someone will tell you what they actually want on a dashboard when they tell you to make one. If you're unlucky, you probably are going to have to figure it out as you go. Thankfully, there are some principles you can apply that will help you create application dashboards that are useful.
Read more ›
The post Better Dashboards appeared first on Complete Developer Podcast.
Breaches of payment systems are extremely serious. It's a great way not only to have major business problems, but to look like an idiot in front of all your clients, while causing them all kinds of headaches, including potentially emptying their bank accounts.
Read more ›
The post PCI Compliance appeared first on Complete Developer Podcast.
A major security vulnerability will be found in someone's web application this week. The OWASP Top Ten list of web application vulnerabilities has recently been updated.
Read more ›
The post OWASP Top Ten 2021 appeared first on Complete Developer Podcast.
When you started your career, you might well have been in awe of the senior developers, at least for the first job or two. Later, you might still be impressed with some of them, but others will seem like they were promoted past their abilities.
Read more ›
The post Under Skilled Seniors appeared first on Complete Developer Podcast.
HTTP or hypertext transfer protocol is a protocol for transferring documents: HTML, images, etc. between a client, usually a web browser and a server. HTTP verbs or HTTP methods are codified forms of communication in the client-server relationship.
Read more ›
The post HTTP Verbs appeared first on Complete Developer Podcast.
Towards the tail end of covid times (or still in the middle of them, depending on where you live), a lot of news articles started talking about a phenomenon called The Great Resignation. While you probably have a rough idea of what's going on, it's well worth further discussion, because many of its implications are going to reverberate in the software industry for years to come.
Read more ›
The post The Great Resignation appeared first on Complete Developer Podcast.
Critical thinking is about knowing how to organize and understand a problem or decision and come to conclusion. It is necessary for avoiding cognitive bias in advanced problem solving skills and decision making.
Read more ›
The post Steps To Critical Thinking appeared first on Complete Developer Podcast.
Meetings are a fact of life and nearly everyone could improve the way that they take notes. There is nothing worse than sitting through a long meeting and then later having to ask a bunch of questions that were answered in that meeting. It wastes time and leads to a lot of mistakes.
Read more ›
The post Better Meeting Notes appeared first on Complete Developer Podcast.
Resilience is the ability to recover quickly. Having consistent patterns of behavior helps you to know where to jump back in when something knocks you off your regular schedule requiring you to be resilient.
Read more ›
The post Resilience Through Consistency appeared first on Complete Developer Podcast.
As development teams grow, the number of code repositories used by them grows as well. Over time, this ends up making some things more complicated than they have to be. You've probably heard of companies putting everything in a single repository. Is this the answer to the problem?
Read more ›
The post Monorepos appeared first on Complete Developer Podcast.
No matter how efficient you are, when you get stressed your productivity drops. It is important to be resilient in stress so that you can overcome stressful situations.
Read more ›
The post Resilience In Stress appeared first on Complete Developer Podcast.
If you've worked on complex or distributed systems at all, at some point you've seen them produce behavior that is predictable in hindsight, but that you never would have predicted yourself. Systems take on a life of their own, especially as different parts are developed at different rates by different people.
Read more ›
The post Systems Thinking appeared first on Complete Developer Podcast.
Everyone has habits, behaviors they do on a regular, daily basis. These habits are either moving you toward your goals and success or they are holding you back from them.
Read more ›
The post 7 Habits of Unsuccessful People appeared first on Complete Developer Podcast.
User interfaces are hard to get right, especially for developers. While the nitty gritty details are better left to design podcasts, there are some simple rules that developers can keep in mind when building UI and UX. While not perfect, they will get you a long way.
Read more ›
The post Resilient UX appeared first on Complete Developer Podcast.
We all need some regular relaxation to avoid burnout. Downtime is a brain break from all the internal processing that our minds do daily and even helps to improve productivity.
Read more ›
The post Mental Downtime appeared first on Complete Developer Podcast.
When you replace a running legacy system with a new system, it can be tempting to do it all at once. However, doing so courts disaster and makes the process much more painful than it has to be. Even though it sounds easier, a sudden system cutover is seldom pleasant.
Read more ›
The post App Migrations Resilience appeared first on Complete Developer Podcast.
Whether you are a manager, team lead, or executive you will lead several types of people during your time in leadership. From the too reliant who comes to you for everything to the grizzled veteran who has been coding longer than you've owned a computer understanding team dynamics is important. It can be difficult to know how to motivate and lead all the types of people on your team.
Read more ›
The post The People You Will Lead appeared first on Complete Developer Podcast.
While it's nice to be able to pull in packages to do various things in our projects, we need to think long and hard about how we are going to maintain those dependencies over time, in particular in how they relate to security. Supply chain attacks on software components are only going to get worse over time.
Read more ›
The post Package Supply Chain Attacks appeared first on Complete Developer Podcast.
Just like there are multiple ways to use a computer there is more than one way to use your mind. Many different ways exist to focus your thoughts from study and meditation to creating mind maps. Understanding these will help you improve your concentration.
Read more ›
The post Methods of Thinking appeared first on Complete Developer Podcast.
Your database is probably the most valuable part of your application, and it can be terrifying to think of it falling apart. Yet, that is just a day in the average developer's life in many companies.
Read more ›
The post Database Resilience appeared first on Complete Developer Podcast.
Understanding how you think will help you to improve your ability to learn, understanding how others think will guide you in utilizing their talents to compliment your own. Whether it's creative thinking, divergent thinking or any of the other types of thinking you will benefit from understanding and applying your style of thinking to critical thinking skills.
Read more ›
The post Types of Thinking appeared first on Complete Developer Podcast.
Eventually management will ask you to evaluate third party integrations for your software. Whether it is for authentication, sending emails, or other functionality, there are times when it makes more sense to use third party software instead of building it yourself. However, many developers are not used to having to do this sort of thing, which makes it difficult.
Read more ›
The post Third Party Integrations appeared first on Complete Developer Podcast.
It can be easy to fall into the thinking that when I'm in charge I'll do things differently. You do not have to have authority to be a leader instead you can exhibit leadership through influence. From choosing positivity to critical thinking skills there are many things you can do to be a leader even when you don't have any authority.
Read more ›
The post Leading By Influence appeared first on Complete Developer Podcast.
When you work with other people in a codebase, at some point you have to merge your code into the main branch. The code should be reviewed before that happens in order to keep quality high on the branch that is deployed to production and is used to start other branches.
Read more ›
The post Better Pull Requests appeared first on Complete Developer Podcast.
While you probably have lots of code in your codebase that you are proud of, it's almost certain that you didn't write all or even most of the code that executes while your application is running. Code reuse has always been a critical part of software development, but it's important to get it right.
Read more ›
The post Package Management appeared first on Complete Developer Podcast.
Your time is the most valuable and most scarce resource that you have. If you don't protect it and use it appropriately, everything else that you want from your life is out of your reach. It is critically important to protect it, but it can be difficult when small problems completely disrupt your day.
Read more ›
The post Time Management Resilience appeared first on Complete Developer Podcast.
Understanding memory can be a tricky thing, especially the deeper into a computer system you get. To help understand it a hierarchy of memory was conceptualized. This triangular shape helps to visualize the different levels of physical memory storage in a system.
Read more ›
The post Understanding Memory appeared first on Complete Developer Podcast.
Developers like to abstract things. Abstraction gives us a lot of benefit, but there are times when we need to reign in our enthusiasm for it. It's past time we discussed when abstractions are not useful or are actively harmful.
Read more ›
The post Bad Abstractions appeared first on Complete Developer Podcast.
We are reaching the time of year when resolutions and goals start to fall away. Being disciplined is an inconvenience, it's hard work but to reach big goals we need to be disciplined in what it takes to achieving goals.
Read more ›
The post Discipline to Achieve Your Goals appeared first on Complete Developer Podcast.
Writing all this code is fun, but when you have to actually deploy, it can be nerve-wracking. A bad deployment can result in corrupted data, system failures, angry customers and hours of wasted time. Avoiding busted deployments will become a priority after you experience one.
Read more ›
The post Deployment Resilience appeared first on Complete Developer Podcast.
When we are learning something new, we will all eventually hit a roadblock. Roadblocks are tough to deal with, because they sap your enthusiasm. Left alone long enough, they'll make you give up on your goals.
Read more ›
The post Learning Plateaus appeared first on Complete Developer Podcast.
Ageism in development is a real thing in some areas of the industry and a concern for senior developers becoming more senior.
Read more ›
The post Aging With Grace appeared first on Complete Developer Podcast.
You've bitten the bullet and decided to pay the Apple Tax or maybe you are considering the transition. Switching from Windows to using a Mac may seem a bit daunting, especially if you've been on Windows for decades. However, it is not as difficult as you may think.
Read more ›
The post Going From Windows to Mac appeared first on Complete Developer Podcast.
If anything, the last two years has taught us that we all have to be prepared for sudden disruptions to our lives. You have probably also heard that being resilient is the key to doing so, but what does that actually mean?
Read more ›
The post The Five R’s of Resilience appeared first on Complete Developer Podcast.
Words have power, whether you choose or harness it or not. What we say about ourselves, our affirmations, define who we are and how we see ourselves. Negative self-talk brings us down, whereas positive affirmations lift us up.
Read more ›
The post Positive Affirmations appeared first on Complete Developer Podcast.
Knowledge silos happen when different parts of a team understand different parts of a system and don't understand other parts of the system. It's a natural state of system growth, but eventually gets in the way of innovation.
Read more ›
The post Knowledge Silos appeared first on Complete Developer Podcast.
It's been a long year for many of us, with both upsides and downsides and we're excited to see what happens next year. This is the last episode of 2021.
Read more ›
The post Predictions 2022 appeared first on Complete Developer Podcast.
2021 was not the year we expected, but it definitely brought about some changes in us, in the podcast, and in those around us. As we review our resolutions we'll see how SMART our goals really were and then we'll discuss the yearly theme.
Read more ›
The post Resolutions 2022 appeared first on Complete Developer Podcast.
While you can test with production data, that data is often sensitive, or doesn't reflect every possible scenario that might come up, especially with new changes. If you want to avoid unexpected problems, then you need to be able to generate realistic data to use in testing workflows.
Read more ›
The post Sample Data Generation appeared first on Complete Developer Podcast.
Unit testing can be a challenge especially when you have automated testing or may be new to test driven development. There are several great design patterns for testing and even more anti-patterns in unit testing that you want to avoid.
Read more ›
The post Anti-Patterns In Unit Testing appeared first on Complete Developer Podcast.
Everyone experiences work stress at some point or another in their careers. Understanding it can help you to have better responses as well as prepare yourself for it before it becomes an issue.
Read more ›
The post Dealing With Stress At Work appeared first on Complete Developer Podcast.
This has been the year of the Enneagram for Complete Developer Podcast. You learned about reformist ones, individualist fours, loyalist sixes, or peacemaking nines, you've heard about all the types and their variants. But how do you use this information?
Read more ›
The post Enneagram Wrap Up appeared first on Complete Developer Podcast.
Every so often, you'll end up working for a company that uses very outdated technology. While the reasons for this are numerous, many of these companies don't really see the problem with the technology they are using, especially if the technology is currently working for them.
Read more ›
The post Risks of Older Code appeared first on Complete Developer Podcast.
Debugging software can be a pain or an exciting adventure. If you have unit tests your process may be easier when user testing or quality assurance finds a bug in your code.
Read more ›
The post Essentials of Debugging appeared first on Complete Developer Podcast.
It's easy to end up overworked. You start out responding to a reasonable need for a little more work to be done after hours, then suddenly it's five years later and you work 65 hours a week until your health and personal issues force you to stop.
Read more ›
The post Fixing Your Work Life Balance appeared first on Complete Developer Podcast.
Webhooks allow you to offload processes to third-party software. Building them has it's own challenges to overcome and a set of best practices to make those challenges easier.
Read more ›
The post Web Hooks appeared first on Complete Developer Podcast.
Bringing the pursuit of perfection and attention to detail, the Enneagram Type 1 or The Perfectionist is a conscientious and ethical personality type. They are committed to a sense of right and wrong, responsibility, and integrity, but can become fixated on small imperfections and micromanagement when unhealthy.
Read more ›
The post Enneagram Type 1: The Perfectionist appeared first on Complete Developer Podcast.
Being a mid-level developer is like being a middle child, or a member of generation X. Everybody forgets about you as you sit there sandwiched between the groups that everyone caters to. However, you still have to get through this phase of your career regardless.
Read more ›
The post Mid Level Developer Mistakes appeared first on Complete Developer Podcast.
Intrinsic drive involves being able to understand and use internal rewards to push yourself. Increasing motivation takes a mindset shift that will change how you look at the world from where you get your energy to the way you express gratitude.
Read more ›
The post Increase Your Drive appeared first on Complete Developer Podcast.
We all know that the most permanent solutions come from temporary fixes. In light of this, we could all do a lot better in the way that we write "one off" or "temporary" applications.
Read more ›
The post Temporary Applications appeared first on Complete Developer Podcast.
In this episode, we're going to discuss several of the common performance problems that can occur when accessing a database over the network, as well as how to fix them.
Read more ›
The post Database Network Performance appeared first on Complete Developer Podcast.
The Enneagram of Personality, or just the Enneagram, is a representation of personalities using a geometric figure, also called an enneagram (little e), to express nine interconnected personality types. While each type is unique it is related to other types …
Enneagram Type 9: The Peacemaker Read More »
The post Enneagram Type 9: The Peacemaker appeared first on Complete Developer Podcast.
If you want to deal with the ever increasing complexity of developing cloud-native apps with modern tools, then it behooves you to use industry best practices to develop these apps.
Read more ›
The post 12 Factors of 12 Factor Apps appeared first on Complete Developer Podcast.
How to approach other developers when you have found something horribly wrong with their code in a way that doesn't create conflict in your team.
Read more ›
The post Your Code Sucks appeared first on Complete Developer Podcast.
Unexpected outages happen all the time. We've had them happen while recording the podcast several times. Having a plan of action when an unexpected power outage or internet outage occurs allows you to remain focused and productive.
Read more ›
The post Staying Productive During Outages appeared first on Complete Developer Podcast.
Great friends, exceptional leaders, and champions of those who can't fight for themselves, the Enneagram Type 8 or The Challenger stands alone. They want to be independent, not indebted to anyone and do not let the opinions of others sway them.
Read more ›
The post Enneagram Type 8: The Challenger appeared first on Complete Developer Podcast.
While there is a lot of misplaced hype about tools that will replace programmers, there are a lot of tools that can handle a lot of the mundane, boring code that many developers have to write. Low code and no code tools can often make it easy to stand up small applications that meet a business need, but aren't worth the expense of hiring a professional developer.
Read more ›
The post Low Code No Code appeared first on Complete Developer Podcast.
A fixed mind is rigid and inflexible, unable to accept change or anything that challenges currently held views. A growth mindset looks to learn and improve through challenges and even failures to better themselves.
Read more ›
The post Fixed Vs Growth Mindset appeared first on Complete Developer Podcast.
Relationships end, some break-ups are mutual with both people seeing the relationship as over. Other times one person is done and the other is not. This leads to grief over the loss of the relationship.
Read more ›
The post Surviving A Breakup appeared first on Complete Developer Podcast.
In the early days of development configuring an application for deployment was a huge amount of work and was often encapsulated in installation programs that were complicated, error-prone, and could often destabilize other applications on the machine. In more modern software development, we've started to use container technology to fix these old problems, as well as to deal with some new ones.
Read more ›
The post The Benefits of Containers appeared first on Complete Developer Podcast.
Excited, energetic, and extroverted, the Enthusiast or Enneagram Type Seven is the life of the party or is the party of life. They are constantly looking for their next adventure, however if not careful they can become overwhelmed leading them to be disorganized and scattered.
Read more ›
The post Enneagram Type 7: The Enthusiast appeared first on Complete Developer Podcast.
Like logging and many other things that you have to do in most applications, email is something that seems simple but has a lot of hidden complexity, especially as your application scales. While simple approaches may be good enough early on, the way your application handles email will necessarily get more complex over time.
Read more ›
The post Email Best Practices appeared first on Complete Developer Podcast.
Fraud, imposter, no talent hack. Imposter Syndrome makes even the most talented developer feel unworthy to even look at code. It affects all of us in different ways through out our careers.
Read more ›
The post Types of Imposter Syndrome appeared first on Complete Developer Podcast.
There's a lot of debate around what makes someone a senior developer. We talk about how long they've been slinging code, what types of projects they've worked on, and the like. However, one thing drives a senior developer's work and that is the developer's mindset when solving certain problems.
Read more ›
The post Improve Your Thinking appeared first on Complete Developer Podcast.
Pre-Traumatic Stress Syndrome defines the Enneagram Type Six as worry is their constant state of being. Motivated by a need to be supported and secure the Loyalist will build and maintain communities around themselves.
Read more ›
The post Enneagram Type 6: The Loyalist appeared first on Complete Developer Podcast.
If your application uses a relational database, odds are good that updating the application will require changing the database structure. While tools are available for migrating databases in most frameworks, there is no silver bullet.
Read more ›
The post Database Migrations appeared first on Complete Developer Podcast.
The Raspberry Pi came out in 2012 and revolutionized the IT industry. The small, yet powerful, boards allow for building inexpensive IoT solutions, emulators, and even cluster computers. The latter allows the use of several Raspberry Pi nodes to work together to quickly solve problems that would take a single Raspberry Pi a long time.
Read more ›
The post Cluster Computing At Home appeared first on Complete Developer Podcast.
We've had several episodes on dates and times, oriented around how to think about the data types being used and all the fun wrinkles there. However, it doesn't end there - the intent of the user when entering a date or time matters a lot and can change the way you design your system.
Read more ›
The post Dates, Times, and User Intents appeared first on Complete Developer Podcast.
Interested in constant learning and relentlessly pursuing knowledge, the Enneagram Type 5 or the Investigator seeks to understand. They want to understand life and every part of it. Always searching and asking questions, the five loves deep dives and feels a strong need to test the truth themselves.
Read more ›
The post Enneagram Type 5: The Investigator appeared first on Complete Developer Podcast.
It's not glamorous, but most modern apps are going to require some form of an audit trail if dealing with things like finances, health information, private documents, or online sales. While practically everyone has to deal with audit trails, many organizations handle them poorly.
Read more ›
The post Audit Trail Anti-Patterns appeared first on Complete Developer Podcast.
It seems to be ingrained in us from an early age that saying no to someone is rude and that you shouldn't do it. However, saying yes to every request leads to an unfulfilled life.
Read more ›
The post Learning To Say No appeared first on Complete Developer Podcast.
Pair programming is extremely effective in certain circumstances, both for improving code quality and for cross-training developers. However, it can be hard to sell the idea to management and to other developers. It can also be hard to get right, especially if you haven't done it often.
Read more ›
The post Pair Programming appeared first on Complete Developer Podcast.
After a few years in software development, the joy of learning new things can wear off as you learn yet another framework for doing the same thing you did last year. The constant learning required for software development can tempt many people to leave the industry. If you want to continue to be happy in your career, you're going to have to get used to learning quickly.
Read more ›
The post Quickly Learning New Technology appeared first on Complete Developer Podcast.
Artistic and dramatic, the Enneagram Type 4 or The Individualist is unique and proud of it. The Romantic expertly expresses emotion through words, music, and art though their pervasive melancholy may lead to melodrama and self-loathing.
Read more ›
The post Enneagram Type 4: The Individualist appeared first on Complete Developer Podcast.
Most software developers put at least some error handling code in their applications. However, system complexity can mean that error handling isn't enough and that the system can still fall over. Instead, you need to step back and think about error handling at a larger scale to help keep the system stable.
Read more ›
The post Antifragile appeared first on Complete Developer Podcast.
The unoffendable person values relationships more than feelings of insult or even being correct. They may find what the offender has done to be hurtful or offensive yet they value the relationship more than their own feelings. They are able to set their feelings aside to address the actual issue at hand and not be driven by fear and shame.
Read more ›
The post Being Unoffendable appeared first on Complete Developer Podcast.
Programmers rarely use state machines, but they are useful in certain circumstances. In the places they work well, they can make code cleaner, far easier to debug, and much easier to reason about and maintain.
Read more ›
The post State Machines appeared first on Complete Developer Podcast.
If you have a day job, but dream of getting out on your own, it all starts with a side hustle. However, there are some common antipatterns in side projects that you should be aware of when you are coming up with ideas (or choosing between them). Side projects fail in predictable ways for reasons that are easy to see if you know what to look for.
Read more ›
The post Side Hustle Fails appeared first on Complete Developer Podcast.
Attractive and charming, the Enneagram Type 3 or the Performer is here to show you how it's done and look good doing it. The Achiever personality type is self assured, ambitious, and energetic but can become workaholics and overly competitive.
Read more ›
The post Enneagram Type 3: The Achiever appeared first on Complete Developer Podcast.
Coding can be complicated, analyzing code even more complicated. Coding a static code analysis dives into the realm of metacoding. Creating code to analyze code doubles or worse the complications.
Read more ›
The post Metacoding: Coding Code Analyzers appeared first on Complete Developer Podcast.
Well, it's far enough into the new year that you probably have an idea about your taxes. And it's probably a good time to start thinking about your longer term financial goals. Whether you are trying to get out of massive student loan debt, or you are considering buying a vacation home, you should probably be periodically looking at your finances and figuring out how to optimize them.
Read more ›
The post Long Term Financial Goals appeared first on Complete Developer Podcast.
While many software development teams have good workflows, sensible management, and good working relationships, that's not true of all teams. Some managers have a management "style" that results in them hovering over your shoulder and continually asking for updates, questioning your decisions, and generally making work more difficult than it has to be.
Read more ›
The post Micromanagers appeared first on Complete Developer Podcast.
Here to help, the Enneagram Type 2 or The Helper is the caring, interpersonal personality type. They are generous, warm, and empathetic but can become prideful, people pleasing, and possessive if not careful.
Read more ›
The post Enneagram Type 2: The Helper appeared first on Complete Developer Podcast.
In backlog prioritization the priority of a task is subject to change as the project progresses. However the need for the task or feature is not likely to change as often. In agile, sprint planning can employ a variety of prioritization methods.
Read more ›
The post Prioritizing the Backlog appeared first on Complete Developer Podcast.
Most of us understand object-oriented programming to some degree. We might even have a deep understanding of design patterns, refactoring, and testing. However, a lot of those understandings can fall abrupty to the wayside when you are writing code on a large team with dozens of people.
Read more ›
The post Large Teams and Object Oriented Programming appeared first on Complete Developer Podcast.
If you are like most people, financial matters are not the most comfortable thing to be thinking about. Honestly, almost all of us could do a lot better than we do. However, your financial health is intimately tied to your personal health, quality of life, and potentially the quality of life for future generations.
Read more ›
The post Improving Your Financial Game with Lucas Casarez appeared first on Complete Developer Podcast.
Some personalities can be overwhelming, especially if you don't understand them and what motivates the people with them. Understanding personality has been an area of study since before recorded history. The Enneagram is one personality test that has been around for a long time.
Read more ›
The post Overview of the Enneagram appeared first on Complete Developer Podcast.
The current lack of personal creative outlets may lead to depression, so recovering motivation can be important to maintaining productivity.
Read more ›
The post Recovering Motivation appeared first on Complete Developer Podcast.
Paradigms are ways of looking at the world around us. Programming paradigms are ways in which we look at programming styles, languages, and frameworks to classify and understand the world in which we code.
Read more ›
The post Programming Paradigms appeared first on Complete Developer Podcast.
Since New Years Eve is a Thursday this year, and we're happy to see 2020 gone, we've decided to make our typical first episode of the year our last one this year.
Read more ›
The post Predictions 2021 appeared first on Complete Developer Podcast.
In a year full of closures, cancellations, and disappointments we've continued to publish episodes every week. Now that we've made it to the end of the year it's time to go back and review our goals and set new ones for 2021.
Read more ›
The post Resolutions 2021 appeared first on Complete Developer Podcast.
Team lead positions are often highly coveted by developers. However, a lot of developers get into these positions only to find that they include shocking changes to their jobs, for which they haven't prepared.
Read more ›
The post Surprises When Becoming A Team Lead appeared first on Complete Developer Podcast.
Teachability is the ability to be taught or being able and willing to learn something new. It is humbly accepting you don't know everything while actively working to change that fact.
Read more ›
The post Becoming Teachable appeared first on Complete Developer Podcast.
If you've ever seriously tried to do test-driven development, it probably wasn't very long before you ran into something where testing became difficult due to an underlying dependency. Whether it's a database connection, accessing the file system, or dealing with the network, eventually your tests are going to have to deal with dependencies.
Read more ›
The post Dependencies in Unit Testing appeared first on Complete Developer Podcast.
Stress comes from lots of places. It can be sudden problems that arise on an important day that then tend to compound or it can be insidious, slowly growing without us knowing about it. It's inevitable, you will experience stress. How you handle it is what counts.
Read more ›
The post Staying Calm In Stressful Situations appeared first on Complete Developer Podcast.
Domain-Driven Design (or DDD) makes application code a lot cleaner. However, like any other software development approach, there are loads of anti-patterns to avoid and best practices that may not be readily apparent when you start developing applications in this manner.
Read more ›
The post Antipatterns in Domain Driven Design appeared first on Complete Developer Podcast.
APIs or Application Programming Interfaces are an important part of any modern web application. When properly designed they securely expose data to authenticated and authorized users. However, not everyone designs them the same, which is why OWASP came up with a list of the top security vulnerabilities to avoid.
Read more ›
The post OWASP Top Ten API Vulnerabilities appeared first on Complete Developer Podcast.
Dysfunctions that you see in an established and successful team are often the result of doing things RIGHT for years or even decades.
Read more ›
The post Dysfunctions of Successful Teams appeared first on Complete Developer Podcast.
Fear is something we all face from time to time. It can be a motivating factor or debilitating. Your understanding and how you handle fear determines which one.
Read more ›
The post Understanding Fear appeared first on Complete Developer Podcast.
The third and final episode in our series on logical fallacies delves into improper use or rhetoric. Both Fallacies of Omission and Fallacies of Ambiguity are used to redirect an argument away from the topic at hand or evidence that might disprove one side.
Read more ›
The post Logical Fallacies: Omission and Ambiguity appeared first on Complete Developer Podcast.
We've all had the experience of trying to use a piece of software, library, API, or database, only to have it fail miserably because something changed in a recent update. Not only are such changes disruptive, but because they often require rewrites, they can leave us looking for an alternative.
Read more ›
The post Backward Compatibility appeared first on Complete Developer Podcast.
Whether you are an early bird or night owl, your sleep chronotype or best time to get rest affects how productive you can be. Understanding this and how to manage your time will help improve your productivity and job satisfaction.
Read more ›
The post Your Most Effective Work Times appeared first on Complete Developer Podcast.
While working with legacy tech can be a dead end if you let it, there are some things you can do to make the experience beneficial for your career.
Read more ›
The post Leveraging Legacy Technology appeared first on Complete Developer Podcast.
Part two of our series on logical fallacies gets into the form of the argument. These formal fallacies may contain correct information or premises but the order or form of the argument is incorrect.
Read more ›
The post Logical Fallacies: Component Fallacies appeared first on Complete Developer Podcast.
We've all been there. A webpage that was working stops working, or one that was broken suddenly starts working without any obvious changes. If you've had this happen, one of the first things you should probably suspect is a caching issue.
Read more ›
The post Schrodinger’s Cache appeared first on Complete Developer Podcast.
When we started Complete Developer Podcast we never expected it to grow into what we have today. It's been 5 years since we published our first episode back when we were recording with one Blue Yeti mic between the two of us.
Read more ›
The post Complete Developer Network appeared first on Complete Developer Podcast.
In the early days, the file system was used a lot more than it is now. However, you are probably still going to have to use the filesystem periodically, and you need to be aware of some of the things that can happen.
Read more ›
The post Understanding File Systems appeared first on Complete Developer Podcast.
Do you ever get frustrated when trying to make a presentation or convince your team at work about a certain way to do something but keep getting derailed by irrelevant points? You may be facing attacks from someone who is using logical fallacies in their arguments.
Read more ›
The post Logical Fallacies: Fallacies Of Relevance appeared first on Complete Developer Podcast.
If you've been on a team for very long, you probably know who the best developers are. While you probably also understand that this takes years of diligent work, there are things you can start doing today that will drastically improve the way you look to management and to your team.
Read more ›
The post Become A Better Developer Today appeared first on Complete Developer Podcast.
Most developers have a decent salary, but some still struggle to make ends meet each month. Whether it is from lack of planning, poor decisions, or lack of impulse control they just can't seem to get their minds around how to use their money.
Read more ›
The post How To Think About Money appeared first on Complete Developer Podcast.
Early on in your development career, you probably saw a report at some point showing how much senior developers are paid. While the high pay can be nice, there are aspects of many senior developer jobs that you want to avoid. In short, there are things that are more important to your quality of life and sanity than your pay.
Read more ›
The post More Important Than Salary appeared first on Complete Developer Podcast.
It seems like most developers these days are pretty comfortable with relational databases. However, not everything can (or should) fit neatly into a relational model. For various reasons, a NoSql database that stores documents may be a much better solution.
Read more ›
The post Document VS Relational Databases appeared first on Complete Developer Podcast.
You've been at the company for several years with lots of value brought in but aren't seeing it in your pay check. You are enjoying working from home and want to make it a permanent thing at your workplace. You've decided to buy that new car but hate high pressure salesmen. Welcome to the world of negotiation...
Read more ›
The post Basics Of Negotiation appeared first on Complete Developer Podcast.
Lots of developers will tell you that they aren't very good at design. While that may be true, it turns out that we all still have to do basic UI work in our jobs.
Read more ›
The post Design Basics appeared first on Complete Developer Podcast.
Whether you're a young genius, a forever dreamer, or a wise sage, you'll meet many different types of developers. The way they express their knowledge and skills can be boiled down into several personality archetypes.
Read more ›
The post Types of Programmers: Knowledge Base appeared first on Complete Developer Podcast.
A lot of companies say that they do scrum. As a subset of agile, this approach can be beneficial to your team's development process. However, bad scrum can rob your team of efficiency, alienate your developers, and destabilize your product over time.
Read more ›
The post Scrum Master Mistakes appeared first on Complete Developer Podcast.
Two raised to the power of eight (2^8) or 256 has played a significant part in computer science. A byte, made up of 8 bits, has 256 possibilities. From the early days of computing this number has been significant.
Read more ›
The post The Significance of 256 appeared first on Complete Developer Podcast.
If you have an HTTP-based API, you're most likely using the principles of REST to organize your system. While building such a system, it's helpful to organize your code in a way that is not only clean and eloquent, but that is thoroughly predictable to both new developers and anyone else working with your system.
Read more ›
The post REST Anti-Patterns appeared first on Complete Developer Podcast.
If you are like most developers, you probably like writing documentation even less than reading it. There is a lot more to writing good, solid documentation than most people consider, and that includes your boss, your project manager and even yourself.
Read more ›
The post Understanding Documentation appeared first on Complete Developer Podcast.
From Bearded Wizards to Jesters and even Martyrs there are many different personalities that you will run into during your career as a developer. These different personalities and personality types can work together or cause strife in your life depending on how well you can relate and work with them.
Read more ›
The post Types of Programmers: Interpersonal appeared first on Complete Developer Podcast.
If you've worked on any codebases larger than "hello world", you're well-aware that most of them have nasty surprises in them. If you have tried in vain to fix these things manually, static code analysis tools may be an excellent way to do this.
Read more ›
The post Static Code Analysis appeared first on Complete Developer Podcast.
A lot of people have suddenly been given the "opportunity" to work remotely of late, thanks to the coronavirus outbreak. However, if you want to work from home over the long term, there are a lot of things you need to get right to make sure that it is sustainable.
Read more ›
The post Long Term Remote Work appeared first on Complete Developer Podcast.
From cowboy coders to ninjas and everything in between, the development community have many archetypes associated with it. These different personalities and personality types can work together or cause strife in your life depending on how well you can relate and work with them.
Read more ›
The post Types Of Programming: Coding Styles appeared first on Complete Developer Podcast.
Relational databases continue to be a huge part of modern systems design and the rules of relational databases should generally be followed. However, there are times that you need to break (or bend) normal database design rules in order to reach your goals.
Read more ›
The post Breaking The Relational Model appeared first on Complete Developer Podcast.
Promotions can be exciting. You've worked hard and are now moving up. However, they can also lead to impostor syndrome the closer you get to management.
Read more ›
The post Impostor Syndrome When Getting Promoted appeared first on Complete Developer Podcast.
Many developers start out in the job search feeling relatively optimistic about their chances of getting a much better job. However, that optimism can often quickly turn to horror if they end up landing the WRONG job.
Read more ›
The post Red Flags In The Hiring Process appeared first on Complete Developer Podcast.
Do you find yourself unable to stay in a relationship or at a job? Maybe you get a new job and it's great but quickly becomes a nightmare. You may believe you are unlucky in love. When this happens over and over again the problem may not be a string of bad people or places, the problem may be you.
Read more ›
The post You Are The Problem appeared first on Complete Developer Podcast.
Not every app is built using best practices. Sometimes you have to try and fix an application that has been poorly maintained for years or even decades. Adding dependency injection and inversion of control is a great example of this kind of situation.
Read more ›
The post Inversion of Control in Legacy Applications appeared first on Complete Developer Podcast.
If you are like many developers, most of the time you are building systems that are intended to be used directly by users. However, eventually you will be tasked with building processes to process data out of band. And when you do, you'll quickly learn that such processing requires a very different thought process.
Read more ›
The post Batch Processing appeared first on Complete Developer Podcast.
In the Sword of Truth series Terry Goodkind lists out several Wizard's Rules that are used to illustrate points and train the characters. Each one has a different but related message about life.
Read more ›
The post Wizard’s Rules appeared first on Complete Developer Podcast.
We all lose motivation or fall prey to distractions. Productivity, creativity, and quality suffer when we lack the self discipline of a strong work ethic.
Read more ›
The post Improving Your Work Ethic appeared first on Complete Developer Podcast.
We talk often on the show about software development methodologies such as Agile or Waterfall. However, we haven't gotten into the project management process or stages of software development underlying them.
Read more ›
The post Software (Systems) Development Life Cycle appeared first on Complete Developer Podcast.
There was a time you could write software for just the English speaking market and expect your company to do well. That time has long passed, and to be truly successful, your software has to be able to work for people speaking a variety of languages and dialects.
Read more ›
The post Internationalization Misconceptions appeared first on Complete Developer Podcast.
Some people are just difficult. So much so it's just easier to avoid them rather than dealing with them. Unfortunately that's not always an option so we have to learn strategies for dealing with difficult people.
Read more ›
The post Dealing With Difficult Coworkers appeared first on Complete Developer Podcast.
You probably would like to make more money. If for no other reason, the constant inflation and soaring costs in critical parts of the economy (healthcare, housing, college, childcare and the like) mean that if you aren’t reguarly increasing your …
Raise Your Pay Read More »
The post Raise Your Pay appeared first on Complete Developer Podcast.
How do you define done? When do you know your code is ready for production? Is your code barely worthy of your momma's fridge, refined, but not emily post refined, or would it make Uncle Bob proud?
Read more ›
The post Defining Done appeared first on Complete Developer Podcast.
There was a time when you could get by in software development without learning how to use source control, but that time is long gone. You have to understand how this stuff works. Period.
Read more ›
The post Basics of Source Control appeared first on Complete Developer Podcast.
While it is difficult and time-consuming to get into software development, many developers seem to think that once they have a job, everything is fine. That couldn't be further from the truth. You need to avoid wrecking your career too.
Read more ›
The post Developer Career Mistakes appeared first on Complete Developer Podcast.
Congratulations on your new job! You went through all the pain and suffering of interviewing. Now the real work begins. You have to quickly get to the point where you can provide business value so that you can keep your new shiny job.
Read more ›
The post Quickly Learning The Business Rules appeared first on Complete Developer Podcast.
Routines make life easier, but they can also make it stale and inflexible. Breaking out of your comfort zone takes courage and an understanding of yourself. Expanding your comfort zone involves breaking out of it and then resetting yourself.
Read more ›
The post Expanding Your Comfort Zone appeared first on Complete Developer Podcast.
Even terrible code runs. In fact, lots of terrible code runs in production every day. However, such code is difficult to maintain, horrifying to modify and subject to nasty problems as it ages. Like a messy house, a messy code-base is nowhere that you want to visit, much less a place to live.
Read more ›
The post Clean Code with Uncle Bob Martin appeared first on Complete Developer Podcast.
Being asked for advice and help is a double edged sword. On the one side, you feel accomplished and proud to show off the knowledge and experience you've worked hard to gain. On the other, you may have a sense of impostor syndrome because you know how much you don't know.
Read more ›
The post Mentoring Questions appeared first on Complete Developer Podcast.
It's the beginning of a new year, and a new decade, this is the first episode of 2020. As has become tradition we'll be reviewing our predictions for the past year discussing the ones we got right, the ones we got wrong, and the ones we came close. Then we'll each give our predictions for coming year.
Read more ›
The post Predictions 2020 appeared first on Complete Developer Podcast.
It's almost the start of a new decade. It's become our tradition to review our goals for the past year. We'll each go over our goals talking about our progress toward them. Then we'll talk about our podcast goals from last year. Finally we'll discuss our goals for this year.
Read more ›
The post Resolutions 2020 appeared first on Complete Developer Podcast.
If you struggle with regular expressions, you aren't alone. Regex is a huge pain point for a lot of developers and can be complex to understand.
Read more ›
The post Regex Demystified appeared first on Complete Developer Podcast.
While most higher level languages have sorting algorithms built into them or in their standard libraries they may not be the best option for what you are building. Understand sorting will help you to use the most efficient method for your purposes.
Read more ›
The post Sorting Algorithms appeared first on Complete Developer Podcast.
When you have a huge backlog of possible features to implement in your app, you may be tempted to create a plugin model so that other people can modify it. However, this path is trickier than it seems.
Read more ›
The post Making Apps Plugable appeared first on Complete Developer Podcast.
Defensive programming is about creating long lasting applications that will graciously handle unexpected inputs from users. It's building code to survive the test of time.
Read more ›
The post Defensive Coding appeared first on Complete Developer Podcast.
We've all been there. You get placed onto a "new" project, only to find that it's actually really old code that nobody in the office knows anything about. A lot of developers have a really hard time jumping into a legacy codebase, because it takes an entirely different set of skills to understand legacy code than it does to write new code.
Read more ›
The post Learning Legacy Technologies appeared first on Complete Developer Podcast.
While you may rely on documentation to help you most of the time with tech-related things, there are plenty of times you need to be able to rely on your own memory. Whether it's because you are doing a process for the 100th time, you are trying to recall things from memory for a job interview, or you are answering impromptu questions, your memory is a vital asset that you need to use to your best advantage.
Read more ›
The post How To Improve Your Memory appeared first on Complete Developer Podcast.
It's happened to us all. We get excited about a great idea or project we're working on. Put in a lot of work and effort up front. Then things get difficult or we hit a slow down and have to force ourselves to remain focused.
Read more ›
The post Stick-To-Itiveness appeared first on Complete Developer Podcast.
Whether it's wrapping the database or other external services, or simply as a way to handle cross-cutting concerns, code generation is something you will run into a lot. You'll also find that a lot of people do it badly and end up hurting their organization.
Read more ›
The post Code Generation Antipatterns appeared first on Complete Developer Podcast.
The dead sea is dead for a reason. Dead sea development environments are usually toxic to your career, destructive to your motivation, and terribly ineffective.
Read more ›
The post Mitigating The Dead Sea Effect appeared first on Complete Developer Podcast.
Most of us will have to deal with HTTP at some point in our career. Understanding the web and its underlying protocols is absolutely necessary for understanding most larger systems in use today. While you can get by with little …
Understanding HTTP Read More »
The post Understanding HTTP appeared first on Complete Developer Podcast.
Where mathematics and philosophy meet you'll find formal logic. It is a systematic study of valid inference. In it one starts with a proposition or assumed hypotheses and derives a conclusion.
Read more ›
The post Formal Logic appeared first on Complete Developer Podcast.
Software developers get burn out. Frequently, burnout is caused by poor boundaries, especially with your job.
Read more ›
The post Keep Your Job From Burning You Out appeared first on Complete Developer Podcast.
Conferences are a fun place to learn, grow, and meet fellow developers. Whether you are a seasoned code veteran or newbie searching for your first junior developer job tech conferences have something for you.
Read more ›
The post Conference Experiences appeared first on Complete Developer Podcast.
10X developer? What does that even mean? There's been a lot of discussion and even some controversy over the term 10X Developer.
Read more ›
The post 10X Developers appeared first on Complete Developer Podcast.
We all have those nights where no matter what we do we just can't seem to fall asleep. Looking at the clock, calculating how many hours until we have to get up just makes it worse.
Read more ›
The post Getting Better Sleep appeared first on Complete Developer Podcast.
A rising alternative to the content management system approach is to use the JAMstack, which stands for Javascript, APIs, and Markup. It's an approach to building websites that is intended to deliver better performance, security, and easier scalability.
Read more ›
The post JAMStack appeared first on Complete Developer Podcast.
Speaking at conferences can be daunting, especially if you are first starting out. Public speaking can be hard enough without going through the conference talk process. Both Will and BJ have gone through the process of creating and submitting a CFP (Call for Papers), putting together a conference talk, and making it memorable and engaging.
Read more ›
The post Creating Conference Talks appeared first on Complete Developer Podcast.
If you are contemplating starting a side project, there are some things you need to keep in mind in order to keep your day job from interfering with, or even damaging your side project. You also need to be careful that your side project doesn't create problems at your office.
Read more ›
The post Boundaries Between Work and Side Hustle appeared first on Complete Developer Podcast.
There are a ton of programming books out there, but there are only a few that have made a huge and lasting impression on developers across the board. One of those is The Pragmatic Programmer: From Journeyman To Master by Andrew Hunt and Dave Thomas, which has helped an uncountable number of developers refine their career and practices.
Read more ›
The post Pragmatic Programmer appeared first on Complete Developer Podcast.
Taking responsibility is taking action in your life that moves you toward happiness and success. It is about owning the consequences of what you do. When taking responsibility in your life you allow yourself you be in control.
Read more ›
The post Taking Personal Responsibility appeared first on Complete Developer Podcast.
As software companies mature, many of the employees (including developers, testers, project managers, and designers) find themselves further and further removed from the daily lives of those who use their software. Not only does this make it more difficult to onboard new employees, but it also makes it much harder to foster reasonable discussions about what the users of a piece of software actually want.
Read more ›
The post User Personas appeared first on Complete Developer Podcast.
Test code is code! Just like with real code certain patterns emerge when writing automated tests for your code. The patterns or observations about the best way to write tests help us to design our automated testing to best optimize the code and our time.
Read more ›
The post Design Patterns in Automated Testing appeared first on Complete Developer Podcast.
Throughout your career as a developer you are likely to work at some well established companies as well as some just getting started. You may even start your own company at some point. Working as or with entrepreneurs no matter your role has a unique set of challenges and rewards.
Read more ›
The post Successful Entrepreneurship appeared first on Complete Developer Podcast.
Regardless of who you are, technical debt represents an issue that you need to understand in order to be effective. In this episode, we're going to discuss some other ways to understand the problem that may help you and your team have better discussions about it.
Read more ›
The post Analyzing Technical Debt appeared first on Complete Developer Podcast.
We've had conversations about emotional intelligence, goal setting, journaling, and many other topics. Each one a part of helping you to better understand yourself. Increasing your self awareness will allow you to not only know why you do the things you do but allow you to control your own behavior in highly emotional situations.
Read more ›
The post Increasing Your Self Awareness appeared first on Complete Developer Podcast.
When most of us finish a project, we don't really think much about it unless a problem comes up. However, once you've rolled an application out to production, there are certain things that you can expect at various points in time as the application ages.
Read more ›
The post Code For The Ages appeared first on Complete Developer Podcast.
Everyone likes to feel involved. Even the shyest introverts need a community, something to connect them with others like them. As developers we can often feel isolated in our own worlds of study or focus where we only have ourselves and our computers. Some people are able to find that community where as others don't see it and have to create the community they desire.
Read more ›
The post Creating A Community For Coders appeared first on Complete Developer Podcast.
It can be challenging to make the leap from a job that is just ok to one that really makes you happy. In this episode, we're going to talk about some of the things you should be doing if you anticipate leaving your job within six months to a year.
Read more ›
The post The Long Quit appeared first on Complete Developer Podcast.
We made it to Episode 200! Almost four years into podcasting and it feels like we're just getting our feet under us. There's so much we've learned the past 200 episodes from audio engineering to coding and tech skills to insights into ourselves and our interactions. There is so much more we have yet to learn.
Read more ›
The post A Retrospective On 200 Episodes appeared first on Complete Developer Podcast.
A lot of times we allow fear of social situations to control us. Be it public speaking, going to an event where you don't know anyone, or just going out after work we all have some places where we are anxious in social settings. Even for the more outgoing and extroverted there are times when social fears and anxieties cause us to avoid interactions that otherwise would be to our benefit.
Read more ›
The post Overcoming Social Anxiety appeared first on Complete Developer Podcast.
Sometime soon, you'll be ready to move on to the next phase of your career. While for many jobs, this can entail going to another company, it doesn't always have to be that way. In fact, if you like your current job, you may want to stay at the same place, but move to another position. Additionally, if you are planning to leave, there is a good chance that you'll want to change what you are doing on a day to day basis. In either case, you need to position yourself well so that you that you can reach your career goals.
Read more ›
The post Positioning Yourself For Advancement appeared first on Complete Developer Podcast.
Most organizations really dislike having their private, business-critical information shared with everyone else, especially when those people are potential clients, competitors, or the general public. Applications with multiple tenants, each with their own security structures present interesting challenges for application development, especially as your application becomes more complicated.
Read more ›
The post Multi-Tenant Apps appeared first on Complete Developer Podcast.
If you are a developer using a compiled programming language, your craft depends on your compiler. Computers are not capable of natively understanding any of your code. Instead, the machine must be told what to do in a way that it understands. Depending on your language and platform, to do this, you may find yourself relying on either a compiler or an interpreter.
Read more ›
The post Compilers appeared first on Complete Developer Podcast.
We've all had times where we were on top of our game. It was like we could sense what others were feeling and thinking and had the right responses to every situation. Other times we weren't so in tune with ourselves or others.
Read more ›
The post Improving Emotional Intelligence appeared first on Complete Developer Podcast.
The longer your career goes, the more likely it is that you'll get overloaded with work. Whether it's because your company is understaffed, your manager assigns you too much stuff to do, or because schedules aren't managed well, there will come a point when you have more stuff to do than you can easily handle.
Read more ›
The post Scheduling Under Pressure – Best Tactics appeared first on Complete Developer Podcast.
We've brought on Jerome Hardaway, founder of Vets Who Code and Jacob Oakley, a successful graduate of the program, to talk to us about how they are helping the men and women who served in the US Military.
Read more ›
The post Vets Who Code appeared first on Complete Developer Podcast.
There is a surprising amount of writing required to be a successful developer. Whether you have to write technical specifications, document an existing system, or even write tutorials for open source software, your technical writing skills will not only determine the quality of your work, but may even be the deciding factor in the success of your entire team.
Read more ›
The post Improving Your Technical Writing appeared first on Complete Developer Podcast.
You make one little change on your LinkedIn profile and get flooded with recruiter emails. We've all been there. When you're looking for a job this is great but it can get annoying fast. Even worse is when you are looking but get all the wrong types of offers or get recruiters contacting you about jobs you don't want or aren't qualified to do. Most of the time this can be alleviated with some simple updates to your profile.
Read more ›
The post Top 5 LinkedIn Mistakes with Amber Beam appeared first on Complete Developer Podcast.
It's pretty common in technology-related professions to be shy. Lots of people that get into this profession do so under the mistaken impression that they won't have to deal with people as frequently. That may have worked at one point, but the average software project is so complicated these days that you can no longer count on being the only person you are around.
Read more ›
The post Put Yourself Out There appeared first on Complete Developer Podcast.
Microservices are the cool, new way to build large software systems. The hype is everywhere, from the tech press to the hipster dude in the next cubicle. If you are building applications, you've probably felt at least some pressure to build them as microservices. However, if you've been in tech for very long, you've also seen a lot of fads come and go. You're probably wondering if you are really choosing microservices for good reasons.
Read more ›
The post Bad Reasons For Microservices appeared first on Complete Developer Podcast.
Some of the best things we learn are not in a classroom but just sitting around chatting with fellow developers. Dev chats or lunch an learns somewhat formalize this process. They allow for things such as knowledge transfers from senior developers who have been working in a codebase for years as well as providing an opportunity for younger developers to show off new skills and technologies.
Read more ›
The post Lunch and Learn appeared first on Complete Developer Podcast.
As a professional developer, you're eventually going to have to work with a third party service. Other people's systems can introduce very interesting experiences, especially as your interaction with those systems matures. Not only are third-party systems opaque, usually poorly documented, and often subject to change on short notice, but they can also play havoc with your own release cycle. In this episode we'll talk about some practices for working with third party APIs without the constant risk of nasty surprises.
Read more ›
The post Integration Considerations appeared first on Complete Developer Podcast.
Developers are supposed to be smart people. However, sometimes we do things that seem right in the moment, only to have them blow up in our faces later. This is especially true when it comes to career decisions and office politics. Basically, any situation where you need to act in a way that protects your own personal power is ripe for disaster when you don't think before acting.
Read more ›
The post Developer, You Played Yourself appeared first on Complete Developer Podcast.
Dependency injection removes the need to create instances of services in your code. Instead of having a module of code call the other modules it may need to function Dependency Injection passes those into it from the original caller. This is usually a framework or other higher level code sitting on top of the custom code you write for controlling the flow of your application. In this episode we'll be talking about how dependency injection works, it's various parts, the different ways it's implemented, and finish up discussing some advantages and disadvantages.
Read more ›
The post Dependency Injection appeared first on Complete Developer Podcast.
Most of us have commutes. Whether it is every day, just once a week, or even just on occasion, most of us will have to leave the house on a somewhat regular interval to travel to work. Most development work can be done remotely. Unfortunately many times it is done in an office setting. This practice imposes costs on the developer, their team, and society that are probably not being fully considered. In this episode we are going to talk about some of these and how avoiding or modifying the commute might make a lot more sense.
Read more ›
The post The Cost of Your Commute appeared first on Complete Developer Podcast.
Many of us have been there, you're out on a date with someone who just doesn't understand you at all. Some of us have even been in long term relationships with people that just didn't get us. Since this episode is coming out on Valentines Day we thought we'd have a little fun with the "Rules for Dating My Son/Daughter" memes with the Rules for Dating My Developer. In each one we'll talk about ways to better understand not just other developers but the people in your life. This is a good episode to listen to with a spouse or significant other as a lot of these apply not only to developers.
Read more ›
The post Rules For Dating My Developer appeared first on Complete Developer Podcast.
We've all been there. You work like a dog, and yet there are no signs of appreciation from management. Worse still, every day inflation eats a little more of your paycheck. If you like your job and don't want to quit, there is only one really good option at this point. You need to ask for a raise. However, this is something that many of us find scary and intimidating. In this episode we're going to talk through some ways to make the process easier.
Read more ›
The post Asking For A Raise appeared first on Complete Developer Podcast.
Many of us learned to develop software using OOP (or Object-Oriented Programming). The model somewhat fits the way a lot of people look at the world and works well in many cases. However, over time, you'll start to notice situations where a naive understanding of OOP is simply not good enough. In this episode, we're going to talk about some of the things that will plague you as you take OOP to the next level.
Read more ›
The post Tough Situations In OOP appeared first on Complete Developer Podcast.
Failure happens to us all at one time or another. The goal of many patterns and project management strategies is to reduce the size of the failure which often results in an increase on frequency of failure. The fail small and fail often mentality. However you experience failure in your development or career the most important thing is how you recover and what you learn from it.
Read more ›
The post Learning From Failure appeared first on Complete Developer Podcast.
Creativity is useful in a lot of places. This usefulness is not limited to writing code or even in creating a podcast. For many people a more creative life is often a better one.
Read more ›
The post Becoming More Creative appeared first on Complete Developer Podcast.
Even the concept of a code review can make developers cringe. It's difficult to have someone else scrutinize something you've worked so hard on especially if it was a difficult task or you are proud of your solution. For the reviewer it requires diligence and attention to detail. In both cases it takes time and can be a pain if the process and goals are not clearly defined.
Read more ›
The post Preparing for Code Reviews appeared first on Complete Developer Podcast.
The theme for this past year has been setting and building your story. In order to do this we need to have clearly defined goals and an action plan to reach them.
Read more ›
The post Resolutions For 2019 appeared first on Complete Developer Podcast.
It's the end of the year, this is the last episode of 2018. As has become tradition for our last episode we'll be reviewing our predictions for this year discussing the ones we got right, the ones we got wrong, and the ones we came close.
Read more ›
The post Predictions For 2019 appeared first on Complete Developer Podcast.
We live in a society where people are praised for being clever. Whether it is in finding better ways to do things, or simply in being witty, being clever is lauded in our society. However, sometimes people are a little too clever and edge into behavior that borders on unethnical. Dark UI patterns are an example of this in the web space. Dark patterns are used to get users to do things that they didn't intend to do through deceptive and nefarious means.
Read more ›
The post Dark Patterns in UI Design appeared first on Complete Developer Podcast.
Testing code is not easy, you have to think about all the different ways your code can go wrong and then write tests to cover them. You generally write more test code than functional code when creating unit tests.
Read more ›
The post Objections to Unit Testing appeared first on Complete Developer Podcast.
Unhealthy management of personal boundaries not only makes life tougher, but can often invite predatory people into your world. It's not a pleasant experience, but it is something you have to do for your mental health as an adult. Your boundaries have to both be flexible enough to let you survive and rigid enough to keep you from being miserable.
Read more ›
The post The Importance of Boundaries appeared first on Complete Developer Podcast.
Resume Driven Development is considered a bad idea, especially on the job. It can cause problems for your coworkers and the company down the line after you are gone. If you suspect someone you work with of Resume Driven Development ask them why they are choosing the particular technology to solve their problem.
Read more ›
The post Resume Driven Development appeared first on Complete Developer Podcast.
When you start out as a junior developer you're typically focused on a single project learning the system and tools at your workplace. As you get further along in your career you'll begin to take on more responsibilities and begin working on multiple projects. It can be difficult to handle the expectations of multiple projects.
Read more ›
The post Surviving Multiple Projects appeared first on Complete Developer Podcast.
The assumptions we can safely make when building a distributed application are few and far between. Unlike a lot of smaller applications, distributed applications tend not to have system boundaries in the way that many other applications have.
Read more ›
The post Distributed Computing Fallacies appeared first on Complete Developer Podcast.
Messed up code happens in every codebase, but for it to really be prevalent requires an ecosystem that makes it a appear to be the best choice most of the time. Small issues in a codebase continue to pile up until someone suggests a complete rewrite to fix it.
Read more ›
The post Causes of Poor Code Quality appeared first on Complete Developer Podcast.
Open Space Technology is a method of organizing meetings and conference. It is a participation driven meeting where the agenda is created by those in attendance. Topics do not have to be around technology. At DevSpace there were Open Space session about martial arts, foster parenting, and of course beer. They are also a great way to meet other developers with similar interests.
Read more ›
The post Open Spaces appeared first on Complete Developer Podcast.
Sometimes you just know that a person is on the way out the door. Even when it is more subtle there are signs and indicators that can alert you to the fact that one of your coworkers is looking for greener pastures. Many of these are changes in the normal behavior of your coworker. Indicators are when they do not act as they have or do things they have not previously done.
Read more ›
The post Signs Your Coworker Is Quitting appeared first on Complete Developer Podcast.
It's pretty much a fact of human existence that not only will you have to deal with challenging, broken people, but that as an adult, you may not have the option to avoid them. The point of this is recognizing that there are very few people who start off as intolerable jerks, but there are lots of people who end up that way as a result of circumstance.
Read more ›
The post Troublesome Developers appeared first on Complete Developer Podcast.
Inversion of Control is a way of designing code to implement the Dependency Inversion Principle. In it the custom code written for the functionality of the application does not control the flow of control. Instead that is received from a more generic framework.
Read more ›
The post Inversion of Control appeared first on Complete Developer Podcast.
When selecting a development stack for a side project, you need to maximize the amount of time that you have available for actually getting things done. The goal of a working side hustle is to make extra money on the side, not to be vehicle for exploring a new framework, language, or approach.
Read more ›
The post Selecting A Stack For Your Side Hustle appeared first on Complete Developer Podcast.
The decision to go back to school or to attend in the first place is big and life altering. It should not be taken lightly. It's a very personal and difficult decision to make.
Read more ›
The post Going Back To School appeared first on Complete Developer Podcast.
Designing a web API (or Application Programming Interface) that lives on a webserver can be very difficult. There's a lot to consider when building an API. While we frequently try to simplify the process down to where it feels the same as making a simple library for our own use, this approach really doesn't get us where we need to be.
Read more ›
The post API Best Practices appeared first on Complete Developer Podcast.
Many companies prefer to promote from within, either for the prestige of claiming to do so or because internal candidates are a known quantity and quality. There's a difference between interviewing at a new location with people who don't know you or have not worked with you and interviewing in front of your coworkers and people you've been working with for years. When applying and interviewing for an internal promotion you need to use different strategies to be successful.
Read more ›
The post Acing the Internal Interview appeared first on Complete Developer Podcast.
Real personal change is hard. Not only do you have to pick an appropriate goal, but you have to slog towards it over an extended period of time. Reinvesting your gains in any worthwhile activity or life goal is not all that hard, but it has to be approached intentionally in order for it to work. The idea of big goals is to create a better version of yourself, and nothing short of good process is going to make that happen in a sustainable fashion.
Read more ›
The post Reinvesting Your Gains appeared first on Complete Developer Podcast.
Network Access Control (NAC) attempts to combine end-station security with network security and authentication. It is used to control access to a network via policies and protocols. These include when the policies are applied whether before or after accessing the network as well as how information about the device accessing it is obtained.
Read more ›
The post Network Access Control appeared first on Complete Developer Podcast.
The 7 deadly sins are useful metaphors for dysfunctional software development behavior patterns that you probably see around you every day. These tendencies are not only instructive in noticing bad behavior from others, but more importantly, in noticing it in yourself.
Read more ›
The post 7 Deadly Sins of Coding appeared first on Complete Developer Podcast.
Regularly writing in a journal can help you to take the puzzle pieces of your thoughts and feelings and put them together in a logical pattern. Use these guidelines to help get started on that puzzle. Don't hesitate, get started journaling now.
Read more ›
The post Getting Started Journaling appeared first on Complete Developer Podcast.
Test driven development is a different way to think about the design, development, and maintenance of applications. TDD can work well for you, but it's easy to go off the rails, especially with the kind of examples you see on the web. The basics are easy, but it can be tricky to get right. It takes a while to learn all the hard lessons of TDD, but the goal is ultimately worth it.
Read more ›
The post Why TDD Isn’t Working appeared first on Complete Developer Podcast.
White-Label applications offer an additional level of challenges over "normal" application development. Due to some of these constraints, many simple tasks become orders of magnitude harder or can't even be done at all.
Read more ›
The post White Label Apps Part 2: Maintenance appeared first on Complete Developer Podcast.
With a white-label app, your clients may tinker with the database, integrate with things you wouldn't expect, or even come to rely on bugs. They may use the application in ways you never expected, and their business may be entirely reliant on misusing your application.
Read more ›
The post White Label Apps Part 1: Development appeared first on Complete Developer Podcast.
Discussing agile methods can become a controversial topic. People have a lot of strong feelings about agile methodologies. There are a lot of misconceptions and misunderstandings about what agile is and how the approach to project management is used.
Read more ›
The post 7 Myths of Agile appeared first on Complete Developer Podcast.
Threading is crucial to understand if you want your applications to be responsive to multiple users, to update a user interface while a long-running process proceeds in the background, or just to allow you to process multiple things at the same time.
Read more ›
The post Basics of Threading appeared first on Complete Developer Podcast.
Progressive web apps are websites with a look and feel of a native application. Even better they have similar functionality to native apps. In a mobile first, device heavy world, this allows us to build web applications that are able to access the native features of the device while running an application via the web. These features can include offline functioning, notifications, and app caching.
Read more ›
The post Progressive Web Apps appeared first on Complete Developer Podcast.
Keeping a daily work journal will allow you to keep track of your thoughts and ideas at work. You'll be able to put the pieces of your thoughts and feelings at work together to better understand yourself, your coworkers, and the problems you face.
Read more ›
The post 9 Career Benefits of Journaling appeared first on Complete Developer Podcast.
No matter what your role, be it attendee, volunteer, speaker, or sponsor there are things you can to do get the most out of attending technical conferences. Follow these tips to make your conference experience even better.
Read more ›
The post Get The Most From Conferences appeared first on Complete Developer Podcast.
Most developers are of the opinion that CSS is nasty to deal with. And it can be, especially when you treat it as a second-class citizen and don't take advantage of tools that are designed to help with the process. CSS in many development shops is being managed with the same sort of sophistication that could be expected of javascript a decade ago and we can do better.
Read more ›
The post CSS Code Smells appeared first on Complete Developer Podcast.
There are a myriad of benefits to keeping up with your thoughts, ideas, and emotions. Journaling or keeping a diary improves your health. Both mentally and physically. It provides an outlet for you that no-one else will see. Journaling allows you to express your thoughts, emotions, concerts, etc. in a safe and friendly environment.
Read more ›
The post Health Benefits of Journaling appeared first on Complete Developer Podcast.
There is a fair amount of complexity in software and component versioning, as well some disagreement on what is standard. However it is pretty easy to get reasonably right, as long as you know the basics. While there is always room for improvement, adhering to basic practices can make the process easier and less likely to end disastrously.
Read more ›
The post Software Versioning appeared first on Complete Developer Podcast.
Logic programming is a paradigm that is based on formal or mathematical logic. Apps written in logical languages are basically sets of commands in logical form. They express facts and rules about a problem within the domain.
Read more ›
The post Logical Programming appeared first on Complete Developer Podcast.
The Open Web Application Security Project (OWASP) is a worldwide not-for-profit organization focused on improving the security of software. They put together a document containing the top 10 security vulnerabilities compiled through consensus of security experts from around the world.
Read more ›
The post OWASP Top Ten appeared first on Complete Developer Podcast.
Have a job in software development for long enough, and you'll eventually lose it. Whether through an acquisition, being downsized, or even being fired, no job is permanent. When this happens, many developers are poorly prepared for a job loss. Recovery from an unexpected job loss can take a lot of time and effort, as well as taking an emotional toll. In general, a job loss isn't going to be a pleasant thing to endure, but there a lot of things you can do to at least mitigate the damage.
Read more ›
The post Surviving A Job Loss appeared first on Complete Developer Podcast.
SOLID is a mnemonic acronym for five core principles to designing and implementing solid object oriented code. They can and should be applied to any object oriented design and serve as the core of certain methodologies built around OOP such as agile. The goal of the principles is to make it easier to develop, maintain, and scale.
Read more ›
The post SOLID Principles appeared first on Complete Developer Podcast.
Whether it is producing content such as podcasts, blogs, and videos, consulting, or building applications for personal use or for sale, or even creating other content like music and books, there is a lot to be gained by hustling on the side, a lot of which is much more difficult to get in a regular job. Taking on a side project can help build your career and your skills, provided you do it in an intelligent fashion. If you are considering starting a side project of your own, an early awareness of the upsides and downsides can save you a ton of pain and frustration.
Read more ›
The post Pros And Cons Of The Side Hustle appeared first on Complete Developer Podcast.
Unit testing is a valuable skill to have, no matter where your code runs or what it does. It reduces the error rate of your software and can often help force a better structure into your code. In addition, this practice can make it easier to make large changes to your software with less risk, as well as making it easier for new developers to understand the structure of your software.
Read more ›
The post Unit Testing With Test Driven Development appeared first on Complete Developer Podcast.
Open System Interconnection (OSI) model is a conceptual framework that defines how to implement network protocols. OSI breaks network communication into 3 upper and 4 lower layers. Each layer is a set of protocols for communicating to other devices at that level, also known as peers. This is a very brief overview of networking layers as there is a lot of information beyond what is it.
Read more ›
The post 7 Networking Layers appeared first on Complete Developer Podcast.
Technical debt is the idea that there will be a cost in terms of more development work down the line for using certain solutions to problems that arise while developing. The idea here is not to avoid accumulating technical debt but instead to understand what it is and how it can be used properly to benefit your development and your business.
Read more ›
The post Understanding Technical Debt appeared first on Complete Developer Podcast.
Fairy tales were designed to impart life lessons along with being entertaining. Unlike today, where an extended period of adolescence is common, our forebears experienced a world that was much harsher, where the transition between childhood and adulthood occurred much more quickly and where mistakes were much more dangerous.
Read more ›
The post Fairy Tales appeared first on Complete Developer Podcast.
Knowing what kinds of office environments work best for your personality type, your current task load, and the work environment can yield clues to how to fix it if work becomes unpleasant. Shared space can drive both collaboration and conflict, so it's important to know what can possibly go wrong in a given environment.
Read more ›
The post Evaluating Office Layouts appeared first on Complete Developer Podcast.
Database normalization is the process of organizing data in a relational database. The normal forms are a series of guidelines to help communicate the level of normalization a database. Even if you aren't a DBA or back end developer understanding the basics of how the relational databases are organized can provide insights into working with other developers or existing code.
Read more ›
The post Normalize Your Database appeared first on Complete Developer Podcast.
Command/Query Responsibility Segregation (CQRS) creates a logical separation between operations that mutate data and operations that merely retrieve it. In addition, Event Sourcing can help your application collect data that may not be considered valuable at the time of design but may be very valuable later.
Read more ›
The post Command/Query Responsibility Segregation and Event Sourcing appeared first on Complete Developer Podcast.
When going for a new job you want to set yourself aside from all of the other applicants and be memorable. Setting yourself apart from the rest of the applicants gives you a better chance of getting the job.
Read more ›
The post Differentiate Yourself appeared first on Complete Developer Podcast.
The principles of domain driven design (DDD) make sense, but a lot of the documentation around it is not very helpful for getting your head around the ideas. Domain driven development is primarily about building and designing your applications to be focused on the business needs of your client.
Read more ›
The post Domain Driven Design appeared first on Complete Developer Podcast.
Burnout can be insidious, slowly creeping into your work and life without you even knowing it. A lot of times to correct it you'll have to have both personal and organizational changes. These habits are things you can do for yourself to prevent burnout from ruining your life and career.
Read more ›
The post 7 Habits To Prevent Burnout appeared first on Complete Developer Podcast.
Many web developers avoid Cascading Style Sheets (CSS) as much as possible and the lucky ones have standards that once set no longer have to worry about. Some developers even have trouble understanding the difference between an id and a class and how to appropriately use them.
Read more ›
The post Beautify Your Story With CSS appeared first on Complete Developer Podcast.
In medicine the idea of a Morbidity and Mortality conference is to look back on a case after the fact, when the emotions around it have died down some. The Sprint Retrospective provides the team a way to inspect their process and look for ways to improve.
Read more ›
The post Morbidity And Mortality appeared first on Complete Developer Podcast.
When trying to better yourself in some way, it can be tempting to pick up a book on the subject and start making changes, but that is neither a sustainable, nor effective way to go about it. Instead, you need to structure things so that you can be successful from the outset, even with the inadequacy of the average self-help book.
Read more ›
The post Continuous Self Improvement appeared first on Complete Developer Podcast.
Burnout is a nasty and insidious process. It can sap your ability to push through challenges and ultimately cause you to fail if not dealt with quickly. It typically occurs when you have been overworked or over stressed for an extended period of time and have reached a breaking point. Burnout doesn't happen in a day, and can not be recovered from in a day. It's a plague on the software industry. Unfortunately, most of us aren't taught how to recover from burnout. We tend to learn it the hard way through experience.
Read more ›
The post Recovering From Burnout appeared first on Complete Developer Podcast.
Generally speaking a data type is either primitive or composite. A primitive data type can either be a basic type that provides the basic building blocks for a language or a built-in type that the language treats and supports as a basic type. Composite types are ones that are a combination of primitive types or other composite types. These may or may not be built into the language you are using.
Read more ›
The post Composite Data Types appeared first on Complete Developer Podcast.
The theme for this past year has been goal setting. Writing your story goes beyond setting and achieving your goals. Stories are about growth and change. It is becoming your own guiding influence. Writing your story can help you find your voice. Telling your story affirms your values. It also helps you to find peace or hope. Sharing your story can help others.
Read more ›
The post Write Your Story appeared first on Complete Developer Podcast.
We hit most of our predictions from last year. This is mostly because we saw "the handwriting on the wall" in several places. Also we have been keeping up with the industry. Doing so will help you to better predict when to make moves in your career and when to stay in place.
Read more ›
The post Predictions 2018 appeared first on Complete Developer Podcast.
Since this past year was about setting goals we're going to focus on what you do with those goals and how you get there next year. The theme will be Build Your Story and it will start in a couple weeks with an episode called Writing Your Story.
Read more ›
The post Resolutions 2018 appeared first on Complete Developer Podcast.
Best practices can help protect you from preventable errors and make it easier to reason about the code. Date and time libraries exist for a reason. That reason is because dates and times are complex to deal with programmatically, especially if they aren't the main purpose of your application.
Read more ›
The post DateTime Part 3: Best Practices appeared first on Complete Developer Podcast.
Time and date management are complicated and nasty on computers, because they are complicated and nasty in real life. While we often think of being able to tell time as being simple, historically it hasn't been. We're continually having to work to keep our timekeeping devices accurate so that we can use their results for everything from manufacturing to navigation, encryption, and missile guidance. Network Time Protocol (NTP) is used to synchronize time over packet-switched, variable-latency data networks. The goal is to synchronize all participating computers to within a few milliseconds of Coordinated Universal Time (UTC).
Read more ›
The post DateTime Part 2: Computing and Time Protocols appeared first on Complete Developer Podcast.
Time is a complex subject and is heavily tied into our understanding of the universe. It has driven a lot more technological change and social change than you might think. Time is tricky to manage, but not bad, until you realize what's sitting atop this concept. In addition to distance and direction, time is probably one of the most important ways that we organize our reality.
Read more ›
The post DateTime Part 1: History of Time appeared first on Complete Developer Podcast.
Console applications are often the simplest place to start when learning to develop software for desktop and server environments, requiring far less ceremony to get going. Having a better grasp of what is going on under the hood with console applications may help you significantly in your day job, even if you are primarily a web developer.
Read more ›
The post Console Apps appeared first on Complete Developer Podcast.
CRUD in and of itself isn't bad. Most of the problems we list are process related. There are few technical problems in the list. They are more about misuse. CRUD is a way of conceptualizing the relationship of how data is stored and transferred.
Read more ›
The post Stop Writing CRUDy Apps appeared first on Complete Developer Podcast.
Will and BJ are at DevSpace talking with Ed Charbeneau of the Eat Sleep Code Podcast about predicting the future of technology by looking at the history of technology and science fiction.
Read more ›
The post Science Fiction Becomes Fact appeared first on Complete Developer Podcast.
We've laid out some common problems you'll encounter in a distributed team along with what you can do to fix them. For each problem we'll talk about how to mitigate it for an individual developer, team leads or middle management, and upper management.
Read more ›
The post Antipatterns In Distributed Teams appeared first on Complete Developer Podcast.
Jobs are no longer permanent and if you leave too early or too late, you can put yourself at a disadvantage. If you stay too long, your knowledge may become stale, whereas if you leave too quickly, you may look like a job hopper. It's also possible to leave a job where the problems can be fixed or to stay at one where they cannot.
Read more ›
The post Knowing When To Quit appeared first on Complete Developer Podcast.
Working with a group of highly specialized and opinionated people can be difficult and lead to very detailed conversations on topics not relevant or only tangentially relevant to the project you are working on. Know that you or your team may be lead off topic when in meetings and prepare for that inevitability.
Read more ›
The post Ways to Avoid Bike Shedding appeared first on Complete Developer Podcast.
Gary Nissenbaum is a managing attorney with the Nissenbaum Law Group. He has been kind enough to come on the show and share his expertise.
Read more ›
The post Developers and the Law appeared first on Complete Developer Podcast.
The kaizen process can help you refine your software development process, reducing bugs and improving your ability to deliver software on time and under budget. This is especially helpful if you are in management, but you can still get a lot out of these concepts even if you aren't. This helps you both support the decisions you made to management and to make better ones more quickly.
Read more ›
The post Kaizen appeared first on Complete Developer Podcast.
Your database is often the most important part of your application in terms of actual value to the business. The value of the database will only increase over time, as long as it is adequately maintained. Your database administrator is in charge of this maintenance, and you'll often find that the constraints under which they are operating are very different than yours.
Read more ›
The post Toxic Mix? OOP and Databases appeared first on Complete Developer Podcast.
A primitive data type can either be a basic type that provides the basic building blocks for a language or a built-in type that the language treats and supports as a basic type. Composite types are ones that are a combination of primitive types or other composite types. These may or may not be built into the language you are using. The difference being that a primitive type, like a prime number, cannot be decomposed into simpler types.
Read more ›
The post Primitive Data Types appeared first on Complete Developer Podcast.
There are a lot of things that non-developers will call "bugs" when they really aren't bugs at all. You need to be able to explain to them and to management that they are not bugs and what they actually are and how that effects your work.
Read more ›
The post What Is A Bug appeared first on Complete Developer Podcast.
When communicating with other we need to be aware of our own emotions. This helps to be able to focus on the interaction and not be driven by our own feelings about the situation. Emotions are filters that will alter our perceptions of interactions with those around us.
Read more ›
The post Effective Communication appeared first on Complete Developer Podcast.
Junior Developer Toolbox is going to be a sibling show to Complete Developer Podcast on our new Complete Developer Network. In a way this episode has been our launch party for the new show.
Read more ›
The post Junior Developer Toolbox appeared first on Complete Developer Podcast.
This is going to be a little different from our regular episodes. Instead of following an outline or interviewing a guest Will is going to put BJ through two mock interviews.
Read more ›
The post Mock Interviews appeared first on Complete Developer Podcast.
Interviewing is not easy for either the interviewee nor the interviewer. There are rules and in some areas laws to abide by when developing questions yet the interviewer still needs to determine which candidate will be the best fit for the company.
Read more ›
The post Bad Interview Questions appeared first on Complete Developer Podcast.
For both the whiteboard and code challenge as well as for answering technical questions during the interview practice will help you move from terrified to competent to comfortable. Before your interview review questions on the languages/frameworks ect you will be using. Get into the habit of doing daily code katas. These will help you with both whiteboard and coding challenges.
Read more ›
The post Whiteboards and Code Challenges appeared first on Complete Developer Podcast.
Soft skills are the skills we use to communicate with those around us. They help us to be more diplomatic, respectful, and professional even when presented with frustrating situations. When being evaluated for an interview or promotion your soft skills are what they look at when determining if you will "be a good fit" with the team.
Read more ›
The post Soft Skills to Ace the Interview appeared first on Complete Developer Podcast.
A solid resume not only gets your foot in the door, but sets the tone for the interview itself. In addition to helping the interviewer shape their questions about you, a well-crafted resume puts you in control of how the interviewer perceives your value, which can completely change the way they perceive your answers to questions.
Read more ›
The post Building A Resume appeared first on Complete Developer Podcast.
In preparation for our 2 year anniversary episode we will be having a series of episodes on finding a new job. We start with an overview of looking for a job and what all is involved in the process.
Read more ›
The post Getting A Job appeared first on Complete Developer Podcast.
The future is often a scary, uncertain place for people. Everyone likes to project how things will turn out for them in the future. Tech folks are no different and the guys assembled a group of knowledgeable developers to discuss what we think is coming over the next five years.
Read more ›
The post The Future of Programming appeared first on Complete Developer Podcast.
The software development industry has got a bit of a reputation. From poor personal hygiene to poor relationship hygiene to social awkwardness, how developers present themselves often stands in the way of them achieving their full potential.
Read more ›
The post Present Yourself Well with John Sonmez appeared first on Complete Developer Podcast.
Due to some recent events in BJ's life that have made him re-evaluate some of his goals for this year we've decided to look in on our goals and do a mid year review.
Read more ›
The post Reviewing and Revising Your Goals appeared first on Complete Developer Podcast.
It's important to understand the grieving process. Not only is it part of being an adult but understanding how people process grief is also crucial to avoiding situations that make it worse.
Read more ›
The post Dealing With Loss appeared first on Complete Developer Podcast.
In any field, there is a lot of hard-won knowledge that the more experienced attempt to impart to those with less experience. Depending on the field, these things may be expressed as old sayings, or laws. They typically aren't really hard and fast rules, but rather are general tendencies that have been observed over time.
Read more ›
The post Laws of Programming appeared first on Complete Developer Podcast.
If you regularly do software development in a higher level language, you'll eventually run into a situation where you have to deal with the sort of problems that higher level languages are built to avoid. These problems may cause application crashes, data corruption, or performance problems until you get them sorted out. Worst of all, your experience in the higher-level language can often work against you in a lower-level one.
Read more ›
The post Get Low In High Level Languages appeared first on Complete Developer Podcast.
No matter if you are a morning person or a night person or if you get up early or stay up late and sleep in you have to start your day at some point.
Read more ›
The post Start Your Day Right appeared first on Complete Developer Podcast.
Everyone should be continuously learning to improve their skills. This is not just something for junior developers. Even senior developers can get left behind if they don't keep up.
Read more ›
The post Continual Learning with Erin Orstrom appeared first on Complete Developer Podcast.
Dani Heileman is a marketing strategist, designer and front end developer who's working as the Marketing Director for Music City Code.
Read more ›
The post Tech Conferences with Dani Heileman appeared first on Complete Developer Podcast.
A lot of us would like to do more with our lives, but find ourselves getting blocked by our own laziness, lack of motivation, or simply not being sure which thing to do first. While these skills apply to your career as a software developer, they are also broadly applicable across your entire life.
Read more ›
The post Build Your Hustle appeared first on Complete Developer Podcast.
Getting started can be a little intimidating, so it's important to go over the basic requirements to get started learning how to code through experience.
Read more ›
The post Start Coding Today appeared first on Complete Developer Podcast.
The idea of code smells is they are patterns or anti-patterns that are easy to identify and show the code needs to be reviewed in that area when refactoring your code. Research by Tufano et al. found that there is empirical evidence for the consequences of "technical debt" but only anecdotal evidence as to how, when, or why this occurs.
Read more ›
The post Code Smells Part 2 appeared first on Complete Developer Podcast.
The idea of code smells is they are patterns or anti-patterns that are easy to identify and show the code needs to be reviewed in that area when refactoring your code.
Read more ›
The post Code Smells Part 1 appeared first on Complete Developer Podcast.
This week Will and BJ continue their A Developer's Journey series where the guys talk with different developers about their journey into and within software development. The episodes in this series come out periodically and each one focuses on a different developer's journey.
Read more ›
The post A Developer’s Journey with Dave Harned appeared first on Complete Developer Podcast.
Dr. Tuckman states that team growth and dynamics are influenced by the setting in which the group is working, the area where the group behavior falls at any point, and the where the group is in the sequence. He originally wrote about four phases of group development: Forming, Storming, Norming, and Performing. In 1977 he added a fifth stage called Adjourning. Dr. Tuckman states that they are all necessary for a team to grow and work together.
Read more ›
The post Group Development with Cody Rockwood appeared first on Complete Developer Podcast.
This week Will and BJ discuss salary negotiation with author Josh Doody. In the episode they talk about some of the common questions developers have about negotiating as well as covering some mistakes that we all make when negotiating for a higher salary.
Read more ›
The post Salary Negotiations with Josh Doody appeared first on Complete Developer Podcast.
In this special episode Will and BJ invited old time strongman Iron Tamer David Whitley to discuss how to overcome mental barriers that keep you from doing difficult things. The episode covers how David overcomes mental barriers when performing feats of strength and how that applies to overcoming difficulties as a programmer.
Read more ›
The post Overcoming Mental Barriers with David Whitley appeared first on Complete Developer Podcast.
In general, it occurs when the inevitable plateau in learning happens. Generally it's a crippling feeling like you are being a fraud and in imminent danger of being found out. Beyond anything else you must understand, you need to realize that it's part of the journey.
Read more ›
The post Overcoming Impostor Syndrome appeared first on Complete Developer Podcast.
Jason Belcher is an aspiring software developer and has also done a lot to help improve the audio quality on this podcast. Will and BJ first met him down in Atlanta at Code Newbies and they've kept in touch nearly every day since then. Jason provided the intro music for IoTease which he remixed from a guitar track of his father. He became interested in coding through music and mixing audio tracks.
Read more ›
The post A Developer’s Journey with Jason Belcher appeared first on Complete Developer Podcast.
Boolean algebra is a set of rules to describe a problem whose outcome will either be true or false. They were formulated by an English mathematician named George Boole. He's the namesake for the rules and for the boolean type in statically typed languages.
Read more ›
The post Boolean Algebra appeared first on Complete Developer Podcast.
Participating in your community benefits both you and the community. There are many different levels of participation from just showing up to planning and even leading and organizing events. Finally there are many ways in which to get involved. Leading a group isn't for everyone. However anyone can participate and enjoy the rewards of getting out and helping themselves and others.
Read more ›
The post Community Involvement appeared first on Complete Developer Podcast.
Programming errors are one thing, but there are other types of errors that can be just as damaging to end user experiences. These errors are easy to miss in a software development shop, precisely because of the biases that are present on the typical development team.
Read more ›
The post Design Mistakes appeared first on Complete Developer Podcast.
Arrays are a basic data structure that are used to store values and associated keys. You'll see them across most languages though the names of operations might change or how you implement the arrays. They are related to other data structures such as linked lists.
Read more ›
The post Arrays appeared first on Complete Developer Podcast.
It's not likely you'll see all of these on one team but knowing them can help you guide your team or workplace away from them. If you see one of these patterns start to develop act quickly to quell the anti-pattern before it takes hold.
Read more ›
The post The Fragile Manifesto appeared first on Complete Developer Podcast.
Zack Burt has been programming for 20 years and consulting for 10 years and he truly loves programming. Over the years, he has worked for large companies and startups in both individual contributor and leadership roles. He is passionate about open source, both in submitting pull requests and launching open source projects. His first book is called Code For Cash and teaches developers about breaking into the world of freelance consulting.
Read more ›
The post The Business of Consulting with Zachary Burt appeared first on Complete Developer Podcast.
Functional programming is based on lambda calculus. Functions must return the same output given the same inputs no matter the state and cannot affect anything outside of the function. Functions can be set to variables and can return functions or be given functions as arguments. Objects and variables cannot be changed once initialized.
Read more ›
The post Concepts In Functional Programming appeared first on Complete Developer Podcast.
Motivation is defined as "the reason or reasons one has for acting or behaving in a particular way" or "the general desire or willingness of someone to do something". It's easy to come up with a lot of lofty goals at the beginning of the year but difficult to keep them going.
Read more ›
The post Maintaining Motivation appeared first on Complete Developer Podcast.
Logging provides routine diagnostic information when a debugger is not running such as in production. It is used to provide runtime proof that the app is still running (not in a zombie state), an audit trail or other forensic data, and troubleshoot rare bugs that can't be reproduced in development.
Read more ›
The post Logging appeared first on Complete Developer Podcast.
Continuing the New Year theme the guys review their resolutions from last year and discuss how they accomplished or missed them. Then they each give six resolutions for this year.
Read more ›
The post Resolutions for 2017 appeared first on Complete Developer Podcast.
This week Will and BJ review their predictions for 2016 and making new ones for 2017. First they breifly look at the predictions each made last year and see which came to be and which were way off. Then they each make predictions for the this year.
Read more ›
The post Predictions for 2017 appeared first on Complete Developer Podcast.
Most of the literature about habit formation state it takes 3-4 weeks to form a new habit. A lot of times you have habits that don't serve you or you need to form new habits to reach a goal. Rather than just letting things happen consciously evaluate your life and make the changes to help reach your goals. You should revisit your habits at least annually to see the ones that stuck and why they did and why the other ones didn't.
Read more ›
The post 12 Habits For The New Year appeared first on Complete Developer Podcast.
Cody joins the discussion to talk about breaking into the development world without a degree or any formal training. He started college and for a time was a computer science major but left to persue a career as a developer.
Read more ›
The post Blue Collar Coders with Cody Rockwood appeared first on Complete Developer Podcast.
There are many reasons that you might not know you are a bad developer. If you are just going through the motions because of a bad work environment or family life you can become a bad developer even when you aren't most of the time. Many of these are less about the quality of the code doing most of the work and more about your own impact on the development ecosystem around you.
Read more ›
The post Signs You Are A Bad Developer appeared first on Complete Developer Podcast.
Before starting to learn a new programming language you should take a few considerations. How different is the new language from your current one? Compare the environment, paradigm, syntax, and level of automatic operations between the languages.
Read more ›
The post Learning A Second Language appeared first on Complete Developer Podcast.
Frustration occurs when results or goals do not fit the effort you apply toward them. This can come as internal or external goal blockages. Internal blockages come from personal deficiencies or competing goals. External blockages are conditions outside of oneself.
Read more ›
The post Dealing With Frustration appeared first on Complete Developer Podcast.
Typically, people tend to care about efficiency when the application is using too many scarce resources, or when it is projected to do so. Usually, you worry about how an algorithm will scale within a given range of available resources.
Read more ›
The post Optimizing Algorithm Efficiency appeared first on Complete Developer Podcast.
This week the guys invited their friend Erin Orstrom to join them in a round table discussion on their different experiences in learning to code and the concepts of computer science. Will has a degree in Computer Information Systems whereas Erin and BJ have degrees in other fields but ultimately came to programming as a career.
Read more ›
The post Ways to Learn Code with Erin Orstrom appeared first on Complete Developer Podcast.
It has also been found that the trial and error process of debugging code strengthens mental capabilities. Keeping your mind sharp will help increase motivation and focus, creativity and inspiration, and prevent cognitive decline.
Read more ›
The post Keep Your Mind Sharp appeared first on Complete Developer Podcast.
Numbers are representations of things, not things themselves. We have to be able to store and process numbers in an efficient manner in order for our programs to run well. However, those numbers also have to be accurate. We can't lose data in the process of storage, retrieval, or arithmetic operations.
Read more ›
The post Numbers appeared first on Complete Developer Podcast.
Freelancing can give you better control over your work-life balance. Though you may spend much of your free time looking for work. It allows you to be your own boss choose your own hours but requires more accountability.
Read more ›
The post Freelancing appeared first on Complete Developer Podcast.
Typically social awkwardness is defined as feeling nervous or uncomfortable in social settings. For most socially awkwardness people situations where they have to be social provoke anxiety and nervousness.
Read more ›
The post Overcoming Social Awkwardness with John Sonmez appeared first on Complete Developer Podcast.
Historically developers have been specialist. In web development you were either front end or back end. You build your portion of an app and didn't worry about the other areas. The idea behind being a T shaped developer is to have a broad base of knowledge and then dive deep into a few areas.
Read more ›
The post T-Shaped Developers appeared first on Complete Developer Podcast.
Non-technical characteristics are valuable to being a good developer. A lot of developers seem to think that the job is only about technical skills, however not all problems we face are in the code.
Read more ›
The post Characteristics of a Good Developer appeared first on Complete Developer Podcast.
A string is a data type that stores text. There's more complication to strings than you would think, which is the reason for this episode.
Read more ›
The post Let’s Talk About Text appeared first on Complete Developer Podcast.
Three tier architecture separates the functional process logic from data storage and user interface. These are developed and maintained independently on separate platforms
Read more ›
The post Multi-Tier Architecture appeared first on Complete Developer Podcast.
Some companies have bad environments for developers and some have developer environments that may work for some people but not others. As an interviewee you need to be paying attention during an interview for signs that the business may not be the right place for you. This also shows alertness in the interview.
Read more ›
The post Interview Trigger Warnings appeared first on Complete Developer Podcast.
This week we celebrate one year of producing Complete Developer Podcast. It is exciting as we hit our goal for the year a month early. In this week's episode the guys talk about the apprenticeship program that Will put together to get BJ up to speed as a developer.
Read more ›
The post Apprenticeship appeared first on Complete Developer Podcast.
In response to the trends in project management for software development from the 1970's and 1980's several methodologies were developed and became popular in the 1990's. SCRUM is a framework for implementing project management in Agile Software Development.
Read more ›
The post SCRUM Project Management appeared first on Complete Developer Podcast.
Code katas help you to build solid practices in a controlled environment. The idea here is to create a situation with a known problem space and use it to safely practice the same thing over and over again until the technique is fluid, solid, and relaxed.
Read more ›
The post Code Katas appeared first on Complete Developer Podcast.
Time is the resource we are least able to get more of. It's a far more complicated topic than most examinations of it will lead you to believe. This episode focusses on things that are obvious but still burn through your time. Each alone is not much but when combined or allowed to snowball they contribute heavily to poor time management.
Read more ›
The post Ways To Fail At Time Management appeared first on Complete Developer Podcast.
Object Oriented Programming has four major principles: Abstraction - using a focused representation of an actual item, Encapsulation - hiding the internals of an object, Inheritance - reusing code from an existing object, and Polymorphism - one name, many forms.
Read more ›
The post Principles of Object Oriented Programming appeared first on Complete Developer Podcast.
A good portion of the content was derived from Brad and Debra Schepp's book 'How to Find a Job on LinkedIn, Facebook, Twitter, and Google+'. Will and BJ look at using social media for networking and connecting with others in the industry, keeping up on the current trends, and becoming a resource for others. Social media changes rapidly so this episode will mostly keep it to strategies that will help you no matter the platform with as few specific references as possible.
Read more ›
The post Using Social Media to Enhance Your Career appeared first on Complete Developer Podcast.
Others value of your time such as bosses, coworkers, friends, and family is determined by the value you place on your time. Find fulfillment in what you do by living purposefully and better contribute to the world around you. By increasing the value of the time you have you will be able to spend more time doing the things you value. Time is a commodity and you can have more value with less time spent.
Read more ›
The post Increasing the Value of Your Time appeared first on Complete Developer Podcast.
Automation helps to get rid of repetitive task and allows you to do things even when you are not present. You are able to react to changing conditions when they occur and make sure systems stay up when the cost of failure is high. This could include non-critical system failures that could lead to cascading failures in critical systems. It also avoids interruptions of higher priority tasks when the workforce is limited.
Read more ›
The post Knowing When to Automate appeared first on Complete Developer Podcast.
The second half of starting a new development job talks about what not to do during your first week of a new job. You want to come in and make a good first impression. These are seven things that will hinder building a good first impression.
Read more ›
The post Seven Don’ts Your First Week appeared first on Complete Developer Podcast.
Going in to your first week of a new job you need to have a plan. It makes you look more experienced and helps boost your confidence. Also you will build a good first impression. In addition establishing rapport early helps keep you from losing motivation.
Read more ›
The post Seven To Dos Your First Week appeared first on Complete Developer Podcast.