• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Remember Lenny

Writing online

  • Portfolio
  • Email
  • Twitter
  • LinkedIn
  • Github
You are here: Home / Archives for software

software

Senior meets junior lessons learned, and some thoughts about the future of remote work

December 31, 2019 by rememberlenny

High level summary

Last month, I setup a brief survey on Typeform and submitted it to ProductHunt as a project called ā€œSenior meets juniorā€. Senior meets junior was described as a project that would allow engineers to collaborate together over side projects. Junior engineers could collaborate on real projects to upskill, while senior engineers can improve their mentorship abilities and receive more help on their projects. I’d like to formally share the stats around the response and a few surprising results that I will be considering for the next steps.

https://www.producthunt.com/posts/senior-meet-junior

Breakdown around statistics

After submitting the Senior meets Junior survey on ProductHunt, I received a 186 submissions from both senior and junior developers looking to collaborate on side projects. Of this group, approximately 75% were self-identified as junior developers, and 25% were self-identified as senior. I was able to meet with 19 individuals out of the hundred in 97 people who signed up. All of the 19 individuals only two people were actually from developed countries (US and France), but even one of them were actually traveling abroad, so I actually spoke to 18 people from emerging markets around the world. I’m not sure if the name ā€Senior meets juniorā€ is a term that is not appealing to Americans or if the idea of mentorship is more appealing to people of foreign backgrounds, but I was genuinely surprised by how many more people from developing countries signed up to the service. I definitely expected more junior engineers from developed markets, who were interested in upskilling.

One more note along the ratio of senior and junior engineers. When reviewing the applications, I searched the background of each user and noticed that many of the individuals who said they were junior developers were working as seasoned engineers. I couldn’t figure out if people were misidentifying as Junior developers because they wanted to work on other people’s side projects, or if they truly believed that their abilities were not at a senior level.

From a statistics perspective, the most languages people wanted to work on was JavaScript. I asked the question ā€œWhat technologies is your project based on, or if you are junior, what technologies are you comfortable working with?ā€. Following that was Python, and then Java. As you will see in the chart, 58.6% people said JavaScript, followed by 50% in Python, and 21% in Java. Ruby, Rust, Scala, and a number of other languages all scored less than 10%.

Interestingly, when asking people where they needed the most help, most people said Backend development. The question was ā€œWhat areas do you expect to need the most help or if you are junior, what would you feel comfortable contributing toā€. Considering so many people wanted to learn or contribute JavaScript, the sheer amount of Backend development help needed was predictable. About half (57%) of the people who wanted help in a certain area also shared they wanted to improve their Frontend application development. This is consistent with the Javascript interest.

One of the questions I found most interesting was around how much time someone felt they needed to be productive. Similarly to the time is takes for a hired engineer to start contributing code on a new code base, I wondered how much mentorship a junior engineer would need to start working on a foreign project. The question I asked was: ā€œHow much mentorship and direction can you provide someone who works with you? If you are junior, how (much) mentorship and direction do you think you need to be productive?ā€. In response to the question, and surprising majority said they only need 1 to 2 hours a week of mentorship to start contributing to a codebase. This is a pretty small amount of time, relative to how much one person can do to contribute.

Areas that I was surprised about

The first area that I was surprised to learn with how dramatic the different the engineer pay rate is outside of the US, and how similar it is in across many developing countries. I learned that in Ukraine, India, Georgia, Spain, Russia, Turkey and Nigeria, the average pay for a Year’s engineering salary is between $30,000 to $15,000 US dollars a year. This means that in one month many Engineers are making less than $2,000, and many are making less than $1,000. This is compared to the regular salary of a US engineer who makes up words 300 or $400,000, or a recent college graduate who can very quickly, man north of $100,000 USD.

https://twitter.com/rememberlenny/status/1204074924576563200

