Write clean code with minimal risk of bugs
Be the person on your team who can explain why a design decision will save your team hundreds of hours, months or years down the road
Explain in clear terms the reasoning behind why some piece of code 'feels better' than another
Join over 250 professional software engineers
I’m Jimmy Koppel, and, six years ago, I set out to create a better way for people who could already code well to become masters of their craft.
One of my first clients went from a major career setback right before we started to competing offers from Google and Facebook after four months working together – and Ivy-League grads looking up to her after another four. Another was a brilliant startup founder with a CS degree and over five years experience; after witnessing how our sessions improved his code’s modularity and architecture, he came out saying
I wish I had started working with Jimmy sooner.Stephen Balaban, CEO at Lambda Labs
And now I want to help you! I’ve taken the intuitions that top engineers use to build robust and maintainable systems and turned them into principles that can be taught and drilled much faster than learning by experience. Now I’ve streamlined this material, tested it on live audiences, and turned it into a course to help bring you to your dream skill level.
This course is not a replacement for hard work and is not a guarantee of success. It is a shortcut to understanding the deepest levels of software engineering.
Education research shows lectures are not enough. I'm committed to your learning, and that's why I'm making this more than just a course.
I've gone through thousands of articles online and hundreds of academic papers to find the few with insights about the general art of software design. And when I couldn't find anything that explained a topic well, I wrote my own. I'm giving you access to all of these.
Between sessions, you'll be given exercises to drill in the concepts and samples from large projects to critique, so you can apply your learnings to real-world software.
Rapid and targeted feedback is a general principle that can help you learn anything 3x faster. I read every submission and give individual comments so you can know you're getting the material.
That's right, two 30-minute 1-on-1 sessions with ICF-certified coach James Koppel, one at the middle of the course, and one at the end. I'll use my hundreds of hours of experience working 1-on-1 with professional engineers like you to help you be the best engineer you can be.
Are you a junior or mid-level software engineer who wants to build systems that take little effort to maintain, and where adding new features is a pleasure? Then this course may be the right thing to jump you to the next level?
This is not a beginner's course. I designed it for engineers with at least one year of professional experience, and I'll talk with you 1-on-1 before the course to make sure that it's right for you.
If you already have a proven track record of designing systems so that it’s hard to make a mistake in the implementation, or if you routinely show teammates why their code will fail in a year, then you may find this course a nice way to put a more principled perspective on intuition you already have. You may also find the exercises too easy. But, in that case, you might be a great fit for my 1-on-1 coaching, where I'll teach even more advanced material at the pace you desire.
We teach skills which are more fundamental than any particular language or framework. Still, all examples will be in C, Java, or Python, and you should be somewhat comfortable with the syntax of all three.
This is a course for professional software engineers. For homework, you will need to be able to understand code samples from open-source projects we give you to critique, and you will need to be able to reflect on code that you’ve worked with in the past.
The class will meet in webinars every other week for 6 total lectures. Each of the 6 units comes with additional readings and homework, with the last set of homeworks due two weeks after the last lecture.
The webinars will be held from 1100 to 1200 US Eastern Time. All webinars will be recorded; attendance is optional but strongly encouraged. There will be an interactive component.
Here’s that in several timezones:
Location First lecture (lectures every two weeks, same time) San Francisco New York London Berlin Bucharest Calcutta Singapore Shanghai Melbourne
In homeworks, you will be asked to design programs, or critique an existing program, but not implement new programs. You will get personalized feedback on all assignments. Students typically report spending 5-8 hours a week on the homeworks, though we've heard reports as low as 2 hours/week and as high as 16 hours/week depending on experience.
Every attendee will also be offered two 30-minute one-on-one sessions with me.
Like everything, what you get out of this course is what you put into it. Every week comes with mandatory assignments, but there's several times more exercises for the truly dedicated.
Glad the course has piqued your interest. Maybe you have more questions or want to get started immediately!
Whichever it is, let's start with a meet and greet where we can get to know each other a bit, answer any questions regarding the course, and see if we are a good fit for each other.
To move forward, fill in the form below, and we will set up a video call at a time that suits you.
TBD; Register interest, and we will let you know
Since I started helping engineers years ago, I've been amazed at how many already-good engineers are still seeking to improve, and how few resources there are to help them at the higher levels. Even still, I can only offer 20 spots in this course, and several of them filled up before I had even announced this course publicly. The first time we ran this course, we got over 2 applications for each spot, so move fast.