James Gallagher

Writer & Researcher @Career_Karma. Expert In Residence @beondeck

Who are you? Where are you from and what is your backstory?

Hello there, I am James! I am the CEO of Open Commit, a code-review-as-a-service platform for developers, and a publicly traded person. I have been coding since the age of 8 and worked on a variety of different projects, most notably Open Commit, over the last few years. I am also a Pioneer recipient based on my work at Open Commit.

In addition, I am a publicly traded person, which means I sell shares in myself in exchange for the ability to vote on decisions in my life.

What made you get into programming?

I have had access to a computer since the age of 4, which I used to play games and do some reading. When I started using the internet, I was curious about how a webpage was presented on my screen within a matter of seconds. This curiosity continued for years, until I learned about the world of coding.

I started programming at the age of 8 using a tool called Microsoft TouchDevelop (now retired). I experimented with some basic block-based programming, then transitioned over to basic Javascript on the platform. With the guidance of online tutorials, I was able to learn more about the fundamentals of programming and realised that the logical and analytical thinking required integrated well with my skill set, and so I continued to code and spent my spare time learning more about coding. I felt like I could do anything.

Following this, I started to explore Python which had a plethora of starter resources that I could use to develop more advanced programs. Programming gave me the opportunity to express myself and craft interesting solutions to problems in my life, and so I have spent the last few years learning as much as I can about coding. I fell in love with coding and am attached to the feeling of liberation that is associated with being able to build something that can impact the lives of others from my computer.

What made you create JamesG Trading?

Recently there has been a growing trend of testing how we can leverage human capital. For example, Lambda School has been using ISAs to offer high-quality education to people who typically could not access it. While ISAs are an interesting model, I was interested in how we can tap into all of the human capital one possesses, and create a model that is focused on their personal growth.

Thus, JamesG Trading was born. The platform was designed around one simple goal - to help me make better decisions. By nature I am an indecisive person. Last year alone I missed out on dozens of opportunities due to my inability to render an effective decision on time. JamesG Trading allows anyone to purchase a share in my in exchange for the ability to vote on key decisions in my life. So far shareholders have voted on everything from my transitioning to a pescatarian diet, to whether I should purchase a Major League Baseball subscription.

My shareholders are my community that help inform me about every aspect of a particular decision I am considering, so that I can make better decisions. The system is based around aligned incentives -- if a shareholder helps me make a better decision, my share price should appreciate which will generate more value for them -- which protects me from unruly actors and establishes a system where both I and the shareholders can benefit from the project.

Another benefit of the project was that it helped keep me more accountable. I am bound by shareholder questions which means that I am responsible for implementing actions voted on by the shareholders, and with that comes an obligation to provide frequent updates to shareholders. I am in constant contact with my shareholders about my accomplishments and where I need help, and issue weekly shareholder updates to keep investors informed about the latest in my life. This has allowed me to not only spend more time reflecting on my progress, but also means that I need to set SMART goals in order to maintain shareholder confidence.

What does your process for learning to code look like?

My process of learning to code was all about exploration and iteration. As aforementioned, I started coding based on a deep interest in how the internet worked and how web pages could appear on my screen so quickly. If you are interested in learning to code, the best way to get started is to jump into a project.

There are dozens of tutorials online that can help you get started with basic programming. As soon as you have developed a small project and learned the fundamental skills associated with a programming language, you can start making changes and customize your projects further. You can also start developing a more meaningful project that will allow you to develop your critical thinking skills and understand how a program goes from planning to fruition. If you cannot think of a project to work on, then thing about an issue that you have experienced first hand and start to plan how you would make that into a program.

When I started to learn to code, I used the basic tutorials on TouchDevelop and then after acquiring the basic skills I needed at the time, I moved onto a basic to-do list app and worked my way up. This process is still going on today, and every new project I take on affords me the opportunity to acquire a new skill and learn something new about coding, whether it be a new programming language, a new technology, or just a new approach to a problem.

One thing I should emphasise is the fact that everyone has a different path of entry into technology. For some people, like me, learning to code started at a very young age and a strong passion has kept me passionate about self-education over the years. For others, they may explore a more traditional path such as through college or university. Resources that help people learn to code are everywhere now and accessible within a few clicks, so you can get started right now.

What does your process for building apps look like?

Starting a new project typically begins before I even realise it. The majority of my core projects over the last few years have actually been thoughts in my mind weeks or even months before I started to work on them. If you are planning to work on a large project, it is best to spend a few weeks thinking about the idea and considering it from all angles which will help you form an attachment to the concept. This attachment means you are more likely to keep working until the very end, and ensures you are working on a project you are passionate about.

I am a compulsive note taker and have a notebook sitting by my side at my desk where I frequently take ideas. I start a project with taking down as many notes as possible, covering the technical considerations, how I should approach the project, and what the business model will be (if applicable). I will then take these notes and develop a more comprehensive and actionable plan that is broken down into small, addressable, components that I can get started with.

Following this I will then select a tech stack, and get started with some basic mock-ups. Frequently I skip the formal design stage and work from my notes and an image I have in my head, but it is good practice to develop a few mock-ups and create a clear plan of what your design will look like. This should also be coupled with more comprehensive API design, which will develop as you develop a more in-depth plan for your design.

Then I will actually get started with a project. I will initialise the Git repos, implement a version control framework, and start actually coding the project. The main thing to note is that programming is a highly iterative process, and oftentimes my plan will change as I continue to develop a project. This is because when you are actually coding, you enter a different mindset and you can often uncover additional considerations or technical ramifications that you may have overlooked that need to be evaluated.

