Hi there! I'm Steve Phillips, an award-winning software developer and creative problem-solver.
I've been programming for 16 years, and have extensive startup and freelance experience which I am excited to leverage to make shit happen.
I've done a ton of Python (15 years), JavaScript (7 years), and concurrent Go ("Golang") programming (14 years) on the backend, plus many years of React (7 years) and Svelte (5 years) on the frontend.
Lately I've been creating RAG-enabled AI chat bots that answer questions about an arbitrary data set (e.g., company documents or instructional videos).
Thanks to LLMs -- specifically Claude 3.5 Sonnet, GPT-4o, GPT o1, and GPT-4 before that -- my programming productivity has approximately doubled, meaning I get $300 worth of programming done per hour, at the highest quality.
Additionally, I am accustomed to playing the role of startup CTO, and I'm looking to do more work as a fractional CTO. This is especially valuable for projects that need software built and need help clarifying which approaches, technologies, and services should be used to solve a problem in the most efficient way.
In 2022 I was brought into a project after the founder read about me in a book ("Coders", by Clive Thompson). Together with this founder's team, the software I designed and led the development of has won many international innovation awards -- so many that she was nominated for Person of the Year in 2023, in her home country of Switzerland.
I was recently vetted by Arc.dev and I completed their "30-minute" programming exercise in 4 minutes. My solution was so simple that the interviewer had to triple-check that it was correct. (It was.)
My normal rate is $150/hour, but from now until December 22nd or when I get my next gig, whichever comes first, it's $100/hour, as I just started looking.
FreeCodeCamp.com is showing that there's a hunger for learning JavaScript for people in their 20s and older, but what about teaching people (in the same age range?) other skills?
I also mention FCC because they've made it so you can add your content instead of their JS content, and poof, you have a learning platform!
I'm Steve, and I'm a healthy eater and cheapskate.
From 2002 to 2005 I researched nutrition and supplements _a lot_. Long story short, what's cheap, healthy, "pleasurable" (non-sexually), and fast/easy to make? Vegetables, whole-wheat bread or brown rice (pasta), an assortment of nuts, a protein shake (protein powder, milk, flax seed powder, spinach, and blueberries), and vitamins/supplements (multivitamin, fish oil, others I take for brain health/performance).
Works great! And when I eat out (again non-sexually) I have chicken breast, turkey, or fish.
Tent is a protocol for distributed social networking that I'm very optimistic about. You can message me at https://elimisteve.tent.is (sign up at tent.is).
Tent's success is far from certain, of course. Sounds like you're convinced that just because something might not happen, it almost certainly will not. Also a fallacy.
I really appreciate what StatusNet is doing, but I've found that it's just not useful enough to... use. It's Twitter but more free and with far fewer users. That's rather different from Diaspora and Tent.io's visions.
FYI: Today, Tent.is -- the first implementation of Tent.io, a protocol for fully decentralized social networking -- went from 0 users to 2000. In a day.
...And since it's free, I bet it'll grow MUCH faster than App.net which, after TONS of media coverage and endorsements from the likes of not just Scobleizer, but The Washington Post and even fucking CNN(!), got just ~12,000 people to sign up by the deadline.
Specific sites aside, I'm glad that people are actively creating alternatives to the centralized, corporatized, developer-unfriendly services that currently dominate the landscape.
I write Python and Go code every week, and have since I started using Go almost 2 years ago.
I appreciate Go because I'm working hard to become an engineer who builds robust software rather than a sloppy hacker that throws scripts together. One significant difference between the former and the latter is carefully handling errors versus not.
Python's error handling seems much more succinct only because most of us don't both handling errors at all! Every other line throws many exceptions, but we ignore this for convenience. (Those ugly "except ___:" statements ruin our oh-so-cool one-liners!)
Bottom line:
When I feel like having fun making something simple and getting it done _fast_, I use Python.
When I feel like building something that _needs_ to work -- especially anything that does more than one thing at a time, or should use all cores efficiently -- I use Go. And yes, that means taking error handling seriously.
Any Meetups related to the web -- events for developers, UI/UX, and biz meetups -- are great for networking. I'm a developer who gets emails from designers who want to talk on a big job that requires custom dev. You should be able to do similar -- find people who want to take on a job that requires more design or marketing than they can (or want to) personally do. (This may be a good way to meet people directly who need your services, not just people who will give you referrals.)
Attending a Startup Weekend hosted in your town is a _fantastic_ way to meet people, especially if you can talk shop with them like many HNers can.
It's quite the commitment, but co-founding a hackerspace has worked wonders for me. I meet a lot of smart people -- many of whom aren't web developers -- who then refer people they know to me.
If you're a designer or biz person, wander into a hackerspace near you.
Release early, release often :-). We decided to launch this as soon as we thought other people could benefit from it. That day is today.
As stated in the docs, the server-side auto-deploy code assumes you're running Ubuntu. Removing such assumptions is a high priority (see TODO.md).
That said, the whole "start a new pre-configured Django project with lots of stuff pre-configured" thing is ready now and only assumes you're on a Unixy OS.
I also use Go. Roughly 80% of the code I write is still Python (Django apps), but there are times when Go just makes the most sense... so that's what I use.
Whenever speed is key, I use Go. Its concurrency primitives are dead simple. It has excellent support for cutting-edge technologies like WebSockets and SPDY (these libraries/"packages" were written by Google), as well as MongoDB (see "mgo").
I'm using Go in production (for an almost-complete MVP). For a telephony app I had to dial 100 simultaneous phone numbers to bring people into conference calls. Trying that in Python maxed out my EC2 instance's resources. I had to kill and restart it from the AWS web interface.
Then I rewrote that part in Go. I was staring at the output of htop (similar to top) when it ran and thought something was wrong; it used a few megs of RAM, no noticeable CPU, and finished in 0.59 seconds _on a micro instance_. Now you can see why Google wanted such a language!
I never appreciated static typing ("who wants to go from Python to Java or C++?") until Go, which makes very heavy use of type inferencing. The upshot is you'll find yourself declaring types 0 times instead of twice in Java. In Python and Ruby you don't declare them at all, resulting in type errors _all over the place_ and programs that run ~20 times slower; see http://shootout.alioth.debian.org/u64q/benchmark.php?test=al....
The Go compiler tells me which lines contain the type errors. Usually my program is correct once these errors are gone. Can't say the same for Python, whose apps can run for days before a corner case is hit, exposing a type error that would've been caught at compile time in Go.
It's interesting that you mentioned Clojure. Well, it's powerful alright, but I found it to be extremely complicated (does a language _really_ need 4 kinds of concurrency and to consist of literally 500 functions?)
If you believe as I do -- as do most who appreciate small, simple, but extremely powerful languages like Python and C -- that simplicity is a feature, you will love Go. If you love Java, C++, D, and other huge languages, consider those or something like Scala or Clojure instead. IMO, doing so means giving up clarity/comprehensibility for a longer list of features, almost all of which _can_ be useful, but all of which make mastering the language much more difficult.
Go has been my favorite language for about a year now. Its only weakness is lack of library and/or framework support, which is an occasional bummer.
That said, I very strongly recommend giving Go a try if you haven't already. I played with Clojure for months till it finally made sense and I saw how powerful it _could_ be, but I still couldn't do anything with it that I couldn't do in Python.
After 2 hours with Go (1.5 years ago), I wrote my first ever concurrent program... _trivially_. This can not be stressed enough. Want a function call to `f` to be non-blocking? Type `go f()`. Yes, it's that simple. Launch a couple functions like that, and bam, you're doing extremely efficient concurrent programming.
If you want the convenience of Python or Ruby plus the speed and type safety of C++, give it a shot! http://golang.org
"Golang has been pleasing me lately although it's interfaces have a very tiny hole in the type safety."
Go/Golang is indeed an amazing language -- my favorite, in fact, even beating out Python for my #1 spot. Go's creators guarantee its type safety; what hole do you speak of?
To hopefully assuage your concerns and to make an assumption about what you may worry is a hole in Go's type safety...
Empty interfaces allow one to contain _any_ value (such as a string) in an interface{}, but in order to use such a value, one must access the underlying type of the interface{} (i.e., the aforementioned string value). To do so, a type assertion is required, thereby preserving type safety... unless I'm missing something?
Hi there! I'm Steve Phillips, an award-winning software developer and creative problem-solver.
I've been programming for 16 years, and have extensive startup and freelance experience which I am excited to leverage to make shit happen.
I've done a ton of Python (15 years), JavaScript (7 years), and concurrent Go ("Golang") programming (14 years) on the backend, plus many years of React (7 years) and Svelte (5 years) on the frontend.
Lately I've been creating RAG-enabled AI chat bots that answer questions about an arbitrary data set (e.g., company documents or instructional videos).
Thanks to LLMs -- specifically Claude 3.5 Sonnet, GPT-4o, GPT o1, and GPT-4 before that -- my programming productivity has approximately doubled, meaning I get $300 worth of programming done per hour, at the highest quality.
Additionally, I am accustomed to playing the role of startup CTO, and I'm looking to do more work as a fractional CTO. This is especially valuable for projects that need software built and need help clarifying which approaches, technologies, and services should be used to solve a problem in the most efficient way.
In 2022 I was brought into a project after the founder read about me in a book ("Coders", by Clive Thompson). Together with this founder's team, the software I designed and led the development of has won many international innovation awards -- so many that she was nominated for Person of the Year in 2023, in her home country of Switzerland.
I was recently vetted by Arc.dev and I completed their "30-minute" programming exercise in 4 minutes. My solution was so simple that the interviewer had to triple-check that it was correct. (It was.)
My normal rate is $150/hour, but from now until December 22nd or when I get my next gig, whichever comes first, it's $100/hour, as I just started looking.
You can get in touch with me at [email protected] .
## Links
https://tryingtobeawesome.com
https://linkedin.com/in/sdphillips
https://github.com/elimisteve