To imagine that there are so many more engineers across the world than there are in the US, and that many of these are English-speaking, and that many more are receiving the same educational resources as those engineers in the US, I cannot help but imagine that these foreign workers will soon be replacing domestic engineers in the US. When I think about how much remote work has been discussed in the last few months, I can also see that the infrastructure for hiring remote workers is maturing and will soon allow for more and more remote workers from developing countries to contribute to domestic projects in the US. I also recognize that many foreign workers may not need anywhere near a US engineer salary, and would potentially be very satisfied to work at the higher-end of their local salary range. When comparing this to an engineer in the US who works at the lower-bound of the salary range for their domestic peers, I imagine the foreign worker to be significantly happier and willing to contribute more.

https://twitter.com/rememberlenny/status/1208068305141018625/

The second area that was quite surprising was around the U.S. engineers that I spoke to who were unhappy about their work and didn’t like work that was primarily based on taking a design to translating it to code, or processing bugs in a bug tracker system that did not require any critical thinking. I imagine that this kind of work which is not desired by skilled laborers in a domestic Workforce, would be very easily translated into Outsource or remote work. I believe that the growing need for constant maintenance and simple types of engineering tasks will reveal the value of having an accessible remote Workforce that does not need to be highly engaged with decision making.

Third, there is a large number of people who are quite adept at the current Frameworks (read: React) and programming languages (JavaScript, Python, Java). These people would like to grow in our less around programming skills or computer science foundation’s, and their interest is more around establishing best practices and means of collaborate. These remote Engineers are people who know how to write code and solve problems for clients, but still need to learn how to deploy production applications or optimized server configurations for scale. These kinds of engineers are ideal for collaborating with other developers, because they are interested in learning things that are not explicitly taught will online but would be able to contribute to a code base if given explicit instructions.

https://twitter.com/rememberlenny/status/1203732117131268096

Lastly, I was surprised that there are a large number of Junior developers were able to learn quickly and could become employed across the world. In many cases around the U.S., coding bootcamps can take someone who has no experience, and help get them to a point where they are able to get a job at a tech company within three to four months of accelerated learning. I noticed many junior engineers across the cohort of users who also could become employable with self-study within a six-month period. I was very naive to think about how on technical I imagined some of the participants who signed up would be from developing countries. I was surprised around the fact that most college graduates are all learning the same things that the US level college graduate would be learning. This means that a computer science student will be focused on machine learning, or an electrical engineering student will be working with Arduino and raspberry pies. Given that this is the same technology that a domestic student would learn from and that the skills are identical, there is no reason why these individuals could not come highly employable in a short period of time as well.

Conclusion

Overall, I strongly believe that remote work and contributors from around the world will meet a crossroads soon. While remote work in the US is becoming more common, I foresee many more engineers from countries around the world contributing to code bases in the US. This would mean that the tooling that helps coordination will likely become more important, and the areas of work that are centered on decision making and executing will likely be separated or clearly organized.

I also believe that the sheer amount of income that current software engineers command is disproportionately high when compared to the education or skills needed to complete certain roles. While I am not sure if the high-salary is necessarily justified, I do think a number of market forces (VC investment, high return of certain software businesses, demand for engineers who are skilled at new technologies that haven’t existed long enough) are likely the reason for driving up engineering value. Not all engineers are necessarily returning the value on their investment, so I could imagine different tiers of engineering work to be more explicitly defined outside of the terminology of senior or junior. The larger tech companies near are already different tiers of engineers from being a principal engineer, a lead engineer, or different tiers of software engineer.

I’ll be moving forward with trying to interview more of the Senior meets junior sign ups, and expect to continue expanding the cohort from engineers to other fields such as design or product management. If you or someone you know may be interested in this project, please sign up at www.smj.dev, or contact me directly at [email protected]

Please excuse the grammatical errors. This was written using dictation, and followed with slight edits.

Filed Under: Uncategorized Tagged With: Remote work, Senior meets junior, software

Thoughts on side projects

December 18, 2019 by rememberlenny

I recently visited my best friend from college.

We were both city boys who caused trouble as teenagers, and connected over our free spirited willingness for fun. Since our friendship began 10 years ago, he has taken up farming and lives in Oregon on a nine acre plot with crops, animals and a seasonal business. I ended up in New York city, married, and working at a tech company as a programmer. Both of us studied philosophy and literature, both of our lives took unexpected directions, and I think that we both ended up exactly where we want to be. At least for the time being.