Do you face any particular challenges when building over a period of time?

There is something incredibly exciting about building over a period of time. You have the opportunity to see a project go from an idea on paper to a complex product used by other people. Despite the excitement, there are definitely some challenges when building a product over a long period of time - especially with regards to time management.

Working on a project over time generally means that your time commitment will increase and you will need to allocate more time in your schedule towards maintaining your project. This may take the form of adding features, fixing bugs, or making infrastructure changes, which all take away time from your day. When I am building over a period of time, I spend some time planning ahead which helps me balance project commitments with the rest of my life.

In addition, as one continues to develop a project, a sense of burnout almost always ensues. If you have chosen the wrong project, then it can be harder to ignore these feelings. However if you have simply lost passion for a project, then the best way to overcome it is to take time to reflect on the progress you have made so you can get back into the mindset you had when you started the project. Unfortunately, burnout can kill so many interesting and viable projects if someone has been working on it for a long period of time, but reflecting on the project is a great way to restore your passion and regain interest in the project.

In JamesG Trading, this feeling has been less present because it is more of an identity than anything else. I am both a publicly traded person, and a capitalist person, and I occupy two head-spaces simultaneously. However, I have felt the pain of project burnout in a number of prior projects and I know how it can make people feel. If you are bored of working on a project then don’t push yourself. Stop and take some time away. This will not only allow you to spend time understanding the project, but often results in you having more ideas which can reignite your interest when you are ready to recommit to the project.

Are you currently learning anything new?

“You learn something new everyday” is an adage that applies here. Every day I make a new discovery, whether it be related to business, technology, or something completely different. Right now I am spending a lot of time learning about venture capital and alternative asset classes, as well as investing in equity crowdfunding campaigns.

As a programmer you will be exposed to something new all the time, whether it be a new technology, or a new approach to solving a problem. When you write code there is a high chance that you will end up rewriting it at a later date as you refine and enhance your skills and think of more effective ways to solve the problem you are tackling. Moreover, as you enter a career in programming, code reviews will become a critical part of the development process. Here you will be exposed to constructive and actionable feedback on how to improve your code, which will help you refine your skills and become a better coder.

Advice for those learning to code?

The best advice that I can impart on learning to code is to persevere and focus on the power that being able to code brings. Remember that coding is very difficult and, like any skill, takes a long time to learn. I have been coding for the last 8 years and am still learning new things.

“Computers are going to be a big part of our future...and that future is yours to shape.” - President Barack Obama

Coding gives me a great sense of freedom and liberation - which is my motivation behind coding. You may have the same feeling of liberation, you may be interested in being able to build powerful things that you can show to others, or you may have a general passion for the technology that powers the largest revolution in history. You need to understand why you want to code and make that clear before you get started.

For those who are already programmers and are looking to improve their skills, the best thing that you can do is to work on new projects that have different technical considerations. The cornerstone of programming is your ability to take a problem and develop a solution, so you should spend time trying to think of creative solutions to difficult problems that you face. You can also practice your coding skills on platforms like Codewars, which will allow you to practice your skills, and learn new concepts in programming.

If you are learning to code, please don’t hesitate to send me an email at james@opencommit.com and I would be happy to provide you with some advice.

What’s your tech stack?

My tech stack varies between projects and I use a large amount of tools based on the problem that I am trying to solve. For JamesG Trading, the tech stack used is as follows:

- Javascript / React JS

- Ruby on Rails

- GraphQL

- PostgreSQL

- Heroku

- Atom (code editor)

- Fork (version control app)

- GitHub (code hosting)

- Coffee

These tools were chosen because I have a lot of experience with the technologies, which meant that getting started was easy. In addition, I had the thought that I may end up open-sourcing the code or expanding it for wider use cases, and many shareholders have actually asked about how the platform can be expanded further. Therefore, I needed to choose a tech stack that was not only powerful and swift, but was also modern and able to scale up quickly if needed.

What have been influential books, resources and links that have helped you?

I am not really one for books. I prefer to read short- and long-form articles which allows me to learn a lot about a particular subject matter in a shorter period of time. I have recently started to listen to more podcasts and read more essays about business which I has helped expose me to new ideas through these different mediums. These are some of the resources that I recommend that have helped me in the past:

- Paul Graham’s Essays - Every essay that I have read by Paul Graham has been inspirational and filled with unique insights and wisdom. The one about High School is particularly interesting.

- KMikeyM - Mike was the inspiration behind this project.

- TechCrunch - TechCrunch is a great source of business and tech content that is a great read when you have a spare moment.

- How to GraphQL - This tutorial was the first guide that introduced me to the world of GraphQL and was developed by people who worked at Product Hunt, Prism, and more.

- Product Hunt - Product Hunt has helped me gain exposure for my products over the last year. I also recommend the Product Hunt Radio podcast which features in-depth interviews with makers and entrepreneurs who are changing the world.

- You can learn more about the podcasts I listen to ***here***.

Where can people learn more about you and your work?

You can contact me on Twitter ***@jamesg_oca***, or via email at james@opencommit.com. I frequently Tweet about startups, capitalism, and technology. If you are interested in learning more about me, you can check out my new personal site and blog here.

Finally, you can learn more about investing in me here. My stock price is currently $6.07 per share.

Read more interviews →