A year into working his first software development job, Porter received a message on LinkedIn
from an entrepreneur in search of a tech co-founder for a startup idea he had. Porter had been looking for a new challenge to work on in his free time and began developing the application. Between the startup and his full time job, he says he was coding at least 80 hours a week. Within months, he quit his job to work as the startup’s lead engineer full-time.
The tech stack he used at the startup was completely different from the tech stack at his first job. Porter says he was only prepared to take the opportunity because he was constantly learning outside of his main job. He says that if he only spent 40 hours a week coding, he would have never been experienced enough for the challenge. It was this type of mentality that set his path in motion. This mentality, he says, should be expected of any coder that wants to begin a startup.
“You’ll be pushed at some jobs to learn new things, but you have to make sure you’re always doing that anyway. Self-teaching in your free time is really the only way to develop your skills quickly,” he told us over the phone.
Since he’s a rising entrepreneurship expert with roots at App Academy, we asked Porter to come up with five software and leadership tips that he thinks could help new founders succeed in the industry.
1. Define the problem.
Understanding why you want to create something is the best first step when developing software, Porter says. While “planning the solution,” “coding the program,” “testing the program,” and “documenting the program” are important steps throughout the process, thoroughly defining the problem should always come first.
“Not only does this help guide a clear path for design, but it also helps you understand whether you’re motivated or interested enough to work on this idea for the long term. The why needs to come before the how”, he says.
2. Learn how to deploy and work with coding structures.
In order to call the shots, coders need to learn every facet
of getting an application and business started, including the nitty-gritty development and production phases. For one of his tasks as a lead engineer, he had to learn how to work the Amazon-run AWS product to deploy an app, and then had to teach other people how to do it. That is the type of quick learning that is required for any type of leadership, he says.
“If you’re a lead developer, you can’t use lack of knowledge as an excuse. You have to figure things out somehow,” he says.
This is the same advice provided at App Academy. Many alums have said the main thing they learn at the bootcamp is not just a specific language or framework, but how to learn them.
Knowing about how the overall code framework is constructed, Porter says, is a good way to think about business as a whole. Individual components and how they connect to each other technically is what makes a piece of software original and interesting.
3. Respect the importance of UI and UX Design.
Porter says a successful tech application always has to visibly look good, or it won’t matter what else it can do for potential customers. Knowing about design from a coding perspective
, therefore, is very important.
“Things have to look professional,” he says.” “I’ve been in coding and product meetings with people who may invest in my tech and if something doesn’t look good, nothing else matters,” he says. “Even though everything works functionally, non-tech people often dismiss it as a poor product”.
Another important technical aspect in developing a visual product is a back-end that is both flexible and sturdy to accommodate constant design changes
. Many popular applications, he says, are riddled with bad code that can leak to cause bugs on the front-end.
“UI design can’t be faked. Unfortunately for many non-tech-savvy people, it’s almost as if a beautiful broken product is better than an functional ugly one,” he told us, firmly. “Obviously, if someone uses a beautiful application that turns out to be broken they’ll stop using it, but if your app is ugly and unintuitive, they might not even try to use it in the first place.”
4. Write efficient code and avoid “spaghetti code” at all costs.
Part of knowing how to code is knowing you have to go back to use it years down the line to fix it or change it. To do this, you need to know how to build code efficiently without making it “spaghetti.”
“Spaghetti” code is a type of code that is poorly written and hard to build with. It is often the cause of poor project requirements or time restrictions. It lacks programming style rules and conveys a lack of experience.
Why is this important? David says efficient coding helps companies save time by avoiding in-depth bug discovery, and also helps other engineers that work with the code. This in turn, can lead to a better, more professional expectation of your company reflected in hiring and recruitment.
“It’s really easy to feel under pressure in a time crunch and rush out some temporary spaghetti code that you say you’ll go back and fix.” he says. “But in my experience, developers rarely go back to fix their temporary solution. Not until it causes a major problem and it’s too late.”
5. Learn how to delegate.
Porter likes to think of dual definitions of “delegation” when it comes to his tech work. Delegation, he says, is as important in the context of object-oriented programming
as it is in leadership.
Without a thorough understanding of coding delegation, programmers
can’t properly understand sending objects and receiving properties in their code. This leads to problems understanding the language and the development of the whole codebase.
Similarly, delegation is also useful in an entrepreneurship leadership role. David says that you have to know how to delegate tasks to people efficiently. If one person is in charge of doing everything, not only will that person become very stressed, but they will be the only source of knowledge.
“I know I’m a perfectionist and I want to do it all myself. But you have to know what others can do so you can concentrate on more important aspects of the business and codebase,” he told us.