I wouldn’t necessarily call the farming a side project, but I also don’t think my friend will be a farmer for his entire life. He spends his days and nights farming, but his dreams are around writing and his real income comes from highly successful real estate deals. If all of his time goes toward one thing, and all of his money comes from another, then which is the side project and which is the job?

Similarly, my income comes from a consulting contract, but the majority of my time isn’t spent at work. In one sense, this is because I found a great company to work with, but in another it is because I prioritized finding a source of income that allowed me to spend a lot of my time on side projects. In my own defense (not that I need one), my time spent on projects makes me much more impactful in the other areas that I end up working in. But I don’t consider them work.

Given the two cases where a side project ends up becoming the main allocation of time, I conclude that a ā€œsideā€ project doesn’t necessitate a minor allocation of time.

For the past seven years, every winter, I have taken on a side project.

In 2013, I traveled around the US and built an artistically laid out website that described an educational pedagogy. In 2014, I went to India and learned enough Objective-C to make an iOS app. In 2015, I made a hotline for people to share their breakup stories. In 2016, I built a ruby API and bot that traded stocks (very poorly). In 2017, I built a deep learning machine and trained some amateur image recognition models. (Surprisingly I never used this to mine crypto.) In 2018, I indexed millions of street art images and built a web application to explore them online. All the while in between, I was playing around with unfamiliar tech and building out personal projects for fun.

This winter, I haven’t ā€œbuiltā€ anything, but I have been thinking a bit more deeply about what the output of all my side projects have been. I have a nagging feeling that while each project was unique and fulfilling in its own right, I don’t have any concrete products to point to. Once the project becomes too expensive (or no longer interesting) to maintain, I often let domains expire or spin down servers.

My usual process is this: The output of the side projects is a website, possibly with a registered domain, and some efforts to gather attention. This results in a boost of page views/downloads while the promotion efforts happen (ie. Reddit/hacker news posts), but then eventually drops to a crawl. The remaining traffic normally comes from search, and otherwise never surges again. At the point that the traffic doesn’t feel worth the small but real cost, I start sunsetting the project.

This brings me to the question of why I do side projects, and also what more I think could come out of the projects.

While reading a great book about note-taking (How to take smart notes by Sƶnke Ahrens), I was intrigued by the idea that all notes should be taken with a purpose in mind. In the book, Ahrens states that notes should be taken with the mindset of needing to write about the material being read. In the same way, maybe defining clearer purposes for side project, could ease my feeling that more could have come out of old projects.

(I preface this thinking with an important point: Doing a side project for the sake of doing it alone is absolutely a good enough reason. I think if every side project must have a predetermined purpose or end goal, you will end up a person with boring side projects. And you would likely become a boring person. For example, if you feel all side projects need to result in becoming a business or passive source of income, then the pursuit itself will result in a series of unoriginal projects that are hard to maintain over time. Personally, doing projects out of sheer interest and a desire to learn or experiment has been the greatest force for sustaining my excitement and investing my time into producing something new.)

Now, let’s assume there is some definition of a side project. It’s a pursuit of some idea, which, in my case often revolves around technology, and results in a product (ie. an app, hardware), a community, or a collection of knowledge (ie. research, blog post, dataset, academic article).

That being said, the yearning sense of looking back at projects and not having some clear value to point to s concerning to me. With some projects requiring well over 100 hours, and in some cases hundreds of hours of time, I do wish I could point to something concrete that crystalized my effort.

Value I have derived from side projects:

  1. I can honestly say that the projects I decided to work on made me more interesting and have something worth talking about.
  2. If I was just doing ā€œworkā€, I would feel dull.
  3. In the process of learning something new for a project, I regularly made new friends to expand my knowledge and perspective on a problem.
  4. Along the same lines of being ā€œinterestingā€, by making something new, I felt I established some authority as a developer or product maker.
  5. I established more confidence in my ability to contribute to other people’s projects.
  6. When in work atmospheres that were less than exciting, side projects gave me something to be motivated about when work was not.

