Author Archives: Eric Brooke
So I looked for a tech cofounder and infact found almost three. Then a friend who was a developer said they would be happy to “play” and see what comes off it, if we paired (pair programming) as it would be fun, and if he was going to use his non-work time he wanted it to be fun. I agreed this was a better approach, building alone is hard (Thanks Phil)
Becoming a coder, again..
I wanted to learn Ruby and Rails, all along because I want to build prototypes for my startup (Professional You). Yet there were no local courses. I prefer learning with others, its good to have a peer group. So in Jan 2013, I booked myself on RailsConf 2013 and gave myself a deadline to read and complete Learn Web Development with Rails prior to the conference. I was introduced to a start-up (Thanks Jessie) and started working with them two days a week as a junior rails dev. I learned a couple things about myself, I was not good at asking questions from the lead software developer as I was worried about taking them away from their tasks (as they were under a lot of pressure from their boss) and we worked remotely, which is not ideal for a junior. I also found testing before coding was very difficult, in part because I needed to know rails better first. Additional good Rails book that helped in my journey were Rails 4 in action Rails Anti patterns , and Peepcodes Videos on RSpec.
It becomes clear that rails does so much and its BIG, but the better your Ruby knowledge, the easier working with Rails, no shit. There are times you have to build your own model without Active Record and connect to APIs. Everything becomes a little easier, your code gets tighter.
I tried the Well Grounded Rubyist book, whilst I understood all the concepts it was too much without having not built Ruby Apps first. Most of the online Ruby course were interesting such as Code Academy, but they failed to stick in my head, one exception was a course on Lynda called Ruby Essentials, which frankly was brilliant (Teaches the basics and the gets you to apply them in a Ruby App). After that I tried the Ruby Koans . The hard part about coding is trying to remember it all, understanding I think is easy but holding it all in your head is hard. One senior developer said to me you do not need to remember everything just remember you can, then Google it. The more times you use it the easier it will be to remember. His other tip was to store all of his projects on Google Drive, so he could use it has augmented memory.
Training that actual gets you build an application, I found to be more useful and gave me extra value, rather then little bits of code. Looking at how other developers tackle the same problem is also incredibly useful. Peepcode did a bunch of Play by Play videos, which taught me a lot about how they solved the problem and I also learnt how to use different tools.
Learning about software development..
There are a bunch of tools and “behaviours” (ways of working) that you have to learn, some of this comes from you just coding, but some you need to spend a bit of time working on i.e. Git (or other version control)
- Re-learning Unix and BASH i.e. Terminal on the Mac
- Trying out different tools, BBEDIT, RubyMine and finally Sublime
- Getting comfortable with version handling i.e Git, how to use GitHub
- Where to find the bugs for debugging, using irb, rails console, understanding the logs and the stack trace
- Where to find the information that will help i.e. online manual, google, stack overflow, google groups
- How to tackle the actual problem, when to step away and take a moment
- where to ask a senior and not annoy them (still working on this one)
You are never ready, its just a matter of choosing the time, finding the courage to be vulnerable and going for it.
Its seems surprising that some of the best times in my life are when its has gone so wrong, you really discover the other people around you in that moment the good and bad. You could wait to be that perfection and never make a move. I knew that two days a week of coding after working the other five was tiring me out, but I also knew I liked to code, I love problem solving. That said I had yet to build my GitHub profile, most of my work was private, most of my student work was very specific, so not a complete web application but do this on this page. Whatever, It was time to go full-time. Lets see what happens..
The best way to get what you want is to simply ask
Just before christmas 2013, I sent out an email to the Ruby meetup group in Vancouver, BC. The discussion space often has recruiters looking for rails developers, why not flip this and advertise me! I did not expect much of a response..
Subject: Looking for a Junior Ruby on Rails job
I hope you are having a great day and not too bored..
I have computer science degree and most of an MBA. I have played and succeeded in many other careers like communications and being a politician. And I have learnt that I love to create. So I went back to school (BCIT) to refresh my computer skills and learn web applications, after two years I have done a bunch of evening courses with an average grade of 93%. For the last 6 months I have being learning/coding Rails/Ruby on my weekends for a local startup. I have also attended a bunch of Rails/Ruby conferences in the US on my own dime.
Full-time I have being working for Apple as a Genius/IST Support. I know crazy right working 7 days a week for two years.. I am now looking for a full-time software development role with an emphasis on Rails.
You will find all the good stuff in my linkedin profile -> ca.linkedin.com/in/ericbrooke/
Continue having a great day
In all I got 80 responses, over a four week period (40 within 48 hours). There were 42 real jobs going, 20 were long term contract, 8 short term contract. 10 were you are the first developer, no not good, go employ a intermediate or senior developer! Leaving me with just 17 companies to talk to, after researching each of the companies, I spoke/emailed to them and then did 14 actual interviews. After which I cut it down to five after second interviews I cut it down to two..
Finding the right team to join..
You are the apprentice and you are looking for master/mentor/teacher/coach/facilitor not a boss, not the brilliant programmer whose ego is big enough for you both.
A couple principles for me:
- Those that asked for me to do code test prior to having a first human to human conversation, I did not continue.. I am not your code bitch.. or your slave, talk to the human in me first
- How much they truly bothered to explain who they are as a company and their intended culture, mattered to me.
- You need patient senior developers who are willing to coach and that their bosses will give them the time/leeway to coach
- That you will learn a lot from developers who have different styles and roots, prefer different languages and frameworks
- I need to grow and learn fast, how are you going to help me get to intermediate?
- Seniors that have being teachers or parents tend to be better at explanation. Just a theory at the moment.
I want to work with awesome people.
Be they smart, emotional intelligent, creative or just different. The most laughter at work I have had are with teams of such diversity, with so many forms of intelligence, not just the academic kind. I am going to be spend a lot of time together, consider it a road trip, we will get angry, sad and laugh together. The culture, the people that I work with is important to us all. For these people I will have lasting loyalty, forgive and move on, push the boundaries to ensure there is a future and learn every fricking thing I need to learn, take time out of the rest of my life to make my colleagues life easier. So if you send me a coding test before, we know, we like each you can frankly go @@@@ yourself.
A good interview is a collaboration of us exploring each other.
Understanding your capability is hard and is often judged on so many irrelevant things
There are few jobs where you are ask prove you can actually do the job before you actually do it. Some tech interviews felt like you were expected to put out on the first date.
The best I had were conversations and tested practical experience, not theoretical mathematics. The actually best asked we to describe what I know and then sat me down at a computer asked me my favourite coding tool loaded up an example application. They asked where would I find a routes file, explain these routes, where do they take me, asked me to follow the whole path what was load etc. After if I want to add this to the app what would you do? “feel free you access the internet”, explain what you are thinking? The sneaking bastards even had a couple “bad” things in the code to see if I would notice. So I did not mention them until I was about to leave That was my first job offer
The worst started with theoretic problems to write pseudo code on the board… Funnily enough they started questioning my pseudo code. Some people see an interview as a way to prove their intellect not understand yours.. Have you forget who is interviewing here, you, er no both of us.
For people who did their computer science degree a long time ago or learnt on your own path; I recommend this book Think like a Programmer by V. Anton Spraul. The most stupid, abstract, non-relevant questions I have every being asked in any interview were all in technical interviews. And folks I was an elected politician.
Testing the “interviewers”
I have learnt more from people, when I have failed or needed help.
So every job interview I find something to fail at and see how the interviewer copes. I will also ask my interviewers how they will cope with my failure and how they cope with theirs. I will always ask at the end of the interview what do you like and not like about me. I learn so much from the response.
The type of organization to work for..
If I am going to work on something, I need to care..
Go for an one domain company, startup or for an agency style..
Domain companies tend to give you a position and you have to earn your right to grow, the structure tends to be more rigid, yep be a junior for three years. You get small parts of a big cog. But you would learn about scale to a higher degree. And maybe they may have systems/coaching/mentors/learning plans in place to accelerate growth of juniors. That would make sense would it not?! not one on my list.
Startup, happy to take the risk but you have to love it and I did not love any of the startup offers. Also they tend to lack the numbers of senior developers you can learn from.
I went agency i.e. build prototypes, because I wanted to work on a lot of different products in different domains, I felt I would learn more faster, and so far that is true comparing my growth to my friends. With prototypes you have to do the beginning a lot and then you finish, and then you do it again, there is opportunities to grow in each project.
The job I took
It felt like a conversation between curious people.
It started on the phone, progressed to face 2 face and then there was a take-home coding test. They were good questions that I had to think about. The whole process felt open, unstressful, they trusted me and I trusted them.
I asked my boss what does he look for?
“People with a wide life experience who can clearly show they can learn”
So far it is pretty awesome I get to work with three seniors who have different approaches and the diversity is already teaching me a lot.
I am a workaholic (I never feel I work hard enough), there used to be a few things that make me pause and force me to reflect such as illness, love, friends, mentors, etc. Sometimes these “interruptions” are random and infrequent and may not occur for several years.
Life has taught me to occasionally pause and consider who and where I am.
Every year now I review my life, I considering all aspects and what I need to change or not. At work they would call this a performance review.
You in the end, are the only person you have to live with throughout your life, you need to stay in touch and avoid too much drift. A little drift is good because it can allow you to reflect and consider new paths.
I use the following categories to help me breakdown what is important.
These are my personal ones that have change throughout my life, you may have different ones, over time you will find that they will evolve.
Is there enough love my life in terms of relationships, friends and family? Are there people in my life that cost more then they give/gave? Am I giving enough to them? Do I Love myself? Does your “friend” spend more time talking about themselves then asking you how you are? Who helps you out when your are sick? Who calls you out on your stupidity? Of course these questions are reversible? e.g. are you a good friend to them?
Am I working or playing towards something? Am I just floating? Am I happy with my level of progress?
Am I giving back? Am I mentoring, teaching or helping others grow. Am I paying attention to politics and the communities needs?
Am I still the same person or have I evolved? Am I growing and learning? Am I pushing the boundaries of my personality, my knowledge, and my skills. Is there enough challenge in my life?
Do I have muses? Do I have people? Books? Music? Arts? Games? Food? Is there something refreshing my soul? Do I have moments to explore or simply rest?
Am I healthy? Do have the body that I want? Can it do the things I want? Do I eat as I should? Do I sleep as I should? Are you snappy with friends? Do you need time off?
Do I enjoy it? Do I have a leader who inspires me? Does the organization value me? Am I able to use my core capabilities? Is the cost of working for them matched by the value I receive? Yes I give my work a performance review – are they what I need?
Do I have enough? Do I have plans for when things go wrong? Do I have saving goals/purposes.
9. My Drivers
Over time you will start to see patterns in your behaviours, things or people you prefer to be around. It has helped me understand that I have certain drivers (some good and some not) for example I am incredibly curious, I want to know why, but do I spend too much time exploring/discovering and not acting? There are things that I sometimes find difficult to manage e.g. being a workaholic do I make sure that I have enough rest and/or vacation, is my health good?; we are all better people to others when we are refreshed.
Making it real
Often I will draw a mind map for each (1-8) and then give it an overall score between 1 and 10. If it is lower then 5 I start to consider how to improve it, by adding things that could improve the score on my mind map on the edges. I build an action plan for the next year e.g. If I do not have enough Love, should I meet new people, do I deepen the my relationships that are good for me, or do I remove people from my life. After completing all the mind maps I consider the bigger picture and the inter relationships between each mind map, e.g. could I kill two birds with one stone? Or is one so high and at the cost of others e.g. Work is at 9 but Love is at 2.
Then I will consider my drivers. Some of these drivers will clash with others, how are you managing that balance? I draw an illustration for each of my drivers and consider both the good and bad of each.
Then I again I will look at the connections between all (1-9).
This is the way I consider my life on an annual basis, you may have different things that matter, different drivers that push you. I urge you to discover who and where you are and how to make sure you are in control of your life, not too much control, but enough to be heading in the direction that you wish.
In February I wrote a blog post about the lack of support for technology co-founders in BC, Canada.
I have decided to pull together an open source program/set of courses to educate/grow/upgrade technology cofounders, to increase their chances of success in their role. The first step will be to collect ideas/experience/wisdom from the community and then pull it into a bunch of classes that a person can work through at their own pace. It is my intention to build it so anyone could actually run it as face to face classes, in their local area.
Create an open source resource/courses/program that people can run in their local area to educate/grow/upgrade technology cofounders, to increase their chances of success in their role as a technology cofounder and grow into a full CTO role.
There are many, many programs that support the business/leader/ceo co-founder but few I know to support technology co-founders.
To help technology co-founders avoid mistakes, learn from others experience and build the quality product
Target audience Technology co-founder of a startup (Startup levels) with the intention of building a fast prototype to prove the concept.
To stay platform/technology agnostic
I will start with a level one startup and build through the others
Please share this link and come and contribute to the program at https://github.com/ericbrooke/ctofounder/wiki this is a wiki in which will collect all the ideas, suggestions for people we should interview, good resources you have already found and learned from..
We need the views of:
- those thinking about creating their own startup,
- those who are in it creating their first production,
- those who have supported technologists on their journey,
- those who have done it several times.
We don’t care if you have succeeded or failed share it! We need all your questions and experiences
The reality for most people is you will have many jobs and careers.
My journey so far would appear to be all over the map. I started as apprentice potter, a newspaper delivery boy, a general dogsbody in a kitchen, a cook, a chef, a computer scientist, a student politician, a trainer, a charity campaigner, a political campaigner, a english teacher, a dive instructor, a politician, a cabinet member, a marketing VP, consultant, startup founder, a college professor, a tech support, and a developer.
Every job and career can teach you many things (if you are paying attention), changing either, will give you a faster track to understand the similarities and difference in different sectors and jobs. In the end by having different of jobs/careers you will see connections, innovations that others who are stuck in one role and career will rarely see.. For me I connect so many disparate things, see opportunities where others are blind and I am constantly readdressing what others see as the “truth”, common sense or the obvious. All because they are coming from one angle or a limited few angles and I am not.
Hint when you have lost your keys stand on a chair it will allow you to see the room from a different angle that you are unfamiliar with and you will pay more attention because it is new.. I am suggesting the same thing about your career..
A job and career should fit to your needs and desires at the time.. sometimes that will be simply to pay the rent, other times it should be explore another part of you. Choose a pathway of jobs and careers that will make you happy and that will teach you the things you need and desire, to help you with the next step.. consider it a pathway or a tree with many opportunities..
Plan your professional life.
So if you change your job career regularly what about loyalty to orgainsations and businesses, fair question:
- Public companies are often more loyal to their shareholders and the organisations survival then you, yes even if you are the founder or CEO.
- Private companies loyalties are determined by the power structure or family relationships or funders.
- Governments are loyal to the last electorate vote, who often vote on the last bad thing the government did, whole programs and departments are wiped out as governments change.
- Non-Profits immediate future are determined on the economic cycle
Ok a touch cynical I appreciate, but the reality is organisations are always changing even if a bit slowly. And so should you!
Here is a couple things that helped me and things I continue grow:
1. Importance of self awareness
The more context and angles you see yourself in, the more constructive feedback you get, the more you will truly understand yourself. As you experience different organisation cultures you will build an understanding in what you like and dislike. You will need to book sometime for yourself to reflect, process and understand.
Most people are not truly aware of what their dream job is, they even think they do, just do not know until you have tried it. Maybe you have be driven to this point because it was what was expected of you by your family or friends or teachers. Chill, I personally do not think you have to have a job or career for life, you are not a penguin you are a human you have choices. Sometimes having choice is part of the problem..
In my experience, there is something more powerful then the right job, its working with an awesome team. When this happens the role seems less important as long as you are contributing to the team. Being good in your role and being proactive in learning becomes natural.
Trying out a few personalities tests will also give you some slivers off your personality, remember most of this are very superficial and a snapshot in a time and a place.
2. Fear should become your friend
We all need become unafraid of changing both careers and jobs or at least manage the fear so it becomes your adrenaline, your extra boost, a source of strength, not weakness.
You can reduce fear by planning for the change, e.g. taking evening courses, internship, work seven days a week (5 in one job, 2 in the new role), get a mentor in the role you want to be in. Take a vacation and go to a conference that concentrates on that role, check out if these people are the ones you want to be surrounded by.
It is not easy to learn new skills for which you are being paid for. You will often feel “stupid” and fustrated at yourself. Understand the basics of anger management, because your mistakes will make you angry at yourself more! Ask your partner(s), friend(s) or family(s) to keep an eye on you and help you adjust, reflect and process.
3. Choose your boss carefully
It does not matter how good you are, if your boss does not like you, the rest is irrelevent. You must choose a boss who can be both your coach and mentor. You are recruiting for you. You are looking for the best match for you. Let them worry about if you are good match for them. Your interviews should be 50/50 in terms of questions, yes you asking 50%.
Questions to ask:
- How many of your staff have you coached and mentored?
- Describe to me your coaching style?
- Can you give me examples of your staff that have outgrown their roles?
- Have any of your staff ended up in senior positions to you?
- If I fail project how will you react to your colleagues and me?
4. Understand how to build a new network
You will not be here for ever, find out who the good people are. You have a strong advantage over those who stay in one job or company, your network will grow faster, this gives you more opportunities for new roles. Again match people on your personality, not power/influence. Look for the people you want to work with again. Also look for the people who are really good at, what you are not.
5. Understand how to learn and grow your skills fast
This is very important. Get to really know how you learn best and expand your learn capabilities. You should not, use one learning model to understand this, you use many models (they all see different things). It may require an investment on your part, in the end understanding this will determine in part your success in each job and career. Accept that your will occasionally make a mistake or even fail.
Here are some learning style models:
- Honey & Mumford Learning Styles Questionnaire (Activist, Reflector, Theorist and Pragmatist)
- David Kolb’s model (Accommodating, Converging, Diverging and Assimilating)
- Neil Fleming’s VAK/VARK model (visual learners, auditory learners and kinesthetic learners)
- Grasha-Reichmann Learning Style Scale (avoidant, competitive, collaborative, dependent, independent and participative)
6. Grow both your leadership and followship abilities
Whilst we have media mythology that states that leaders are more important.
Leaders only exist if they have followers.
If an organisation expects you to serve as a slave for five years before you can have some leadership responsibilities move on, go work for a smaller growing organization, who offers opportunities.That said it is also important to occasionally work for larger organisations to understand how to work in one e.g. how bureaucratic systems work, how the culture of having several tiers of management, effects innovation and the impact policy decisions from on-high effect the person on the ground floor or customer facing.
In my career I have chosen to work in leadership and then not. It has accelerated my abilities in both. But it is not easy. It has taught me humility, patience, the ability to coach upwards and let others fail if need be. Sometimes you need to reinforce your roots, other times explore a branch. Growing upwards is not always the best choice.
7. Do not burn bridges
A lesson I learned from politics. You will fail, what people really respect is how you do it with humility and style and then come back and show people why you are good. You also never know who will be your allies in the future, occasionally you will have to forgive others and move on. Sometimes you will work out in hindsight it was you creating the problems.
8. You own your future
Plan your professional life. Work out where you think may want to be. Look at the skills, knowledge and experience you will need to acquire, to achieve each step. This plan should and will change as opportunities pop up. Reflect on each job, what did you like about it and what did you not. Reflect on your bosses, what was good and not, how will this improve both your leadership and followship abilities. How specifically are you going to grow, what books, courses, conferences will you attend? Which personality tests will you pay for.
Make a plan, but stay on your toes and change as you learn.
Do not let your manager or HR “talent manage” you. They care about their needs or the organizations needs not yours. Of course listen to their advice, but check in with their motivation. Yes ask them!
Most talent management and skills databases systems are simply shit. They are limited by traditional concepts of the education you have received and the job titles you have had. They are predicting your future by looking at your past. Idiots. Just imagine if we limited the human races future on the past, so why do we do it for every individual. Your past could be a reflection of your parents, the financial place you have come from, if you were teased at school, things that as an adult you can choose to move on from.
Even currently online resumes miss the point, how limited in expression and in understanding the professional needs of a human, even from an organisation perspective they are limited in use.
This simply waste of human potential, angers me so much, it is in part why I founded Professional You and why in time I will blow this shit into the past.
This has become my flame, the thing I will build all the skills I need towards, the types of people I will hunt for to help me with this mission. And if I fail it would be for a cause I believe in.
My path is clear, I understand the full grown tree that I need to grow, in myself. This clarity took many roles, many careers, many failures and success.
I hope this post helps you find some of your tree, or helps you on your journey. Please share your learnings, so I can learn from you
So recently someone I respect has being promoted to become a leader of an organization. I want them to be successful, so I thought long and hard if I had some good advice that I could share. Was there a good book I could recommend? Or a video?
I own about 60 books on leadership excluding the MBA stuff. There was one that I kept coming back to me, it was a book I first read when I had just being elected to office and became the cabinet member for Cornwall County Council (UK) as Community & Culture “Minister”. This role was a real step up for me in terms of budget (71 million) and staff (over 440 spread out over many locations), where there was often upto 4 leaders between me and the frontline staff.
This book not only had a lot of wisdom in it, that we often take for granted and thus forget. I think the best kind of leadership book is one you walk away from and think/feel I want to be led by this person. And to make it even better I know now how I can ‘upgrade’ myself to replicate this over time.
“The day soldiers stop bringing you their problems is the day you have stopped leading them”
In the end the leaders behaviour will create a culture, so the book and video I recommended were as much about context (i.e. of this new leaders organisation, and its culture).
Another choice was the video by Simon Sinek, Start with the Why
This video ties into the need to inspire and effective leadership is about inspiration not overt control.
The book The Power of Why by Amanda Lang, had a number of factors I needed, it is written by a women who is also Canadian and the stories come from other industry sectors. Context is everything.
“Permission to dream is also permission to fail”
A book I found useful early in my career was The New Leaders by Daniel Goleman (he also wrote Emotional Intelligence). It was this book that showed me on reflection, the different leadership styles you will apply e.g. command and control has its place, depending on the context. It was also the book that helped to delegate with trust when moving into middle management.
Great leaders move us. They ignite our passion an inspire the best in us. When we try to explain why they are so effective, we speak of strategy, vision, or powerful ideas. But the reality is much more primal: Great leadership works through emotions..
The last book is produced by CEO of the company with probably the best customer service on the planet.Delivering Happiness by Tony Hsieh journeys through time and a mans’ growth in understanding importance of leadership behaviours and their impact on the staff and thus the organisations’ culture.
Be Adventurous, Creative and Open-Minded
My last couple thoughts come from experience:
- That leadership is as much about vulnerability, as it is about confidence
- That followers choose who inspires and leads them rather then manages and controls them
- That women leaders are often better coaches then males, but the often to do not “give” territory for their coachees to succeed in.
- That “rebels” can often be bright people who are bored, give them something to do, they could become your greatest innovators
Finally leadership is a skill that you will never master, so expect to fail, maybe even plan for it, that said we often “love” rather just just respect the leaders more who have failed and have come back to succeed.
Rant… to a friend.. now even more rant like.. If you really cared, you would stand for election!
“We must be the change we wish to see in the world” Mahatma Gandhi
Nothing human is perfect. Can you imagine if you were doing your job and there was an anti-you pointing out every mistake not to you but the media. Yet that is what we expect of politicians. How many business people could cope with that, strike that, how many humans..
Then we expect them to make statements that they will stick with for several years, even though the world changes.. could you imagine running a business or a charity that way.. shit happens, the world changes, who believes predictions anyways.. when governments have to plan they have to account for everything.. everything.. no wonder it does not always work out..
But its so slow.. Making decisions in government takes time, because they care about the stakeholders, they have to listen and balance and often compromise between the different stakeholders, else its called a DIC TATOR SHIP..the real shit is sometimes the decisions is irreverent because the world moved on..
In the end the political system reflects its electors..
- you want to see leadership, let politicians make mistakes like the rest of, expect less of the angel and accept that we are all angels and demons trying to make choices through life.. and when you are angry tell them and why, and when you think they are awesome tell them and tell them why.. treat them like a human being.. we all need feedback and not every four years, stupid, in the moment.. Can imagine your partner giving you feedback every four years?
- you want to see more choice in political parties fund political parties and accept coalitions
- you want to see better use of your money start voting on the long term record not on the last thing that pissed you off..
- you do not want politicians all from rich backgrounds or at the end of their lives, then make sure they can a good salary and expenses to cover the expenses.
- you want com·pe·tent and well trained staff to support the government, make sure they are paid enough to pay off their education, continue to get training and maybe even afford a house!
The worst part of it is as humans we tend to remember the negative ads or the decisions in hind sight were poor (yeah fucking hindsight).. who says critical thinking is dead..
Make a choice: forgive or try something new out or create a new choice i.e. you standing for election..
“The price good men pay for indifference to public affairs is to be ruled by evil men.” Plato
P.S. The reality of spoilt votes, is no one cares. Congratulations you have actually excluded yourself from the actual decision process, just costing the election more in the process by counting and recording your vote.
Here are two place you can get the videos for the talks
There is nowhere to learn Ruby or Ruby on Rails in Vancouver, BC, unless it is a book or online. I like to learn with others. I even pushed it at BCIT and asked at every level..
So I decided I would kickstart my journey with railsconf. This was my first Ruby on Rails conference. I was honoured enough to win a scholarship, (I am a student at BCIT )to attend the conference (which paid for my ticket). The rest is my pocket and vacation days. I just view it as a vacation And I need to buy jeans.. My level of Ruby on Rails knowledge is really low in fact up to chapter 6 of Learn web development with ruby on rails pre-confrence.
I took a AMTRAK train down from Vancouver, BC to Portland, WA. It made sense train, rails.. Its a seven to eight hour journey. My theory here was I would be able to do some more study on the way down. There I bumped into about 8 others travelling down from various companies to railsconf. I got very little extra work done.
Scholarship meeting up
This was fun and warm meeting of other scholarship winners and sherpas. My sherpa is Sam @geeksam . I got to meet some of the other ‘scholars’ a real mix of backgrounds and personalities . It was good to have some friendly faces (Chuck and Miles were really helpful) in a crowd of 1500 people. We agreed on a hashtag #rcguides. Lots of passionate conversation was started, about how people got into rails… but we finished early. So my first night I went on a beer crawl with the hostel… I know where I went from my credit card payments..
Day 1 -Monday
There was a lot of talks to choose from, and this will be my journey through the schedule.
The opening Keynote was by David from 37 Signals (Rails was created out of Base Camp, which is built by 37 Signals). His vision was that Rails should concentrate on the document driven web apps not the “GUI” e.g. Google maps. Rails 4 is about speed. His talk led into some good explanations on how the caching is working in Rails 4. Some cool stuff.
How a Request Becomes a Response
This was part of the intro track, designed to educate newbies about the Rails framework and the community. A quick and easy introduction starting from the browser through to the database and back. It was really basic but very well presented. There are a number of sessions on the intro track that can be found here http://www.railsconftutorials.com The wifi did not work but a smart person had a USB stick with the needed code.
Nobody will Train You but You
This was a funny and helpful talk by Zach Briggs @theotherzach, for those wanting to step up their game. His talk showed how he managed his first year of learning ruby on rails. His suggestions including writing down solutions he found on a piece of card. Build up some katas and practice them, until you can do them without any reference to anything out. He suggested visiting a couple sites including Sucks rocks, Destroy all software by Gary Bernhardt.
Monitoring the Health of Your App
Presentation by Carl Lerche and Yehuda Katz stating that the average web response time is a stupid way to measure your app by. The real world is not distributed normally. Web response are long tail, not standard bell curve. They have being working on a product to solve this problem and help rails app creators to track down the issues. The product they are working on is at https://www.skylight.io
Rails’ Insecure Defaults
A most excellent presentation by Bryan Helmkamp @brynary (founder of Code Climate). Here are the problems and and here are the solutions and here is what rails should change. Bryan is pulling together a free ebook you can signup here http://railssecurity.com
- Verbose server header
- Binds 0.0.0.0
- Logging SQL values
- Versioned secret tokens
- SQL injection
- YAML serialisation
Taking a break for sessions I decided to get to know some of my fellow attendees and spend some time working through a problem with Sam (my shepra @geeksam). I wanted to see how he broke down a problem and how he also read other peoples code. I learnt a lot.
Michael Loop @rands was funny, insightful and argued the need for the Stables and Volatiles (personality types) if an organisation is to survive and flourish, his thoughts that were the meat of his talk are laid out here - http://www.randsinrepose.com/archives/2012/11/14/stables_and_volatiles.html. What bookend or overarched, his talk with however, was a very important point – that we as a community have to be progressive, and that occasionally means leaving old stuff behind.
Reflection on the day
Awesome day. The conference food was good. I love how friendly the people are. How they will take so much time to listen and suggest. Kind of reminds of the early days of Apple that friendly community that is comfortable in taking on the world but is also open minded to listen. It surprises me how many Mac Book Pros I see everywhere, the only people who seem to have PCs are government employees! The venue is awesome there is space for everything, and I mean space to code, to chat. The WIFI is awful, really awful… The conference food was good. In the end I think I met about 50 people and introduced a bunch of people to each other. All the nights events were fully booked and a bunch turned you away. To note for next conference book all the evening stuff ASAP..
I learned about the rails community and rails itself today and I liked it all
Day 2 – Tuesday
Breakfast at Mothers @MothersBistro
Keynote – Yehuda Katz
TDD Workshop: Outward-in Development, Unit Tests, and Fixture Data
I went to this workshop but they had so many problems with setup, lack of internet access that I left. That said the notes were amazing http://www.railsconftutorials.com/sessions/tdd_tools_techniques/02_integration_testing.html
The Magic Tricks of Testing
Booths and T-Shirts
The exhibitors open up and everyone runs for t shits, I managed to get six. The hulu one has the nicest material..
Designing great APIs: Learning from Jony Ive, Orwell, and the Kano model
Philosophy and principles on how you should create APIs by Jon Dahl. His points were good but he used so many other peoples indicators or thoughts it felt like watching newspaper clippings..
(i) Never use a metaphor, simile, or other figure of speech which you are used to seeing in print.
(ii) Never use a long word where a short one will do.
(iii) If it is possible to cut a word out, always cut it out.
(iv) Never use the passive where you can use the active.
(v) Never use a foreign phrase, a scientific word, or a jargon word if you can think of an everyday English equivalent.
(vi) Break any of these rules sooner than say anything outright barbarous.
George Orewell, ”Politics and the English Language,” 1946
Free drink and food, good for networking and deeper conversations.
Today felt a bit more abstract with the exception of Sandis talk. The conference food was good. The wifi is terrible.. pinging shows the issue is the ISP is not doing its job or the OCC has reached its limit.. Not great for a tech conference, maybe different venue next year.
Day 3 -Wednesday
Back to Mothers for French toast covered in cornflakes
A bit disappointing… but nice photos.
This was a presentation of awards to people who have helped grow our open source community or take the time to share great code. Awesome. So many people help our open source community they should be celebrated
Properly Factored MVC
Again the lack of internet kills the effectiveness kills the workshop, but notes look awesome so I will come back to this later
Creating Mountable Engines
By Patrick Peak, really awesome and clear presentation about how to re-use your code and options. It showed us how to setup a simply engine.
Crafting Gems by Pat Allan
A good presentation where he did not assume you knew anything. Good instructor. http://www.railsconftutorials.com/sessions/crafting_gems.html also learned about https://travis-ci.org and http://rubygems.org
These were awesome either 1 minute or 5 minute talks from anyone.
Here is the first 20 to give you a feel, there was 42 to in all..
- Nick Quaranto – OpenHack
- Dr Nic Williams – Deploy your own Heroku with Cloud Foundry
- Chris Morris – Technical Intimidation
- Jon McCartie – Purposeful Code
- Bryan Helmkamp – Code Climate
- Andrew Harvey – Teaching an old dog new tricks
- Senthil Nayagam – Mobile Testing with Robots
- Miles Forrest – Cloning the Seattle Ruby Brigade
- Benjamin Fleischer – MetricFu is back!
- Adam Cuppy – “You’re doing it wrong!”
- Hector Bustillos – MagmaConf great things happen in mexico
- Hector Busitllos – The unofficial RailsConf schedule App
- Mario Chávez – Logic programming
- Mike Virata-Stone – Guard your forms with class, or any other selector: guards.js
- Ryan Smith – Rails logs to metrics
- Dylan Lacey – Giant Hamster Touching – Test Native Mobile Apps with Capybara
- rking – Pry Power: Test Speediness Edition
- Ivan Storck and Brook Riggio – Remember the n00b
- JC Grubbs – Programming Apprentices
- Brad Wilkening – Smart User Adoption Analytics
- Jeremy Green – Gemlou.pe – Easymarklet and SimpleDB.
The conference food was good. Today I looked for some practical after yesterday abstractness and I got it Popped out to Macys for a break and to buy some jeans.
Day 4 -Thursday
Last day a little bit sad so need something sweet..
How to talk to Developers
Ben Orenstein loads of energy and several lightning talks. Taught us all how to sing better, how to communicate better and pitch better.
Reflections on the scholarship
We met after lunch to discuss our thoughts and make suggestions for next year. This was a really excellent opportunity for me and many of the other scholars thought so to. We all agreed that we really appreciated the efforts of Ruby Central and the mentors/guides who took time out of their conference to make our journey easier and more useful.
Aaron Patterson was funny, sassy and even talked about rails. Lots of insight and advice. Some great stories of past mistakes, the need to consider what you publicize on security issues (tell the rails security committee and give them time to respond), how to avoid burnout, that we should look for happy moments.
The best keynote.
Aaron was born and raised on the mean streets of Salt Lake City. His only hope for survival was to join the local gang of undercover street ballet performers known as the Tender Tights. As a Tender Tights member, Aaron learned to perfect the technique of self-defense pirouettes so that nobody, not even the Parkour Posse could catch him. Between vicious street dance-offs, Aaron taught himself to program. He learned to combine the art of street ballet with the craft of software engineering. Using these unique skills, he was able to leave his life on the streets and become a professional software engineer. He is currently Pirouetting through Processes, and Couruing through code for AT&T. Sometimes he thinks back fondly on his life in the Tender Tights, but then he remembers that it is better to have Tender Loved and Lost than to never have Tender Taught at all.
There was an ice cream social.. and ice cream!
I am without a doubt tired but the talks I went to did rally my energy, good choice of talks and speakers for the last day.
Explored The Pearl district. Lots of buzz, posh bars, not so posh bars and restaurants. For those who know Vancouver, BC it is like a more lively version of Yaletown.
I went home after buying more books from Powells and some DocMartins..
Thoughts and suggestions for next conference
This was a really good conference, with the exception of wifi access. The venue was really good with lots of space to either hide, code or meet people. The food was good everyday, very impressive for 1500 people .There were lots of amazing talks and a friendly crowd. I am very grateful that I won a scholarship to attend. I wish to thank Sam, Miles, Chuck and Marty for making this such a great conference experience
These are just suggestions that may make it even better:
- Have a day before the conference start, that is for beginners and newbies a bunch of workshops to get people up and running on rails an understand the basics. Anyone can attend or not.
- Ask every presenter to tag their presentation with Beginner, Intermediate and Advanced and maybe also type e.g. overview, into code, workshop. Allowing the attendees to choose smarter. Even give the option for speakers to give 20 second videos that state what they will talk about.
- Have a local server with all the code needed for workshops, assume that the ISP will not provide, have plan B
- Have a list of presentation mentors, who can support the building of presentations both for main conference and lightning talks
- Have some advanced talks which they are presented on the web pre conference and the actual conference sessions get deeper or have debates..
- Make fruit available through out the whole day, better to be fruit powered then fat sugar things
- Give the opportunity for people to vote pre-confrence the sorts of talks that people would like to attend.
This may encourage other speakers who know it really well to step up, it would also give you trends of types people coming and may encourage others who are starting to get to know rails.. and possibly even deciding if this is the language that we want to use. It would also allow people to start interacting prior to conference, maybe even setup lunchtime or dinner meet ups to talk about topics that will not be covered on the big stage?
- Have some real advanced workshops that maybe take 3 hours to dive deep on something. We need to grow our experts to
- Have a system to rate or vote for best presentation at the conference.
What did I get out of this conference?
Some awesome new people in my life, a bunch of new people to pair program with, a better overview of rails and ruby, a bunch of things not to do with rails. In some ways I have a treasure map of Ruby on Rails now with parts in detail and big gapping holes.. but I am in a far better place then pre-confrence.
Made some friends in Portland and got to know this city a bit better, ate some great food, bought jeans (my last pair had holes worn on the knees, ankles and crotch), bought books and bought some awesome DocMartins. And the need to get some physical exercise!
I am super excited for the future
Straight from my cookie
Other awesome posts for Railsconf 2013
Amazing visual notes -> https://projeqt.com/jessabean/sketchnotes/4/l
Awesome notes -> https://gist.github.com/jianxioy/5498969
Top 7 learnings -> http://www.hitthebits.com/2013/05/railsconf-2013-highlights.html
Jobs advertised -> https://github.com/blairand/jobs
If only somewhere Vancouver,BC would offer a course in Startup Engineering/Architecture?
Like this http://startup.stanford.edu but maybe it could be something better, that trains up developers into potential tech co-founders? Where they can build more then just a web app, with their best coding language, where they are prepared to bring other developers on board, where the basics of dev ops are discussed, when the architecture was thought through. We seem to do a lot to grow our potential CEO/business lead co-founders, but what about the tech/dev co-founders?
but where are offerings in BC for technology? Most of these offering concentrate on finding the “right” business model.
Most the tech/dev meet up groups concentrate on one religion, sorry language or another…
So what could this offering look like?
What else would you suggest?
It feels a real technology gap, which people have to learn and fail by doing.. could there be a way of bringing this together, growing more tech co-founders?
Related example includes: Bitmaker Labs offers one approach.
Another Alternative is Dev Bootcamp pointed out to me by Dean Prelazzi (BCIC), thank you :–)
Quora also has a couple interesting discussion on what is web application architecture -http://www.quora.com/What-does-a-web-application-architecture-include
My favourite books on his are soooo out of date:
Key Players who could make a difference
So I have e-mailed the key players in Vancouver, asking their thoughts which I will summarize:
- Launch Academy - interested in discussing – I will assist in thinking through their technology educations
- Grow Labs – connecting me to tech cofounders – nothing yet
- BCIC – Its not a priority
- UBC – sent email to dean 22 feb – no response yet
- SFU - sent email to dean 22 feb – no response yet
- BCIT - sent email to dean 22 feb – no response yet
Who else should I contact?
I was recently asked what are the sites or the blogs you keep up to date with. I will not add the solely programming sites I follow. Happy to take other recommendations to add to the list
First without a doubt subscribe to the Startup Digest
hacker news is very popular but it is a fire hose of information - http://news.ycombinator.com
The street fighters of startups. Connected with 500.
This guy is doing a lot to help us understand startups and the communities they need to exist. His blog is more personal , you feel like you know part of him and his journey. Connected with TechStars.
A man with a lot of wisdom. He has built up an impressive community in which he engages. Connected with AVC.
Occasionally has some really interesting posts
This used to be a really good site but now just feels like a marketing machine
InfoQ – I love InfoQ they have great videos, great tips on how to handle specific technical issues http://www.infoq.com
Smashing magazine – For design it is the king of the hill - http://www.smashingmagazine.com
Mozilla Developer Network - My favourite reference site for web stuff https://developer.mozilla.org/en-US/
W3Tech – Which technologies are in favour - http://w3techs.com
Ted.com – just in case you do not know – do not just watch the videos you thinking might be interesting, find ones that may challenge or add another perspective to your life.. http://www.ted.com
DZone – The odd good technical article - http://agile.dzone.com
TechVibes – Great for Canadian startup news - http://www.techvibes.com/global
GeekWire - http://www.geekwire.com
Tech Crunch I used to read this but its re-design actually offends me - http://techcrunch.com
Community, Incubators and alike
Awesome fun for your weekend and a great way to find people you want to work with.
The place for the scrappy startup
The professional startup educators. Check out their online TV series “The Founders”
For the elite and the top of the class
Accelerator based near the best boarding and skiing on the planet
For the startups look for funding
Business Model Innovation Hub
Formed out of the Business Model Generation Book
Signal vs. Noise – a company blog, which occasionally has really interesting articles.
Great nerd site - ANSWERING YOUR HYPOTHETICAL QUESTIONS WITH PHYSICS, EVERY TUESDAY.
Who did I miss?
You see the format tell me who I should add, thanks
These are books that have made a difference to my thinking. I have read them all. They are not all perfect but sometimes we learn lessons from imperfection as well. Overtime I will keep adding to this list.
Getting Real -> Rework
Getting real was a good book to getting started, really from the perspective that you have all the skills and people already, it felt practical. Rework was a updated version and it felt more abstract, more about the business then the product.
Top Lesson – get on with it and start simple
This book really helped me do proper market research and how to do it. It is really a step by step guide in how to build a business around an idea.The updated book was much better designed and easier to read.
Top Lesson – don’t pitch but listen to the customer pains
There is also a “cheat sheet” by Brant Cooper & Patrick Vlaskovites, I liked it because it was visually pleasing and gets to the point faster then four-steps and The lean startup.
Business Model Generation
Need to work how your business could make money, but not sure of which way to go. This book is an amazing and essential resource in establishing possible pathways. It also challenges you to stay flexible with business opportunities. It has some excellent real case studies in how to use this technique.
Top Lesson - Your business model should be a part of your daily thinking not lost in a 50 page MBA document.
Do more faster
This book was like having lots of friendly practical tips. The chapters are short and it’s useful as a reference for early stage Startups.
Top Lesson – Founders earn equality too
Web 2.0: A strategy Guide
This book was full of case studies of web businesses that we all know, it shows their journey and their strategies. It is helpful in helping you think through the big picture in terms in how you handle the market, competition and evolving customers.
Top Lesson – Stay flexible and be ready to adapt but do have a long term vision with game plan, in your head.
Start Small, Stay Small: A developers guide to launching a startup
This is a really practical guide to how to turn your website into a business. What are your first few steps.
Top Lesson - There are many paths to the same goal.
This book pulls together some of the best blog posts on well everything startup.
For the founder who concentrates on the business, money side, culture
You need to be good a telling your story, in a really simple fashion that all ages can understand. It helps you move away from bullet points to visual explanations.
Top Lesson – can you make this simplier?
Top Lesson - Those who start with WHY never manipulate, they inspire. And people follow them not because they have to; they follow because they want to.
This is told from the perspective of one person and his journey to learn the importance of organization culture. Every behavior or interaction you have will set the foundations for your Organisation. If you bully your people will copy you and bully to. What are values and principles? This book will help you start this journey.
Top Lesson – Happiness never decreases by being shared.
For the founder is more technology focused:
The Art of Agile Development
A most excellent book with practical tips in how you can truly move in applying agile. This book uses xp programming as its pathway.
Top Lesson -Your software only begins to have real value when it reaches users.
This book gives a good description of clean code and how to achieve it in your own projects.It is based above some very clear principles and will help you think through the code your currently create.
Top Lesson - always commit better code then you have checked out.
How good is your code? How professional are you really? Can you say no. Do you pass the buck? Are you accountable for your code. This author puts the prefect model out there, which is a good start for a dialogue for what is possible.
Top lesson – You need to say no when you need to say no
For the founder who is design focused, UX inclined:
The Smashing Mag Books 1,2,3
Both the books and the website are an excellent for both designers and developers alike. A smart collection on web design principles. It’s a high-level view of user interaction information and has useful takeaways in each chapter.
A Project Guide to UX Design: For user experience designers in the field or in the making
A step-by-step guide to web development from proposal through wire framing to testing and launch.
Now go and build, create and show us your vision.
You want more -> If you want to see all the books I have read on startups have a look at my goodreads profile and my startup shelf