Continuous Learning: Software Engineering at Ellevation
With a liberal arts degree and a career in an unrelated industry, I decided a few years ago to return to school to study computer science. I wanted to learn a craft, and programming appealed to me as a skill that's difficult to master, interesting to study, and that fosters creativity.
A fulfilling career is contingent on how engaging you find the work, and in making the decision to take on a career change I was emboldened by the prospect of a job that would motivate me to constantly learn new things. This is the kind of environment I was looking for in an internship, and that I found at Ellevation. A couple of months into my time here, I've learned more than I expected and renewed the enthusiasm I felt when I first returned to school. Ellevation’s mission is to help English Language Learners reach their highest aspirations, but the children aren’t the only ones benefitting. Here are a few of the lessons I've learned during my time at Ellevation:
Diving into a large codebase for the first time is simultaneously instructive and terrifying. The most complicated projects I've tackled in the classroom pale in comparison to the scale of the problems the engineers at Ellevation face, especially as the school year kicks off. The solutions they employ to address them put a range of design patterns and technologies to use, and I'm constantly encountering concrete examples of concepts that so far existed only in the periphery of my studies. Jumping into the code almost as soon as I started was intimidating, but with each task I gain a measure of confidence and my understanding of how a large-scale web application is built and maintained comes into focus a little more.
Communication is vital to a functioning team. My background is in publishing and I expected communication to be one of my strengths going into this internship. I've been blown away by how well the developers at Ellevation share knowledge and coordinate with each other. I'm fortunate to have the opportunity to listen as they discuss major decisions, and I've seen how efficient debate lets the group as a whole see an issue from every angle. From the daily stand-up meetings to the weekly code reviews to the way developers move easily throughout the office to request or offer help to colleagues, there is a clear respect for communication here. Every day I learn more about how to eloquently convey the complicated, abstract concepts that are intrinsic to software development.
Being able to do a little of everything makes everyone's work easier. As I look forward to graduating next spring, I aspire to have a well-rounded knowledge of the software development process. This internship brings me closer to that goal with each project. I've done work all over the application, from the data model to the presentation layer; I've listened as senior engineers made major infrastructure decisions; and I've even had the opportunity to learn about project management and user experience design. The range of work I've been involved in firsthand has exceeded my expectations and I deeply appreciate the engineering team’s willingness to share their expertise.
Morally fulfilling work and the tech world are not mutually exclusive. In an industry where so many fortunes are made, it's a pleasure to work for a company that is driven by a simple, laudable goal: helping ELL students get the attention and tools they need to succeed in school and beyond. In my experience, the people here, from the top down, are motivated by the sincerely held belief that our products will make life easier for administrators and instructors, and, in turn, improve the quality of their students' education. Between the number of educators on staff and the focus on partner feedback, I can work on my piece of the puzzle assured that I am helping fill a real need.
There’s always room for improvement. I’m in awe of the depth and breadth of knowledge I have access to at Ellevation, and seeing how the engineers here strive to continue learning drives home the importance of maintaining a sense of curiosity. That curiosity manifests in an approach that not only considers new features, but constantly looks to improve existing ones. One of Ellevation's core values is a commitment to continuous learning, and I see that in practice every day. This pursuit of new ideas signifies the satisfaction developers here derive from their work, and the desire to find that level of engagement with my work is what propelled my return to school.
The balance between working on real problems and having the latitude to find my way through the code has been invaluable. The skills and instincts a developer needs to adapt as technology evolves spring from experience and practice. As I make the transition from programming in a controlled environment to working on products real people depend on, interning at Ellevation has allowed me to get a taste of all that delivering a quality application entails.