Scott Carleton

Andela VP Technology,
@Artsicle Co-Founder

Read this first

Premature optimization is the root of all evil

Relevant XKCD

This past week a valuable conversation came up with our DevOps team at Andela that I’d like to share here. For context, they were building out a method to automate our development environment using Ansible which is a fantastic tool and markets itself as entirely appropriate for this situation - so of course, they were a bit surprised when I kept questioning it’s purpose.

The ansible build scripts are a great MVP for this problem. It’s clear that you thought through a lot of the issues and chose tools that would be able to grow over time, handle a wide variety of use cases and allow for code reuse.

The reason I’m pushing on the decisions and asking lots of questions is because I know you all aspire to be great, truly world-class developers and I’d like to help you get there. Here are some things I would expect from a great developer on this project

Get something

Continue reading →


Creating simplicity is the hardest problem of all

In a former life, I was a ‘nuke’ - a nuclear engineer. No “ifs, ands or buts about it”, nuclear engineering is complicated and I was attracted to the field because of this complexity. While I was there, family and new acquaintances were always awed when I said what I did. In fact, when I was fundraising for Artsicle, saying “former nuclear engineer” was often enough to convince VCs I was “smart.” It felt really good

The problems in nuclear engineering are complex. On my team, we created mathematical solutions to prove, without a shadow of a doubt, that a particular piece of piping wouldn’t crack over 80 years. This required months of hard work, spanning disciplines from fracture mechanics to applied mathematics, and using fun tools like FORTRAN and super computing clusters. This level of complexity made everything harder and slower. New employees required months of onboarding to

Continue reading →


Hackathon Trials & Tribulations

imprompt-io.jpeg

The team traveled a total of 25,000 miles for this. Two engineers flew from Nigeria, two other team members came from across the US. And me. The new guy, flying from NYC on his 4th day on the job. All to try and get a hack done in the next 24 hours at TechCrunch Disrupt. What am I doing here? I thought I was too old for this.

It all started with a cool idea - as it should. Wouldn’t it be awesome to pull someone into a meeting at a moment’s notice? “Hey Alexa, is Tolu available?” –> “Yes she is, setting up a Google Hangout now.” Or “She’s busy in a meeting”. Or “It’s after work hours in Lagos”. Sounds great, right? But as engineers, we have to figure out the nuts and bolts of actually getting this done, in less than one day.

For software engineers, there’s something incredible about a hackathon. The pressure, the cycle of asking the questions, of finding the hurdles and overcoming

Continue reading →


My first trip to Africa

20160830Stackoverflow129.jpg

Andela Kenya’s Dojo

Last month I had the amazing opportunity to visit Kenya and meet some incredibly talented - one might even say ‘world-class’ - engineers that are part of Andela’s Nairobi Campus.

I had never been to Africa before and in preparation for the trip, I did what I always do – research the history of a country. On my recent trip to Thailand and Cambodia, I loved learning about the Khmer Empire and it’s impact on the South East Asian peninsula. In my prep for Kenya, I was disappointed to find so little summed up on Kenya’s Wikipedia page - although I highly recommend listening to RadioLab’s episode on the Mau Mau. The Wikipedia page gives you the impression that there was pre-history and then bam! - Imperialists arrive. I knew there was more to the story, so I got on a plane to learn more first hand.

I was woefully unprepared for what met me on my arrival in Africa. The

Continue reading →


Return of the writer

Hello my dear abandoned readers. As you can tell from this site, it once had high ambitions but has been somewhat abandoned as of late. This is because, well, I was really really burned out. My lofty desire of being an active writer was consistently thwarted and replaced with work, work, work. However, I’d like to renew this site as a place of solace for me and give it a breathe of fresh air - the ol’ college try.

Something I’ve taken to heart lately is the maxim ‘write what you know’ and I intend to do just that. Mainly musings on what I think is ‘right’ regarding managing software engineering teams and how this affects the larger product creation process. The goal I’m setting for myself is to write at least once a week, to put myself out there, to avoid trying to be something I’m not. These words won’t be perfect nor adequately defensible. I’m writing my reflections, not my canon. I

Continue reading →


I’m Joining TpT

Over the past 4 years I’ve been building Artsicle.com. It has evolved through many versions into an amazing community of artists - a place to showcase their work, connect with others and better allow the world at large to discover them. As part of that evolution, we have started the process of turning Artsicle into a non-profit organization. I’ll be sharing more about this decision and what it means for us soon, but today I want to share another big announcement.

I am joining Teachers Pay Teachers - or TpT as we like to call it - as Engineering Lead. If you haven’t heard of TpT, think Etsy for lesson plans, curriculums, and educational resources. Teachers can find the materials they need to better serve their students or, better yet, share and sell their own resources with peers. TpT is putting valuable time back into the hands of teachers who can use every spare minute - while putting

Continue reading →


Codebase Velocity

Compiled vs dynamic? Loose vs static typing? To rebase or not to rebase? Tabs or spaces? Pursuing high codebase velocity at a startup tends to center around technology choices. However, most forget the importance of learning to “take out the trash” efficiently.

Clearly deprecating code, removing unused code or adding tests for untested code are all important. But equally important is diligently reshaping of codebase methodologies on a consistent basis. For example, if you change from using onclick to unobtrusive JS, how do you make sure the whole codebase is converted in a timely manner? It might seem like premature optimization at first, but it’s absolutely key that new team members have good examples to work from on day one. A “trash free” environment means velocity stays high with each new hire, instead of losing hours (or days!) figuring out which methodology is up-to-date

Continue reading →