If it won't be simple, it simply won't be. [Hire me, source code] by Miki Tebeka, CEO, 353Solutions

Monday, June 19, 2017

Who Touched the Code Last? (git)

Sometimes I'd like to know who to ask about a piece of code. I've developed a little Python script that shows the last people who touch a file/directory and the ones who touched it most.

Example output (on arrow project)
$ owners
Most: Wes McKinney (39.5%), Uwe L. Korn (15.3%), Kouhei Sutou (10.8%)
Last: Kengo Seki (31M), Uwe L. Korn (39M), Max Risuhin (23H)

So ask Wes or Uwe :)

Here's the code:

Monday, June 12, 2017

Go's append vs copy

When we'd like to concatenates slices in Go, most people usually reach out for append. Most of the time this solution is OK, however if you need to squeeze more performance - copy will be better.

EDIT: As Henrik Johansson suggested, if you pre-allocate the slice to append it'll fast as well.

Sunday, May 14, 2017

scikit-learn Compatible Pipeline Steps

A client wanted a way to create a pipeline of transformations on DataFrames. Since they already work with scikit-learn, they were familiar with Pipelines. It took very little code to create a base class for a pipeline step that will work with DataFrames.


If you find this interesting, you might want to hire me ;)

Wednesday, March 29, 2017

Color Log Lines

There are several log handler out there the color log lines. However I prefer to leave the log as is and when I want colors I pipe the log via a utility that does that. Coloring log lines by levels can be easily done with a little awk.

Here's an example how it looks

Monday, January 09, 2017

353Solutions - 2016 in Review

Happy new year!

Let's see how 353solutions did in 2016. We'll start with the numbers and then some insights and future goals.

Numbers
  • Total of 193 work days (days where customer were billed)
    • Up 23 days from 2015
    • Out of 261 work days in 2016
  • Out of these 61 days are in workshops and the rest consulting
  • 18 workshops
    • Up from 14 in 2015
    • Go workshops
    • First docker workshop (teaching with ops specialist)
    • First open enrollment class
    • In Israel, UK, and Poland
      • Only 4 out of the country (vs 8 last year, which is good - I prefer to fly less)
    • Workshops range from 1 to 4 days
  • Revenue up 10% from 2016
  • Several new clients including GE, AOL, Outbrain, EMC and more
Insights
  • Social network keeps providing almost all the work
    • Doing good work will get you more work
  • Workshops pay way more than consulting
    • However can't work from home in workshops
    • Consulting keeps you updated with latest tech
  • Python and data science are big and in high demand
    • However Go is getting traction
  • Having someone else take care of the "overhead" (billing, contracts ...) is great help.
Last Year's Goals
We've set some goals in 2015, let's see how we did:
  • Keep positioning in Python and Scientific Python area
    • Done
  • Drive more Go projects and workshops
    • Done
  • Works less days, have same revenue at end of year
    • Failed here. Worked more and revenue went up
  • Start some "public classes" where we rent a class and people show up
    • Did only one this year
  • Publish my book
    • Failed here, though I'm close. Probably Q1 this year.
Goals for 2016
  • Work less while keeping same revenue
  • Work more from home
  • Publish my book
  • Publish a video course
  • More open enrollment classes

Blog Archive