My name is Lorenzo Pasqualis. I started writing software in 1984. Over the years I used many languages, technologies, and tools. I have been in technical leadership positions since the early 2000s, and in full-time executive roles since the beginning of 2014.
Today I spend most of my time focused on the art of architecting scalable systems, organizing engineering efforts, hiring and training talent, managing people, leading engineering teams, and helping designing solutions in the EdTech industry. I am very close to the technology as an architect, but my principal concern is people. I am an active advocate for Women in Tech, a believer in servant leadership, and a lifetime learner.
I still code; mostly personal projects or to help my teams. Coding is a passion that will never die, and staying close to the technology makes me a better leader of technologists.
I am the author of a blog, CoderHood, dedicated to the human dimension of software engineering. In other words, it's about people and their life in the software industry.
I have been x-posting some of my articles here on dev.to. Dev.to is an amazing community that I like to support in whatever way I can ( Ben and Jess, you rock! Well done! ). If you have any questions that you think I can answer, ask away. I will respond as best as I can, and I might write a blog post to expand on the topic.
Ask me anything!
Latest comments (74)
For a Developer having experience of 5+ Years, communication skills play considerable role. How do I improve my them??
Hi,
If you are asked to step up is because you probably display traits of a good leader naturally. That is great.
My advice is to embrace the leadership role and truly understand what it means before it is announced and made official. You want to make sure to truly grasp what leadership is, and how that changes your job. I recommend reading everything you can put your hands on about leadership. Take it as you would take a new technology. Become a student of leadership. Be humble, study, find a good mentor, and take the journey as a change in career path, not just "something more you are asked to do." It is a very important path.
Hi Lorenzo,
I signed up here just for this thread. I first would like to thank you for affording your valuable time to answer questions and give back to the development community.
I read in your answers that management is a totally different job to coding, I have series of questions for this:
Thanks in advanced.
Oras
Hi Oras,
Thank you for the kind words. I am glad the discussion is useful, and I it makes all the difference for me to know that I might have been helpful.
Lorenzo, Thank you very much for your reply. Much appreciated.
Hi, did you feel to quite profession in your career?
OR Are you feel that much of energetic when you have joined career?
I never considered quitting my career. I am a software builder and I cannot imagine doing anything else at this point. Things might change later on, but for now engineering is where my passion is.
That said, my career is evolving. I started very low level and moved more and more high-level overtime.
Thanks for reply, your last sentence is amazing. "I started very low level and moved more and more high-level overtime." I think this will make you more passionate.
Hey Lorenzo,
it looks like you have good experience on Scrum as well...
Can you talk on responsibilities of a PO vs team/technical lead ?
Background is, that i feel my current team setup is far from reaching its potential.
A while back i was driving a lot of things for a new project... i liked it, most important it felt like flow. E.g. the ticket ordering felt like 'Yeah, thats the good next step', thing were building on each other.., etc..
Since PM/PO slowly took over most of the ticketing, planning workflow i'm now at a point the flow experience is most of the times lost, sense of priorities is decreased, meetings are boring and it feels like 'Yeah i can work for the next two weeks or take PTO, doesn't really matter for the company'.
Now i'm almost too tired to work on better responsibility structuring, but i would like to get your input on this!
I feel a little bit like 'Please care about the high level things you want to have, talk to customer's etc.. convey everything to me and/or the team and let us figure out the rest. Also in prior teams i sometimes had the impression the team lead is suggesting every step to the PO so that the PO can repeat it and make things official that way... which feels like wasted time...
So, did you use Scrum before when you were driving the projects? Or is Scrum something that was introduced recently?
I like to have 3 persons. A Scrum Master, a Product Owner, and a Project Lead.
The Scrum Master deals with the process. They schedule meetings, keep the teams on track during the meetings, remove impediments, drive plannings, demos, retrospectives, etc.
The Product Owner is the business owner of the project. They are able to answer questions or go find answers to the questions.
The Project Lead is a technical leader, who understands the details of the project.
I wrote some notes on this model in an article on my company's tech blog. You can find it here ; take a look, and let me know what you think and/or if I can clarify it. I wrote this a long while ago, but I think it is still valid and I have had very good luck with it.
In general, I recommend bringing problems related to the process at the retrospective, and not hold any punches. That is what retrospectives are for. Scrum is very flexible, and if the people involved understand it, you can change it to satisfy your team's needs.
The best thing you can do is to show what you can do and show passion for the work. Also, make sure to give a good impression with the engineers you work with. If they praise your work, things get much easier.
I always recommend having the discussion about potential future possibilities before accepting the internship. If it already started, just bring it up once you feel like you have gained the respect of the team.
In preparation for the discussion, make sure to have a good plan for what you want to do and why you'd like to stay with the company. Knowing what you want and being able to describe it is half of the battle.
How do you deal with underperforming member of a team? What if it's persistent, despite talks, yet it's not big enough to take serious steps (such as firing)? How do you deal with such individuals?
It depends. If they were never strong performers, then I have to let them go. If somebody is consistently underperforming and there doesn't seem to be a path to success, they should find a place where they can be more successful. Allowing mediocrity to linger is a poison for the company and the team.
Otherwise, I start a PIP (Performance Improvement Plan). That is an official, written and well-documented period of time (usually 3 months) in which they have to meet weekly goals and send a weekly report on how they are doing on those goals. During that period it is made clear that if they can't make their goals for X weeks in a row (usually X=2 or 3) then they will be terminated. A PIP is also accompanied with consistent feedback and coaching, both written and oral.
There are 3 things that can happen:
1) The employee understands how serious the problem is, and they do their best to satisfy the PIP requirements. If they succeed, the PIP ends and the employee can stay on board. If they fall back into bad habits, there is no a second PIP.
2) The employee doesn't take it seriously, and nothing changes OR things change for a while, and then they go back to bad. At that point, they are let go exactly as agreed in the terms of the PIP.
3) The employee doesn't accept the PIP, and they are let go immediately. I have never seen this happen.
What advice would you give to someone who, besides programming, wants to manage/leaderize the developer team he/she works with?
And where could I learn about all that leadership stuff, btw?
Management and leadership are very different things. To manage you need to be put in charge by the organization. To be promoted to a management role you need to figure out from your boss what it would take to get there.
Leadership is much different and much more important than management. Leadership is not a title. It is a behavior.
To lead you must gain the respect of the team. Leading people is only possible when the people allow you to do so.
I recommend starting by reading everything you can about leadership. Not just leadership in tech, but leadership in general. Here are a few books that I recommend to start:
Also, you need to find a mentor. Somebody who you believe is a great leader, that is willing to teach mentor you.
Hope this helps.
When I started I should have been networking more with others. I worked very hard on many things that nobody knew about. I should have been reaching out to put my name out there. At the time it was difficult without the Internet, but not impossible.
If I had a time machine I would go back and network and partner with other people.
I was only 10 years old in 84 but I started coding machine code when I was 13. Today I work 2 cleaning jobs that add up to 39 to 66 hours per week that are at night or in the early morning. In theory there should be some part time coding job that pays a lot more but like this my mind is available for personal use.
I'm actually looking to start an internet revolution for the betterment of mankind. (I can dream right?) Over the years I've envisioned some wildly complex ideas that for the most part are well beyond anyones attention span and skill set. (duds) In doing so I started to see that the best ideas are those where a basic understanding can be had in seconds with infinite steps into further complexity.
I've managed to simplify something like a hundred ideas to the point where I should really start working on their implementation. I've picked one for you based on your love for scalability.
The goal is to create a organic new-news aggregation network and to dramatically speed up news aggregation.
It involves 2 file types I called: Even Simpler Syndication [ESS] and No Nonsense Outline [NNO]
I wrote a spec here go-here.nl/ess-and-nno but I think I can give a better description tailored for you.
An ESS is a tiny comma separated text document with a unxi build date, an url for an rss feed then, for each news item, 1) a publication date that is an offset in minutes from the build date and 2) a tiny check sum.
Aggregators should limit their results by age and discard an ESS if its build time or top article indicates it being to old.
An NNO file is the end result of aggregation that can be used for the next session but is primal intend is publication/sharing.
It it s a comma separated text document that starts with a unix build time followed by a sorted list of items 1) feed url, 2) minutes before build, 3) title checksum
The file is build after the aggregator aggregates the users hundreds, thousands or millions of ESS, RSS and/or Atom subscriptions while reducing the result list by a configured amount. (say 3000)
When published a 2nd user can load the NNO into their aggregator which should fetch the top feed items listed in the NNO until they have a screen full of results. (scrolling loads more)
The 2nd aggregator can then proceed to fetch that users own subscriptions and/or parse additional NNO files into the result set.
When done they can publish their own NNO file.
Ideally the aggregators maintain their own manually unsubscribed feed list and implement a configurable filter like a word and a word combination filter, a Bayes filter, a machine learning implementation or some other filters. The news items displayed should have an indication about their origin (which NNO file) and they could provide an auto translate link or do inline-translation of headlines/articles.
The point of the entire exercise is to have people access the internet without a multinational man in the middle.
In my experience a few thousand RSS and Atom feeds will produce at least one truly fascinating thing to read per day while larger amounts allow for more aggressive filtering.
Sadly, RSS and Atom files can be so large and are so hard to parse that a home connection can do only a very limited number of them. If there are a billion websites ten thousand is only 0.001% if each request would take a second to resolve ten thousand would be 166 minutes. If your home pc can do 10 per second you still have to wait for 16 minutes while loading the top 40 results of an NNO file would take only 4 seconds.
I think in those 16 minutes combined with a decade of finding and filtering feeds real value is produced. If the result set can be enriched several times per day with input from other users (thereby allowing for more elaborate contextual filtering) the end result accumulates value faster than it expires.
The big question is: Where do I go from here?
I wrote an (untested) Node.js module for ESS, I will make a PHP version as well. I will attempt to make my powerful but userless aggregator more user friendly but mass adoption is the ultimate pipe dream.
What ideas/suggestions do you have for this project?
Ill add a news result just for fun:
news.go-here.nl
I'm sorry for the lack of tech websites ;)
Your passion for technology is commendable, and your enthusiasm will bring you far. I have a few recommendations:
1) Simplify the message. The important thing is to describe the problem you are trying to resolve and the value your idea will add. If you can't write both combined on one side of a 3"x5" index card, then you should rethink the idea.
2) Conplexity is not a goal. It is the enemy. A path to wildly complex mutation is doomed. The goal should be simplicity.
3) If people can't understand the ideas, it is not a demonstration that the idea is superior than most people. Simplicity is the ultimate good design. The implementation of the idea might be complex, but you need to separate implementation details from the mix.
4) Is the goal to start a business? Or to create technology? This is a key question to know what the next steps are. If you are trying to start a business, then you should get a sense for how you will monetize the idea, put a prototype together and try to raise money or users or both. If the goal is to create technology then you need to implement it, open source it, demonstrate that it works (ship a free product that uses it) and write a detailed technical paper about it. However, technology ideas with no business validation have a very hard time gaining traction.
Hope this helps.
Yes, the question is how to introduce a technology without a business. The only thing I can think of is to get some business to adopt it.
The description here was for you. The "real" description would be something like: Use this module and get subscribers/readers. After all, that is how most use RSS. Implement it and ignore it.