Moving forward, concrete things that I’d like to do

First, I need a lessons learned blog post and some kind of summary of the project. I don’t know if this is a series of gifs and screenshots, or some kind of gallery that can be previewed. Or at least a document or single place of reference that explains the project would be great.

Second, if data or an untapped area of interest is involved (ie. my street art project), I strongly feel publishing in an academic journal article would be possible. I don’t know what the process is like to submit to an academic journal if you aren’t affiliated with an academic institution or research entity (except I sometimes treat my projects as research entity), so understanding that early and then pursuing the project accordingly could be interesting.

Third, wouldn’t it be nice if all side projects resulted in some $$$? It’s not possible and shouldn’t be the goal in most cases, but in some cases the project could be wrapped up as a deliverable to someone who wants to buy it. When doing explorative projects, there are certain decisions I have made that I didn’t consider too seriously. If I had considered a sale of the overall codebase/community as an original goal, I imagine I would make different decisions along the way.

Anyway, I’m sure I will come up with something to work on this winter. If this year’s project doesn’t survive a year from now, and doesn’t become an academic study, and no one buys it, I think it’s still okay. I’ll still be happy working on something.

Filed Under: projects Tagged With: Agriculture, Side Project, software

code before and after work

July 16, 2014 by rememberlenny

Modified the profile page for Three Points this morning.

Filed Under: Uncategorized Tagged With: coding, prototype, software, Web Development

Primary Sidebar

Recent Posts

  • Thoughts on my 33rd birthday
  • Second order effects of companies as content creators
  • Text rendering stuff most people might not know
  • Why is video editing so horrible today?
  • Making the variable fonts Figma plugin (part 1 – what is variable fonts [simple])

Archives

  • August 2022
  • February 2021
  • October 2020
  • September 2020
  • August 2020
  • December 2019
  • March 2019
  • February 2019
  • November 2018
  • October 2018
  • April 2018
  • January 2018
  • December 2017
  • October 2017
  • July 2017
  • February 2017
  • January 2017
  • November 2016
  • October 2016
  • August 2016
  • May 2016
  • March 2016
  • November 2015
  • October 2015
  • September 2015
  • July 2015
  • June 2015
  • May 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • October 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012

