Kenneth is a self-taught software developer who lives in Texas. He has a good software developer salary after 2 years of learning to code. He is also able to take advantage of the lower cost of living in Fort Worth compared to more expensive tech cities like New York City and San Francisco.
Hey y’all! I’m Kenneth and I’m a software engineer without a degree. I live in Fort Worth, Texas and I work at a boutique consulting shop called Zeal IT Consultants. I’ve been at Zeal for two years. I dropped out of university twice (once when I was studying Music Education, and more recently when studying Computer Science.) and I still ended up gainfully employed in Software. I make six figures working from home and have made some incredible relationships at my first software job!
At work, I build full-stack applications for our clients. I’ve worked in large fintech, healthcare, and startup environments. More recently, I’ve been working on an internal startup built using Flutter. I like the craftsmanship side of software engineering and also love building things that are useful for people! I really enjoy how big of an impact you can deliver with software.
Outside of work I’m raising 3 kids with the love of my life. In my free time I’ve been building a platform to make deliberate practice easy for Python developers. I’m giving out a steep lifetime discount to anyone who joins the mailing list before launch so feel free to join and get updates on the product! .
It took me roughly a year before I hit the six figure earning mark as a software engineer. I initially got hired on as a contract Software Engineering intern making $27.50/hr. It was a pay decrease from my trades job, so it was a little scary making that leap, but it all worked out in the end. After a short few months, I converted to full-time on contract making $55/hr. About a year after I first started I was converted to full-time W2 and finally reached that six-figure plus mark.
The journey to making that income started years before when I first started learning to code. I wrote my first line of code in early 2016 and got my first software job in November 2018.
I initially started with the book Learn Python the Hard Way. It was a decent resource but has its share of criticism. I then moved onto random automation tools for my dad’s small electrical company using the book Automate The Boring Stuff as a reference.
After that, I spent a good amount of time following some Flask web app tutorials by sentdex on Youtube. He’s a great resource and I’d highly recommend his content.
After learning on my own for about 6 months I enrolled in college to study CS. I ultimately dropped out of the degree program but it was a good experience studying in university for a while.
The biggest value I got out of going to college for CS was the network. I joined an incredible programming club full of some fantastic people who were very motivating. I’m still friends with most of them today!
Even while in college, most of my learning came from outside. I’m a big believer in project based learning and that’s how I learned enough to get a job. I’d pick a project idea that I thought was cool and I’d build it, googling things along the way.
I’m very lucky to work at a company that has a super flexible work arrangement. Sometimes that arrangement can change a bit depending on what client we are building software for, but for the most part, we can work whenever we want. It’s with the caveat that we make ourselves available for the team at appropriate times, get meaningful work done, and show up to all required meetings.
My significant other works extremely early in the morning, and I’m used to waking up early from my years in the trades, so I get a very early start to the day.
My typical day looks like:
- 4:30am - Rise and shine.
- 4:35-5:00am: Spend a few minutes drinking coffee, reading Hacker News, and getting ready for the day
- 5:00am - 9:30am: Focused and deep programming work. Short breaks as needed.
- 9:30-9:45am: Standup for current project
- 9:45-10am: Coffee chat. We use this time to catch up with each other, talk about whatever, and bond as a team.
- 10am-10:30: I usually take a break around this time. Eat some lunch, go on a walk, etc
- 10:30-1: Focused/Deep programming work
- 1:30: Take a break
- 1:30-2:30: Wrap up any loose ends programming-wise, check emails, etc.
After high school I went to college to study Music Education for 2 years. It was an incredible experience and it taught me a lot of things that I use daily in software engineering. I ultimately dropped out because I didn’t like the career aspects. (For some reference, Music Ed bachelors degrees typically take 5 years to complete. Average pay is sub $50k for a music educator).
After dropping out from music school, I got a job at a gas station as a clerk. I wiped counters, cleaned bathrooms, and all the other things you’d think a gas station clerk would do. I did that for about a year before transitioning into the maintenance department and working in the trades.
I worked in the trades at the gas station company for 6 years! I fixed all kinds of stuff. Electrical, plumbing, HVAC systems and more. I pulled submersible pump motors out of the in-ground tanks and replaced them. I spent summers on the roof in Texas fixing and replacing parts on air conditioning units in the 100F+ heat.
Everyday I’d diagnose and troubleshoot various types of equipment (Air conditioners, gas dispensers, low voltage security systems, digital signage, electrical equipment, etc). In the trades I really honed my problem solving and troubleshooting skills. This has been incredibly valuable to my software engineering career.
In a way, I’m doing very similar things today as a Software Engineer as I did in the trades. I see a problem, I break it down into component parts, and I use my understanding of the system itself as guidance while I troubleshoot or correct the problem.
It was pretty serendipitous getting my first job in software. I was studying for an internship interview for Facebook and met one of the owners of my current company, David, at a mock interview practice meetup. A couple things caught David’s eye on my resume: A hackathon win, and a personal project I built.
When I started college for CS, I joined with the intent of building up my resume enough to get a job. Luckily, the programming club I joined was really into hackathons. I started going to a bunch and ended up winning 2nd at a pretty large one in Austin, TX called HackTX. This was the highlight of my resume.
Besides that hackathon win, I also had some personal projects that I had built. On one, I scraped fire-damaged property data from a website and offered a service to fire restoration companies that would mail out a physical advertisement card using the Lob API.
I interviewed with David during the mock interview session and decided to stay in touch. We exchanged contact information and I added him on LinkedIn. I made sure to stay active on LinkedIn and kept posting updates to my software learnings.
About a month later we won 1st at another hackathon and then David reached back out to me. He wanted to hire our hackathon team for a proof of concept project he was working on. He ended up hiring 4 of us and 3 of us still work at Zeal today full-time!
Being a developer in Dallas–Fort Worth has got to be one of the best places in the US if you aren’t into the high cost of living Silicon Valley/NYC companies. The software engineer salary to cost of living ratio is fantastic. Housing is relatively cheap and salaries are pretty good. I know many early stage people in Dallas–Fort Worth making $90-100k+ software engineer salaries. Houses, for comparison, can be found for $300k or less in great neighborhoods.
There’s a lot of tech talent here in Dallas–Fort Worth and more companies are moving here every year. There’s a thriving startup community and people in general are very friendly in Dallas–Fort Worth.
What advice do you have for someone without a CS degree who wants to get an entry level software developer job?
Getting a programming job is hard whether or not you have a degree. It’s a bit harder without a degree. You have to do something to stand out from the crowd.
The base-line is to learn enough programming skills so that you’d be competent for an internship or junior level job. You have to go beyond that to actually land that first job.
Build things in public, build something useful, have a unique story. These are all great ways to stand out. Network is everything. I owe a lot of my success to the programming club I joined and the people I met through it. Find a local community you can join and start meeting people! If I didn’t go to that local meetup, I probably wouldn’t have got my first job. Relationships are huge.
Own your unique background as well. David liked that I had a varied background and my background has given me unique insights as a software engineer. Everyone has their own story and getting into software later in life doesn’t mean you are at a disadvantage at all.
My ultimate career goal is to be in business for myself. I’m currently working on a platform for deliberately practicing Python fundamentals. We’re pre-launch but planning on launching in the coming months. If you’d like a lifetime discount then join my mailing list . I’ll be sending updates on how I’m building and marketing the product :)
My shorter term goals are to level up my engineering skills. I’m currently interviewing at some interesting companies with very cool engineering teams and hoping to land a new position soon.
P.S. I made a video detailing my story if you’d like to check that out as well.
Thanks for the interview!
If you enjoyed this article please send it to a friend
And you should totally sign up for the newsletter
If you are job hunting, head over to the job board for entry level software engineers