My Year in: Software Development

The beginning of 2016 was a little scary for me professionally. I started the year projectless, having just left a React-based project because I needed to earn more money. I had been paying a bit of a tuition for the dubious privilege of learning React. And my country was an economic disaster.

In the end everything worked out, although, as it happens, in unforeseeable ways.

I had been contacted in 2015 by a Brazilian entrepreneur about a project he had been working on. We had both done our time (pun intended) at Startup Rio, a tech hub, in 2014. Early this year, I agreed to design his product, which I did for about a month.

I had been looking around, doing some interviews and talking to people, and my friend Lucas Alves reminded me of Toptal, a development agency. I applied and passed, and soon was working on a revamp of Spacer, an interesting space rental company from Australia. The people were quite nice at Spacer, but the technical side wasn’t much fun — the platform was template-based and files could only be uploaded through a web interface.  At least it was Ruby, but it was slow going.

Over the month or so I worked on Spacer, I kept in touch about the Brazilian project and knew the entrepreneur needed help with the development as well. It was a Rails application. I hopped along with the team, and contributed with most of the frontend but also with project management and the flow of things. Think testing, task tracking and a simple but constant way of communicating, since the team was spread around 3 cities.

We soft-launched the product and I took on another project via Toptal, which is the one I’m working on at the moment. It’s in a field I have been very interested in, finance. I’m writing their Ember web client. I learned Ember from scratch for the project, and I’m still learning it. Every day I wish it was done in React. Of course I tried to convince the team to use React, given the growing user base compared to a dwindling base for Ember. They politely declined, I suppose because the main backend dev for the project is very good at Ember. Ember itself is not bad at all. Hopefully people will maintain libs in the future, many are starting to feel old without updates for months or more than a year. I ended up contributing to a few open source Ember projects along the way, which I was happy to do.

I also managed to do some work on a project of mine, Look in Tens, an Elixir/Phoenix application. I built a nice little crawler, and enjoyed the experience a lot. When it was deemed a 1.0, I stopped, at least for now, because I realized I wanted to really analyze companies, not “screen” companies for good buying opportunities. Not a software issue here, I suppose.

All along the year I studied as much Elixir as I could. I have been retyping the Elixir code base so that I can get a feel and understanding of the internals. It’s been a blast, and my respect for the Elixir core team has grown and grown — not least for simply taking a ride on Erlang. What a great idea. I ended up contributing a number of small fixes to Elixir itself, and thanks to Github’s idiosyncratic ranking system, am now contributor #35 to the language.

My only certainties as we enter 2017 are my intention to continue studying the Elixir ecosystem and to stay open to changes in the software landscape.

My Year in: Books

In 2016 I read 28 books. As always this excludes computer programming books and children’s books, of which I always read some, but I recall having read no extraordinary children’s book this year.

The topics I pursued in 2015 stayed true in 2016: psychology and investing. Biographies have always been a favorite of mine, and I read a few this year too.

The greatest book I read this year was A History of Western Philosophy by Bertrand Russell. The book is a mind-altering, soul-improving piece of work. It’s funny all through its 900 or so pages, and Russell goes all the way without really agreeing with any of the philosophers whose thoughts he addresses. A book to go back to, over and over.

The most surprising book I read this year was Vehicles: Experiments in Synthetic Psychology, by Valentino Braitenberg. This book is in Alan Kay’s reading list, and that’s where I got the tip. In it, Braitenberg introduces thought experiments comprised of very simple “vehicles”, with engines and sensors. The first experiment is very simple, featuring a vehicle with a sensor in its front triggered by, say, light, reacting by turning its engine on. It gets progressively more complex, and very soon phenomena that can be called “behavior” emerge. Think love, doubt, jealousy and other deep stuff. To me it was a very nice bridge between technology and psychology, two fields I like, and also a point of departure that’s diametrically opposed to psychologic analysis.

A very fun and sometimes sad book, filled with things I had never known, was Walt Disney: The Triumph of the American Imagination by Neal Gabler. It is an extraordinarily detailed book about Disney and his times. It shouldn’t ruin it for you to know that life was very difficult for him as an entrepreneur, and then we he “made it” it didn’t get much easier.

Finally, another book that had an impact on me was Do No Harm: Stories of Life, Death and Brain Surgery by Henry Marsh. In it, the doctor recalls his career as a brain surgeon. I read it while in bed with dengue fever, and I think my state intensified the ambivalent feelings of helplessness and the relatively miraculous capabilities of contemporary medicine. Mr. Marsh is great at telling lay people about his very technical profession, while at the same time giving his book a lot of heart.

I use Goodreads.com to log the books I read. It’s great, I recommend it and will be glad to see you there next year.

Freezing the DOM while inspecting elements

Ever wasted a lot of time doing CSS and trying to fish for an element that disappears just when you click something on the browser inspector? Think styling autocompletes.

Well, after years and years and years suffering through that, I finally decided to Google how to freeze the page and be able to click around the inspector as much as I want without changing the DOM.

Stack Overflow shows 2 or 3 easy ways:
http://stackoverflow.com/questions/17931571/freeze-screen-in-chrome-debugger-devtools-panel-for-popover-inspection

Live gut reactions to learning Ember.js

I am starting on a new project that uses Ember.js.

I started learning it from scratch a few days ago. Thought it would be a good opportunity to log my gut reactions while I find out how it works.

My main term of comparison will be React.js, which I started learning in about February 2015. I have spent a decent amount of time working with it. Far less than on jQuery-based projects in the past, but still. I also know a bit of Angular 1, so that may come up too.

I will go for free-associative, bullet-list, initial reactions for this post.

  • Official website is organized and pretty enough.
  • Really easy to download and have a local server running with a blank app.
  • No webpack. I like that.
  • ES6. Great.
  • Official tutorial does tests. Awesome.
  • Tutorial is very clearly written. Can’t compare to what I came across when I started with React.
  • Handlebar templates. I don’t know about that. Better than jsx perhaps? I miss jade, slim, wonder if it can work with something like that.
  • Bower? Not happy to see that.
  • All package names seem to start with ember-cli. Welcome and scary at the same time.
  • What’s the difference between a controller and the other entities, helpers etc? Still pretty foggy at this point.
  • Easy to install Stylus for CSS. Heard about “ember pods”. Will investigate.
  • Extremely easy to deploy something crude to Heroku, even without doing anything about the env.
  • Oh gosh, there’s an ember package to load Google Fonts.

Colemak in iOS Simulator

For many months, the last place in my computer where I wasn’t using Colemak was the iOS Simulator.

Turns out it’s very easy to enable it.

In the simulator:

Settings->General->Keyboard->Hardware Keyboard

Colemak is the very last on the list.