Tags

  • 10 year reflection (1)
  • 100 posts (2)
  • 2013 (1)
  • academia (2)
  • Advertising (3)
  • aging (1)
  • Agriculture (1)
  • analytics (3)
  • anarchy (1)
  • anonymous (1)
  • api (1)
  • arizona (1)
  • Art (2)
  • art history (1)
  • artfound (1)
  • Artificial Intelligence (2)
  • balance (1)
  • banksy (1)
  • beacon (1)
  • Beacons (1)
  • beast mode crew (2)
  • becausewilliamshatner (1)
  • Big Data (1)
  • Birthday (1)
  • browsers (1)
  • buddhism (1)
  • bundling and unbundling (1)
  • china (1)
  • coding (1)
  • coffeeshoptalk (1)
  • colonialism (1)
  • Communication (1)
  • community development (1)
  • Computer Science (1)
  • Computer Vision (6)
  • crowdsourcing (1)
  • cyber security (1)
  • data migration (1)
  • Deep Learning (1)
  • design (1)
  • designreflection (1)
  • Developer (1)
  • Digital Humanities (2)
  • disruption theory (1)
  • Distributed Teams (1)
  • drawingwhiletalking (16)
  • education (3)
  • Email Marketing (3)
  • email newsletter (1)
  • Employee Engagement (1)
  • employment (2)
  • Engineering (1)
  • Enterprise Technology (1)
  • essay (1)
  • Ethics (1)
  • experiement (1)
  • fidgetio (38)
  • figma (2)
  • film (1)
  • film industry (1)
  • fingerpainting (8)
  • first 1000 users (1)
  • fonts (1)
  • forms of communication (1)
  • frontend framework (1)
  • fundraising (1)
  • Future Of Journalism (3)
  • future of media (1)
  • Future Of Technology (2)
  • Future Technology (1)
  • game development (2)
  • Geospatial (1)
  • ghostio (1)
  • github (2)
  • global collaboration (1)
  • god damn (1)
  • google analytics (1)
  • google docs (1)
  • Graffiti (23)
  • graffitifound (1)
  • graffpass (1)
  • growth hacking (1)
  • h1b visa (1)
  • hackathon (1)
  • hacking (1)
  • hacking reddit (2)
  • Hardware (1)
  • hiroshima (1)
  • homework (1)
  • human api (1)
  • I hate the term growth hacking (1)
  • ie6 (1)
  • ifttt (4)
  • Image Recognition (1)
  • immigration (1)
  • instagram (1)
  • Instagram Marketing (1)
  • internet media (1)
  • internet of things (1)
  • intimacy (1)
  • IoT (1)
  • iteration (1)
  • jason shen (1)
  • jobs (2)
  • jrart (1)
  • kickstart (1)
  • king robbo (1)
  • labor market (1)
  • Leonard Bogdonoff (1)
  • Literacy (1)
  • location (1)
  • Longform (2)
  • looking back (1)
  • los angeles (1)
  • Machine Learning (13)
  • MadeWithPaper (106)
  • making games (1)
  • management (1)
  • maps (2)
  • marketing (4)
  • Marketing Strategies (1)
  • Media (3)
  • medium (1)
  • mentor (1)
  • message (1)
  • mindmeld games (1)
  • Mobile (1)
  • Music (2)
  • Music Discovery (1)
  • neuroscience (2)
  • new yorker (1)
  • Newspapers (3)
  • nomad (1)
  • notfootball (2)
  • npaf (1)
  • odesk (1)
  • orbital (14)
  • orbital 2014 (14)
  • orbital class 1 (9)
  • orbitalnyc (1)
  • paf (2)
  • paid retweets (1)
  • painting (1)
  • physical web (1)
  • pitching (2)
  • popular (1)
  • post production (1)
  • Privacy (1)
  • process (1)
  • product (1)
  • Product Development (2)
  • product market fit (2)
  • Programming (6)
  • project reflection (1)
  • promotion (1)
  • prototype (17)
  • prototyping (1)
  • Public Art (1)
  • Public Speaking (1)
  • PublicArtFound (15)
  • Publishing (3)
  • Python (1)
  • quora (1)
  • Rails (1)
  • React (1)
  • React Native (1)
  • real design (1)
  • recent projects (1)
  • reddit (3)
  • redesign (1)
  • reflection (2)
  • rememberlenny (1)
  • Remote work (1)
  • replatform (1)
  • Responsive Emails (1)
  • retweet (1)
  • revenue model (1)
  • rick webb (1)
  • robert putnam (1)
  • ror (1)
  • rubyonrails (1)
  • segmenting audience (1)
  • Semanticweb (2)
  • Senior meets junior (1)
  • SGI (1)
  • Side Project (1)
  • sketching (22)
  • social capital (1)
  • social media followers (2)
  • social media manipulation (1)
  • social media marketing (1)
  • social reach (5)
  • software (3)
  • Soka Education (1)
  • Spatial Analysis (2)
  • spotify (1)
  • stanford (2)
  • Startup (21)
  • startups (7)
  • stree (1)
  • Street Art (4)
  • streetart (5)
  • stylometrics (1)
  • Technology (1)
  • thoughts (1)
  • Time as an asset in mobile development (1)
  • Towards Data Science (4)
  • TrainIdeation (42)
  • travel (1)
  • traveling (1)
  • tumblr milestone (2)
  • twitter (1)
  • twitter account (2)
  • typography (2)
  • unreal engine (1)
  • user behavior (1)
  • user experience (3)
  • user research (1)
  • user testing (1)
  • variable fonts (1)
  • video editing (2)
  • visual effects (1)
  • warishell (1)
  • Web Development (8)
  • webdec (1)
  • webdev (13)
  • windowed launch (1)
  • wordpress (1)
  • Work Culture (1)
  • workinprogress (1)
  • zoom (1)